Bootstrap-protokolla

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 30. toukokuuta 2017 tarkistetusta versiosta . tarkastukset vaativat 5 muokkausta .
BOOTP
Nimi Bootstrap-protokolla
Taso ( OSI-mallin mukaan ) sovelletaan
Perhe TCP/IP
Luotu vuonna 1985
Portti/ID 67/ UDP (palvelin),
68/UDP (asiakas) [1]
Protokollan tarkoitus saada verkkoasetukset
Erittely RFC 951 , RFC 1542

BOOTP ( englanninkielisestä  bootstrap-protokollasta ) on sovelluskerroksen verkkoprotokolla , jota asiakas saa automaattisesti IP-osoitteen . Tämä tapahtuu yleensä tietokoneen käynnistyessä . BOOTP on määritelty RFC 951 :ssä .

BOOTP, kuten RARP , sallii erityisen palvelimen määrittää asiakkaan IP-osoitteen MAC - osoitteestaan ​​(esimerkiksi käynnistettäessä laitetta, jolla ei ole kykyä tallentaa omaa IP-osoitettaan) ja antaa asiakkaille myös mahdollisuuden oppia muita käynnistysparametreja. (esimerkiksi TFTP :n kautta ladatun ohjelman nimi ) ja käyttää UDP :tä siirtokerroksen protokollana. Tämän avulla voit käyttää reitittimiä (bootp relay) lähettääksesi pyyntöjä ja vastauksia yhdestä LAN-segmentistä toiseen. DHCP ( Dynamic Host Configuration Protocol ) on lisäosa  BOOTP:lle (yhteensopivuus bootp-releen kanssa), ja sen avulla palvelin voi allokoida IP-osoitteita asiakkaille dynaamisesti rajoitetun ajan.

Historia

Noiden (?) vuosien huoltohenkilöstö kohtasi uusien laitteiden jatkuvan kytkennän ja siirtämisen haasteita sekä tarve muuttaa verkon konfiguraatioita vastaamaan nykyaikaisia ​​verkkovaatimuksia. Kaikki tämä johti tarpeeseen luoda mekanismi verkkosolmujen, hajautettujen käyttöjärjestelmien ja verkkoohjelmistojen konfiguroinnin automatisoimiseksi. Tehokkain tapa toteuttaa tällainen mekanismi voi olla kokoonpanoasetusten ja ohjelmistokuvien tallentaminen yhdelle tai useammalle käynnistyspalvelimelle. Käynnistyksen aikana järjestelmä on vuorovaikutuksessa tällaisen palvelimen kanssa, vastaanottaa siitä alustavat konfigurointiparametrit ja tarvittaessa lataa sieltä tarvittavat ohjelmistot.

BOOTP otettiin käyttöön RFC 951 :ssä korvaamaan vanhentuneen RARP:n. BOOTP kehitettiin alun perin levyttömiä työasemia varten . Nykyaikaiset olosuhteet ovat johtaneet tarpeeseen automatisoida sellaisten järjestelmien käynnistys, joissa on vain perustyökalut IP :lle , UDP:lle ja TFTP:lle ROMissa. Alkuperäinen käynnistysskripti näytti tältä:

BOOTP-viestin muoto

Latauspyyntö ja vastaus käyttävät samaa viestimuotoa. Pyynnössä joissakin kentissä on nolla-arvoja.

BOOTP-paketin rakenne [2] :


Segmenttien siirtymä
Pituus,
oktetti
Kuvaus
0 yksi Op
Toimintakoodi
yksi yksi HType
Laitetyyppi
2 yksi HLen
Laitteiston osoitteen pituus
3 yksi Humalat Humaloiden
määrä
neljä neljä XID-
tapahtumatunnus
kahdeksan 2 Sekuntia Sekuntilaskuri
siitä lähtien, kun asiakas lähetti ensimmäisen pyynnön
kymmenen 2 Ei käytössä RFC 951
-liput  - RFC 1542 :n lippukentässä
12 neljä CIAddr-asiakkaan
IP-osoite
16 neljä YIAddr
Palvelimen asiakkaalle antama IP-osoite
kaksikymmentä neljä SIAddr-palvelimen
IP-osoite
24 neljä GIAddr Välireitittimen
IP-osoite
28 16 CHAddr Asiakaslaitteiston
osoite
44 64 SNimi
Palvelimen isäntänimi
108 128
Käynnistystiedoston tiedostonimi
236 64 Vend
-kehittäjäalue ja lisäasetukset

Tarkastellaan kaikkia parametreja yksityiskohtaisemmin.

Toimintakoodi

Opcode osoittaa viestin tyypin:

Laitetyyppi

Määrittää käytettävän verkkolaitteiston tyypin käyttämällä arvoja, jotka ovat samanlaisia ​​kuin Hardware Type ( HType , HRD ) -kenttä ARP - protokollaspesifikaatiossa [3] [4] .

Muutamia yleisesti käytettyjä arvoja:

h tyyppi Kuvaus
yksi Ethernet (10 Mt)
6 IEEE 802 -verkot
7 ARCNET
viisitoista kehysrele
16 Asynkroninen siirtotila (ATM)
kahdeksantoista kuitukanava
kaksikymmentä sarja linja

Laitteiston osoitteen pituus

Määrittää viestissä olevan laitteisto-osoitteen pituuden. Ethernet-verkoille ja muille IEEE 802 -standardia käyttäville verkoille tämän parametrin arvo on 6.

Samanlainen kenttä ARP-paketissa on HLN.

Siirtojen määrä

Releet käyttävät tätä segmenttiä viestien edelleenlähetyksen ohjaamiseen. Kentän arvoksi asetetaan 0 ennen lähettämistä ja sitä lisätään 1:llä, kun se kulkee kunkin releen läpi.

Tapahtumatunnus

Tapahtumatunnus on 32-bittinen kokonaisluku, jonka asiakas asettaa ja palvelin palauttaa. Sen avulla asiakas voi yhdistää vastauksen pyyntöön. Asiakas asettaa tämän kentän satunnaiseen numeroon jokaiselle pyynnölle.

Sekuntilaskuri

Kun asiakas lähettää ensimmäisen latauspyynnön, sekuntilaskurin kenttä asetetaan nollaan. Jos pyyntöön ei vastata, aikakatkaisun umpeuduttua asiakas lähettää pyynnön uudelleen ja muuttaa sekuntilaskurin kentässä olevaa arvoa. Aikakatkaisussa asiakas käyttää satunnaista aikaväliä, joka kasvaa 60 sekunnin arvoon asti.

Tällä alalla ei ole erityistä tarkoitusta. Palvelin tai verkkomonitori voi tarkistaa sen sisällön määrittääkseen, kuinka kauan asiakas odottaa verkkolatausta. Palvelin VOI käyttää sekuntilaskurikentän arvoja priorisoidakseen pyynnöt, mutta tämä kenttä jätetään tällä hetkellä huomiotta useimmissa toteutuksissa.

Liput

Alkuperäisessä RFC 951 :ssä tämä kaksitavuinen kenttä jätettiin tyhjäksi. RFC 1542 :n mukaan sitä käytetään lippujen asettamiseen [5] .

Lipun nimi Koko, bitti Kuvaus
B yksi Lähetys: lähettäessään alkuperäistä viestiä asiakas ei tiedä omaa IP-osoitettaan ja tämä lippu on asetettu arvoon "1". Tämä tila ilmaisee paketin vastaanottaneille BOOTP-palvelimille ja -välityksille, että tämän asiakkaan pyyntö tulee lähettää .
Varattu viisitoista Varattu ja käyttämätön, arvoiksi asetettu 0.

Asiakkaan IP-osoite

Jos asiakas tietää jo IP-osoitteensa, se täyttää asiakkaan IP-osoite -kentän. Jos ei, asiakas asettaa arvoksi 0. Jälkimmäisessä tapauksessa palvelin lisää IP-osoitteesi kenttään, jossa on asiakkaan IP-osoite. Palvelin täyttää palvelimen IP-osoitekentän. Jos käytetään arvovaltaista palvelinta, se täyttää yhdyskäytävän IP-osoitteen.

Palvelimen asiakkaalle antama IP-osoite

Asiakkaan on asetettava asiakkaan laitteisto-osoite. Tämä on sama arvo, joka löytyy datagrammin Ethernet-otsikosta ja UDP-kentästä, jolloin se on kaikkien datagrammin vastaanottaneiden käyttäjäprosessien (kuten BOOTP-palvelimen) käytettävissä. UDP-tietosähkeitä käsittelevän prosessin on tavallisesti vaikeaa tai lähes mahdotonta määrittää arvoa sen datagrammin Ethernet-otsikkokentässä, jossa UDP-datagrammi lähetetään.

Palvelimen isäntänimi

Palvelimen isäntänimi on merkkijono, jonka palvelin täyttää (valinnainen).

Käynnistystiedoston nimi

Palvelin voi myös täyttää käynnistystiedoston nimi -kentän. Tämä kenttä sisältää latauksessa käytettävän tiedoston täyden polun.

Kehittäjäalue

Alun perin toimittajakohtaista aluetta käytettiin viesteissä toteutuskohtaisten tietojen lähettämiseen. BOOTP:n alussa tämä alue kuitenkin pysyi vapaana, vaikka suuria määriä tietoa (esimerkiksi aliverkon peite tai oletusreitittimen osoite) ei muodollisesti sisällytetty viesteihin. Kehittäjäalue toimi paikkana lisäkonfiguraatiovaihtoehdoille sekä kehittäjäkohtaisille tiedoille. Tällä alueella on määritelty useita erilaisia ​​kenttiä.

Porttinumerot

BOOTP:ssä on kaksi ennalta tunnettua porttia: 67 palvelimelle ja 68 asiakkaalle. Tämä tarkoittaa, että asiakas ei valitse käyttämätöntä dynaamisesti osoitettua porttia, vaan käyttää porttinumeroa 68. Syy siihen, miksi palvelimelle valittiin kaksi porttinumeroa yhden sijaan, on se, että palvelin voi lähettää vastauksen (vaikka se ei yleensä lähetä). ) lähetysmuodossa.

Jos palvelimen vastaus lähetettäisiin ja asiakkaan olisi valittava dynaamisesti määritetty porttinumero, myös muut sovellukset vastaanottaisivat nämä lähetykset muilla isännillä, jotka käyttävät samaa dynaamisesti määritettyä porttinumeroa. Siten voimme päätellä, että yleislähetyspyynnön lähettäminen satunnaiseen (dynaamisesti määritettyyn) porttinumeroon ei ole järkevää.

Jos asiakas käyttää palvelimen hyvin tunnettua porttia (67), kaikki verkon palvelimet pakotetaan kuuntelemaan jokaista lähetysvastausta. (Jos kaikki palvelimet olisivat "heränneet", niiden olisi tarkistettava operaatiokoodi, määritettävä, että se oli vastaus eikä pyyntö, ja "nukkua" uudelleen.) Joten valinta tehtiin sen mukaan, miten se nyt tehdään, eli asiakkaalla on sen ainoa tunnettu portti, joka eroaa palvelimen tunnetusta portista.

Jos useat asiakkaat lataavat samaan aikaan ja jos palvelimen vastaukset välitetään yleislähetyspyynnöillä, jokainen asiakas tarkastelee muille asiakkaille tarkoitetut vastaukset. Asiakkaat käyttävät BOOTP-otsikon tapahtumatunnuskenttää kohdistaakseen vastauksen pyyntöön, tai palvelimet tarkastelevat palautettua asiakkaan laitteistoosoitetta.

Katso myös

Muistiinpanot

  1. RFC951 , s. 3: "BOOTP-protokolla käyttää kahta varattua porttinumeroa, "BOOTP asiakas" (68) ja "BOOTP-palvelin" (67)".
  2. RFC951 , s. 3-4.
  3. RFC951 , s. 3: "Laitteiston osoitetyyppi, katso ARP-osio kohdassa "Assigned Numbers" RFC".
  4. RFC1700 , Address Resolution Protocol Parameters, s. 163-164.
  5. RFC1542 , 'Flags'-kentän määritelmä, s. 5-6: "Tämä muistio nimeää tämän kahden oktettin kentän 'liput' -kentäksi."

Linkit