06.03. ICMP adreses maskas pieprasījums un atbilde

Last modified by Valdis Vītoliņš on 2018/01/15 21:44

06.03. ICMP adreses maskas pieprasījums un atbilde

ICMP adreses maskas pieprasījums ir domāts, lai bezdiska sistēma iegūtu tās apakštīkla masku (3.5.nodaļa) sāknēšanas laikā. Pieprasošā sistēma apraida ICMP pieprasījumu (tas ir līdzīgi tam, kā bezdiska sistēma izmanto RARP, lai iegūtu IP adresi sāknēšanas laikā). Alternatīva metode kā bezdiska sistēmai var iegūt apakštīkla masku, ir BOOTP protokols, ko aprakstīsim 16.nodaļā. 6.4.attēls parāda ICMP adreses maskas pieprasījuma un atbildes ziņojumus. 

#pic("f_6_4.gif", "500") 6.4.attēls: ICMP adreses maskas pieprasījuma un atbildes ziņojumi

Identifikatora (identifier) un virknes numura (sequence number) lauki ICMP ziņojumā var būt uzstādīti uz jebkurām vērtībām, ko izvēlas sūtītājs, un šīs pašas vērtības atgriež atbildē. Tas ļauj sūtītājam atrast atbilstību starp atbildēm un pieprasījumiem.

Mēs varam uzrakstīt vienkāršu programmu (to sauc sun % icmpaddnnask 140.252.13.63
received mask = ffffffeO, from 140.252.13.33 from ourself
received mask = ffffffeO, from 140.252.13.35 from bsdi
received mask = ffff0000, from 140.252.13.34 from svr4
Pirmā lieta, ko ievērojam no šīs izvades - svr4 % ifconfig emd0
emd0: flags=23<UP, BROADCAST ,NOTRAILERS>
inet 140.252.13.34 netmask ffffffe0 broadcast 140.252.13.63
Tātad programmā ir kļūda

Apskatīsim šo ziņojumu apmaiņu uz mītnes

#pic("f_6_5.gif", "500") 6.5.attēls: ICMP adreses maskas pieprasījuma nosūtīšana apraides adresei

Ievērojiet, ka sūtošā mītne

Pēc tam

RFC apgalvo, ka sistēma nedrīkst sūtīt adreses maskas atbildi izņemot gadījumu, kad tā ir autoritatīvs adrešu masku aģents. (Lai būtu autoritatīvs aģents, mītnei ir jābūt īpaši konfigurētai sūtīt šādas atbildes. Sk. Pielikumu E). Kā varam redzēt no šī piemēra, vairums mītnes implementāciju tomēr sūta atbildi, ja saņem šādu pieprasījumu. Dažas mītnes pat nosūta aplamu atbildi!

Beidzamā piebilde izriet no šāda piemēra. Mēs nosūtam adreses maskas pieprasījumu mūsu pašu IP adresei un atcilpas adresei:

sun % icmpaddrmask sun
received mask = ff000000, from 140.252.13.33
sun % icmpaddrmask localhost
received mask = ff000000, from 127.0.0.1
Abos gadījumos atgrieztās adreses maska atbilst atcilpas adresei, A klases adresei