• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

Roger Perkin

Learn Network Automation

  • Network Automation
    • Ansible
    • Python
    • Terraform
    • pyATS
    • Git
    • Postman
  • ISE
  • Cisco
    • SD WAN Training
    • Password Recovery
    • Software-Upgrade-Guides
    • BGP
    • Data Center
    • WIRELESS
  • Blog
    • CCIE Blog
  • COURSES
  • Menu Item

BGP Update Source

If you have started to look at BGP you will very soon come across the BGP update-source command. This command tells BGP which interface to source the BGP packets out of. The short demo below will highlight the problem.

bgp update source topology rogers ccie blog

I have a very simple setup with 2 routers connected with a serial interface and an ethernet interface

Step 1:

I have setup BGP and set the the neighbor statements on each router to point to the ethernet address.

R1#sh run | beg router bgp
 router bgp 1
 no synchronization
 bgp router-id 10.0.0.3
 bgp log-neighbor-changes
 neighbor 10.0.0.2 remote-as 1
R2#sh run | beg router bgp
 router bgp 1
 no synchronization
 bgp log-neighbor-changes
 neighbor 10.0.0.1 remote-as 1
BGP comes up fine

 R2#sh ip bgp summary
 BGP router identifier 10.0.0.2, local AS number 1
 BGP table version is 1, main routing table version 1
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 10.0.0.1        4     1      24      24        1    0    0 00:20:15        0

However if we now setup ip addresses on the Serial interfaces and then change the neighbor statement on R1 to try and peer to the Serial address while the neighbor statement on R2 is trying to peer with the ethernet interface the BGP neighborship will fail.

As the router is receiving a BGP request on an interface that is not configured to to receive a reply on.

*Mar  1 06:43:13.138: BGP: 10.0.0.2 open active, local address 10.0.0.1
 *Mar  1 06:43:13.146: BGP: 10.0.0.2 open failed: Connection refused by remote host, open active delayed 200ms

To fix this we need to use the command neighbor update-source

This tells BGP to send the update out the other interface and thus R2 will receive the BGP request on the interface it is expecting to hear on and the BGP relationship will come up.

R1
router bgp 1
 no synchronization
 bgp log-neighbor-changes
 neighbor 31.0.0.1 remote-as 1
 neighbor 31.0.0.1 update-source Serial0/0
R1#
 *Mar  1 06:49:11.430: %BGP-5-ADJCHANGE: neighbor 10.0.0.2 Up
 R1#

Now because we are telling the router to source the BGP packets out of serial interface the BGP neighborship comes up.

More BGP Tutorials

  • BGP Local Preference
Previous Post: « CCIE Data Centre or CCIE Data Center??
Next Post: Unicast Reverse Path Forwarding – Strict Mode »

Let’s get started

Take a look at my premium courses on Ansible, Nornir & Git or buy them all with the Network Automation Bundle!

Network Automation Courses

Social

Follow along on social media

Contact

Get in touch with me here

[email protected]

Navigation

Home

Blog

About

Contact

YouTube

Don’t forget to take a look at my YouTube Channel

youtube button

Copyright © 2021 · Roger Perkin · All Rights Reserved · Powered by Mai Theme