Я хочу настроить Ubuntu 12.04 в качестве маршрутизатора. Этот Ubuntu ПК имеет 3 сетевые карты
eth0:192.168.1.203 (LAN1)
eth1:172.16.30.21 (Internet)
eth2:10.216.1.107 (LAN2)
и
$ route -n
Kernel IP routing table
Destination Gateway Genmask Indic Metric Ref Use Iface
0.0.0.0 172.16.30.1 0.0.0.0 UG 0 0 0 eth1
10.216.1.0 10.216.1.1 255.255.255.0 UG 0 0 0 eth2
10.216.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth2
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth2
172.16.30.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
192.168.0.0 192.168.1.3 255.255.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
Если я настрою другой ПК с Windows (ПК1) следующим образом:
ip:192.168.1.29
mask:255.255.255.0
gw:192.168.1.203
С этого ПК (ПК1), я подключен к Интернету и могу пинговать все IP-адреса в этом диапазоне 192.168.0.0/16 и этот IP 10.216.1.107.но я не могу пинговать другие IP-адреса в этом диапазоне 10.216.1.0/24 (я могу пинговать этот диапазон от Ubuntu PC).
Моя проблема заключается в том, как изменить таблицу маршрутов, чтобы обеспечить соединение между ПК1 и всеми ПК в диапазоне 10.216.1.0/24
Компьютеры в сети 10.216.1.0/24 не знают маршрут к сети 192.168.1.0/24, поэтому они не могут общаться. Вы должны установить статический маршрут в router2, перенаправляя 192.168.1.0/24 на 10.216.1.107.
В качестве альтернативы вы можете маскировать сеть 192.168.1.0/24 за IP-адресом eth2, используя iptables:
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
Для пакетов, выходящих из eth2, IP-адрес источника будет изменен на 10.216.1.107.