ARP

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 10. helmikuuta 2022 tarkistetusta versiosta . tarkastukset vaativat 6 muokkausta .
ARP
Nimi Address Resolution Protocol
Taso ( OSI-mallin mukaan ) kanavoitu
Perhe TCP/IP
Luotu vuonna 1982
Portti/ID 0x0806/ Ethernet
Protokollan tarkoitus Verkko-osoitteiden muuntaminen kanavaosoitteiksi
Erittely RFC 826
Tärkeimmät toteutukset (asiakkaat) TCP/IP-pinon toteutukset Microsoft Windowsissa , Linuxissa ja BSD :ssä
Ydintoteutukset ( palvelimet ) TCP/IP-pinon toteutukset Windowsissa , Linuxissa ja BSD :ssä
 Mediatiedostot Wikimedia Commonsissa

ARP ( Eng.  Address Resolution Protocol  - osoitteenmääritysprotokolla) on tietokoneverkoissa käytettävä protokolla, joka on suunniteltu määrittämään toisen tietokoneen MAC-osoite tunnetun IP-osoitteen perusteella .

Protokollan kuvaus julkaistiin marraskuussa 1982 RFC 826 :ssa . ARP on suunniteltu lähettämään IP-paketteja Ethernet-pakettien (kehysten) kautta. ARP:ssä käytettyä periaatetta kohde-isännän laitteisto-osoitteen selvittämisestä käytettiin sitten muun tyyppisissä verkoissa.

ARP on yleistynyt Ethernetin päälle rakennettujen IP -verkkojen yleisyyden vuoksi, koska niissä käytetään lähes aina ARP:tä. ARP:tä ei ole IPv6 - protokollaperheessä , sen toiminnot on määritetty ICMPv6 :lle .

Kuvaus

Mieti ARP : n toiminnan olemusta yksinkertaisessa esimerkissä. Tietokone A (IP-osoite 10.0.0.1) ja tietokone B (IP-osoite 10.22.22.2) on yhdistetty Ethernet -verkolla . Tietokone A haluaa lähettää datapaketin tietokoneelle B, jonka tiedossa on tietokoneen B IP-osoite. Ethernet-verkko, johon ne ovat yhteydessä, ei kuitenkaan toimi IP-osoitteiden kanssa. Siksi tietokoneen A on tiedettävä tietokoneen B osoite Ethernet-verkossa ( MAC-osoite Ethernet-termeillä) voidakseen lähettää Ethernetin kautta. Tätä tehtävää varten käytetään ARP-protokollaa. Tämän protokollan mukaisesti tietokone A lähettää yleislähetyspyynnön kaikille saman lähetysalueen tietokoneille . Pyynnön ydin: "tietokone, jonka IP-osoite on 10.22.22.2, kerro MAC-osoitteesi tietokoneelle, jossa on MAC-osoite (esim. a0:ea:d1:11:f1:01)". Ethernet-verkko toimittaa tämän pyynnön kaikille samassa Ethernet-segmentissä oleville laitteille, mukaan lukien tietokone B. Tietokone B vastaa tietokoneelle A pyynnöllä ja ilmoittaa MAC-osoitteensa (esim. 00:ea:d1:11:f1:11). Saatuaan tietokoneen B MAC-osoitteen tietokone A voi lähettää sille mitä tahansa dataa Ethernet-verkon kautta.

ARP-sanomia on seuraavan tyyppisiä: ARP-pyyntö ( ARP-pyyntö ) ja ARP-vastaus ( ARP-vastaus ). Lähettävä järjestelmä pyytää ARP-pyyntöä käyttäen vastaanottavan järjestelmän laitteisto-osoitetta, joka tulee ARP-vastauksen sisään.

Ennen verkkokerroksen paketin välittämistä Ethernet-segmentin yli verkkopino tarkistaa ARP-välimuistista, onko tarvittavat kohdesolmun tiedot jo rekisteröity sen taulukkoon. Jos ARP-välimuistissa ei ole tällaista merkintää, tehdään ARP-lähetyspyyntö. Tällä verkossa olevien laitteiden pyynnöllä on seuraava merkitys: "Tietääkö kukaan laitteen fyysistä osoitetta, jolla on sellainen ja sellainen IP-osoite?" Kun isäntä, jolla on tämä IP-osoite, vastaanottaa tällaisen pyyntöpaketin, sen on vastattava: "Kyllä, tämä on IP-osoitteeni ja laitteisto-osoitteeni on sellainen ja sellainen." Tämän jälkeen pyynnön lähettäjä tallentaa vastaanottajan laitteisto-osoitteen ARP-välimuistiinsa ja voi osoittaa tiedot vastaanottajalle.

Alla on esimerkki ARP-pyynnöstä ja vastauksesta. < katso sivun alalaidassa>

ARP-välimuistin merkinnät voivat olla staattisia tai dynaamisia. Yllä oleva esimerkki kuvaa dynaamista välimuistin merkintää. Voit myös luoda staattisia merkintöjä taulukkoon. Useimmissa käyttöjärjestelmissä tämä voidaan tehdä komennolla:

arp -s <IP-адрес> <MAC-адрес>

Windows Server 2003:ssa dynaamisesti luodut ARP-taulukkomerkinnät pysyvät välimuistissa 2 minuuttia. Jos näiden kahden minuutin aikana tapahtui tietojen uudelleenlähetys tähän osoitteeseen, merkinnän tallennusaika välimuistissa pidennetään vielä 2 minuutilla. Tämä toimenpide voidaan toistaa useita kertoja, mutta välimuistin enimmäismerkintä kestää jopa 10 minuuttia. Tämän jälkeen merkintä poistetaan välimuistista ja tarvittaessa lähetetään uusi ARP-pyyntö [1] .

Uudemmissa käyttöjärjestelmissä ARP-taulukon merkintöjen säilytysaika ja tallennustapa ovat ohjelmallisesti valittavissa ja niitä voidaan haluttaessa muuttaa.

ARP-protokollan muunnelmia

ARP ei kehitetty alun perin vain IP:lle, vaan tätä protokollaa voidaan käyttää myös MAC-osoitteiden selvittämiseen eri Layer 3 protokollien osoitteista .  ARP on myös mukautettu hankkimaan muita (laitteisto) OSI-mallin kerroksen 2 osoitteita ( Layer 2 -osoitteet ).

InARP- ja ATM ARP -protokollia käytetään erilaisissa IP over ATM -kapseloinnissa, jotka on kuvattu standardissa RFC 1577 ( Classical IP and ARP over ATM ) [2] .

Tällä hetkellä ARP:tä käytetään pääasiassa IP- ja MAC-osoitteiden yhdistämiseen Ethernet-verkoissa.

Käänteinen ARP

Inverse Address Resolution Protocol , Inverse ARP tai InARP  on protokolla muiden työasemien verkkokerroksen osoitteiden (esimerkiksi IP-osoitteiden ) hankkimiseksi niiden linkkikerroksen osoitteiden perusteella (esimerkiksi DLCI Frame Relay -verkoissa). InARP on yleisesti käytössä Frame Relay - ja ATM - verkoissa .

ARP:n ja InARP:n vertailu

ARP kääntää verkkokerroksen osoitteet linkkikerroksen osoitteiksi, kun taas InARP: tä voidaan pitää sen käänteisenä. InARP on toteutettu ARP:n laajennuksena. Näiden protokollien pakettimuodot ovat samat, vain toimintakoodit ja täytettävät kentät eroavat.

RARP

Reverse Address Resolution Protocol , Reverse ARP tai RARP , kuten InARP , kääntää linkkikerroksen osoitteet verkkokerroksen osoitteiksi. Mutta RARP:a käytetään lähettävien asemien itsensä loogisten osoitteiden hankkimiseen, kun taas InARP-protokollassa lähettäjä tietää omat osoitteensa ja pyytää toisen aseman loogista osoitetta. RARP hylättiin BOOTP :n hyväksi , joka puolestaan ​​korvattiin DHCP :llä .

Kuinka se toimii

  1. Isäntä, jonka on määritettävä IP-osoite laitteisto-osoitteeseen (Ethernet-laitteistoosoite, MAC-osoite ), muodostaa ARP-pyynnön kohde-IP-osoitteen kanssa, liittää sen linkkikerroksen protokollakehykseen ja lähettää sen.
  2. Kaikki paikallisverkkosegmentin isännät vastaanottavat ARP-pyynnön ja vertaavat siellä määritettyä IP-osoitetta omaansa.
  3. Jos sen oma IP-osoite vastaa ARP-pyynnössä vastaanotettua, solmu muodostaa ARP-vastauksen, jossa se ilmoittaa sekä IP-osoitteensa että laitteisto-osoitteensa ja lähettää sen osoitettuna ARP-pyynnön lähettäjän laiteosoitteeseen.

Osoitteen käännös suoritetaan etsimällä IP- ja MAC-osoitteiden välistä vastaavuustaulukkoa. Tämä taulukko, jota kutsutaan ARP-taulukoksi, on tallennettu käyttöjärjestelmän muistiin ja sisältää merkinnät jokaisesta sen tuntemasta isännästä. Kaksi saraketta sisältävät IP- ja Ethernet-osoitteet (MAC). Jos haluat muuntaa IP-osoitteen MAC-osoitteeksi, ARP-taulukko etsii merkintää vastaavalla IP-osoitteella.

Yksinkertaistettu ARP-taulukkoesimerkki
223.1.2.1 08:00:39:00:2F:C3
223.1.2.3 08:00:5A:21:A7:22
223.1.2.4 08:00:10:99:AC:54

ARP-paketin rakenne

ARP-pyynnöissä ja -vastauksissa käytetty pakettirakenne on kuvattu alla. Ethernet -verkoissa nämä paketit käyttävät EtherType 0x0806 :ta, ja pyynnöt lähetetään yleislähetyksen MAC-osoitteeseen  - FF:FF:FF:FF:FF:FF. Huomaa, että alla esitetyssä pakettirakenteessa 32- bittisiä sanoja käytetään perinteisesti SHA:na, SPA:na, THA:na ja TPA :na – todellinen pituus määräytyy fyysisen laitteen ja protokollan mukaan.

+ bitit 0-7 8-15 16-31
0 Laitteistotyyppi (HTYPE) Protokollatyyppi (PTYPE)
32 laitteiston pituus (HLEN) Protokollan pituus (PLEN) Toiminta (OPER)
64 Lähettäjän laitteistoosoite (SHA)
? Lähettäjäprotokollaosoite (SPA)
? Kohdelaitteistoosoite (THA)
? Kohdeprotokollaosoite (TPA)
Laitteistotyyppi (HTYPE) Jokaisella kanavan tiedonsiirtoprotokollalla on oma numeronsa, joka tallennetaan tähän kenttään. Esimerkiksi Ethernet on numeroitu 0x0001. Protokollatyyppi (PTYPE) Verkkoprotokollakoodi. Esimerkiksi IPv4 :lle kirjoitetaan 0x0800. laitteiston pituus (HLEN) Fyysisen osoitteen pituus tavuina. Ethernet-osoitteet ovat 6 tavua pitkiä (0x06). Protokollan pituus (PLEN) Loogisen osoitteen pituus tavuina. IPv4-osoitteet ovat 4 tavua pitkiä (0x04). operaatio Lähettäjän toimintakoodi: 0x0001 pyynnölle ja 0x0002 vastaukselle. Lähettäjän laitteistoosoite (SHA) Lähettäjän fyysinen osoite. Lähettäjäprotokollaosoite (SPA) Lähettäjän looginen osoite. Kohdelaitteistoosoite (THA) Vastaanottajan fyysinen osoite. Ei vaadita pyynnöstä. Kohdeprotokollaosoite (TPA) Vastaanottajan looginen osoite.

Pyydä esimerkki

Jos isäntä, jonka IPv4-osoite on 10.10.10.123 ja MAC-osoite 00:0D:9D:86:59:E2, haluaa lähettää paketin toiselle isännälle, jonka osoite on 10.10.10.140, mutta ei tiedä sen MAC-osoitetta, sen on lähetettävä ARP. pyytää osoitteen ratkaisemista.

Alla näkyvä paketti edustaa lähetyspyyntöä. Jos isäntä, jonka IP-osoite on 10.10.10.140, on verkossa ja tavoitettavissa, se vastaanottaa tämän ARP-pyynnön ja palauttaa vastauksen.

bitit 0-7 8-15 16-31
0 laitteistotyyppi = 0x0001 protokollatyyppi = 0x0800
32 Laitteiston pituus = 0x06 protokollan pituus = 0x04 Toiminta = 0x0001
64 SHA (ensimmäiset 32 ​​bittiä) = 0x000D9D86
96 SHA (viimeiset 16 bittiä) = 0x59E2 SPA (ensimmäiset 16 bittiä) = 0x0A0A
128 SPA (viimeiset 16 bittiä) = 0x0A7B THA (ensimmäiset 16 bittiä) = 0x0000
160 THA (viimeiset 32 ​​bittiä) = 0x00000000
192 TPA=0x0A0A0A8C

Vastausesimerkki

Jos solmulla, jonka osoite on 10.10.10.140, yllä kuvatussa tilanteessa MAC-osoite on 00:09:58:D8:33:AA, se lähettää takaisin alla kuvatun paketin. Huomaa, että lähettäjän ja vastaanottajan osoitelohkot ovat nyt muuttaneet arvoja (vastauksen lähettäjä on nyt pyynnön vastaanottaja; vastauksen vastaanottaja on pyynnön lähettäjä). Vastauksen isännän MAC-osoite on myös 10.10.10.140 lähdefyysisen osoitteen (SHA) -kentässä, eikä THA-kenttä ole tyhjä (yksilähetysvastaus).

Mikä tahansa isäntä, joka on samassa verkossa lähettäjän ja vastaanottajan kanssa, vastaanottaa myös pyynnön (koska se on lähetys) ja lisää näin lähettäjän tiedot välimuistiinsa. ARP-vastaus ohjataan vain ARP-pyynnön alkuperään, joten ARP-vastaus ei ole muiden verkon isäntien käytettävissä.

+ bitit 0-7 8-15 16-31
0 laitteistotyyppi = 0x0001 protokollatyyppi = 0x0800
32 Laitteiston pituus = 0x06 protokollan pituus = 0x04 Toiminta = 0x0002
64 SHA (ensimmäiset 32 ​​bittiä) = 0x000958D8
96 SHA (viimeiset 16 bittiä) = 0x33AA SPA (ensimmäiset 16 bittiä) = 0x0A0A
128 SPA (viimeiset 16 bittiä) = 0x0A8C THA (ensimmäiset 16 bittiä) = 0x000D
160 THA (viimeiset 32 ​​bittiä) = 0x9D8659E2
192 TPA=0x0A0A0A7B
  • Kommentti. SHA-, SPA-, THA- ja TPA-kenttien pituus riippuu Laitteiston pituus- ja Protokollan pituus -parametreista, vastaavasti.

ARP-välimuisti

ARP:n tehokkuus riippuu suurelta osin ARP-välimuistista ( ARP-välimuisti ), joka on saatavilla jokaisessa isännässä. Välimuisti sisältää käyttöjärjestelmän laatiman MAC- ja IP-osoitteiden vastaavuustaulukon.

Välimuistimerkinnän käyttöikä on jätetty kehittäjän harkinnan varaan. Oletusarvo voi olla kymmenistä sekunneista (esimerkiksi 20 sekuntia) neljään tuntiin ( Cisco IOS ). [3]

Osoiteristiriitojen havaitseminen

ARP:tä voidaan käyttää IP-osoiteristiriitojen havaitsemiseen paikallisessa verkossa. RFC 5227 määrittelee ARP Probe -pyyntömuodon , jossa on täysin nolla SPA - kenttä (IP-osoite 0.0.0.0). Ennen IP-osoitteen määrittämistä liitännälle isäntä VOI varmistaa, että osoite ei ole toisen LAN-segmentin isäntälaitteen käytössä.

ARP Announcement

ARP Announcement on paketti (yleensä ARP-pyyntö [4] ), joka sisältää lähettävän isännän oikean SHA:n ja SPA:n, jonka TPA on yhtä suuri kuin SPA. Tämä ei ole lupapyyntö, vaan pyyntö päivittää paketin vastaanottavien muiden isäntien ARP-välimuisti.

Useimmat käyttöjärjestelmät lähettävät tällaisen paketin, kun isäntä tulee verkkoon, mikä auttaa estämään useita ongelmia. Esimerkiksi verkkokorttia vaihdettaessa (kun IP- ja MAC-osoitteiden välinen yhteys on päivitettävä), tällainen pyyntö korjaa verkon muiden isäntien ARP-välimuistin merkinnät.

ARP-hälytyksiä käytetään myös IP-osoitteiden "suojaamiseen" Zeroconf -protokollassa , joka kuvataan RFC 3927 :ssä .

Vapaaehtoinen pyyntö ARP (Gratuitous ARP)

ARP-pyynnön erikoistapaus on oman IP-osoitteen pyyntö, sitä kutsutaan nimellä " Vapaaehtoinen ARP " (vapaaehtoinen ARP-pyyntö) [5] .

Tällaisessa pyynnössä lähettäjän ja vastaanottajan IP-osoitteet ovat samat.

Ilmaista ARP :tä käytetään kahteen tarkoitukseen [5] :

  1. ilmoitus viereisille laitteille, että verkkosegmentissä on ilmestynyt uusi IP-osoite;
  2. IP-osoitteen freeness tarkistaminen (käytetäänkö sitä toisessa laitteessa).

Katso myös

Muistiinpanot

  1. Näytä Address Resolution Protocol (ARP) -välimuisti  : [ eng. ]  : [ arch. 25. helmikuuta 2021 ] // MSDN. - 2009 - 8. lokakuuta.
  2. TCP/IP ATM :n kautta  : [ eng. ]  : [ arch. 9. helmikuuta 2022 ]. – IBM .
  3. Sulautetun järjestelmän testausblogi: ARP-aikakatkaisuarvo Linuxille, Windowsille, Cisco 2960:lle ja DELL Switchille . Haettu 8. marraskuuta 2013. Arkistoitu alkuperäisestä 21. syyskuuta 2013.
  4. Re: [dhcwg] Ilmainen ARP DHCP:ssä vs. IPv4 ACD -luonnos arkistoitu alkuperäisestä 12. lokakuuta 2007.
  5. 12 ZvonDozvon . _

Kirjallisuus

  •   RFC 826 :  Address Resolution Protocol
  •   RFC 1577 :  Klassinen IP ja ARP ATM :n kautta
  •   RFC 2390 :  Inverse Address Resolution Protocol
  •   RFC 5227 :  IPv4-osoiteristiriitojen tunnistus

Linkit