4チームのブリッジとiptablesなしでIPを内部ネットワークに転送するためのチートシート

この記事では、イーサネットゲートウェイを転送してiptablesのアドレスを書き換えることなく、外部IPアドレスをローカルIPアドレスにルーティングする方法について説明します。 その結果、内部サーバーのネットワークカードには1つの正しい外部IPアドレスが存在し、内部IPアドレスは存在しません。





アプリケーションの実践:たとえば、物理サーバーのイーサネットネットワークに接続する必要なく、サーバーから仮想マシンにIPアドレスをルーティングします。

同時に、アドレスのネットワークと異なるアドレスの両方をネットワークインターフェイスに割り当てることができます。このサーバーは、単純に次のルーティングノードとして示されます(たとえば、HetznerはフォールトトレラントIPアドレスを配布します)。



初期状態


サーバーS0はインターネットへのゲートウェイであり、外部およびbrLAN-内部の2つのeth0ネットワークカードを備えています(これは物理カードまたは仮想マシンとのネットワーク接続のための単なるブリッジのいずれかです)。

1.1.1.1-S0サーバーの外部IPアドレスは、構成には一切関与しません。

1.2.3.4-外部IPアドレス。パケットはeth0に到着し、内部サーバーに転送する必要があります

192.168.0.1-brLAN上のS0サーバーのIPアドレス。

S0で有効なIPv4リダイレクト

非表示のテキスト
cat /etc/sysctl.conf | grep net.ipv4.ip_forward net.ipv4.ip_forward=1
      
      









サーバーS1-内部ネットワーク上のサーバー、または外部IPアドレスを転送する必要のある仮想サーバー。1つのネットワークインターフェイス-brLANに含まれるeth0があります。



両方のサーバーのiptablesがオフになっています



チーム向けの簡単なチートシート


サーバーS0(ゲートウェイ):

 ip route add 1.2.3.4 dev brLAN #     1.2.3.4   brLAN
      
      







サーバーS1(内部)

 ip addr add 1.2.3.4 dev eth0 #   1.2.3.4  ,   brLAN ip route add 192.168.0.1 dev eth0 #   192.168.0.1    brLAN ip route add default via 192.168.0.1 #      192.168.0.1
      
      







それだけです。S1では、内部IPアドレスを割り当てる必要はありません。パケットはすぐにパブリックアドレスから送信されます。



構成によるクライアントの構成


クライアント側では、これらのルールは構成ファイルを使用して構成でき、通常どおり、設定はネットワークインターフェイスと共にすぐに発生します。

CentOS 6.5の構成ファイルの例
 cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=1.2.3.4 NETMASK=255.255.255.255 SCOPE="peer 192.168.0.1" cat /etc/sysconfig/network-scripts/route-eth0 ADDRESS0=0.0.0.0 NETMASK0=0.0.0.0 GATEWAY0=192.168.0.1
      
      









まだ設定からサーバーが見つかりませんでしたが、一般的にはそれほど問題ではありません。1つのゲートウェイを制御するのは簡単で、設定は簡単です。 。



内部IPに転送するiptablesを超える利点


  1. パケットの宛先アドレスが保存されます。
  2. 正しい外部IPは、内部サーバーインターフェイスに表示されます。
  3. iptablesミラールールに従う必要はありません-発信トラフィックも正しいIPから来るように
  4. ゲートウェイ上のトラフィックをフィルタリングする必要がある場合、ルールはより明確に見えます-実サーバーのアドレスを指します
  5. 内部アドレス指定システムを維持する必要はありません
  6. スクリプトからのルートの操作が簡単
  7. インフラストラクチャの成長により、既存のルールと作業ロジックを維持しながら、動的ルーティングに切り替えることが可能になります
  8. トラフィックのソースに関係なく、パブリックアドレスのサーバーにアクセスする機能。 この場合、iptablesの場合、ゲートウェイのトラフィックのソースが、内部ネットワークから、外部ネットワークからの場合には、ルールを個別に構成する必要があります。 おそらくもう少し微妙なことがあります
  9. ip routeでのルーティングの視覚的結論は、どのトラフィックが内部ネットワークに行くかをすぐに示します。iptablesにはさらに多くのルールがあり、フィルタリングルールがあり、出力を個別に分析する必要があります。
  10. 2つのbrLANサーバーは、ゲートウェイなしでパブリックアドレスで直接通信できます。
    非表示のテキスト
     ping 1.2.3.4 PING 1.2.3.4 (1.2.3.4) 56(84) bytes of data. 64 bytes from 1.2.3.4: icmp_seq=1 ttl=64 time=1.18 ms From 192.168.122.1: icmp_seq=2 Redirect Host(New nexthop: 1.2.3.4) 64 bytes from 1.2.3.4: icmp_seq=2 ttl=64 time=0.386 ms 64 bytes from 1.2.3.4: icmp_seq=3 ttl=64 time=0.325 ms 64 bytes from 1.2.3.4: icmp_seq=4 ttl=64 time=0.262 ms 64 bytes from 1.2.3.4: icmp_seq=5 ttl=64 time=0.298 ms 64 bytes from 1.2.3.4: icmp_seq=6 ttl=64 time=0.344 ms </spoiler> arp Address HWtype HWaddress Flags Mask Iface 192.168.122.1 ether 52:54:00:91:b2:67 C eth0 1.2.3.4 ether 52:54:00:11:80:37 C eth0
          
          











192.168.0.1を取り除く方法


PS、原則として、アドレス192.168.0.1も除外できます。その代わりに、パブリックIPなど、ゲートウェイサーバーの任意のIPアドレスを指定できます。そうすると、パスのトレースが美しく見えます。 デフォルト設定では、すべてが機能しますが、微妙な違いが生じる場合があります。



たとえば、任意のインターフェイスからIPアドレスに応答する機能が干渉する場合があるため、オフにする必要があります。 または、ゲートウェイのパブリックIPアドレスが変更された場合(たとえば、仮想マシンが別の物理サーバーに移動した場合)、内部サーバーの設定を変更する必要があります。 ゲートウェイにすべてのこのようなゲートウェイに共通の個別のアドレスを使用する場合、この問題は発生しません。



All Articles