We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now! Here is Why:

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You've Ever Spent on Your Cisco Career!
  • Full Access to our 581 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)

 

295 New Members signed up the last 30 days!

satisfaction-guaranteed

100% Satisfaction Guaranteed!
You may cancel your monthly membership at any time.
No Questions Asked!


Forum Replies

  1. Jon says:

    Hello @giorgiortavidze,

    Many thanks for your question. It is not necessary to configure next-hop-self on all iBGP routers and can have undesirable results. Any time we configure this we are modifying the original routes and modifying routes should always be done with care. Even better we try to avoid the need to modify routes by appropriate design choices.

    Next hop self is one possible solution if a router receiving the unmodified route would be unable to understand how to reach the specified next hop. Although we can modify the route in BGP, a common alternative is to provide the router with an additional piece of information about how to reach the specified next-hop, for example providing a static route to that next hop or having another routing protocol (such as OSPF) operating more locally sharing information about exit points from your network.

    If we apply next hop self by default a common issue is that traffic will flow but follow a sub-optimal path such as looping via a transit AS (it might be some remote branch site) rather than taking a more direct route with more bandwidth available. Connectivity can feel "slow" but not broken in this case.

    So you have several options you can design into your network. Have fun choosing!
    Kind regards,
    Jon

  2. Ok I was working through the first part above. I created my own GNS3 lab to follow.

    I got to the part where you state that you can just add the network 3.3.3.0 mask 255.255.255.0 to R2 to allow R1 to see the network. Sure enough this worked.

    See below a picture of my lab its the same except I used 3.3.3.1 for my loopback instead of 3.3.3.3 and I also used one different interface on R2 but that was just mistake on my part that did not effect the lab so I left it.

    My question was even though all the BGP networks and routes show up I still cannot ping the address of 3.3.3.1 from R1 to R3. Why is that? can you not ping over BGP? how can you not ping over it but the network traffic and routes work just fine?

    Should they not have had IGP or static routes underneath the BGP or was it not needed because both IBGP routers are directly connected and then the R3 and R2 are connected directly over EBGP. if I run a capture you can tell the IP are getting there but just no reply and that’s because R3 does not know how to get back to R1 which makes sense as there is no IGP or static route. However, back to the question in bold about how come BGP can get back and forth but the ping cannot.


    Sure enough if I add a static route the ping works so its just as I said above.

    Capture

    after adding static route:

    So if this was a real world scenarios for an ISP it does not seem like BGP could help with any transit data because it certainly didn’t help with the ping. So is this lab an incomplete lab that is not really a working model because there is no underlying routing protocols or static routes?
    In other words it seems to me that BGP lies to us when it says its connected because if it was connected we should be able to ping. OH well I am getting off topic maybe when you answer my question in bold it will explain everything.

    wireshark after I added static route:

    I went ahead and removed the static route to watch the wireshark traffic. I still see traffic but I just have to wonder if any payload data would be transmitted over BGP for example SIP, or IP traffic regular PC stuff. Why would ICMP(pings) be blocked but the rest of the traffic make it or would none of the traffic make it and just the BGP and management traffic only be transmitted??? Which if that was the case then BGP really does nothing but send its own crap over the network which I don’t see how that helps move data over the internet.

    I have been just sitting and watching wireshark racking my brain. I finally highlighted all the Internet p[rotocol version 4, which should be the IP correct? all of the traffic is just the 192.168.23.0 /24 network nothing from the 192.168.12.0 /24 network.

    That tells me the following if we don’t see any IP traffic from the 192.168.12.0/24 network that means no payload or transit data would ever get to us from the 192.168.12.0 /24.

    Maybe I am wrong but it seems to me that BGP then cannot work without underlying routing protocol or static route because you would never receive information from another subnet that was not directly connected.

    So if John Smith on his PC was on 192.168.12.0/12 and he was trying to get to the internet which was the 192.168.23.0 /24 network he would never reach it. which makes bgp worthless without a IGP or static route of some type? correct? Even the BGP its receiving is only from the 192.168.23.0 /24 network.

    I setup a wireshark on the IBGP link between R1 and R2 and I don’t even see BGP keep alives there:

    I am unsure why there are no BGP keep alives between R1 and R2.

    wait I see why… there is no network command on R1, or R2 its on R3 only. Let me add one to the other two and test it.

    !
    router bgp 12
     no synchronization
     bgp log-neighbor-changes
     neighbor 192.168.12.1 remote-as 12
     neighbor 192.168.12.1 next-hop-self
     neighbor 192.168.23.3 remote-as 3
     no auto-summary
    !
    R2#
    
    -----------------------------------------------------
    
    !
    router bgp 12
     no synchronization
     bgp log-neighbor-changes
     neighbor 192.168.12.2 remote-as 12
     no auto-summary
    !
    R#1
    
    -------------------------------------------------------
    
    !
    router bgp 3
     no synchronization
     bgp log-neighbor-changes
     network 3.3.3.0 mask 255.255.255.0
     neighbor 192.168.23.2 remote-as 12
     no auto-summary
    !
    R3#
    

    Ok maybe NEVER MIND… when I added the network 192.168.12.0 mask 255.255.255.0 command to R2 I can now ping 3.3.3.1 on R3.

    So the problem was me not BGP. BGP is behaving normally it will work with traffic as the ping worked… I just had not advertised the 192.168.12.0 /24 through BGP.

    So I just have to ask this how does the BGP 3.3.3.0 /24 route show up in R1 BGP table even though I could not previously ping it? The other stuff now makes sense but that question remains.

    Oh and a second question. How come I don’t see BGP Keep alives betgween R1 and R2 on the IBGP side and I do see them between R2 and R3 which is a EBGP connection. does IBGP not use keep alives. not sure what the TCP are for I guess just “ACK”?

  3. Hello Brian

    It’s nice to see how you are working through the problem and we can “read your thoughts” along the way.

    So, having answered your own original question, here’s the question that I’ll try to answer:

    You must remember one of the fundamental laws of routing: If a route is successful in one direction, it does NOT mean that it will be successful in the other. So R3 was able to communicate with R2 and R1 the route to the 3.3.3.0 network. So it is possible for R1 to reach R3. This is the perspective or R1 since there is a route from R1 to 3.3.3.0. However, if you looked at the routing table of R3 (which you did) you will see that there is no route back to R1 without the appropriate network commands.

    So looking at the routing table in R1 only shows you that R1 can reach R3. It says nothing about R3 reaching R1. In order to determine that you’ll have to look at the routing table on R3.

    I hope this has been helpful!

    Laz

  4. OMG!

    So I can apply that rule to routes? Meaning as long as it can get there it will be added just not reachable because it knows how to get there but not the way back.

    That does make perfect sense…gosh… I should have thought about that or at least posed it as a question. I was thinking that it probably had to do with some rule I had learned at some point about TCP/IP and traffic movement but just didn’t think of what was right in front of me. I hate when I do that but that happens a lot lol…

    Ok now that makes sense and I can put it in a nice little box and label it lol… thanks!

33 more replies! Ask a question or join the discussion by visiting our Community Forum