Ubuntu 12.04を使用してルーターを設定しています。インターネットモデムとIPアドレスを持つクライアントネットワーク間をルーティングするにはルーターが必要です。
ボックスには3つのインターフェースがあります。
- eth0 - クライアントネットワークのポートです。固定 IP 構成を使用します。
- eth1 - 私たちのLAN。固定IP 192.168.1.1で構成され、DHCP / DNSサービスを提供します。
- 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ノードはそのアドレスに応答でき、ゲートウェイはそのアドレスを再指定して返します。