• IGP split horizon
    SPOTO Club
    2024-01-18
    Foreword BGP ring defense is implemented through AS_PATH, and AS_PATH is only changed when the route leaves the AS. Therefore, within the AS, IBGP does not have EBGP ring defense capabilities. In order to prevent the occurrence of loops, BGP routers will not be from IBGP neighbor The learned routes are advertised to other IBGP neighbors. BGP stipulates that the routes learned through one IBGP will not be propagated to all other IBGP neighbors. This is the BGP split horizon rule. Due to the principle of split horizon, BGP requires that within the AS, IBGP must be fully interconnected (here it is specified by the neighbor command). (The root cause is that within the AS, the AS-PATH will not change and the AS_PATH anti-ring cannot be used, so loops are prone to occur)   Split horizon: R3 does not send to other IBGP neighbor R2 after receiving the update from IBGP neighbor R4. As a result, R2 and R1 cannot get the route of R4 It is also split horizontally, both in BGP and IGP; then: IGP split horizon: The routing information learned from an interface will no longer be advertised from that interface. It is from that mouth that no longer comes out from this mouth. Horizontal split of BGP: The routing information learned from any IBGP neighbors is no longer forwarded to any IBGP router. To put it bluntly is a dead end, no longer in control. So, someone asked, since the same is horizontal split, why are the standards different? IGP can also send updates to other routers, is BGP too worried? If BGP is right, does IGP cause a loop? Answer: Yes! IGP still has a loop to do so! However, this loop is a loop of a large network, so IGP uses other methods to solve this problem, such as the 16-hop RIP (otherwise, if a horizontal split is all done, RIP does not need the 16-hop setting); the reason is The horizontal split of IGP is just to prevent problems in a small area such as regional networks (such as adjacent routers). If the network is large and the interconnection is complicated, loops may still occur. This situation is intolerable for BGP, a protocol that carries such core and large-scale routing. There is no need to explain this point. Therefore, BGP adopts such a brutal version of horizontal splitting. How to solve the problem that split horizon causes R4 and R2 to fail to get the route. So how to solve this kind of problem?   Option One Let the routers in the AS domain be physically fully connected, add a physical link between RTB and RTC, and establish an IBGP neighbor relationship between RTC and RTB, so that RTC can directly pass its own route to the RTB router. The RTB router directly passes the route to RTA through the EBGP neighbor relationship. This fully connected network deployment solution, on the one hand, has a high networking cost, and on the other hand, the increase in the number of BGP connections correspondingly increases the resource consumption of the system, and the fully connected network deployment has poor scalability. Is there a simpler way? Option II Make the routers in the AS domain fully logically connected, make the IGP routes of RTB and RTC reachable to each other, establish an IBGP neighbor relationship between RTB and RTC, so that RTC can directly pass its own route to RTB router, which is directly Routes to RTA through EBGP neighbor relationship. The ultimate solution-RR No need to add physical link or new IBGP neighbor relationship-configure BGP route reflector. The RTD is configured with a route reflector, and both RTB and RTC configure a reflector RTD client. In this way, according to the reflector's route reflection principle, RTC can easily reflect its own route to RTB, and RTB passes the EBGP neighbor relationship. Modified application network diagram:   Route Reflector (RR): Allows the routes learned from IBGP peers to be reflected to BGP devices of other IBGP peers. Client: IBGP device that forms a reflection neighbor relationship with RR. Within the AS, the client only needs to be directly connected to the RR. Non-Client: IBGP device that is neither an RR nor a client. Between the non-client and RR within the AS, The purpose of the route reflector (RR) is to simplify the configuration of IBGP neighbors. After using the reflector, it allows the reflector to send routing information from the IBGP neighbor to another IBGP neighbor or a group of neighbors. The router allows the router configured as a route reflector to transmit the routes learned by IBGP to other IBGP peers to modify the horizontal isolation rules of BGP, so that fully interconnected IBGP peers are no longer needed. Reflection function The route reflector will reflect the information between the clients in turn. The route reflector and all its clients form a group. Multiple route reflectors are allowed in a group. A route reflector can configure other route reflectors as its clients or non-clients; a route reflector transmits route updates between its clients and non-clients Rules: If the route update is received from a non-client, it is only reflected to the client; if the route update is received from a client, it is reflected to all non-clients and clients, except for the originator of this route update ; If the routing update is received from the EBGP neighbor, it will be reflected to all clients and non-clients. Reflection process Public network route BGP route delivery process Pass a route from RTC to the RTA router through the route reflector, RTA Router ID is 1.1.1.1, RTB Router ID is 2.2.2.2, RTD Router ID is 3.3.3.3, RTC Router ID is 4.4.4.4. RTC publishes a route 4.4.4.4/32 to the IBGP reflector. The reflector RTD learns the route and reflects the route 4.4.4.4/32 to the client RTB.   RTD: Sh ip bgp route 4.4.4.4 BGP local router ID:3.3.3.3 Local AS number: Path:1 available,1 best BGP routing table entry information of 4.4.4.4/32 RR-client route From:30.0.0.2 (4.4.4.4) Relay Nexthop:0.0.0.0 Original nexthop:30.0.0.2 AS-path:(null) Origin:incomplete Attribute value:MED 0, localpref 100,pref-val 0,pre 255 State:valid,internal,best, Advertised to such 1 peers:20.0.0.1 The client RTB learns the 4.4.4.4/32 route reflected by the reflector. The Originator of the route is 4.4.4.4 (that is, RTC router), and the Cluster list is 3.3.3.3 (that is, the route is reflected by the reflector RTD router) , Original nexthop is 30.0.0.2 (the route initiates the next hop), Relay Nexthop is 20.0.0.2 (the route relays the next hop).   RTB: Sh ip bgp route 4.4.4.4 BGP local router ID:2.2.2.2 Local AS number:100 Path:1 available,1 best BGP routing table entry information of 4.4.4.4/32 RR-client route From:20.0.0.2(3.3.3.3) Relay Nexthop:20.0.0.2 Original nexthop:30.0.0.2 AS-path:(null) Origin:incomplete Attribute value:MED 0,localpref 100,pref-val 0,pre 255 State:valid,internal,best, Originator:4.4.4.4 Cluster list:3.3.3.3 Advertised to such 1 peers:10.0.0.1 The RTA router learned the route 4.4.4.4/32 through the EBGP neighbor relationship.   RTA: Sh ip bgp route 4.4.4.4 BGP local router ID:1.1.1.1 Local AS number :200 Path:1 available,1 best BGP routing table entry information of 4.4.4.4/32 From:10.0.0.2 (2.2.2.2) Original nexthop:10.0.0.2 AS-path:100 Origin:incomplete Attribute value:pref-val 0,pre 255 State:valid,external,best, Not advertised to any peers yet In this way, the route reflector successfully shields the BGP horizontal isolation rules and passes the route to the RTA router.   Route reflector (RR) configuration: ①: Enable BGP ②: Establish neighbors under the same BGP-AS. ③: Specify the router and the AS where it is located. ④: Specify the source. ⑤: (neighbor) RR client-configure the client. ⑥:neighbor router-id route-reflector-client   RTD: Router bgp 100 bgp router-id 3.3.3.3 neighbor 2.2.2.2 remote-as 100 neighbor 4.4.4.4 remote-as 100 neighbor 2.2.2.2  route-reflector-client neighbor 4.4.4.4  route-reflector-client Note: if you  are interested in the article, and you can follow SPOTO. And, you want to take any certifed exam, and you can contact us now!