У меня проблемы с маршрутизацией трафика между двумя подсетями. С моей текущей настройкой я могу пропинговать хосты в обеих подсетях от моего Rasbperry Pi, но не могу пропинговать хосты из одной подсети в другую (тайм-аут).
По сути, я хотел бы, чтобы узлы из одной подсети имели доступ к узлам в другой подсети. Мой план состоял в том, чтобы сконфигурировать мой Raspberry Pi для обработки почти всей маршрутизации между подсетями, поскольку каждая подсеть находится за собственным базовым маршрутизатором, который не поддерживает статическую маршрутизацию. Затем я бы добавил маршрут на каждом хосте в противоположную подсеть через интерфейс RPi 'gateway'.
Вот моя текущая настройка:
LAN A <---> Маршрутизатор A <---> RPi <---> Маршрутизатор B <---> LAN B
LAN A
Сеть: 192.168.0.0/24
Шлюз: 192.168.0.1
LAN B
Сеть: 192.168.1.0/24
Шлюз: 192.168.1.1
RPi
ОС: Распбиан
eth0: 192.168.0.4
eth1: 192.168.1.4
Конфигурация интерфейса RPi:
# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.4
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
# The USB-Ethernet interface 1
allow-hotplug eth1
iface eth1 inet static
address 192.168.1.4
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
Маршруты RPi:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 192.168.0.1 255.255.255.0 UG 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
Правила брандмауэра RPi:
# iptables -t nat -n -L -v
Chain PREROUTING (policy ACCEPT 2711 packets, 147K bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 33 packets, 5204 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 97 packets, 7344 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 97 packets, 7344 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * eth0 192.168.0.0/24 192.168.1.0/24
0 0 MASQUERADE all -- * eth1 192.168.1.0/24 192.168.0.0/24
Маршрут хоста 192.168.0.3 (WIN 10):
>route PRINT
===========================================================================
Interface List
...
===========================================================================
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.3 281
...
192.168.1.0 255.255.255.0 192.168.0.4 192.168.0.3 26
...
===========================================================================
...
В настоящее время это то, что происходит, когда я пингую шлюз противоположной подсети с хоста 192.168.0.3:
>ping 192.168.1.1
Pinging 192.168.1.1 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss).
Глядя на мои настройки, вы, вероятно, могли бы сказать, что я применил метод дробовика, но, к сожалению, это не сработало. Могу ли я узнать, что еще мне нужно настроить, или где я ошибся? Дайте мне знать, если мне нужно предоставить больше информации.
Спасибо заранее. :)