Hi All,
I notice that if BGP is directly connected, when BGP started, the
bgp_start_locked() is called and using neigh_find2() to lookup the neighbor. In
neigh_find2(), bird will loop iface_list and comparing the remote IP address
with the IP prefix of interface, checking whether is the subnet.
Now, I have a question that why not using route table to find the neighbor ?
Since I have one case that make me have some confusion.
Test Case:
DUT1 DUT2
DUT3
lo interface
2000::1111/128 , interface3 3000:1::8/112 <-----------------------> interface4
3000:1::9/112, lo interface: 2000::2222/128
interface1 2000::1/112 <------>interface2: 2000::1/112
Igor the route table configuration, suppose the route is correct.
1. Anyone known the topology connection is normal or correct ?
2. if yes, create BGP peer with loopback interface 2000::1111, remote IP
2000::2222, directly connection.
3. BGP peer will use 2000::2222 to compare with interface prefix on DUT1,
find the neighbor interface2 with prefix 2000::1/112 [interface2 on DUT2]
BUT, actually, BGP peer TCP connection is not directly connected, and TCP
connection don't using interface2 on DUT2, but using interface3 on DUT2 to
connect interface4 of DUT3.
Best Regards,
Arvin Gan