Okay, zunächst einmal hier die Netzwerkonfiguration des Servers:
Code: Alles auswählen
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#auto enp0s18
#iface enp0s18 inet static
auto ens18
iface ens18 inet static
address 172.23.0.11
netmask 255.255.240.0
gateway 172.23.0.1
# post-up ip route add 172.23.0.0/20 dev ens18 src 172.23.0.11 table srvnet
# post-up ip route add default via 172.23.0.1 dev ens18 table srvnet
# post-up ip rule add from 172.23.0.11/32 table srvnet
# post-up ip rule add to 172.23.0.11/32 table srvnet
#auto enp0s19
#iface enp0s19 inet static
auto ens19
iface ens19 inet static
address 172.21.0.11
netmask 255.255.240.0
gateway 172.21.0.1
# post-up ip route add 172.21.0.0/20 dev ens19 src 172.21.0.11 table mgmtnet
# post-up ip route add default via 172.21.0.1 dev ens19 table mgmtnet
# post-up ip rule add from 172.21.0.11/32 table mgmtnet
# post-up ip rule add to 172.21.0.11/32 table mgmtnet
Zusätzlich habe ich folgende Parameter gesetzt:
Code: Alles auswählen
sysctl -w net.ipv4.conf.all.arp_filter=1
sysctl -w net.ipv4.conf.default.arp_filter=1
sysctl -w net.ipv4.conf.all.arp_announce=1
sysctl -w net.ipv4.conf.all.arp_ignore=2
Setze ich jetzt ICMP-Pakete ab, habe ich immer noch ein unzufriedigendes Resultat:
ping -c 5 172.21.0.11 von dem Host 172.21.1.165 liefert das Gewünschte und ens18 bleibt ruhig!
Code: Alles auswählen
tcpdump -i ens19 -n icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens19, link-type EN10MB (Ethernet), capture size 262144 bytes
13:16:24.388212 IP 172.21.1.165 > 172.21.0.11: ICMP echo request, id 5322, seq 1, length 64
13:16:24.388256 IP 172.21.0.11 > 172.21.1.165: ICMP echo reply, id 5322, seq 1, length 64
13:16:25.406318 IP 172.21.1.165 > 172.21.0.11: ICMP echo request, id 5322, seq 2, length 64
13:16:25.406360 IP 172.21.0.11 > 172.21.1.165: ICMP echo reply, id 5322, seq 2, length 64
13:16:26.430343 IP 172.21.1.165 > 172.21.0.11: ICMP echo request, id 5322, seq 3, length 64
13:16:26.430386 IP 172.21.0.11 > 172.21.1.165: ICMP echo reply, id 5322, seq 3, length 64
13:16:27.454291 IP 172.21.1.165 > 172.21.0.11: ICMP echo request, id 5322, seq 4, length 64
13:16:27.454334 IP 172.21.0.11 > 172.21.1.165: ICMP echo reply, id 5322, seq 4, length 64
13:16:28.478225 IP 172.21.1.165 > 172.21.0.11: ICMP echo request, id 5322, seq 5, length 64
13:16:28.478268 IP 172.21.0.11 > 172.21.1.165: ICMP echo reply, id 5322, seq 5, length 64
Aber, umgekehrt, wenn ich 172.23.0.11 (ens18) anpinge, dann erhält eine KArte den Request, während die Andere den Reply raussendet.
Auf 172.23.0.165:
Code: Alles auswählen
ping -c 5 172.23.0.11
PING 172.23.0.11 (172.23.0.11) 56(84) bytes of data.
64 bytes from 172.23.0.11: icmp_seq=1 ttl=64 time=0.616 ms
64 bytes from 172.23.0.11: icmp_seq=2 ttl=64 time=0.458 ms
64 bytes from 172.23.0.11: icmp_seq=3 ttl=64 time=0.426 ms
64 bytes from 172.23.0.11: icmp_seq=4 ttl=64 time=0.343 ms
64 bytes from 172.23.0.11: icmp_seq=5 ttl=64 time=0.492 ms
--- 172.23.0.11 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4060ms
rtt min/avg/max/mdev = 0.343/0.467/0.616/0.089 ms
Auf dem Server:
Code: Alles auswählen
tcpdump -i ens18 -n icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens18, link-type EN10MB (Ethernet), capture size 262144 bytes
13:19:49.506050 IP 172.21.1.165 > 172.23.0.11: ICMP echo request, id 5334, seq 1, length 64
13:19:50.507093 IP 172.21.1.165 > 172.23.0.11: ICMP echo request, id 5334, seq 2, length 64
13:19:51.517942 IP 172.21.1.165 > 172.23.0.11: ICMP echo request, id 5334, seq 3, length 64
13:19:52.541840 IP 172.21.1.165 > 172.23.0.11: ICMP echo request, id 5334, seq 4, length 64
13:19:53.566047 IP 172.21.1.165 > 172.23.0.11: ICMP echo request, id 5334, seq 5, length 64
Code: Alles auswählen
tcpdump -i ens19 -n icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens19, link-type EN10MB (Ethernet), capture size 262144 bytes
13:19:49.506094 IP 172.23.0.11 > 172.21.1.165: ICMP echo reply, id 5334, seq 1, length 64
13:19:50.507145 IP 172.23.0.11 > 172.21.1.165: ICMP echo reply, id 5334, seq 2, length 64
13:19:51.517984 IP 172.23.0.11 > 172.21.1.165: ICMP echo reply, id 5334, seq 3, length 64
13:19:52.541903 IP 172.23.0.11 > 172.21.1.165: ICMP echo reply, id 5334, seq 4, length 64
13:19:53.566092 IP 172.23.0.11 > 172.21.1.165: ICMP echo reply, id 5334, seq 5, length 64
Es ändert sich auch an diesem Verhalten nichts, wenn ich für ens18 zusätzlich "gateway 172.21.0.1" in die /etc/interfaces setze.
Die korrekte Lösung sollte die sein, bei der auch wirklich nur die Schnittstelle antwortet, auf der die Pakete auch eingehen.
Grüße
Andre