Hello,

I'm running OpenBSD 4.6-current Dec 1.

Given that you have a host or a network that you can reach from two
different interfaces from OpenBSD.

#netstat -rn -f inet
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio
Iface
192.168.10.100   192.168.0.1        UGHS         0        1     -     8 em0
<snip>
#
#ping 192.168.10.100
PING 192.168.10.100 (192.168.10.100): 56 data bytes
64 bytes from 192.168.10.100: icmp_seq=0 ttl=255 time=0.584 ms
--- 192.168.10.100 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.584/0.584/0.584/0.000 ms

Now take down that inteface anyway you like (ifconfig down or unplug the
cable).

#netstat -rn -f inet
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio
Iface
192.168.10.100   192.168.0.1        GHS           0        1     -     8 em0
<snip>

RTF_UP flag went away and the host isn't reachable like you'd expect.

Now change the gateway to the other working interface.

#route change 192.168.10.100 192.168.2.1
#netstat -rn -finet
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio
Iface
192.168.10.100   192.168.2.1        GHS        0        1     -     8 em1
<snip>

Even though the RTF_UP flag is missing the destination is still reachable.

#ping 192.168.10.100
PING 192.168.10.100 (192.168.10.100): 56 data bytes
64 bytes from 192.168.10.100: icmp_seq=0 ttl=255 time=0.676 ms
--- 192.168.10.100 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.676/0.676/0.676/0.000 ms

I'm not sure if this is just cosmetic or if routing daemons look at the
RTF_UP flag for their own purposes.

I found this when failing over ospfd by ifconfig'ing down an interface.
ospfd is doing other weird things for me but the above is what I can
reproduce easily for this part of the puzzle.

dmo

Reply via email to