On 2019-03-26 08:49, Kenth Eriksson wrote:
On Mon, 2019-03-25 at 21:09 +0100, Ondrej Zajicek wrote:
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
On Mon, Mar 25, 2019 at 03:06:29PM +0000, Kenth Eriksson wrote:
It seems as bird autodetects a /30 OSPF interface as ptp.
bird> show ospf interface ospfv2_1: Interface eth0 (10.210.138.32/30) Type: ptp Area: 0.0.0.0 (0) State: PtP Priority: 0 Cost: 10 Hello timer: 10 Wait timer: 40 Dead timer: 40 Retransmit timer: 5 bird>
Is this really correct behaviour? The peering Cisco router thinks the /30 network is a broadcast interface...
Well, OSPF RFC speaks about broadcast and ptp networks/interfaces, but it is not really explicit about which networks are 'broadcast' and which are 'ptp'. One could think about medium types (ethernet vs. serial link), physical topologies (star/bus vs. ptp link) or addressing (unnumbered or 'ptp' addresses vs /30 vs wider prefix).
BIRD uses the third approach and autodetect unnumbered / ptp / /30 as ptp, while wider prefix as broadcast (or PtMP / NBMA if the interface does not support multicast). That is because in such cases it is not possible to have more than two nodes in the same L3 network, so it is not necessary to use the more complicated and error prone broadcast mode.
There is RFC 5309 that discusses this issue, which implies that was perhaps meant more in the first sense (medium types).
It is possible that other implementations use other heuristics, which causes compatibility issues in default setting. Perhaps we could change it (in some major release) if there is a clear consensus about the proper behavior.
I can see the rationale of saying that a /30 network can run with OSPF interfaces in ptp mode since there are only 2 hosts on it. That said, I *believe* the Cisco routers defaults to broadcast mode for a /30 which would cause some interop issues with the default settings. I don't know the default values for other vendors.
Is it possible to change the autodetect using a function in the bird configuration file? E.g. if the prefix length of the interface is 31 or 32 then use ptp mode else use broadcast mode.
If you are willing to change the default config with a config setting, why not just configure the OSPF interface as ptp or broadcast, as needed? :). Not trying to be a smart-ass here, but just wondering what would be the added value of such a config setting?
-- Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
Kind regards, Cybertinus