Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
chris
Pingviini aktivist
Pingviini aktivist



Liitunud: 16.02.2009
Postitused: 146
Asukoht: Tallinn
Distributsioon: Debian 6.0/7.0
estonia.gif
postituspostitatud: 30.10.2012, 01:23  postituse pealkiri:  Ebanormaalne marsruutimine  

Koperdasin ebanormaalse marsruutimisprobleemi otsa, mille kiireks lahenduseks oli restart, kuid tahaks siiski jõuda probleemi põhjuste jälile.

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:
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$

Teises terminalis töötav tshark näitas, et PC1 otsis ebaõnnestunud katsete puhul samast alamvõrgust arvutit PC2. Õnnestunud katsete korral läks info ilusasti RT kaudu kohale. See on kontrollitud tshark'ga arvutites RT ja PC2. Kõik vastupidises suunas, PC2-st PC1-e, tehtud katsed ebaõnnestusid, sest PC1 otsis aktiivselt võrgust 192.168.1.0/24 arvutit PC2.

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:
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$

PC2 marsruutimistabel
Kood:
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$

RT marsruutimistabel
Kood:
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$

Lisaks veel:
* 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.


võrgu_probleem.png
 Kirjeldus:
võrgu pilt
 Failisuurus:  26.05 kB
 Vaadatud:  560 kord(a)

võrgu_probleem.png



obundra
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 04.08.2005
Postitused: 1213
Asukoht: 127.0.0.1
Distributsioon: RHEL, Solaris, Debian, Gentoo
estonia.gif
postituspostitatud: 30.10.2012, 11:35  postituse pealkiri:  (teema puudub)  

Esmapilgul paistab silma, et PC2 peal on olemas route 192.168.1.0 võrku, ehk "192.168.1.0/24 via 192.168.200.3 dev eth0", aga PC1 peal sarnast asja 192.168.200.0 peale ei paista.Kuidas neil ülejäänud 192.168.1.0 võrgu masinatel on?

_________________
IT teenused

chris
Pingviini aktivist
Pingviini aktivist



Liitunud: 16.02.2009
Postitused: 146
Asukoht: Tallinn
Distributsioon: Debian 6.0/7.0
estonia.gif
postituspostitatud: 30.10.2012, 16:28  postituse pealkiri:  (teema puudub)  

Sul on kahe silma vahele jäänud, et PC1 default route on RT, mis saadab asjad soovitud võrku. Seega eraldi reeglit vaja ei ole.
Muide, ikalduse hetkel sai ka antud marsruut ilmutatult lisatud, kuid paranemist ei kaasnenud.

Aga tänud kaasa mõtlemast!


imre
Vana Pingviin
Vana Pingviin



Liitunud: 16.08.2005
Postitused: 2648
Asukoht: Saku kant
Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 30.10.2012, 19:45  postituse pealkiri:  (teema puudub)  

Kus kohast see 192.168.1.2 tekib?
chris@pc1$ ip route
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2

Ruutingutabeli seadistasid käsitsi?

_________________
Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.

chris
Pingviini aktivist
Pingviini aktivist



Liitunud: 16.02.2009
Postitused: 146
Asukoht: Tallinn
Distributsioon: Debian 6.0/7.0
estonia.gif
postituspostitatud: 30.10.2012, 22:13  postituse pealkiri:  (teema puudub)  

imre kirjutas:
Kus kohast see 192.168.1.2 tekib?
chris@pc1$ ip route
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2

Uups. See on minu näpukas teksti kopeerimisel. Õige rida on
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20

Palun vabandust.

imre kirjutas:
Ruutingutabeli seadistasid käsitsi?

Marsruutimistabelid täidetakse kõigis arvutites automaatselt kas kerneli või marsruutimisdeemoni (bird) poolt.
Ainsana on käsitsi lisatud PC2 marsruutimistabelisse võrk 192.168.1.0/24, sest 192.168.200.1 ei tea mitte midagi antud võrgust.


Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group