ping na adresu interfacu co je DOWN?

Jan Houstek Jan na houstek.net
Sobota Prosinec 3 01:26:59 CET 2011


On Fri, 2 Dec 2011, Václav Ovsík wrote:
> No u adresy svázané s interfacem ve stavu down bych čekal, že si jí 
> nebude IP stack všímat.

Tak jsem trochu pátral - rozhodnutí jestli je adresa lokální nebo ne se 
děje v net/ipv4/route.c: ip_route_input_slow() kde se pomocí fib_lookup() 
prohledá ip_fib_local_table.

No a do té se zjevně dostane i adresa pověšená na interface ve stavu down, 
což lze snadno ověřit pomocí "ip route list table local". Letmo jsem 
projel net/ipv4/fib_semantics.c a vypadá to, že při přidání adresy na 
interface se automaticky přidá do RT_TABLE_LOCAL (bez ohledu na stav 
interface) a při shození interface se sice vymažou záznamy v routovací 
tabulce, kde některá z lokálních adres na shozeném interface byla nexthop, 
ale samotný záznam pro tyto adresy v RT_TABLE_LOCAL opět zůstává.

Jestli je to bug nebo feature se možná dozvíte dotazem do 
netdev na vger.kernel.org. IMHO to kvůli zpětné kompatibilitě už těžko někdo 
změní (např. s tím, že je adresa na shozeném interface dostupná přes 
lokální loopback, pravděpodobně lecos počítá).

-- HH


Další informace o konferenci Linux