BGP的反射器与联邦综合实验

实验原理

  • IBGP水平分割:从IBGP对等体处学到的路由不能传递给其他IBGP对等体,这导致了路由传递障碍,如下图中假设R1从EBGP处学到了一跳路由,它可以把这条信息传给它的IBGP对等体即R2,但R2不能传给它的IBGP对等体R3。
    在这里插入图片描述
  • 为了让R3可以学到R1传来的路由信息,打破IBGP水平分割,我们可以让R1与R3间建立IBGP对等体关系,这样R1就可以直接将路由信息发送给R3。
    在这里插入图片描述
  • 但通过这种方式打破水平分割,必须让一个AS内部所有运行BGP且有EBGP对等体的路由器两两建立IBGP对等体,才可以保证从EBGP对等体处学到的路由可以传递给AS内所有运行BGP的路由器。
    在这里插入图片描述
  • 由于IBGP水平分割,导致本地需要和所有本AS内部的BGP设备建立IBGP邻居关系;IBGP邻居关系的数量成指数上升,所以下面介绍另外两种打破水平分割的方式:反射器和联邦。

反射器

  • 我们可以将一台IBGP设备配置成为路由反射器(RR),被配置为路由反射器的设备在一定条件下将从IBGP邻居处学到的BGP路由传给其他BGP邻居
    在这里插入图片描述
  • 在我们指定一台设备成为路由反射器RR的同时,必须指定一个或者多个邻居成为他的客户,RR和客户之间构成的系统我们称为反射簇,每一个簇设定一个簇ID,簇ID为反射簇中RR的RID,其他没定义为客户的邻居被称为非客户
[r3]bgp 2345
[r3]peer 2.2.2.2 reflect-client  # 指定R3为RR,且R2为R3的客户,其他未指定的IBGP邻居为非客户

反射规则

  • 如果路由反射器从自己客户处学来一条IBGP路由,则他将反射给自己所有的客户和非客户。
  • 如果路由反射器从自己非客户处学来一条IBGP路由,则他将反射给自己所有的客户,但是不反射给非客户。非非不传。
  • 当路由器在进行路由反射时,只反射自己BGP路由中最优的路由。

反射器中的防环属性

由于IBGP水平分割是用来防止AS内部路由环路,而路由反射器打破了IBGP水平分割,则将有可能出现路由环路,所以为了避免环路的出现,路由反射器在设计的时候,专门引入了两个属性,来避免环路从产生: Originator_ID(起源者ID)、Cluster_list(簇列表)

Originator_ID – 起源者ID

  • 如果RR从IBGP邻居处学到的路由没有携带该属性,则将再该路由信息上添加该属性,谁发送给RR的路由信息,Originator_ID就是谁的RID,如果RR从IBGP邻居处学到的路由携带该属性,则不修改该属性。当一台设备收到的IBGP路由信息后,发现里面的Originator_ID是自己的RID,则不接受这条路由信息。
    在这里插入图片描述

  • 但只是使用起源者ID不能完全解决环路的问题,如下图中,虽然起源者不会接收回传的路由,但其他已拥有该路由的设备呢?所以还需要另一个属性帮助防环—Cluster_list(簇列表)。
    在这里插入图片描述

Cluster_list – 簇列表

  • 一个AS内部存在多次反射的话,那么,一定存在多个反射簇,则每个RR在放射路由信息的时候,会在路由信息中的簇列表属性中加入本地的RID。
    在这里插入图片描述
  • 如果收到的IBGP路由信息的Cluster_list中包括自己的RID则不接收该路由

注意:
这两个属性,只是用来在IBGP内部进行防环的,所以,当这些路由被传递到EBGP对等体时,将不携带这两属性。RR在进行路由反射时,除了会在路由信息中添加以上两个属性外,其他属性不变

联邦

  • 将一个AS划分为多个小AS,小AS间就可以使用EBGP路由传递规则,所以联邦就相当于大AS里的小AS,不过联邦EBGP关系之间仅继承EBGP之间路由传递的规则,但是不能像EBGP对等体一样修改路由属性,还需要遵守AS-BY-AS规则,是一种特殊的存在。
    在这里插入图片描述
  • 上图中R1-R2-R3为一个联邦,R4-R5-R6为一个联邦,R3-R4间建立联邦RBGP关系,R3和R4间可以互相发送任何来源的BGP路由,且不会修改路由属性。划分联邦后,实际还是在一个AS内,只是联邦间在传递路由信息规则有所改变,可以用来打破IBGP水平分割而已。
[r3]bgp 64512 # 联邦内运行BGP的设备在运行BGP时需先指定联邦(小AS)号,以免后面忘记有联邦的存在
[r3-bgp]router-id 3.3.3.3 # 指定RID
[r3-bgp]confederation id 2 # 声明自己的大AS号(真实所在的AS号)
[r3-bgp]peer 1.1.1.1 as-number 64512 # 联邦成员建立IBGP邻居关系时使用小号
[r3-bgp]confederation peer-as 64513 # 需要建立联邦的EBGP对等体关系时,需要先声明对方的小号
[r3-bgp]peer 4.4.4.4 as-number 64513
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r3-bgp]peer 4.4.4.4 ebgp-max-hop 2 # 联邦间使用EBGP路由传递规则,所以,默认的TTL值1,使用环回建立时需修改

联邦的防环

同反射器一样,打破了IBGP水平分割,有可能会造成环路,所以联邦也需要解决环路问题。联邦EBGP之间防环可以直接采用EBGP水平分割的机制来进行防环,直接在AS_PATH属性中增加联邦AS号来进行防环,只不过,联邦的AS号会使用括号括起来,来进行区分。

<r3>display bgp routing-table 

 BGP Local router ID is 172.16.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 6
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  10.0.0.0/24        172.16.0.1      0          100        0      1i
 *>i  11.0.0.0/24        172.16.130.1    0          100        0      (64513) 3i
 *>i  12.1.1.0/24        172.16.0.1      0          100        0      i
 *>i  78.1.1.0/24        172.16.130.1    0          100        0      (64513)i
 *>i  172.16.0.0         172.16.0.1                 100        0      ?
 * i                     172.16.130.1               100        0      (64513)?

实验要求

在这里插入图片描述

  • AS1存在两个环回,一个地址为192.168.1.0/24,该地址不能在任何协议中宣告;AS3中存在两个环回,一个地址为192.168.2.0/24,该地址不能再任何协议中宣告,最终要求这两个环回可用互相通信
  • AS1的另一个环回为10.0.0.0/24,AS3的另一个环回为11.0.0.0/24
  • 整个AS2的IP地址为172.16.0.0/16,请合理划分
  • AS间的骨干链路随意定制
  • 使用BGP协议让整个网络的环回可用互相访问
  • 减少路由条目数量,避免环路出现

实验步骤

IP规划

  • AS间的骨干链路随意定制,所以,R1-R2:12.0.0.0/24,R7-R8:78.1.1.0/24
  • AS1的两个环回:192.168.1.0/24和10.0.0.0/24
  • AS3的两个环回:192.168.2.0/24和11.0.0.0/24
  • AS2基于172.16.0.0/16进行划分,将AS2划分为两个OSPF区域:area 0(R2-3-4-7),area 1(R2-5-6-7),于是将172.16.0.0/16划分为172.16.0.0/17和172.16.128.0/17给area 0和area 1
  • area 0中给每个环回和所有骨干链路一个掩码为24的网段,每个骨干链路使用掩码为29的网段
  • area 1中给每个环回和所有骨干链路一个掩码为24的网段,每个骨干链路使用掩码为29的网段
    在这里插入图片描述

路由

  • R1-R2和R7-R8间通过直连建立EBGP对等体
  • AS2内运行OSPF,将area 1配置为完全末梢区域,将area 1的路由汇总为172.16.128.0/19到area 0
  • 将R2-R3-R4配置为一个联邦,联邦AS号为64512,且R3为路由反射器,R2为R3的客户
  • 将R5-R6-R7配置为一个联邦,联邦AS号为64513,且R6为路由反射器,R7为R6的客户
  • R1在BGP中宣告10.0.0.0/24,R8在BGP中宣告11.0.0.0/24
  • R2和R3将OSPF重发布到BGP中并开启自动汇总
  • R7和R2在BGP中宣告12.1.1.0/24和78.1.1.0/24
  • 在R1和R8间建立GRE隧道,使R1和R8的两个为宣告的环回可以通信

实验配置

R1配置

# 
 sysname r1
# 配置接口IP
interface GigabitEthernet0/0/0
 ip address 12.1.1.1 255.255.255.0 
#
interface LoopBack1
 ip address 192.168.1.1 255.255.255.0 
# 创建tunnel口,搭建GRE隧道
interface Tunnel0/0/0
 ip address 192.168.3.1 255.255.255.0 
 tunnel-protocol gre
 source 12.1.1.1
 destination 78.1.1.2
# 运行BGP
bgp 1 
 router-id 1.1.1.1
 peer 12.1.1.2 as-number 2 
 network 10.0.0.0 255.255.255.0 
# 静态路由配合GRE
ip route-static 192.168.2.0 255.255.255.0 Tunnel0/0/0 
#

R2配置

#
 sysname r2
# 配置接口IP
interface GigabitEthernet0/0/0
 ip address 12.1.1.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 172.16.3.1 255.255.255.248 
#
interface GigabitEthernet0/0/2
 ip address 172.16.131.1 255.255.255.248 
#
interface LoopBack0
 ip address 172.16.0.1 255.255.255.0 
# 运行BGP
bgp 64512 
 router-id 2.2.2.2
 confederation id 2
 confederation peer-as 64513
 peer 12.1.1.1 as-number 1 
 peer 172.16.1.1 as-number 64512 
 peer 172.16.1.1 connect-interface LoopBack0
 peer 172.16.128.1 as-number 64513 
 peer 172.16.128.1 ebgp-max-hop 2 
 peer 172.16.128.1 connect-interface LoopBack0
 summary automatic
 network 12.1.1.0 255.255.255.0 
 import-route ospf 1
 peer 172.16.1.1 next-hop-local 
 peer 172.16.128.1 next-hop-local 
# 运行OSPF
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 172.16.0.0 0.0.127.255 
 area 0.0.0.1 
  network 172.16.128.0 0.0.127.255 
  stub no-summary
#

R3配置

#
 sysname r3
# 配置接口IP
interface GigabitEthernet0/0/0
 ip address 172.16.3.2 255.255.255.248 
#
interface GigabitEthernet0/0/1
 ip address 172.16.3.9 255.255.255.248 
#
interface LoopBack0
 ip address 172.16.1.1 255.255.255.0 
# 运行BGP
bgp 64512
 peer 172.16.0.1 as-number 64512 
 peer 172.16.0.1 connect-interface LoopBack0
 peer 172.16.2.1 as-number 64512 
 peer 172.16.2.1 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 172.16.0.1 enable
  peer 172.16.0.1 reflect-client
  peer 172.16.2.1 enable
# 运行OSPF
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 172.16.0.0 0.0.127.255 
# 

R4配置

#
 sysname r4
# 配置接口IP
interface GigabitEthernet0/0/0
 ip address 172.16.3.10 255.255.255.248 
#
interface GigabitEthernet0/0/1
 ip address 172.16.3.17 255.255.255.248 
#
interface LoopBack0
 ip address 172.16.2.1 255.255.255.0 
# 运行BGP
bgp 64512
 router-id 4.4.4.4
 confederation id 2
 confederation peer-as 64513
 peer 172.16.1.1 as-number 64512 
 peer 172.16.1.1 connect-interface LoopBack0
 peer 172.16.130.1 as-number 64513 
 peer 172.16.130.1 ebgp-max-hop 2 
 peer 172.16.130.1 connect-interface LoopBack0
# 运行OSPF
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 172.16.0.0 0.0.127.255 
#

R5配置

#
 sysname r5
# 配置接口IP
interface GigabitEthernet0/0/0
 ip address 172.16.131.2 255.255.255.248 
#
interface GigabitEthernet0/0/1
 ip address 172.16.131.9 255.255.255.248 
#
interface LoopBack0
 ip address 172.16.128.1 255.255.255.0 
# 运行BGP
bgp 64513
 router-id 5.5.5.5
 confederation id 2
 confederation peer-as 64512
 peer 172.16.0.1 as-number 64512 
 peer 172.16.0.1 ebgp-max-hop 2 
 peer 172.16.0.1 connect-interface LoopBack0
 peer 172.16.129.1 as-number 64513 
 peer 172.16.129.1 connect-interface LoopBack0
# 运行OSPF
ospf 1 router-id 5.5.5.5 
 area 0.0.0.1 
  network 172.16.128.0 0.0.127.255 
  stub 
#

R6配置

#
 sysname r6
# 配置接口IP
interface GigabitEthernet0/0/0
 ip address 172.16.131.10 255.255.255.248 
#
interface GigabitEthernet0/0/1
 ip address 172.16.131.17 255.255.255.248 
#
interface LoopBack0
 ip address 172.16.129.1 255.255.255.0 
# 运行BGP
bgp 64513
 router-id 6.6.6.6
 confederation id 2
 peer 172.16.128.1 as-number 64513 
 peer 172.16.128.1 connect-interface LoopBack0
 peer 172.16.130.1 as-number 64513 
 peer 172.16.130.1 connect-interface LoopBack0
 peer 172.16.130.1 reflect-client
# 运行OSPF
ospf 1 router-id 6.6.6.6 
 area 0.0.0.1 
  network 172.16.128.0 0.0.127.255 
  stub 
#

R7配置

#
 sysname r7
# 配置接口IP
interface GigabitEthernet0/0/0
 ip address 172.16.131.18 255.255.255.248 
#
interface GigabitEthernet0/0/1
 ip address 172.16.3.18 255.255.255.248 
#
interface GigabitEthernet0/0/2
 ip address 78.1.1.1 255.255.255.0 
#
interface LoopBack0
 ip address 172.16.130.1 255.255.255.0 
# 运行BGP
bgp 64513
 router-id 7.7.7.7
 confederation id 2
 confederation peer-as 64512
 peer 78.1.1.2 as-number 3 
 peer 172.16.2.1 as-number 64512 
 peer 172.16.2.1 ebgp-max-hop 2 
 peer 172.16.2.1 connect-interface LoopBack0
 peer 172.16.129.1 as-number 64513 
 peer 172.16.129.1 connect-interface LoopBack0
 summary automatic
 network 78.1.1.0 255.255.255.0 
 import-route ospf 1
 peer 172.16.2.1 next-hop-local 
 peer 172.16.129.1 next-hop-local 
#
ospf 1 router-id 7.7.7.7 
 area 0.0.0.0 
  network 172.16.0.0 0.0.127.255 
 area 0.0.0.1 
  network 172.16.128.0 0.0.127.255 
  stub no-summary
#

R8配置

#
 sysname r8
#
# 配置接口IP
interface GigabitEthernet0/0/0
 ip address 78.1.1.2 255.255.255.0 
#
interface LoopBack0
 ip address 11.0.0.1 255.255.255.0 
#
interface LoopBack1
 ip address 192.168.2.1 255.255.255.0 
# 创建tunnel口,搭建GRE隧道
interface Tunnel0/0/0
 description 10.0.0.1
 ip address 192.168.3.2 255.255.255.0 
 tunnel-protocol gre
 source 78.1.1.2
 destination 12.1.1.1
# 运行BGP
bgp 3
 router-id 8.8.8.8
 peer 78.1.1.1 as-number 2 
 network 11.0.0.0 255.255.255.0  
# 静态路由配合GRE
ip route-static 192.168.1.0 255.255.255.0 Tunnel0/0/0
#

结果测试

R8pingR1的10.0.0.1

在这里插入图片描述

R8以192.168.2.1为源IPpingR1的192.168.1.1

在这里插入图片描述

R8pingR5和R4的环回

在这里插入图片描述

实验中需要注意的问题

  • 在创建GRE隧道时,需要指定source,且source是可达的,但在我们的实验拓扑中,R1的source只能为g 0/0/0口,但我们并没有在任何路由协议中宣告该接口的IP,所以在创建GRE隧道前需要先使该接口可达。如果在R1的BGP中宣告12.1.1.0/24网段,R2收到该路由信息,由于R2本地存在该路由信息,且R2是通过该路由信息和R1建立EBGP对等体,所以该路由信息在R2不可用且不传递。为了可以让R8收到12.1.1.0/24网段的路由信息,我选择在R2的BGP中宣告,同理,在R7的BGP中宣告78.1.1.0/24。
  • 在该实验中我将OSPF划分为两个区域,并且将area 1配置为完全末梢区域,R2和R7作为area 0和area 1间的ABR,都向内发布了一条缺省(实验发现area 1中的路由器只会选择其中一条缺省而不是负载均衡),造成选路不佳的问题,比如R6想访问R4,但R6的缺省指向R2,那R6只能将数据先发送至R2,由R2转发,这就导致绕远路。所以这里最好不要使用我这种划分方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值