Dat: un computer alimentat cu CentOS 8 cu trei adaptoare de rețea.
eth0, eth2: extern, conectat la doi ISP-uri diferite
eth1: se confruntă cu rețeaua de acasă (intranet)
Sarcina: permite accesarea anumitor servicii interne de la oricare ISP.Există mai multe servicii, menționez doar SSH mai jos.
În configurațiile de mai jos:
IP1: IP extern la primul ISP (ISP1), atribuit eth0
Gateway1: IP-ul gateway-ului furnizat de ISP1
Network1,Netmask1: legat de IP1
IP2: IP extern la al doilea ISP (ISP2), atribuit eth2
Gateway2: IP-ul gateway-ului furnizat de ISP2
Network2,Netmask2: legat de IP2
LocalSSHIP: IP în intranet (eth1) unde rulează serverul SSH
Urmează configurațiile curente. Tabele de rutare:
echo "200 isp1" >> /etc/iproute2/rt_tables
echo "201 isp2" >> /etc/iproute2/rt_tables
Politici de rutare:
/etc/sysconfig/network-scripts/route-eth0
Network1 dev eth0 src IP1 tabel isp1
implicit prin Gateway1 dev eth0 table isp1
/etc/sysconfig/network-scripts/route-eth2
Network2 dev eth2 src IP2 tabel isp2
implicit prin Gateway2 dev eth2 table isp2
Reguli de rutare:
/etc/sysconfig/network-scripts/rule-eth0
din tabelul IP1/32 isp1
/etc/sysconfig/network-scripts/rule-eth2
din tabelul IP2/32 isp2
fragmente iptables. Trafic extern redirecționat către serverul SSH local de la ambele interfețe:
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 este gateway implicit:
$ traseu ip
implicit prin Gateway1 dev eth0 proto metric static 100
implicit prin Gateway2 dev eth2 protostatic metric 101
...
regula $ ip
0: din toate căutările locale
32764: din căutarea IP2 isp2
32765: din căutarea IP1 isp1
32766: din toate căutările principale
32767: din toate căutările implicite
SNAT se aplică pentru traficul provenit din eth1:
iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j SNAT --to-source IP1
Situatia actuala:
- Toate serviciile transmise de la eth0 funcționează normal.
- Tot traficul care provine din intranet trece normal.
- Toate încercările de a accesa serviciile de la eth2 expiră.
Nu există indicii evidente în /var/log/messages (cum ar fi plângeri despre „IP-uri marțiane”).
Sunt oarecum pierdut aici, toate sfaturile ar fi binevenite.