Spravna reakce na ARP who-has

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Čtvrtek Prosinec 23 18:28:14 CET 2004


On Wed, 15 Dec 2004, Dalibor Toman wrote:

> linux router s vice sitovkami. Na eth1 je aliasovano vice IP rozsahu. 
> Mimo jine 10.1.0.0/16 a 10.1.127.0/28 (tak ze na eth1 jsou aliasy pro 
> 10.1.0.1 a 10.1.127.1).

Toto nastaveni je Naprosta prasarna (tm). Zejmena z toho duvodu, ze je
IMHO uplny nesmysl mit na jednom rozhrani nastavene dve site, pricemz
jedna je nadmnozinou druhe.

> Pingam-li primo z routeru snazi se MAC ip klienta zjistit serverem 
> odeslanim ARP  who-has, kde jako IP odesilatele je 10.1.127.1 (myslim 
> tim info pro prijemce uvnitr ARP struktury).
> Pokud pingam z jineho stroje a paket musi projit zminovanym routerem 
> ARP dotaz obsahuje 10.1.0.1 jako IP odesilatele.

Vyber zdrojove IP adresy pro ARP se z nejakeho duvodu lisi pro pripad, kdy
je iniciatorem dotazu lokalni socket (pak se vezme jeho vlastni adresa
zjistena uz drive routovanim), a ostatni pripady (pak se vybere nejaka
vhodna adresa na tom interfejsu pres inet_select_addr()). Routovaci
mechanismus se zrejme explicitne nepouzije, aby to zbytecne nezdrzovalo,
nebo aby nevznikaly problemy typu slepice a vejce.

Pokud chcete, muzete si inet_select_addr() predelat tak, aby zohlednil 
i silenou moznost, ze je na jednom interfejsu nastaveno vic prekryvajicich 
se siti (netmasky nastesti nepripousteji neprazdny prunik, aniz by jedna 
byla podmnozinou druhe, takze lze vzdycky vybrat nejlepsi moznost).

> jaka je korektni reakce klienta na ten ARP dotaz? Odpovedet vzdy nebo
> odpovedet jen pokud je IP v ARP packetu uvnitr subnety eth klienta?

Muzete si najit prislusne RFC, ale dle meho osobniho nazoru je odesilaci 
IP adresa v zasade irelevantni (je tam uvedena i MAC adresa, takze se vi, 
kam se to ma poslat) a zatim jsem nevidel zarizeni, kteremu by nebylo 
jedno, jaka adresa tam je (dokonce mam dojem, ze nektere mody vyuziti 
ARP, zejmena na detekci kolizi pri pouziti IP adres, vyzaduji, aby se 
jako odesilaci adresa nastavilo neco jako 0.0.0.0).
 
--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."




Další informace o konferenci Linux