IP Accounting

Martin Mares mj na atrey.karlin.mff.cuni.cz
Středa Leden 8 10:26:53 CET 1997


Hello, world!

> Pokud je to IP paket (podle identifikace protokolu ve frame), pak se do IP
> vrstvy dostane (ktera ho bud akceptuje nebo odmitne, coz zavisi na
> nastaveni IP adres, firewallingu, forwardingu a accountingu).
> [Protoze IP layer uz nezajima fyzicka (napr. Ethernetova) adresa, je zde
> zajimavy side-efekt, ze s allmulti by bylo mozno posilat pakety na spatnou
> fyzickou adresu. :> ]
> Pokud neni, pak se dostane do jineho patricneho "protocol stacku" je-li
> takovy (napr. IPX).
> V kazdem pripade ho prijmou "raw" sockety (jako napr. pouziva zmineny
> tcpdump)

   Abych se priznal, mam pocit, ze to tak byt nemuze. Kdyby option ALLMULTI
fungoval tak, jak je popisovano vyse, vsechny packety, ktere stroj prijme
a nebyly adresovany primo jemu, by byly _forwardovany_ dal (pokud je forwarding
zapnut), protoze to je presne to, co IP kazdemu packetu s cizi destination
adresou ma udelat. Jenomze pak by se stroj, na kterem bezi tcpdump, automaticky
stal "stinovym" default-gatewayem dane site, coz se evidentne nedeje.

   Pokud ethernet-like device driver prijme packet, je tento okamzite predan
funkci eth_type_trans (viz net/ethernet/eth.c), ktera rozhodne, jakemu protokolu
se ma predat dal. Tato funkce obsahuje:

       else if(dev->flags&(IFF_PROMISC|IFF_ALLMULTI))
        {
                if(memcmp(eth->h_dest,dev->dev_addr, ETH_ALEN))
                        skb->pkt_type=PACKET_OTHERHOST;
        }

coz, myslim, vysvetluje, proc se forwarding a spol. nedeje, nicmene do accountingu
by se prislusne packety dostat mely.

								Martin


Další informace o konferenci Linux