Gegeben: ein CentOS 8-Computer mit drei Netzwerkadaptern.
eth0, eth2: extern, mit zwei verschiedenen ISPs verbunden
eth1: mit dem Heimnetzwerk (Intranet) verbunden
Die Aufgabe: ermöglicht den Zugriff auf bestimmte interne Dienste von beiden ISPs aus. Es gibt mehrere Dienste, ich erwähne unten nur SSH.
In den folgenden Konfigurationen:
IP1: externe IP beim ersten ISP (ISP1), zugewiesen an eth0
Gateway1: IP des Gateways, bereitgestellt von ISP1
Network1,Netmask1: bezogen auf IP1
IP2: externe IP beim zweiten ISP (ISP2), zugewiesen an eth2
Gateway2: IP des Gateways, bereitgestellt von ISP2
Network2,Netmask2: bezogen auf IP2
LocalSSHIP: IP im Intranet (eth1), wo der SSH-Server läuft
Aktuelle Konfigurationen folgen. Routingtabellen:
echo "200 isp1" >> /etc/iproute2/rt_tables
echo "201 isp2" >> /etc/iproute2/rt_tables
Routing-Richtlinien:
/etc/sysconfig/network-scripts/route-eth0
Network1 dev eth0 src IP1 table isp1
default via Gateway1 dev eth0 table isp1
/etc/sysconfig/network-scripts/route-eth2
Network2 dev eth2 src IP2 table isp2
default via Gateway2 dev eth2 table isp2
Routing-Regeln:
/etc/sysconfig/network-scripts/rule-eth0
from IP1/32 table isp1
/etc/sysconfig/network-scripts/rule-eth2
from IP2/32 table isp2
iptables-Ausschnitte. Externer Datenverkehr wird von beiden Schnittstellen an den lokalen SSH-Server weitergeleitet:
iptables -A PREROUTING -t nat -i eth0 -p tcp -d IP1 --dport 22 -j DNAT --to LocalSSHIP:22
iptables -A PREROUTING -t nat -i eth2 -p tcp -d IP2 --dport 22 -j DNAT --to LocalSSHIP:22
iptables -A FORWARD -p tcp -d LocalSSHIP --dport 22 -j ACCEPT
eth0 ist Standard-Gateway:
$ ip route
default via Gateway1 dev eth0 proto static metric 100
default via Gateway2 dev eth2 proto static metric 101
...
$ IP-Regel
0: from all lookup local
32764: from IP2 lookup isp2
32765: from IP1 lookup isp1
32766: from all lookup main
32767: from all lookup default
SNAT wird für den von eth1 stammenden Datenverkehr angewendet:
iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j SNAT --to-source IP1
Momentane Situation:
- Alle von eth0 weitergeleiteten Dienste funktionieren normal.
- Der gesamte Datenverkehr aus dem Intranet wird normal hin- und zurückgeleitet.
- Bei allen Versuchen, auf Dienste von eth2 zuzugreifen, kommt es zu einer Zeitüberschreitung.
Es gibt keine offensichtlichen Hinweise in /var/log/messages (wie etwa Beschwerden über „Marsian-IPs“).
Ich bin da etwas ratlos und wäre für alle Ratschläge sehr dankbar.