Arp rezoluție adresă de protocol

RARP, utilizați în principal sisteme fără hard disk-uri (stații de lucru fără disc sau terminale X), dar necesită configurare manuală cu administratorul de sistem. Considerăm RARP în capitolul 5.

Dacă vom intra comanda

Următoarea procedură va fi efectuată. (A se vedea. Figura 4.2).

Arp rezoluție adresă de protocol

Figura 4.2 Răspunsul ARP la datele introduse de utilizator: ftp nume de gazdă.

Conținutul cache ARP poate fi văzut folosind arp (8) de comandă. Opțiunea -a afișează toate înregistrările conținute în cache:

BSDI% arp -a
soare (140.252.13.33) la 8: 0: 20: 3: f6: 42
SVr4 (140.252.13.34) la 0: 0: c0: c2: 9b: 26

Formatul pachetului ARP

Arp rezoluție adresă de protocol

Figura 4.3 ARP sau formatul de răspuns atunci când se utilizează Ethernet.

Două octet de tip cadru (tip cadru) Ethernet specifică ce tip de date, va urma. Pentru ARP sau răspunsul ARP, acest câmp conține 0x0806.

câmp op indică tipul de operațiune: cerere ARP (valoarea este setată la 1), ca răspuns ARP (2), cererea RARP (3) și răspunsul RARP (4). (Noi vorbim despre RARP în capitolul 5). Acest câmp este necesar, deoarece câmpul de tip cadru (tip cadru) identic cu cererea ARP și de răspuns ARP.

În această secțiune, vom folosi comanda tcpdump pentru a vedea ce funcționează cu adevărat ARP atunci când rulează aplicații TCP normale, de exemplu, Telnet. Anexa A oferă informații suplimentare despre programul tcpdump.

Pentru a vedea cum ARP, vom rula comanda TELNET pentru a se conecta la debaraseze (serverul de decartare - serverul nu acordă utilizatorului orice Serviciu) server.

BSDI% arp -a verifica faptul că cache-ul ARP este gol
BSDI% telnet SVr4 se debaraseze conecta la server
Încercarea 140.252.13.34.
Conectat la SVr4.
Caracterul escape este '^]'.
^] Controlul de presă și paranteză dreapta,
telnet> renunțe pentru a obține o invitație de a Telnet și a închide sesiunea
Conexiune închisă.

1 0.0 0: 0: c0: 6f: 2d: 40 ff: ff: ff: ff: ff: ff arp 60:
arp care-are SVr4 tell BSDI
2 0.002174 (0,0022) 0: 0: c0: c2: 9b: 0 26: 0: c0: 6f: 2d: 40 arp 60:
arp răspuns SVr4 este-la 0: 0: c0: c2: 9b: 26
3 0.002831 (0,0007) 0: 0: c0: 6f: 2d: 0 40: 0: c0: c2: 9b: 26 ip 60:
bsdi.1030> svr4.discard: S 596 459 521: 521 459 596 (0)
câștiga 4096 [Tos 0x10]
4 0.007834 (0,0050) 0: 0: c0: c2: 9b: 0 26: 0: c0: 6f: 2d: 40 ip 60:
svr4.discard> bsdi.1030: S 3562228252: 3562228252 (0)
ack 596459522 câștiga 4096
5 0.009615 (0.0018) 0: 0: c0: 6f: 2d: 0 40: 0: c0: c2: 9b: 26 ip 60:
bsdi.1030> svr4.discard. Ack 1 victorie 4096 [tos 0x10]

Figura 4.4 este generat cerere ARP și răspuns ARP atunci când cererea pentru o conexiune Telnet.

Pe figura A3 din Anexa A prezintă ieșire tcpdump reală, pe care am lansat în Figura 4.4. Deoarece acesta este primul exemplu de ieșire tcpdump în text, ar trebui să vedeți aplicația pentru a vedea cum putem converti de ieșire pentru a deveni mai frumos și ușor de citit.

Am eliminat 4 linii finale ale producției tcpdump, care corespund conexiunii break (discutată mai detaliat în capitolul 18), deoarece acestea nu sunt relevante pentru discuția noastră.

Câmpul de ieșire următor din rândul 1, arp, înseamnă că tipul de cadru (tip frame) este setat la 0x0806, ceea ce înseamnă că orice interogare ARP, sau răspuns ARP.

Semnificație 60 tipărite după ip și cuvinte ARP, în fiecare dintre cele 5 linii este lungimea cadrului Ethernet. Deoarece cererea de rezoluție și ARP răspuns ARP este de 42 de octeți (28 octeți - mesaj ARP 14 bytes - header Ethernet), fiecare cadru este căptușit la Ethernet minim: 60 bytes.

Referindu-ne la figura 1.7, putem vedea că dimensiunea minimă (60 bytes) include un antet Ethernet de 14 octeți, dar nu include 4-byte trailer Ethernet. Cel puțin o parte din cărți este dat ca 64 de biți, care include remorca Ethernet. Noi în mod deliberat nu a inclus antetul Ethernet 14-octet într-un minim de 46 de octeți, așa cum se arată în figura 1.7. Dimensiunea maximă este de 1500 octeți. De obicei, această valoare este numită unitatea maximă de transmisie (MTU - unitate maximă de transmisie) (. A se vedea figura 2.5). Noi folosim de multe ori conceptul de MTU, deoarece limitează dimensiunea datagrama, dar nu are nimic de-a face cu o dimensiune minimă. Cele mai multe drivere de dispozitiv sau carduri de interfață completa automat cadrele Ethernet la o dimensiune minimă. datagrame IP în liniile 3, 4 și 5 (conținând segmente TCP) este mai mică decât valoarea minimă și va fi căptușită la 60 bytes.

ARP la o gazdă inexistentă

BSDI% arp -a verifica cache-ul ARP
. (140.252.13.36) la (incomplet)

În figura 4.5, vom vedea tcpdump de ieșire.

1 0.0 arp care-are 140.252.13.36 tell BSDI
2 5.509069 (5.5091), care-arp are 140.252.13.36 tell BSDI
3 29.509745 (24.0007), care-arp are 140.252.13.36 tell BSDI

Figura 4.5 cerere ARP pentru o gazdă inexistentă.

Acum, noi nu specificați opțiunea -e, din moment ce știm deja că difuzarea ARP.

Este interesant să vedem cât de des trimis cereri ARP: 5.5 secunde de la prima solicitare, și din nou după 24 de secunde. (Noi considerăm timeout-uri TCP și retransmisii algoritm mai în detaliu în capitolul 21). La zi este prezentat în tcpdump de ieșire, este de 29,5 secunde. Cu toate acestea, de ieșire de la comanda înainte și după comanda date telnet indică faptul că cererea de conectare de la Telnet Client a durat timp de 75 de secunde. Într-adevăr, vom vedea mai târziu că cele mai multe implementari BSD stabili o limită de 75 de secunde pentru a finaliza solicitarea de a stabili o conexiune TCP.

Capitolul 18. atunci când se analizează o secvență de segmente TCP, care este trimis în timpul conexiunii, vom vedea că momentele de transmitere a cererilor ARP coincid cu trimiterea de segmente TCP SYN.

cache Timeout ARP

Pentru înregistrările introduse în cache-ul ARP, de obicei, setat un time-out. (În „comanda arp“, vom vedea că comanda arp permite administratorului de sistem să cache o anumită înregistrare, și timeout ei nu se va aplica.) Implementări a coborât de la Berkeley, în mod obișnuit seturi de expirare la 20 de minute pentru a finaliza înregistrarea și 3 minute pentru înregistrarea incompletă. (Am văzut o intrare incompletă în exemplul precedent, atunci când forțat să trimită o cerere ARP la o gazdă inexistentă.) Aceste implementari perestartovyvayut de obicei, 20 de minute cu time-out pentru a înregistra de fiecare dată când se folosește înregistrarea.

pentru a găzdui Cerințe gazdă cerință RFC spune că înregistrarea ar trebui să fie eliminate prin timeout, chiar dacă se utilizează intrarea, dar cele mai multe implementari, a coborât de la Berkeley, nu o fac - ei perestartovyvayut timeout de fiecare dată când un apel la înregistrarea are loc.

Proxy ARP

Proxy ARP permite router-ul pentru a răspunde la cererile ARP într-o singură rețea, în timp ce solicită gazdă este pe o altă rețea. Prin acest lucru înseamnă, există înșelăciune expeditor care a trimis cererea ARP, atunci el crede că router-ul este gazda destinație, în timp ce, de fapt, gazda de destinație este „cealaltă parte“ a router-ului. Router-ul acționează ca agent autorizat al gazdei destinație, trecerea de pachete de la o altă gazdă.

Pentru a descrie mai bine funcționarea proxy ARP, ne uităm la un exemplu. Din Figura 3.10 arată că sistemul de soare este conectat la două rețele Ethernet. Cu toate acestea, în realitate, acest lucru nu este așa, după cum puteți vedea, dacă comparăm această cifră cu cifră, care este dat pe capacul interior. Între soare și subrețea 140.252.1 este un router care acționează ca proxy ARP, în timp ce părea ca și în cazul în care soarele este în subrețeaua 140.252.1. Figura 4.6 arată că Telebit NetBlazer, NetB pe nume, situat între subrețelei și soarele gazdă.

Arp rezoluție adresă de protocol

Figura 4.6 Exemplu autorizat ARP.

gemini% arp -a
vor exista mai multe rânduri despre gazdele subrețeaua 140.252.1
NetB (140.252.1.183) la 0: 80: ad: 3: 6a: 80
soare (140.252.1.29) la 0: 80: anunț: 3: 6a: 80

Proxy ARP oferă datagrame la soare router, dar, ca și alte gazde pe subrețea 140.252.13? Pentru conducerea datagrame la alte gazde ar trebui să fie utilizate de rutare. Oriunde în rețea trebuie să fie 140.252 intrări în tabela de rutare, astfel încât toate datagramele legați pentru subretea 140.252.13 sau la gazde specificate în subrețeaua vor fi rutate la NetB router. Acest router știe cum să livreze datagrama la destinația sa finală, trimițându-le prin soare router.

Dacă vom rula pe tcpdump gazdă soare gazdă de boot BSDI, vom vedea un pachet așa cum este prezentat în figura 4.7.

1 0.0 0: 0: c0: 6f: 2d: 40 ff: ff: ff: ff: ff: ff arp 60:
arp care-a 140.252.13.35 spune 140.252.13.35

Figura 4.7 Exemplu de „gratuită“ ARP.

Monitorizarea tuturor sistemelor dintr-o subrețea care este folosit în această carte arată că SunOS 4.1.3 și 4.4BSD utiliza „nerezonabil“ atunci când descărcarea ARP, și SVr4 nu acceptă această caracteristică.

Am folosit această comandă cu -a pavilion, pentru a afișa toate intrările ARP cache. Există și alte opțiuni.

Superutilizatorul poate folosi opțiunea -d pentru a șterge intrarea din cache ARP. (Acest lucru a fost făcut înainte de lansarea unor exemple pentru a arăta schimbarea ARP.)

exerciții
  1. Să revenim la echipa, am realizat pentru a obține producția prezentată în figura 4.4. Ce se întâmplă dacă după ce am verificat memoria cache locală ARP, și a fost gol, vom introduce echipa

BSDI% rsh SVr4 arp -a

pentru a verifica dacă cache-ul ARP este gol ca destinație gazdă? (Această comandă va executa comanda pe o -a arp SVr4 gazdă.)