Portál AbcLinuxu, 8. května 2025 13:37
Řešení dotazu:
$ sudo ip route add 192.168.0.0/24 dev ens192 tab 1 $ sudo ip route add 192.168.1.0/24 dev ens224 tab 2 $ sudo ip route add default via 192.168.0.1 dev ens192 tab 1 $ sudo ip route add default via 192.168.1.1 dev ens224 tab 2 $ sudo ip rule add from 192.168.0.10/32 tab 1 priority 100 $ sudo ip rule add from 192.168.1.10/32 tab 2 priority 200 $ sudo ip route flush cachepokud to ma byt persistentni tak:
$ cat /etc/sysconfig/network-scripts/route-ens192 192.168.0.0/24 dev ens192 tab 1 default via 192.168.0.1 dev ens192 tab 1 $ cat /etc/sysconfig/network-scripts/route-ens224 192.168.1.0/24 dev ens224 tab 2 default via 192.168.1.1 dev ens224 tab 2 $ cat /etc/sysconfig/network-scripts/rule-ens192 from 192.168.0.10/32 tab 1 priority 100 $ cat /etc/sysconfig/network-scripts/rule-ens224 from 192.168.1.10/32 tab 2 priority 200
ip route add verejna_IP/26 dev eth0 tab 1
ip route add 192.168.1.0/24 dev eth1tab 2
ip route add default via verejna_IP_GW dev eth0 tab 1
ip route add default via 192.168.1.1 dev eth1tab 2
ip rule add from 192.168.2.4/32 tab 1 priority 100 (jen pro test at tam neco je v te tabulce)
ip rule add from 192.168.1.3/32 tab 2 priority 200
ip route flush cache
a ping stale nejde. jedine co se zmenilo je to že už jde ping z eth1 smerem ven ale na eth1 z jine site nepingnu. Jde to pouze ze stejne site nebo jine verejne IP adresy v tom rozsahu co mam.
NTB zachyceno na ntb
22:26:45.673301 IP 192.168.2.3 > 192.168.1.156: ICMP echo request, id 17995, seq 1, length 64
22:26:46.672854 IP 192.168.2.3 > 192.168.1.156: ICMP echo request, id 17995, seq 2, length 64
22:26:47.673234 IP 192.168.2.3 > 192.168.1.156: ICMP echo request, id 17995, seq 3, length 64
22:26:48.672890 IP 192.168.2.3 > 192.168.1.156: ICMP echo request, id 17995, seq 4, length 64
Server - tcpdump eth1
22:44:59.117351 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
server.cz > ntb.cz: ICMP echo request, id 18251, seq 1, length 64
22:45:00.116854 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
server.cz > ntb.cz: ICMP echo request, id 18251, seq 2, length 64
22:45:01.115918 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
server.cz > ntb.cz: ICMP echo request, id 18251, seq 3, length 64
eth0
23:01:27.406249 IP (tos 0x0, ttl 64, id 24797, offset 0, flags [none], proto ICMP (1), length 84)
server.cz > ntb.cz: ICMP echo reply, id 12108, seq 1, length 64
23:01:28.383024 IP (tos 0x0, ttl 64, id 24798, offset 0, flags [none], proto ICMP (1), length 84)
server.cz > ntb.cz: ICMP echo reply, id 12108, seq 2, length 64
23:01:29.383111 IP (tos 0x0, ttl 64, id 24799, offset 0, flags [none], proto ICMP (1), length 84)
Konfigurace:
ip route add verejna_IP/26 dev eth0 tab 1
ip route add 192.168.1.0/24 dev eth1 tab 2
ip route add default via verejna_IP_GW dev eth0 tab 1
ip route add default via 192.168.1.1 dev eth1tab 2
ip rule add from 192.168.2.4/32 tab 1 priority 100 (jen pro test at tam neco je v te tabulce)
ip rule add from 192.168.2.3/32 tab 2 priority 200
ip route flush cache
Ping z eth0 i eth1 na serveru na tu 192.168.2.3 jde ale opacne ne. FW na serveru je vypnuty. To pravidlo pro tab 1 priority 100 ani nepotrebuju, chci at jde proste na eth0 vsechno krome toho co ma jit na eth1 ale to ted neni ten problem. Jeste mam na eth0 nejake virtualni IP ale to by taky nemel byt problem.
ip route get 192.168.2.3
ip rule add from 192.168.2.4/32 tab 1 priority 100
(jen pro test at tam neco je v te tabulce) - tohle je nesmysl.ip rule add from "ip na eth0" lookup tab1
ip rule add from "ip na eth1" lookup tab2
ip route get 192.168.2.3
ip route get
defaultne vyhodi jen jednu tu routu a nepodarilo se mi zatim najit cestu jak je vypsat vsechny.
ip rule add from "ip na eth0" lookup tab1
a ja tam furt cpal IP odkud chci pingnout.
netstat -antlp | grep :80
telnet "ip1" 80
telnet "ip2" 80
[root@XX/]# netstat -antlp | grep :80
tcp 0 0 verejna_IP:80 81.171.58.80:36237 SYN_RECV -
tcp 0 0 lokalni:80 FW_X.X.X.X:59643 SYN_RECV -
tcp 0 0 verejna_virtual_IP_eth0:80 81.171.58.80:4470 SYN_RECV -
tcp 0 0 lokalni:80 FW_X.X.X.X:59642 SYN_RECV -
tcp6 0 0 :::80 :::* LISTEN 3561/httpd
tcp6 0 374 lokalni:80 FW_X.X.X.X:59621 FIN_WAIT1 -
tcp6 0 156 lokalni:80 FW_X.X.X.X:59620 FIN_WAIT1 -
Dalsi:
root@kali:~# telnet verejna_IP_1 80
Trying verejna_IP_1...
Connected to verejna_IP_1.
Escape character is '^]'.
root@kali:~# telnet verejna_IP_2 80
Trying verejna_IP_2...
Connected to verejna_IP_2.
Escape character is '^]'.
K tomu bych mel poznamku že z vnitřní síte se na vhosty toho serveru dostanu jen z jineho segmentu než jaky ma ta eth1 prideleny. Kdyz jdu na nejaky vhost ze stehneho segmentu jak je na eth1 tak nenactou.
V httpd.conf mam jen Listen 80 a pak u kazdeho vhostu virtualhost IP:PORT... takže jsem jen zkopíroval potřebny vhost a přepsal primarni verejnou IP na privatni IP eth1 a FW pak tu sekundarni veřejnou mapuje na tu privatni. To by melo byt OK když ten ping chodi v pohode z venku na eth1.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.