Just a note to remind myself that to establish eBGP connection if loopback is used as the source then neighbor <peer’s ip address> update-source loopback<id>is necessary.
By default BGP will use the interface ip as the source address to establish TCP connection. If update-source is not used then the BGP adjacency will never be formed, and will always stuck in Active state.
Active state is the state whereby a router is attempting to establish a TCP connection to the destination.
Think of the remote BGP router as a server which is constantly listening to port 179, my local BGP router needs to establish a tcp connection to destination port 179 and start the 3-way handshake, at least one BGP router must have an update-source statement in order to establish adjacency.
Here’s the commands:
1841-2#sh run | s router bgp
router bgp 200
neighbor 18.104.22.168 remote-as 100
neighbor 22.214.171.124 ebgp-multihop 2
neighbor 126.96.36.199 update-source Loopback200
1841-1#sh run | i ip route
ip route 188.8.131.52 255.255.255.255 184.108.40.206
1841-1#sh run | s router bgp
router bgp 100
neighbor 220.127.116.11 remote-as 200
neighbor 18.104.22.168 ebgp-multihop 2
neighbor 22.214.171.124 update-source Loopback100
1841-2#sh run | i ip route
ip route 126.96.36.199 255.255.255.255 188.8.131.52
My mistake here is I have forgotten to use update-source keyword! Deadly mistake!