Welcome to Route/Switch & Sleep Deprivation: A CCIE Diary.
If you are reading this, you probably enjoy pain. Or, like me, you decided that knowing "a little bit about networking" wasn’t enough, and you wanted to chase the holy grail of network certifications: the CCIE.
I am currently in the trenches of studying for the CCIE Enterprise Infrastructure. My coffee consumption has tripled, and my dreams are now exclusively about packet headers.
Today, we are starting with the protocol that runs the world (and occasionally breaks Facebook): BGP (Border Gateway Protocol).
Specifically, I want to talk about that magical, frustrating moment when you try to get two routers to talk to each other.
The Protocol of "Trust No One"
Unlike OSPF or EIGRP, which are like f…
Welcome to Route/Switch & Sleep Deprivation: A CCIE Diary.
If you are reading this, you probably enjoy pain. Or, like me, you decided that knowing "a little bit about networking" wasn’t enough, and you wanted to chase the holy grail of network certifications: the CCIE.
I am currently in the trenches of studying for the CCIE Enterprise Infrastructure. My coffee consumption has tripled, and my dreams are now exclusively about packet headers.
Today, we are starting with the protocol that runs the world (and occasionally breaks Facebook): BGP (Border Gateway Protocol).
Specifically, I want to talk about that magical, frustrating moment when you try to get two routers to talk to each other.
The Protocol of "Trust No One"
Unlike OSPF or EIGRP, which are like friendly neighbors shouting "Here I am! Let’s be friends!" over the fence (Multicast), BGP is a grumpy old man.
BGP doesn’t discover neighbors automatically. You have to explicitly introduce them. You have to manually type in the IP address of the peer and say, "Trust this guy." It’s a TCP-based protocol (Port 179), which means before any routing information is exchanged, we need a solid TCP handshake.
It sounds simple. But in the lab, "simple" is a trap.
The Topology: Keep It Simple (For Now)
Let’s look at the setup I’m running in GNS3 today. It’s the "Hello World" of BGP.
- R1: AS 65001 (Interface Gi0/0: 192.168.12.1)
- R2: AS 65002 (Interface Gi0/0: 192.168.12.2)
This is eBGP (External BGP) because the Autonomous System (AS) numbers are different.
The Config: Where Typos Go to Die
Here is the config on R1. It looks innocent enough:
R1(config)# router bgp 65001
R1(config-router)# bgp router-id 1.1.1.1
R1(config-router)# neighbor 192.168.12.2 remote-as 65002
And on R2:
R2(config)# router bgp 65002
R2(config-router)# bgp router-id 2.2.2.2
R2(config-router)# neighbor 192.168.12.1 remote-as 65001
I hit enter. I wait.
In the world of OSPF, I’d see a console message immediately. FULL adjacency! Success! In BGP, silence is common. BGP is slow by design. It doesn’t want to flap (connect/disconnect) constantly.
The "Active" Trap
I ran the verification command that every network engineer types 500 times a day:
R1# show ip bgp summary
The output showed the state as Active.
Now, if you are new to networking, "Active" sounds good, right? Active means working! Active means energetic!
Wrong.
In BGP land, Active means "I am actively trying to find my friend, but he is ignoring me." It means failure. It means you are screaming into the void.
What we want is Established.
Troubleshooting My Own Stupidity
Why was it stuck in Active?
- Layer 1/2 Issue? Can I ping 192.168.12.2?
- Result: Yes. Ping works. So the cable isn’t broken.
- TCP Port 179? Is an Access Control List (ACL) blocking port 179?
- Result: No ACLs on these raw routers.
- The Typos.
I looked closer at R2’s config.
R2(config-router)# neighbor 192.168.21.1 remote-as 65001
Do you see it?
I typed 21.1 instead of 12.1.
BGP didn’t warn me. It didn’t say "Hey, that IP doesn’t exist on this subnet." It just accepted the command and sat there, waiting for a ghost neighbor at 192.168.21.1 to say hello. Meanwhile, R1 was knocking on the door of 192.168.12.2, but R2 didn’t recognize R1’s IP as a configured friend, so it slammed the door (sent a TCP RST).
The Fix and The Lesson
I corrected the IP on R2.
R1# show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 65001
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.168.12.2 4 65002 5 6 1 0 0 00:00:03 0
State/PfxRcd shows a number (0). This implies the state is Established. The "0" just means we haven’t learned any routes yet, which is fine—we haven’t advertised any networks.
Takeaway for the CCIE Lab: Fast typing is great, but precise typing saves you 20 minutes of troubleshooting. When BGP is stuck in "Idle" or "Active," check Layer 3 connectivity first, then check your neighbor statements for dyslexia-induced typos.
Next Time...
We have a connection. But right now, R1 and R2 are just staring at each other. They aren’t sharing any juicy routing data.
In Part 2, we will dive into advertising networks, manipulating the BGP table, and why next-hop-self is the command you will forget most often.
Until then, keep your packets flowing.
(P.S. If you are also studying for the CCIE, connect with me! Let’s suffer together.)