4〜6コマンドのLinuxイーサネットシンプルトンネル

簡単なチートシート:

HOST1: ip link add grelan type gretap local <IP1> remote <IP2> HOST1: ip link set grelan up HOST1: iptables -I INPUT -p gre -s <IP2> -j ACCEPT HOST2: ip link add grelan type gretap local <IP2> remote <IP1> HOST2: ip link set grelan up HOST2: iptables -I INPUT -p gre -s <IP1> -j ACCEPT
      
      







トンネルあたり4つのコマンドとファイアウォール上の2つのコマンド(サーバー間のトラフィックが既に許可されている場合は不要)

必要なのはこれだけです。その後、詳細な長い説明が必要です。





インターネットを介して複数のコンピューターを擬似ローカルネットワークに結合する必要がある場合、OpenVPNをセットアップすることでこれを解決できます。



ソリューションはうまく機能しますが、欠点がないわけではありません。

1.追加のソフトウェアをインストールして構成する必要があります。 さらに、最初に構成するときはそれほど単純ではありません。座って整理する必要があります。

2.ユーザーモードでトラフィックの暗号化が発生し、追加の遅延が発生します。これは必ずしも重要ではありませんが、IPテレフォニーでは顕著になります。

3.暗号化は必ずしも必要ではありません。 たとえば、私の場合、すべての接続は既に保護されています(ssh)。ローカルネットワークに接続されているかのように、複数のコンピューター間で便利なフラットアドレス指定が必要です。



Linuxでは、GREトンネルは、Linuxの要件から、およびそれぞれのパブリックIPによって、単純に(暗号化が必要でない場合)わいせつに設定されます。

このトピックに関するインターネット上の情報は、どういうわけかほとんどありません。IP(イーサネットではなく)トンネルが主に説明されており、トラフィック暗号化(常に必要なわけではありません)と直結しています。 man ipも非常に広範囲であり、



2つのホストがあるとします。

外部アドレス1.2.3.4のHOST1

外部アドレス2.3.4.5のHOST2



私はそれらの間にイーサネットネットワークを作りたいです、たとえば、その上にIPアドレス192.168.0.1 192.168.0.2を設定できますが、他のIPv6または他のものを使用できます-あなたはスイッチを通してのような通常のネットワークを取得します。



すべてのコマンドはROOTから実行され、再起動後に失われます。 迷子にならないようにするには、起動スクリプトまたは設定にコマンドを登録する必要があります(各ディストリビューションには独自のものがあります)。



1. HOST1に仮想ネットワークゲートウェイカードを追加します。

 HOST1: ip link add grelan type gretap local 1.2.3.4 remote 2.3.4.5
      
      





HOST1では、通常のネットワークカードのように見えます。IPアドレスの割り当て、DHCPサーバーの起動、Bridgeでの有効化などが可能です。



2.追加したマップを有効にします

 ip link set grelan up
      
      







2. IPテーブルが実行されている場合-GREトラフィックを許可する

 HOST1: iptables -I INPUT -p gre -s 2.3.4.5 -j ACCEPT
      
      







3. 2番目のホストの対称構成:

 HOST2: ip link add grelan type gretap local 2.3.4.5 remote 1.2.3.4 HOST2: ip link set grelan up HOST2: iptables -I INPUT -p gre -s 1.2.3.4 -j ACCEPT
      
      







この時点で、イーサネットネットワークは既に実行されています。 これを確認するには、トンネルの両側でプライベートIPアドレスを構成し、pingを送信します。

 HOST1: ip addr add 192.168.0.1/24 HOST2: ip addr add 192.168.0.2/24
      
      







pingできます。

 root@ubuntu:~# ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_req=1 ttl=64 time=2.45 ms 64 bytes from 192.168.0.1: icmp_req=2 ttl=64 time=1.19 ms 64 bytes from 192.168.0.1: icmp_req=3 ttl=64 time=2.45 ms
      
      







pingの場合、ルールをiptablesに追加する必要がある場合があります(または、実験中は完全にオフにします)。



トンネルはlinuxの異なるバージョン間で静かに構成されています。この記事を書いている間、一方の端はubuntuにあり、もう一方の端はcentosにあります。



繰り返しますが、このトンネルは、リスニング/導入トラフィックに対する保護を提供しません。



All Articles