On 15.05.2013 21:18, Slawa Olhovchenkov wrote:
On Wed, May 15, 2013 at 07:29:04PM +0200, Ondrej Zajicek wrote:
On Wed, May 15, 2013 at 08:33:08PM +0400, Slawa Olhovchenkov wrote:
Interesting What 'show interfaces' and 'show ospf interface' return? And also 'show status' for router id. ifconfig em0 (full) em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO> ether 68:05:ca:0e:d3:e1 inet 10.254.0.2 netmask 0xffff0000 broadcast 10.254.255.255 inet6 fe80::6a05:caff:fe0e:d3e1%em0 prefixlen 64 scopeid 0x1 inet 185.17.0.1 netmask 0xffffff00 broadcast 185.17.0.255 inet 185.17.1.1 netmask 0xffffff00 broadcast 185.17.1.255 inet6 2a03:e2c0:0:1::1 prefixlen 64 inet 185.17.2.1 netmask 0xffffff00 broadcast 185.17.2.255 inet 185.17.3.1 netmask 0xffffff00 broadcast 185.17.3.255 inet 10.90.90.1 netmask 0xfffffff0 broadcast 10.90.90.15 inet 193.93.192.1 netmask 0xfffffc00 broadcast 193.93.195.255 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex>) status: active So this is a problem with multiple IPs on an iface. On BSD, we support just one primary address in OSPF (others are just handled as stubs). Lexicographically smallest address was chosen. Unfortunately the kernel chose a different one as a source address. Why lexicographically smallest? Why not first from getifaddrs() list? I've got the following patch, which works for CARP instances, and should work in your case.
If you use multiple IPs on an iface in BSD with BIRD, you have to use option 'primary' of device protocol to specify the proper one: http://bird.network.cz/?get_doc&f=bird-6.html#ss6.2 10x, working.