Hello 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::2/112 <------>interface2: 2000::1/112
suppose that the route table configuration are all reachable.
1. Anyone known the topology connection is normal or correct ?
2. If yes, when create BGP peer with loopback interface 2000::1111, remote
IP 2000::2222.
3. BGP peer will use 2000::2222 to compare with interface prefix list on
DUT2, find the neighbor interface2 with prefix 2000::1/112 [interface2 on
DUT2], and consider as directly connected.
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