インターフェースと NAT 間のルーティング (IP エイリアシング)

インターフェースと NAT 間のルーティング (IP エイリアシング)

2台のサーバーがあり、どちらもスイッチ0(VLANなし)で接続されています。サーバー1には2つのNICがあります。

eth0 --> switch0
ppp0 --> modem --> internet
cat /proc/sys/net/ipv4/ip_forward 1

192.168.1.0/24
192.168.1.212 netmask 255.255.255.0

ルート:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
10.10.10.0      10.10.10.1      255.255.255.0   UG    0      0        0 tun0
10.10.10.1      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
151.7.202.72    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
172.16.212.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.116.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet8

server2 は次のとおりです。

192.168.1.0/24
192.168.1.252 netmask 255.255.255.0 --> switch0

3 つの LAN、3 つの NIC の場合:

192.168.1.0/24 netmask 255.255.255.0 --> switch0
192.168.2.0/24 netmask 255.255.255.0 --> switch1
193.168.3.0/24 netmask 255.255.255.0 --> switch2

ルート:

Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.212      UGS         0   168553   bge0
10.10.10.0/24      10.10.10.1         UGS         0        0   tun0
10.10.10.1         link#12            UH          0        0   tun0
10.10.10.2         link#12            UHS         0        0    lo0
127.0.0.1          link#10            UH          0     1897    lo0
192.168.1.0/24     link#1             U           0    42375   bge0
192.168.1.252      link#1             UHS         0        4    lo0
192.168.2.0/24     link#7             U           0   117807    rl0
192.168.2.252      link#7             UHS         0        0    lo0
192.168.3.0/24     link#8             U           0   161828    rl1
192.168.3.252      link#8             UHS         0        0    lo0

192.168.1.0/24 から他のすべての LAN へのルーティングを作成する必要があります。

server2 で IP エイリアシングを使用する必要がありますか?

答え1

実はとても簡単です。

サーバー2: ファイル/etc/sysctl.confを(sudoとして)編集し、次の行を見つけます。

  #net.ipv4.ip_forward=1

コメントを外して、

  net.ipv4.ip_forward=1

ファイルを保存し、次のコマンドを発行します。

  sudo sysctl -p

これは単に、カーネルに対して、パケットが 1 つの NIC から別の NIC に渡されることを許可するように指示するだけです。

また、戻りパケットが server2 経由で正しくルーティングされるように、NAT を設定する必要があります。以下を発行します。

  sudo iptables -t nat  -A POSTROUTING -o rl0 -j MASQUERADE
  sudo iptables -t nat  -A POSTROUTING -o rl1 -j MASQUERADE

これは、デフォルトの iptables ポリシーがすべて ACCEPT であることを前提としています。これが正しくない場合は、ファイアウォールにさらにいくつかの穴を開ける必要があります。

次に、サーバー 1 に移動します。次のコマンドを発行します。

  sudo route add -net 192.168.2.0/24 default gw 192.168.1.252
  sudo route add -net 192.168.3.0/24 default gw 192.168.1.252

これら 2 つのコマンドは、192.168.2.0/24 または 192.168.3.0/24 宛てのパケットが見つかった場合、そのパケットを server2 にルーティングして処理するように server1 に指示するだけです。

192.168.2.0/24または192.168.3.0/24のクライアントがserver2経由で192.168.1.0にアクセスできるようにするかどうかを指定していません。指定する場合は、

  sudo iptables -t nat -A POSTROUTING -o bge0 -j MASQUERADE

ファイアウォールに。

最後に、サブネット192.168.2.0/24と192.168.3.0/24がない別のルートで Server1 に接続します。これは、構成内に閉じたループが存在することを意味し、これを適切に処理するには高度な機器が必要になるためです。

関連情報