wie im Admintagebuch angesprochen, ist die Nat-IPv4 von Des1 nicht von außen pingbar. Das müsste eigentlich gehen. Die Pakete kommen rein und werden einfach nicht beantwortet, es geht nichts wieder raus. Kann sich das jemand erklären oder hat jemand eine Idee, was da falsch läuft?
Das Natten an sich funktioniert aber.
tcpdump -i any dst host 185.66.193.52 and icmp
20:26:58.760562 IP dslb-178-001-116-105.178.001.pools.vodafone-ip.de > 185.66.193.52: ICMP echo request, id 17469, seq 91, length 64
20:26:59.186961 IP dslb-178-001-116-105.178.001.pools.vodafone-ip.de > 185.66.193.52: ICMP echo request, id 17435, seq 273, length 64
20:26:59.768564 IP dslb-178-001-116-105.178.001.pools.vodafone-ip.de > 185.66.193.52: ICMP echo request, id 17469, seq 92, length 64
20:27:00.186531 IP dslb-178-001-116-105.178.001.pools.vodafone-ip.de > 185.66.193.52: ICMP echo request, id 17435, seq 274, length 64
^C
129 packets captured
228 packets received by filter
0 packets dropped by kernel
root@des1 ~ # iptables -L nat -S
iptables v1.4.21: Cannot use -S with -L
Try `iptables -h' or 'iptables --help' for more information.
root@des1 ~ # iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o tun-ffrl-+ -j SNAT --to-source 185.66.193.52
root@des1 ~ # iptables -t mangle -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A PREROUTING -i br0 -j MARK --set-xmark 0x1/0xffffffff
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j MARK --set-xmark 0x1/0xffffffff
-A OUTPUT -o eth0 -p tcp -m tcp --dport 53 -j MARK --set-xmark 0x1/0xffffffff
-A POSTROUTING -o tun-+ -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss ! --mss 0:1240 -j TCPMSS --set-mss 1240
Richtig, das von Fussel aber z.B. schon und so sollte es auch sein. Alleine schon, damit am vernünftig tracerouten kann. Also haben wir in unserer Konfiguration einen Fehler drin.
Ich habe auf fanlin gerade mal testweise folgende ip rule hinzugefügt, weil es eine entsprechende rule auf fussel gibt:
ip rule add from 185.66.193.49 table ffnet
Ich bin mir nicht sicher, wo ich das reinpacken soll.
In /etc/network/interfaces gibt es beim Interface lo “ip rule add iif lo table ffnet suppress_prefixlength 0”, aber nicht durch Ansible gesetzt und auch nicht konsistent (teilweise mit pre-up, teilweise mit post-up). Da gehört es aber am ehesten dazu. Außerdem ist die iptables-SNAT-Regel auch nicht in Ansible.
Ich würde das lieber noch mal diskutieren, bevor es schief läuft.
So, Rules sind in Ansible und ausgerollt. Ein Network-Restart kann die Rules aber nicht aktivieren, da lo vom Network-Restart ausgenommen ist. Deshalb haben die Tasks in Ansible auch keinen Restart-Handler. So muss man die Befehle einmalig manuell ausführen oder rebooten.
Iptables-Regeln hab ich noch nicht angefasst. Die sind auf den 3 Backbones alle unterschiedlich und wir sollten erst mal drüber reden, was richtig ist.