实验五:BGP

实验报告 BGP实验

实验拓扑图

在这里插入图片描述

Requirment
  1. 搭建好拓扑如图,测试直连PING通 服务器采用回环口进行模拟。
  2. 大型企业A需要承担互联网的联网任务,用来透传互联网条目,ISPB上挂有很多的服务器,这些服务器在互联网上必须能够访问,ISPC上也有一些列的服务器,要求互联网能够访问。
  3. 每一台路由器都起一个/32 回环地址RX地址为X.X.X.X 用来建立BGP邻居关系。
  4. 大型企业内部起OSPF协议,ISP B内部也起OSPF协议 大型企业A分别和ISP B和ISP C建立BGP邻居关系,以用来透传互联网上的条目。
  5. 要求ISPC学到的挂在ISP B的服务器条目尽可能少。
  6. 要求ISP C前往ISP B那些服务器是通过R3和R5之间的高带宽链路的,为了充份利用链路带宽,要求ISP B访问ISP C上的服务器是走的R4和R6之间的底带宽链路,这些配置都需要在大型企业业上完成。
  7. 要求ISP和企业之间的BGP邻居建立是安全的。
  8. 完成以上所有配置后,确信网络中的每一台设备都学到了服务器对应的BGP条目。
实验步骤
  • 第一步,首先按照实验需求搭建好实验拓扑图,如下:

    在这里插入图片描述

  • 第二步,按照规划,配置相应的IP地址,并且按照要求创建相应的回环口,用来表示相应的服务器

BGP邻居关系的建立
  • 这里我们不管是建立EBGP还是IBGP邻居关系都统一采用回环口的方式建立,所以我们还需要在每个路由器上面创建一个回环口,如果路由器为AR1,回环口的地址就为1.1.1.1 /32,所有路由器都是按照这种配置方式。其次对AR2这样的路由器需要和AR1建立EBGP关系,与AR3和AR4建立IBGP邻居关系,也可以在AR2上面只创建一个回环口来代替,当然我们也可以一个回环口单独建立一个邻居关系,这些都是没有什么影响的,接下我们开始建立邻居关系了

  • 按照图示的规划,AR1和其回环口属于AS1,AR2、AR3、AR4以及其回环口属于AS2,AR5、AR6、AR7及其回环口属于AS3,在具体介绍命令之前,我们应该需要知道,建立邻居关系的过程应该是两个路由器先互相发送单播包指邻居、然后通过ping的方式检测其TCP可达性、然后再是后面具体的过程,然后开始介绍命令吧

    1. 首先我们我们应该让AR1的回环口和AR2的回环口建立EBGP邻居关系,首先是在AR1路由器下面配置,命令如下:

      • [AR1]BGP 1 //数字代表路由器AR1所在的自治系统的编号
        • [AR1-bgp]peer 2.2.2.2 as-number 2 //邻居为AR2的回环口IP,2.2.2.2 因为要建立EBGP关系,对等体的AS号为2
        • [AR1-bgp]peer 2.2.2.2 ebgp-max-hop 2 //把发送给对等体的建立TCP连接的数据包的TTL改成2,因为默认为1,会导致数据包不能到达对等体的回环口
        • [AR1-bgp]peer 2.2.2.2 connect-interface LoopBack3 //默认情况下数据包从物理接口发出,所以数据包的源IP是物理接口的IP,这就会导致TCP连接不能正常建立,所以我们需要修改数据包源IP是由建立邻居关系的回环口3发出
        • [AR1]ip route-static 2.2.2.2 255.255.255.255 12.12.12.2 //默认情况下,AR1和AR2的两个回环口都是不能ping通过的,通过这一步,保证两个回环口可以互通,这也就是保证TCP的可达性
    2. 然后我们在AR2路由器上面配置相关命令:

      • [AR2]BGP 2 //数字代表路由器AR1所在的自治系统的编号

        • [AR2-bgp]peer 1.1.1.1 as-number 1 //邻居为AR1的回环口IP,1.1.1.1 因为要建立EBGP关系,对等体的AS号为1
        • [AR1-bgp]peer 1.1.1.1 ebgp-max-hop 2 //把发送给对等体的建立TCP连接的数据包的TTL改成2,因为默认为1,会导致数据包不能到达对等体的回环口
        • [AR1-bgp]peer 1.1.1.1 connect-interface LoopBack1 //默认情况下数据包从物理接口发出,所以数据包的源IP是物理接口的IP,这就会导致TCP连接不能正常建立,所以我们需要修改数据包源IP是由建立邻居关系的回环口1发出
        • ip route-static 1.1.1.1 255.255.255.255 12.12.12.1
  1. 然后AR1和AR2就可以建立EBGP的邻居关系了,如下图:

    在这里插入图片描述

  2. 在AR2路由器上面查看一样可以发现是Established状态了

  • 接下来在AS2中的路由器AR2、AR3、AR4两两相互建立IBGP的邻居关系,这里不再需要更改TTL值,默认是255。在建立邻居关系之前,我们需要在AS2内部配置OSPF动态路由协议,目的是保证路由器之间的TCP可达性,使得各自用来建立IBGP邻居关系的回环口可以相互ping通,这里不再采用静态路由,毕竟配置起来太麻烦,命令不在描述,只要注意OSPF宣告的时候只能是213.34.1.0 /30、213.34.1.4 /30、213.34.1.8 /30和各自的回环口网段就可以了

    1. 首先是AR2和AR3建立IBGP的邻居关系,首先在AR2上面配置,命令如下:

      • [AR2-bgp]peer 3.3.3.3 as-number 2
      • [AR2-bgp]peer 3.3.3.3 connect-interface LoopBack1
    2. 然后再AR3上面配置,命令如下:

      • [AR3-bgp]peer 2.2.2.2 as-number 2
      • [AR3-bgp]peer 2.2.2.2 connect-interface LoopBack1
    3. 然后AR2和AR4之间:

      • [AR2-bgp]peer 4.4.4.4 as-number 2
      • [AR2-bgp]peer 4.4.4.4 connect-interface LoopBack1
    4. 在AR4上面配置:

      • [AR4-bgp]peer 2.2.2.2 as-number 2
      • [AR4-bgp]peer 2.2.2.2 connect-interface LoopBack1
    5. AR3和AR4之间命令都是相同的,不在罗列

    6. 然后各自的IBGP邻居关系就建立好了,如下图:

      • AR2上面查看:

      在这里插入图片描述

      • AR4上面查看:

        在这里插入图片描述

      • 可以看到相应的IBGP关系都已经建立好了

  • 接下来是在AR3和AR5、AR4和AR6分别建立EBGP关系,这里建立的EBGP关系与AR1和AR2建立关系的步骤一样,如下:

    1. 首先是AR3和AR5,首先在AR3上面配置:

      • [AR3]BGP 2
        • [AR3-bgp]peer 5.5.5.5 as-number 3
        • [AR3-bgp]peer 5.5.5.5 ebgp-max-hop 2
        • [AR3-bgp]peer 5.5.5.5 connect-interface LoopBack1
        • [AR3]ip route-static 5.5.5.5 255.255.255.255 35.35.35.2
    2. 然后再AR5上面配置:

      • [AR5]BGP 3
        • [AR5-bgp]peer 3.3.3.3 as-number 2
        • [AR5-bgp]peer 3.3.3.3 ebgp-max-hop 2
        • [AR5-bgp]peer 3.3.3.3 connect-interface LoopBack1
        • [AR5]ip route-static 3.3.3.3 255.255.255.255 35.35.35.1
    3. 这样AR3和AR5之间的EBGP邻居关系就建立好了,如下图:

      在这里插入图片描述

    4. 然后是AR4和AR6之间建立EBGP的邻居关系,步骤和AR3和AR5之间一样,不在罗列命令

  • 最后是AS3内部的IBGP邻居关系的建立,和AS2内部一样,首先启动一个OSPF协议,保证TCP的可达性,宣告的网段包括AR5、AR6、AR7的各自回环口,以及83.69.1.0/30、83.69.1.4/30网段,然后AR5和AR7、AR6和AR7建立相应的IBGP关系,就可以了,命令也不再罗列出,给出建立好之后的截图如下:

    在这里插入图片描述

  • 最后,所有的BGP邻居关系就建立好了,接下来需要保证左右两边的模拟服务器的回环口都可以互相通信,所以我们应该在AR1和AT7路由器上面宣告自己服务器IP地址,以便相互传递

    1. 首先是AR1:

      • [AR1-bgp]network 210.1.1.0 24

      • [AR1-bgp]network 210.1.2.0 24

      • 然后我们查看AR7路由表,看是否存在这两个条目:

        在这里插入图片描述

      • 很明显没有这是什么问题了, 我们查看AR2的路由表发现上面存在210.1.1.0 /24、210.1.2.0 /24网段,如下图:

        在这里插入图片描述

      • 我们在查看AR3的路由表可以发现并没有相应的条目,说明AR2没有成功的传递给AR3,我们来查看看AR3的BGP拓普表:

        在这里插入图片描述

        1. 可以发现这两个条目的下一跳还是AR1路由器,本来应该是AR2才对,所以在拓扑表中这两个条目表示无效的,是不会加到路由表中,只有存在于拓扑表中,并且最优和有效的条目才会传递下去,解决办法:更改下一跳,因为路由器在把路由条目传递给IBGP关系的路由器的时候,下一跳不会自动指向发送路由信息的路由器,而是保持上一次的值不变,而传递给EBGP邻居关系的路由器的时候,下一跳会自动更改,所以我们这里需要在AR2上面配置一条命令:

          • [AR2-bgp]peer 3.3.3.3 next-hop-local //当传递路由信息给邻居路由器的时候,路由条目的下一跳指向自己

          • 我们在AR3上面查看路由表:

          在这里插入图片描述

          • 在查看AR3的BGP拓普表:

            [外链图片转存失败(img-BrP4yWuG-1569209796185)(images\qweqwe.png)]

          • 可以发现路由表和拓普标都正常了

          • 然后我们接下来我们还需要更改到AR4的路由信息的下一跳:

            • [AR2-bgp]peer 4.4.4.4 next-hop-local
        2. 接下来,AR5和AR7与AR6和AR7之间也是IBGP的邻居关系,也要在AR5和AR6上面修改相应的下一跳

        3. 最后我们查看AR7的路由表:

        在这里插入图片描述

        • 已经拥有相应的210.1.1.0 /24、210.1.2.0 /24的路由条目了
    2. 然后就是把AR7上面的服务器信息宣告出来,让AR1能够学习到,并且要在AR3和AR4上面修改下一跳,最后查看AR1的路由表如下:

      在这里插入图片描述

    3. 我们用AR1的服务器pingAR7的服务器测试一下:

      在这里插入图片描述

    4. 可以发现,已经可以正常通信了

AR1学习到更少的AR7服务器的路由条目
  • 这里我们可以做一个简单的BGP路由汇总,在AR7上面配置,命令如下:

    1. [AR7-bgp]aggregate 134.0.0.0 255.248.0.0 detail-suppressed //把所有住类为134的明细条目汇总为134.0.0.0 /13,并且抑制明细条目的传递,在AR7上面查看BGP拓普表:

      在这里插入图片描述

      • 可以发现明细条目被抑制了,汇总条目134.0.0.0 /13才是有效并且最优的,我们在AR1上面收到的也是汇总之后的路由条目
安全认证
  • 接下来我们需要在AR1和AR2之间配置安全认证,命令如下:
    1. [AR1-bgp]peer 2.2.2.2 password cipher 密码
    2. [AR2-bgp]peer 1.1.1.1 password cipher 密码
    3. 配置完成后,邻居关系还是正常的,因为安全认证发生在TCP建立连接阶段,这里配置安全认证的时候早已完成,所以我们需要重启BGP进程才可以发现如果一方没有配置安全认证,就会造成BGP邻居关系不能建立
配置流量选路
  • 我们可以通过更改BGP拓扑表里面的相应的公有或者私有属性来变更流量的路径,这里我们通过修改公有必遵属性Originate来变更流量 ,首先我们查看AR7的路由表,可以发现到达AR1的流量路径的相应路由条目的下一跳是5.5.5.5,我们需要通过修改Originate属性,让流量的下一跳是6.6.6.6

    在这里插入图片描述

  • 很明显到达路由器AR1的路由条目可以从AR3、AR5或者AR4、AR6的路径学习到,我们修改当路由条目在通过AR3、AR5之间的链路的时候,Originate变为最低等的Incomplete,这样AR7路由器就会选择从AR6传递过来的路由条目,在AR3上面配置的命令如下:

    1. [AR3-acl-basic-2000]rule 1 permit source 210.1.0.0 0.0.3.255 //匹配AR1宣告的路由条目
    2. [AR3]route-policy DADA permit node 1
      • [AR3-route-policy]if-match acl 2000
      • [AR3-route-policy]apply origin incomplete
    3. [AR3-bgp]peer 5.5.5.5 route-policy DADA export //当路由条目从AR3出去到AR5的时候匹配route-policy DADA,如果匹配成功,就修改路由条目的Originate变为最低等的Incomplete
  • 查看AR7的BGP拓扑表:

    在这里插入图片描述

    1. 下一跳为5.5.5.5的条目的起源变成了?,这就表示它的起源是Incomplete,i表示是IGP
  • 我们在查看AR7的路由表:

    在这里插入图片描述

    1. 下一跳成功变成6.6.6.6,修改成功

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值