OT: záhadne chovani nekterych zarizeni v siti

Dan Lukes dan at obluda.cz
Wed Jan 30 16:29:21 CET 2013


On 01/30/13 15:19, Zbyněk Burget:
> Misto toho, aby se packet v tichosti
> ztratil, protoze na siti uz neni prijemce, ozve se domaci routrik uplne
> jineho zakaznika, ktery vyhodnoti, ze ten packet k nemu proste prisel
> spatne a je potreba to napravit. A proto ho odesle zpet routeru (s
> originalni zdrojovou i cilovou IP adresou). No a router se packet opet
> snazi dorucit... Co mam povidat, sit to zaplavi tak, ze je nepouzitelna.
> Do doby, nez vyexpiruje (nebo je smazan) arp zaznam v routeru one
> puvodne vypnute stanice.

Problem vznikne jen v kombinaci nekolika okolnosti.

Na te fyzicke siti jsou je nakonfigurovana vic nez jedna logicka IP sit. 
Tim se k routriku klienta muze dostat paket, jehoz IP adresa nepatri do 
zadne site, kterou tento router zna.

S takovymi mix-sitemi je vzdycky trochu potiz, prinejmensim v oblasti IP 
  broadcastu (obzvlast s nespecifickym 255.255.255.255) ale vetsinou to 
samo o sobe jeste neznamena katastrofu.

Teprve kdyz se to spoji s dalsimi okolnostmi.

Paket o kterem je rec a ktery na routrik dorazi, nema jeho cilovou MAC. 
Za normalnich okolnosti by karta v nepromiskuitnim modu takovy paket ani 
neprijala a vsechno by bylo naprosto v pohode. Problemem jsou ruzne 
podivne router-bridge s takovymi featurami jako je klonovani vnitrni MAC 
ven a tak - tam je casto karta trvale prepnuta v promiskuitnim modu a 
softwarovy filtr, ktery by kontrolu cilove MAC implementoval je vadny 
nebo zcela chybi. Tim se paket, ktery nemel byt vubec prijat dostane do 
vyssich vrstev - a ty, uz legitimne a korektne, reaguji forwardovanim (a 
pripadnym ICMP_REDIRECT). Takovy routrik lze povazovat za vadny neb za 
rutinniho provozu by se nemelo na hodnotu cilove MAC kaslat a ignorovat ji.

No, a kdyz se spoji mixovana sit (tvoje chyba) se zarizenim s touto 
vadou (problem nekvalitniho zarizeni vyrobce), vznikne katastrofa.


> Resenim bude fyzicke oddeleni a odroutovani jednotlivych subnetu

Ano. Dostatecnym "fyzickym" oddelenim muze byt i zavedeni VLANu.

> Workarround by byl zkratit dobu platnosti zaznamu v arp tabulce (nevim,
> jak dalece je to rozumne - a taky jsem zatim napatral po tom, jako toho
> na FBSD dosahnout).

Castejsi ARP dotazy budou vytezovat sit, vcetne vsech zakaznickych linek 
(ARP je broadcast). Nastaveni je trivialni ukon:

sysctl net.link.ether.inet.max_age=(cas v sekundach)

> No a samozrejme nejlepsi resenei je pochopit proc se to deje a tem
> zarizenim vysvetlit, ze se tak nemaji chovat.

A to ja si celkem myslim, ze vim co se tam deje. Potiz je v tom, ze ten 
zarizenim to budes tezko vysvetlovat. Mozna se ti podari najit takovou 
kombinaci (de)aktovovanych featur kdy vnejsi karta v promiskuitnim modu 
nepojede, nebo treba pojede, ale nejaky kod dal bude spravne zahazovat 
pakety, ktere na routrik prijit nemely.

Ale mozna se ti takovou kombinaci najit nepodari - nebo ano, ale vypnes 
tim uzivateli neco, co bude chtit. A taky to na kazdem zarizeni bude 
jinak. A i kdy to zvladnes, uzivatel by uz nesmel do konfigurace nijak 
zasahovat (protoze i mala nevinna zmena muze zpusobit navrat puvodniho 
chovani).


  ----------------

Zkraceni ARP muze problem castecne resit. Presneji zkrati dobu po kterou 
je v cele siti kvuli problemu akutni pretizeni.

Dalsi moznost je zkratit TTL u paketu, ktere do tohoto segmentu posilas. 
Omezis tam delku "kolovani" a tudiz i mnozstvi paketu, ktere v 
konkretnim okamziku sit pretezuji. Myslim, ze na tohle neni ve FreeBSD 
nastroj, ale mohlo by byt pomerne jednoduche to jako "hack" dodelat.

Dalsi potencialni reseni je nahradit chybejici/vadny filtr konfiguraci 
na koncovem portu tveho switche (ktery vede do takoveho vadneho 
routriku) a routriku zadne pakety s MAC adresou, ktera neni jeho, 
nepredavat (broadcasty a multicasty nepocitam). To neni bezna schopnost 
switchu, takze si nejsem jisty, jestli to neni cista teorie.

Nicmene, jedinym "nehackovym" resenim je skutecne "de-mixovat" tu sit. 
Tedy - nemit na jedne L2 siti vic ruznych L3 siti kdy koncova zarizeni 
vzdy znaji jen nektere z nich.

Dan

P.S.
Mila Sos wrote:
> maximálně dát ICMP redirect a ne poslat packet zpět

Pokud vim, tak ne - vyznam ICMP_REDIRECT neni "paket jsem zahodil" ale 
"tentokrat jsem to preposlal, ale priste to posilej primo". Takze 
preposlani paketu je korektni (kdyby slo o paket, ktery byl routeru 
adresovan, coz v nasem pripade neni).





More information about the Users-l mailing list