Ubuntu Linuxルーター:2つのインターフェースにアウトバウンドNATを設定する

Ubuntu Linuxルーター:2つのインターフェースにアウトバウンドNATを設定する

Ubuntu 12.04を使用してルーターを設定しています。インターネットモデムとIPアドレスを持つクライアントネットワーク間をルーティングするにはルーターが必要です。

ボックスには3つのインターフェースがあります。

  1. eth0 - クライアントネットワークのポートです。固定 IP 構成を使用します。
  2. eth1 - 私たちのLAN。固定IP 192.168.1.1で構成され、DHCP / DNSサービスを提供します。
  3. eth2 - 3Gルータモデムへのアップリンク。 DHCP クライアントとして構成します。

私の/etc/network/interfacesは次のとおりです。

# The primary network interface
auto eth2
iface eth2 inet dhcp

# LAN point to our client's network
auto eth0
iface eth0 inet static
address 10.198.250.171
#gateway 10.198.0.4
netmask 255.255.0.0
network 10.198.0.0
broadcast 10.198.255.255
hwaddress ether 00:1E:EC:72:ED:92

# eth1 acts as our LAN's router IP
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

eth1をDHCPとして使用するように設定し、/etc/rc.localからLANからインターネットへのNATを次のように設定しました。

# IP forwarding script from our LAN to internet
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth2 -j MASQUERADE

私のクライアントのLAN(プライベートクラスAネットワーク)にアクセスするために、次のように静的パスを設定しました。

up route add -net 10.0.0.0/8 gw 10.198.250.171 dev eth0

これまでは、ルータ自体からクライアントのLANにpingを送信してアクセスできますが、どのLANクライアントでもルータにクライアントのLANにルーティングさせることはできません。

また何をすべきか教えてくれる人はいますか? eth0とeth2にアウトバウンドNATを設定する必要がありますか?

どんなアドバイスも本当にありがとうございます。

ベストアンサー1

私の考えでは、クライアントLANから応答を受け取ることが問題のようです。したがって、クライアントLANにもNATを使用する必要があります。

説明します。

LANのノードは、ゲートウェイをデフォルトゲートウェイとして使用します。

したがって、クライアントネットワーク(10.0.0.0/8)またはより広い世界(0.0.0.0/8)に向かうすべてのトラフィックがそのネットワークに移動します。

より広い世界へのトラフィックは、NATを介してインターネットに転送されます。

クライアントLANへのトラフィックはそのまま転送されます(ここで転送が機能していると仮定し、NAT操作がこれを示します)。

したがって、内部LANのノード(IPが192.168.1.200であると仮定)からの着信パケットはゲートウェイに送信され、クライアントLANに転送されます。ただし、ソースアドレスはまだ192.168.1.200です。

クライアントコンピュータはこのメッセージを受信し、192.168.1.200で応答しようとします。

クライアントLANコンピュータは、ルーティングが192.168.1.0/24に設定されていない場合、またはデフォルトゲートウェイがパケットをゲートウェイに転送できない場合、ルーティングできません。

ゲートウェイでNATが有効になると、送信元アドレス192.168.1.200はクライアントLANゲートウェイアドレスでNATに変換され、クライアントLANノードはそのアドレスに応答でき、ゲートウェイはそのアドレスを再指定して返します。

おすすめ記事