ICMP_SOURCEQUENCH

Dan Lukes DAN at seno.fio.cz
Thu Aug 19 17:44:18 CEST 1999


On 18 Aug 99 at 9:26, Martin Machacek wrote:

> >     Mate tedy nekdo nejake zkusenosti s provozem "za dummynetem" s nejakou
> > aplikaci, ktere by zavisela na zasilani ICMP_SOURCEQUENCH ? (To nebudou 

> S provozem za dummynetem zadne zkusenosti nemam, ale mam zkusenosti s provozem
> za Cisco routery, ktere se taktez s posilanim ICMP source quench (vetsinou)
> neobtezuji. Nezda se mi, ze by jejich absence  mela nejaky nepriznivy vliv na
> komunikaci, nicmene nemam zadne "overitelne" srovnani  s opacnou situaci. Navic

    Ona je take vetsina komunikace take TCP, ktere se s pretizenim dokaze 
vyrovnat i bez SQ

> mam takovy pocit, ze vetsina implementaci IP stejne na ICMP source quench nijak

    No, mam ne moc podlozeny pocit, ze vetsina BSD based IP stacku SQ 
pouziva - pochopitelne pouze na TCP komunikaci. U UDP to neni bez aplikace 
mozne.

> nereaguje. Do zdroju FreeBSD jsem se nedival (a momentalne na to ani nemam cas),
> ale zajimalo by me, jak jsme na tom. Reaguje IP stack ve FreeBSD nejak "sam o
> sobe" (tedy bez explicitni podpory aplikace) na ICMP source quench? Pokud ano,

Ano, sys/neinet/tcp_subr.c :
/* When a source quench is received, close congestion window
 * to one segment.  We will gradually open it again as we proceed. */
void
tcp_quench(inp, errno)
   

> tak aby byl system konzistentni sam se sebou mel by ICMP source quench i posilat
> (a to i pro packety zahazovane dummynetem nebo dokonce i ALTQ). Vzhledem k

    I ja se priklanim k tomuto vykladu. Jedinou vyjimkou jsou pakety 
zahazovane "nahodnym vyberem" pokud je dummynet nakonfigurovan na simulaci 
vadne linku a ztrate paketu na ni.

> net.inet.ip.send_icmp_source_quench {0,1}
> net.inet.ip.receive_icmp_source_quench {0,1}
> 
> Jinak systemy reagujici na ICMP source quench jsou (IMHO) ohrozene denial of
> service utoky, prostrednictvnim zasilani falesnych notifikaci.

    To v kazdem pripade, takze je nutne maximalni rychlost jejich generovani 
omezit. Momentalne (3.2-RELEASE) to limitovane neni.
 
> > Mimochodem, FreeBSD ma velice daleko k tomu, aby splnovalo pozadavky, ktere 
> > RFC1812 na router klade - nestaci to ani na "conditionally compliant" a 
> > jestli ho bude potreba prizpusobit, bude to jeste pomerne hodne zmen v kodu 
> > TCP/IP stacku ...
> 
> Dalo by nejak strucne sumarizovat, co FreeBSD schazi, aby mohlo byt
> "opravdovym" routerem dle  RFC1812? Velmi by me to zajimalo.

    Uf, jsem se ctenim 1812 teprve ve dvou tretinach, ale uz mam popsano pul 
A4 - jen ji ted nemohu najit (uz se tomu zase skoro mesic nevenuji).
    Co si tak vzpominam:
    
    Zasila ICMP_SOURCEQUENCH a nema, nebo je nema limitovane.
    Vubec, pro nepodminenou shodu musi byt vsechny ICMP limitovate, FreeBSD 
zatim bezne nelimituje nic, pokud se prelozi s ICMP_BANDLIM tak jenom Port 
Unreachable.
   
     Pro nepodminenou shodu by muselo mit implementovane Security Option in 
IP (RFC1108)

    Neni implementovan Router Discovery Protocol.

    Pri routovani se nepouziva TOS, nejsou "precedence ordered" fronty, 
chyby interface pro lower layer precedence mapping (vse nutne pro 
nepodminenou shodu).    
    
Neni take uplne jasne, jestli je spravne osetreno zpracovani paketu 
se zdrojovou adresou 0.0.0.0 - RFC vyzaduje aby paket byl prijat, pokud je 
asociovan daemon, ktery TAKOVE pakety umi korektne zpracovat (napr. BOOTPD), 
jinak aby byl odmitnut - FreeBSD se ale nechova ruzne podle toho, jestli 
zrovna BOOTPD jede nebo nejede, ale podle toho jak bylo zrovna prelozeno
ccoz asi neni uplne presne to, co RFC pozaduje.

    
-----------
Obecne je na tom FreeBSD pomerne mizerne co se tyce source-routovanych 
paketu:    

    Pokud vznika ICMP na zaklade source-routovaneho paketu, vznikle ICMP 
musi byt take source-routovano (reverznim smerem). Totez plati pro 
ICCMP_*REPLY  zpravy, pokud jsou implementovany.

    Source-routovany paket s jeste nevycerpanym seznamem adres s "moji" 
vlastni adresou jako cilovou by musi byt forwardovan dale a neni.

    FreeBSD nedetekuje nasobny vyskyt source-routing option.    

 =================================================================
 
 
    Aby nedoslo k omylu - tohle jsou zatim jen nektere moje poznamky jak jsem 
s RFC1812 v ruce prochazel zdrojaky - u nekterych veci se tedy ve 
skutecnosti muze ukazat, ze jsou implementovany spravne. A urcite to neni 
jeste vsechno. Takze pokud se nekdy RFC1812 stane standardem, bude to 
potreba ponekud prekopat. Ale zatim bych se do toho moc nehnal ...
Treba prijde driv IPV6 a RFC1812 bude pase ... ;-)

                                                    Dan
                                                    

    
Dan Lukes            tel: +420 2 24102474, fax: +420 2 24102301
root, postmaster (and *master) of FIONet, webmaster of KolejNET
Administrator   of    www.antispam.cz's    spammer    blacklist
AKA: dan at obluda.cz, dan at freebsd.cz, dan at kolej.mff.cuni.cz



More information about the Users-l mailing list