实验五: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条目。

实验步骤

  • 第一步,首先按照实验需求搭建好实验拓扑图,以下:node

    在这里插入图片描述

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

BGP邻居关系的创建
  • 这里咱们不论是创建EBGP仍是IBGP邻居关系都统一采用回环口的方式创建,因此咱们还须要在每一个路由器上面建立一个回环口,若是路由器为AR1,回环口的地址就为1.1.1.1 /32,全部路由器都是按照这种配置方式。其次对AR2这样的路由器须要和AR1创建EBGP关系,与AR3和AR4创建IBGP邻居关系,也能够在AR2上面只建立一个回环口来代替,固然咱们也能够一个回环口单独创建一个邻居关系,这些都是没有什么影响的,接下咱们开始创建邻居关系了安全

  • 按照图示的规划,AR1和其回环口属于AS1,AR二、AR三、AR4以及其回环口属于AS2,AR五、AR六、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路由器上面配置相关命令:app

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

        • [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的邻居关系了,以下图:oop

    在这里插入图片描述

  2. 在AR2路由器上面查看同样能够发现是Established状态了学习

  • 接下来在AS2中的路由器AR二、AR三、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和AR五、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的可达性,宣告的网段包括AR五、AR六、AR7的各自回环口,以及83.69.1.0/30、83.69.1.4/30网段,而后AR5和AR七、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 /2四、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 /2四、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的路由条目能够从AR三、AR5或者AR四、AR6的路径学习到,咱们修改当路由条目在经过AR三、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,修改为功