/ Linux Reviews / Networking / Kszta³towanie Ruchu i Zaawansowany Routing HOWTO - en - pl
3.5. ARPARP, to Protokó³ Rozwi±zywania Adresów (ang. Address Resolution Protocol), opisany w RFC 826. ARP u¿ywany jest w komputerach pod³±czonych do sieci do rozwi±zywania adresów sieciowych/lokalizacji innych komputerów równie¿ pod³±czonych do tej sieci. Komputery w Internecie identyfikuje siê generalnie po ich nazwach, które rozwi±zywane s± na adresy IP. W ten w³a¶nie sposób komputer w sieci foo.com mo¿e komunikowaæ siê z inn± maszyn± z sieci bar.net. Adresy IP nie mówi± jednak nic o fizycznej lokalizacji komputera. Wtedy w³a¶nie pojawia siê ARP. Spójrzmy na bardzo prosty przyk³ad. Za³ó¿my, ¿e mam sieæ z³o¿on± z kilku komputerów. Dwa z komputerów w tej sieci, to foo z adresem 10.0.0.1 i bar> z adresem 10.0.0.2. foo chce wykonaæ ping do bar, by sprawdziæ czy bar pracuje, ale nie wie przecie¿ gdzie znajduje siê bar. Chc±c wykonaæ ping, musi zatem najpierw wys³aæ zapytanie ARP. Zapytanie to podobne jest do wykrzyczenia 'bar (10.0.0.2)! Gdzie jeste¶?'. W rezultacie wszystkie komputery w sieci us³ysz± zapytanie, ale tylko bar (10.0.0.2) odpowie. Odpowied¼ ARP zostanie skierowana bezpo¶rednio do foo i bêdzie czym¶ w rodzaju 'foo (10.0.0.1), jestem pod 00:60:94:E9:08:12'. Po tej prostej wymianie, której u¿yto by znale¼æ kolegê w sieci, foo bêdzie w stanie komunikowaæ siê z bar dopóki zapomni (lub pamiêæ podrêczna arp wyga¶nie) gdzie jest bar> (na maszynach Uniksowych standardowo po 15 minutach). A teraz spójrzmy jak to dzia³a. Mo¿esz obejrzeæ tabelê s±siedztwa arp w ten sposób: [root@espa041 /home/src/iputils]# ip neigh show 9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable 9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud reachable Jak widaæ, mój komputer espa041 (9.3.76.41) wie gdzie znale¼æ espa042 (9.3.76.42) i espagate (9.3.76.1). Spróbujmy teraz dodaæ inny komputer do pamiêci podrêcznej arp. [root@espa041 /home/paulsch/.gnome-desktop]# ping -c 1 espa043 PING espa043.austin.ibm.com (9.3.76.43) from 9.3.76.41 : 56(84) bytes of data. 64 bytes from 9.3.76.43: icmp_seq=0 ttl=255 time=0.9 ms --- espa043.austin.ibm.com ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.9/0.9/0.9 ms [root@espa041 /home/src/iputils]# ip neigh show 9.3.76.43 dev eth0 lladdr 00:06:29:21:80:20 nud reachable 9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable 9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud reachable W wyniku dzia³añ espa041, próbuj±cego znale¼æ espa043, adres tego ostatniego zosta³ dodany do pamiêci podrêcznej arp. Dopóki ten wpis nie wyga¶nie (w rezultacie braku komunikacji pomiêdzy obydwoma komputerami), espa041 wie gdzie znale¼æ espa043 i nie ma potrzeby rozsy³ania zapytañ ARP. Teraz wykasujmy espa043 z pamiêci podrêcznej arp: [root@espa041 /home/src/iputils]# ip neigh delete 9.3.76.43 dev eth0 [root@espa041 /home/src/iputils]# ip neigh show 9.3.76.43 dev eth0 nud failed 9.3.76.42 dev eth0 lladdr 00:60:08:3f:e9:f9 nud reachable 9.3.76.1 dev eth0 lladdr 00:06:29:21:73:c8 nud stale espa041 zapomnia³ gdzie znale¼æ espa043 i bêdzie musia³ wys³aæ kolejne zapytanie ARP je¶li bêdzie potrzebowa³ skontaktowaæ siê z espa043. Mo¿esz równie¿ zauwa¿yæ, ¿e stan wpisu przy espagate (9.3.76.1) zosta³ zmieniony na 'stale' (niepewny, stary). Oznacza to tylko tyle, ¿e pokazywana lokalizacja jest prawdziwa, ale bêdzie musia³a byæ potwierdzona przed nawi±zaniem jakiegokolwiek po³±czenia do tego komputera.
/ Linux Reviews / Networking / Kszta³towanie Ruchu i Zaawansowany Routing HOWTO | |||||||||||||