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

Roger Perkin

Network Automation Architect

  • Network Automation
    • Network Automation Courses
    • What is NetDevOps?
    • Workflow Orchestration
    • Ansible Automation Platform
    • Ansible Workshop
    • What is Network Automation?
    • Network Automation Tools
    • ContainerLab
    • Ansible Training
      • What is Ansible?
      • Ansible Tutorial for Beginners
      • Ansible Network Automation
      • Ansible Inventory Example
    • Python Network Automation
      • Nornir
      • Python Network Automation Course
      • Python for Network Engineers
      • Python VENV / Virtual Environment Tutorial
      • Python Tutorial for Beginners
      • pyATS
    • Network Source of Truth
      • NetBox
      • Infrahub
    • NetDevops
    • DevOps Tutorial
      • Git Training
      • Terraform Training
      • Linux Training
      • Kubernetes Training
      • Devops Training Course
      • Azure Devops Training
    • Terraform
    • GIT
      • Git Commands
      • What is GitHub?
    • Docker Training
    • Confluence
    • Microsoft Azure
  • Cisco
    • ISE
    • SD WAN Training
    • Password Recovery
    • Software-Upgrade-Guides
    • BGP
    • Data Center
    • WIRELESS
  • CCIE
  • Blog
  • About
    • My Red Special Guitar
  • Contact

BGP Update Source

Home » BGP Protocol

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 Explained
  • BGP Listen Range command
  • BGP Weight attribute
  • BGP Confederation vs Route Reflector
  • What is BGP synchronization?
Category: BGP Protocol
ansible course for network engineers
Get Access to my Ansible Course NOW
Previous Post:CCIE Data Centre or CCIE Data Center??
Next Post:Unicast Reverse Path Forwarding – Strict Mode

Sidebar

Hi I'm Roger Perkin,
Based in the UK working as a Network Automation Architect, CCIE #50038
About Roger | Twitter | Linkedin

python course for network engineers

Topics

Network Automation
Ansible
Python for Network Automation
CCIE
Cisco ISE
F5 Certification
BGP
OSPF
Network Automation Conferences
auvik promo banner
Pluralsight Trial

Git for Network Engineers

Ansible vs Nornir

Start learning today with my Network Automation Courses

Master Ansible, Python, Git, Nornir, Jenkins and more..


Buy me a coffeeBuy me a coffee

ansible network automation course

Have you seen my YouTube Channel?

YouTube Subscribe

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

Navigation

Python VENV Tutorial
Python for Network Engineers

Network Automation
Network Automation Courses
Network Discovery Tools
Network Automation Conferences
Ansible Training
What is Ansible?
Devops Tutorial
Network Source of Truth
DevOps Glossary
Network Monitoring Software

Contact

Contact

Get in touch with me here

[email protected]

  • Twitter
  • LinkedIn
  • YouTube
Buy me a coffeeBuy me a coffee

Copyright © 2025 · Roger Perkin · All Rights Reserved · Privacy Policy – Terms