Tegelased on kaks arvutit PC1 ja PC2 ning neid ühendav marsruuter RT (vt. pilti). Tegemist on väljavõttega suuremast võrgust.
Probleem seisneb selles, et enamike ühenduste jaoks on PC1 leiutanud, et PC2 on temaga samas alamvõrgus. Minu küsimus: kuidas jõuab Linux sellise tulemuseni?
Erinevad katsed pöörduda arvutist PC1 arvuti PC2 poole näevad välja nii:
Kood: Vali kõik
chris@pc1$ ping -c 3 pc2
PING pc2 (192.168.200.3) 56(84) bytes of data.
From 192.168.1.20 icmp_seq=1 Destination Host Unreachable
From 192.168.1.20 icmp_seq=2 Destination Host Unreachable
From 192.168.1.20 icmp_seq=3 Destination Host Unreachable
--- pc2 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2016ms
chris@pc1$ traceroute pc2
traceroute to pc2 (192.168.200.3), 30 hops max, 60 byte packets
1 rt (192.168.1.1) 0.162 ms 0.138 ms 0.121 ms
2 pc2 (192.168.200.3) 3001.871 ms !H 3001.860 ms !H 3001.844 ms !H
chris@pc1$ tcptraceroute pc2
Selected device eth0, address 192.168.1.20, port 39900 for outgoing packets
Tracing the path to pc2 (192.168.200.3) on TCP port 80 (www), 30 hops max
1 rt (192.168.1.1) 0.127 ms 0.103 ms 0.070 ms
2 pc2 (192.168.200.3) [open] 0.268 ms 0.196 ms 0.174 ms
chris@pc1$
Eksib see, kes arvab, et tulemüür oli valesti seadistatud. Ei olnud. Ikaldus tekkis sellest, et PC2 lülitati kogemata välja. (Kahet kõrvuti arvutist lülitati vastavalt Murphy seadustele välja vale.)
Kõik ülejäänud (pea 200) võrgu 192.168.1.0/24 asukat pääsesid arvutini PC2 probleemideta.
PC1 marsuutimistabel
Kood: Vali kõik
chris@pc1$ ip route
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
172.25.57.35/24 dev eth1 proto kernel scope link src 172.25.57.35
default via 192.168.1.1 dev eth0
chris@pc1$Kood: Vali kõik
chris@pc2$ ip route
192.168.200.0/29 dev eth0 proto kernel scope link src 192.168.200.3
192.168.1.0/24 via 192.168.200.3 dev eth0
default via 192.168.200.1 dev eth0
chris@pc2$Kood: Vali kõik
chris@rt$ ip route
192.168.200.0/29 dev eth0 proto kernel scope link src 192.168.200.2
172.25.57.0/24 dev eth1 proto kernel scope link src 172.25.57.249
192.168.1.0/24 dev eth3 proto kernel scope link src 192.168.1.20
default via 192.168.200.1 dev eth0
chris@rt$* 172.25.57.0/24 võrgus on PC1 ja RT mõlemad kliendid.
* Antud alamvõrgu lüüs on aadressil 172.25.57.1, kuid see ei ole konfigureeritav ning samuti ei tea ta 192.168.0.0/16 võrkudest mitte midagi. 172.25.57.1 taga on kusagil pääs ka laia maailma.
* RT teeb enamikule 192.168.1.0/24 võrgu arvutitele maskeraadi võrku 172.25.57.0/24. Õige marsruutimine on tagatud alternatiivsete marsruutimistabelite ja -reeglitega. (Hetkel puudub võimalus neid siia postitusse lisada, samas ei tohiks need ka olulised olla.)
* Valitud arvutid nagu PC1 on ühendatud otse kahte võrku. Mitte ükski neist erilistest arvutitest ei ole marsruuter. S.t./proc/sys/net/ipv4/ip_forward sisu on 0 (null) ja iptables'ga on edastamine samuti keelatud.

