Переадресация IP, но получение запросов ARP
У меня проблема с переадресацией ip. В основном у меня есть два интерфейса:
eth0 - 192.168.9.2 - Маршруты во внутреннюю сеть (192.168.20.0)
eth1 - 192.168.8.100 - Маршруты в интернет
pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.9.2 netmask 255.255.255.252 broadcast 192.168.9.3
inet6 fe80::4864:3a07:de69:4cfe prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:9c:07:bd txqueuelen 1000 (Ethernet)
RX packets 14725 bytes 933855 (911.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15977 bytes 8186253 (7.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.8.100 netmask 255.255.255.0 broadcast 192.168.8.255
inet6 fe80::e5b:8fff:fe27:9a64 prefixlen 64 scopeid 0x20<link>
ether 0c:5b:8f:27:9a:64 txqueuelen 1000 (Ethernet)
RX packets 121 bytes 16517 (16.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 829 bytes 69496 (67.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:~ $ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.8.1 0.0.0.0 UG 204 0 0 eth1
192.168.8.0 0.0.0.0 255.255.255.0 U 204 0 0 eth1
192.168.9.0 0.0.0.0 255.255.255.252 U 202 0 0 eth0
192.168.20.0 192.168.9.1 255.255.255.0 UG 20 0 0 eth0
pi@raspberrypi:~ $
IP-переадресация включена
pi@raspberrypi:~ $ cat /proc/sys/net/ipv4/ip_forward
1
Когда я пытаюсь выполнить ping из eth1, я не получаю ответа. Дамп TCP также не показывает пакетов.
pi@raspberrypi:~ $ sudo ping -I 192.168.9.2 4.2.2.2
PING 4.2.2.2 (4.2.2.2) from 192.168.9.2 : 56(84) bytes of data.
^C
--- 4.2.2.2 ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 340ms
Пинг с eth0 проходит нормально. Если я пропингую из своей локальной сети интерфейс, обращенный к eth0, я не получу ответа.
admin@er4:~$ sudo ping -I eth1 4.2.2.2
PING 4.2.2.2 (4.2.2.2) from 192.168.9.1 eth1: 56(84) bytes of data.
^C
--- 4.2.2.2 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6209ms
Но он пытается получить запись ARP для этого пункта назначения.
pi@raspberrypi:~ $ sudo tcpdump host 4.2.2.2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
19:16:14.894969 ARP, Request who-has b.resolvers.Level3.net tell 192.168.9.1, length 46
19:16:15.904174 ARP, Request who-has b.resolvers.Level3.net tell 192.168.9.1, length 46
19:16:16.944161 ARP, Request who-has b.resolvers.Level3.net tell 192.168.9.1, length 46
19:16:17.994377 ARP, Request who-has b.resolvers.Level3.net tell 192.168.9.1, length 46
19:16:19.024197 ARP, Request who-has b.resolvers.Level3.net tell 192.168.9.1, length 46
19:16:20.064207 ARP, Request who-has b.resolvers.Level3.net tell 192.168.9.1, length 46
19:16:21.104393 ARP, Request who-has b.resolvers.Level3.net tell 192.168.9.1, length 46
19:16:22.144260 ARP, Request who-has b.resolvers.Level3.net tell 192.168.9.1, length 46
19:16:23.184334 ARP, Request who-has b.resolvers.Level3.net tell 192.168.9.1, length 46
^C
9 packets captured
11 packets received by filter
0 packets dropped by kernel
Я немного погуглил и думаю, что мне нужно добавить правило политики IP, но я не могу заставить его работать. я пытался
sudo ip rule add oif eth0 lookup default
но это не имеет значения. Я не уверен, куда идти отсюда.