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