Изменить: я решил свою проблему, когда заканчивал этот безумно длинный пост. Я просто не включил ответ на пинг в моем брандмауэре Windows, поэтому я не мог пинговать компьютер в сети 0 из сети 1 или 2 (см. Ниже). И, конечно же, когда я попытался пропинговать интернет-маршрутизатор в сети 0, это не сработало, потому что я не установил на нем нестандартные шлюзы, как я делал свои окна.
Итак, я предлагаю вам «правильный» способ настроить Linux-сервер в качестве простого шлюза между подсетями. Просто не забудьте правильно настроить все свои шлюзы на клиентах (простое правило: шлюз по умолчанию должен быть маршрутом к Интернету, затем настройте 1 шлюз для каждой подсети, подключенной к другим шлюзам в вашей подсети.
Я создаю тестовую сеть с ящиком Ubuntu linux, соединяющим 3 подсети. Вот моя топология:
***********************
* Internet Router *
* 192.168.2.1 *
***********************
* ***************
* * Client 0 *
*************** *192.168.2.117*
* Switch * * * * * * * Windows *
*************** ***************
*
* 192.168.2.0/24 = Network 0
*
Network 1 *************** Network 2
192.168.1.0/24 * eth0 * 10.25.0.0/16
* * * * * * * * * * * * * *
* *eth1 eth2* *
* * * *
* * * *
************* * Ubuntu Srvr * *************
*192.168.1.5* *************** * 10.25.0.5 *
* * * *
* client 1 * * client 2 *
* * * *
************* *************
Файл / etc / network / interfaces моего сервера ubuntu:
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.2.192
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255
gateway 192.168.2.1
# Subnet 1
auto eth1
iface eth1 inet static
address 192.168.1.1
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
auto eth2
iface eth2 inet static
address 10.25.0.1
network 10.25.0.0
netmask 255.255.0.0
broadcast 10.25.255.255
Я раскомментировал net.ipv4.ip_forward=1
в /etc/sysctl.conf
Я также выполнил команду echo 1 > /proc/sys/net/ipv4/ip_forward
Шлюз по умолчанию для клиента 1 - 192.168.1.1.
Шлюз по умолчанию для клиента 2 - 10.25.0.1.
Клиент 0 в сети 0 имеет 3 шлюза:
Я тестирую эту настройку с помощью ping.
Используя iptraf, я вижу, что запрос ping идет, скажем, с 192.168.1.5 на 192.168.2.117 на eth1
Однако я не вижу ответа.
... Только что разобрался (см. Править в начале). Если вы зашли так далеко, извините, что разочаровал.
Я решил свою проблему, как только заканчивал этот безумно длинный пост. Я просто не включил ответ на пинг в моем брандмауэре Windows, поэтому я не мог пинговать компьютер в сети 0 из сети 1 или 2 (см. Ниже). И, конечно же, когда я попытался пропинговать интернет-маршрутизатор в сети 0, это не сработало, потому что я не установил на нем нестандартные шлюзы, как я делал свои окна.
Итак, я предлагаю вам «правильный» способ настроить Linux-сервер в качестве простого шлюза между подсетями. Просто не забудьте правильно настроить все свои шлюзы на клиентах (простое правило: шлюз по умолчанию должен быть маршрутом к Интернету, затем настройте 1 шлюз для каждой подсети, подключенной к другим шлюзам в вашей подсети.