OSPF src adresa

Zdeněk Prchal prchal na vtdata.cz
Pátek Listopad 23 15:26:47 CET 2007


Mám trochu podivný problém na jednom linux boxu. Kernel 2.6.23 na jednom interface eth0 jsou dvě ip adresy:

[root na linux log]# ip addr
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:02:b3:95:3e:a5 brd ff:ff:ff:ff:ff:ff
    inet 195.47.92.6/28 brd 195.47.92.15 scope global eth0
    inet 192.168.5.1/24 brd 192.168.5.255 scope global eth0:1
    inet6 fe80::202:b3ff:fe95:3ea5/64 scope link
       valid_lft forever preferred_lft forever

běží na něm OSPF (quagga 0.99.9), network je definovaný pouze na 192.168.5.0/24,
posílá tedy pakety se source ip 192.168.5.1, jak je ostatně vidět i ve firewallu:

ACCEPT:IN= OUT=eth0 SRC=192.168.5.1 DST=224.0.0.5 LEN=68 TOS=0x00 PREC=0xC0 TTL=1 ID=54132 PROTO=89

Jenže přes interface eth0 už jdou pakety takto?!?:

[root na linux /]# tcpdump -tni eth0 proto ospf
IP 195.47.92.6 > 224.0.0.5: OSPFv2, Hello, length: 48

Myslel jsem nejdřív, že to je práce SNATu, ale jednak přes POSTROUTING tyhle pakety snad vůbec nejdou?!?:

[root na linux /]# iptables -L -vn -t nat
Chain POSTROUTING (policy ACCEPT 2516 packets, 211K bytes)
 pkts bytes target     prot opt in     out     source               destination
 3080  252K eth0_masq  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0

Chain eth0_masq (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     89   --  *      *       0.0.0.0/0            0.0.0.0/0
1071 71205 excl_1     all  --  *      *       192.168.0.0/16       0.0.0.0/0           policy match dir out pol none

A hlavně, chová se to stejně, i když firewall úplně vypnu. Mám ještě druhé PC, konfigurované obdobně, na jiných adresách, to se ale chová dle očekávání, OSPF posílá svoje pakety z adresy 192.168.5.5, i když je to první alias. Pakety od toho prvního ignoruje, předpokládám, že se mu nelíbí právě ta source ip. Čím ještě v kernelu může být ovlivněna taková změna source ip?

Zdeněk Prchal



Další informace o konferenci Linux