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