-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ospfd: ospf_read network address is not same when using /32 IP #6823
Comments
With the same OSPF setup (area, interface, and addresses), both Quagga (0.99.x version) and BIRD work fine on our CentOS 7 servers. |
Hmmm this seems to be a issue. Code in FRR has been added such that it loops over the all ospf interface and then check in this order.
While quagga does not have this code. I think it is assumed that if we have a unnumbered interface then we should not be having broadcast. This assumptions is broken with your config. |
whats the solution here? |
@theonemcdonald well, I don't know... But for us, we need to get OSPF working for our L4 load balance, so we've migrated to BIRD and it works well ;) |
I'm suffering from the same issue.
|
This is an oldie but I'll toss my hat in the - this affects me too ring. OPNsense 21.7.8-amd64 I have a CARP on the same interface as the OSPF instance and I get the same error, removing the CARP /32 entry results in normal operation.
|
When forming a neighbor relationship on an interface, ospf is currently evaluating unnumbered as highest priority, without any consideration for if you have /32's and non /32's on the interface. Effectively if I have something like this: int foo0 ip address 192.168.119.1/24 ! router ospf network 0.0.0.0/0 area 0 ! ospf will form a neighbor on foo0 if it exists. Now suppose someone does this: int foo0 ip address 192.168.120.1/32 This will create the unnumbered interface on foo0 and the peering will come down immediately. The problem here is that the original designers of the unnumbered code for ospf didn't envision end operators mixing and matching addresses on an interface like this ( for perfectly legitimate reasons I might add ). So if ospf has both numbered and unnumbered let's match against the numbered first and then unnumbered. This solves the problem Fixes: #6823 Signed-off-by: Donald Sharp <[email protected]> (cherry picked from commit 5136e67)
This issue happens again on latest frr
|
Any plan to fix this issue? |
Describe the bug
A clear and concise description of what the bug is.
(put "x" in "[ ]" if you already tried following)
[x] Did you check if this is a duplicate issue?
[x] Did you test it on the latest FRRouting/frr master branch?
To Reproduce
Steps to reproduce the behavior:
eth2
, the main WAN IP is also configured on this interface to communicate to the router)eth2
; the interface type is the default broadcastOSPF: [EC 134217740] interface eth2:y.y.y.1: ospf_read network address is not same [x.x.x.1]
in the log file.show ip ospf neighbor
, it's empty there.Expected behavior
The OSPFd should build up adjacency with the router and function as expected.
Versions
Additional context
I'm coming into this issue in configuring our ECMP load balancing with OSPF in our datacenter. The OSPFd cannot build adjacency with the router with the following error message:
Basically, we need to configure on the same interface (e.g.,
eth2
) a WAN IP (e.g.,x.x.x.2/27
, to contact with the router atx.x.x.1/27
) and a bunch of service/virtual IPs with/32
subnet masks (e.g.,y.y.y.1/32
,y.y.y.2/32
):When the OSPFd receives a HELLO packet from the router, it need to lookup (
ospf_if_lookup_recv_if()
invocation inospfd/ospf_packet.c
) the OSPF interface before processing the packet. However, the unnumbered OSPF interface (i.e.,y.y.y.1/32
) is chosen (seeospf_if_lookup_recv_if()
implementation), but it's not in the same network as the router. Therefore the packet header verification fails and thus causes the OSPF adjacency buildup fails.I see the OSPF tutorial on Cumulus Linux that has a big note saying
So is this a bug in
ospf_if_lookup_recv_if()
or somewhere else?I think this issue may be related to issue #3973 .
Thank you, and regards.
The text was updated successfully, but these errors were encountered: