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

Reply via email to