• 【HCIP】BGP实验


    拓扑

    在这里插入图片描述

    建立BGP邻居关系

    1. 单链路的EBGP邻居关系
    [R1]bgp 1	//启动时需要定义AS号,没有多进程概念;一台设备只能在一个AS中工作
    [R1-bgp]router-id 1.1.1.1	//建议配置RID;RID生成规则同OSPF
    [R1-bgp]peer 12.1.1.2 as-number 2	//对端接口IP地址+对端所在的AS号
    //R2
    [R2]bgp 2
    [R2-bgp]router-id 2.2.2.2
    [R2-bgp]peer 12.1.1.1 as-number 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    两端配置完成后,邻居间先进行TCP的三次握手,建立TCP会话

    [R1]display tcp status
    TCPCB    Tid/Soid Local Add:port        Foreign Add:port      VPNID  State
    b4c2eb08 6  /1    0.0.0.0:23            0.0.0.0:0             23553  Listening
    b4c2eed4 164/1    0.0.0.0:179           12.1.1.2:0            0      Listening
    b4c2f018 164/8    12.1.1.1:179          12.1.1.2:50230        0      Established
    //实际上建立两个会话,但最终只保留RID大的路由器发起的会话,此时发起会话的路由器的端口号是随机的,而RID小的路由器的端口号是TCP 179
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    当TCP会话建立后,邻居间收发一次Open包(携带RID),建立邻居关系,生成 邻居表

    [R1]display bgp peer
    
     BGP local router ID : 1.1.1.1
     Local AS number : 1
     Total number of peers : 1                Peers in established state : 1
    
      Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv
    
      12.1.1.2        4           2        7        8     0 00:05:15 Established       0
    //V:版本version 4
    //AS:对端AS号
    //MsgRcvd:收到包的数量
    //MsgSent:发送包的数量
    //OutQ:进出策略为0
    //Up/Down:建立时长
    //State:状态
    //PrefRcv:从对端学习到的路由数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    1. 建立IBGP邻居关系 — 由于一个AS的内部大多拓扑冗余比较丰富,若使用物理接口来作为源、目IP地址建立BGP邻居,将浪费冗余资源,建议使用环回接口作为源、目IP地址;
      稳定,且可以同时使用多条链路资源
    //配置
    [R2]bgp 2
    [R2-bgp]router-id 2.2.2.2
    [R2-bgp]peer 3.3.3.3 as-number 2
    ---
    [R3]bgp 2
    [R3-bgp]router-id 3.3.3.3
    [R3-bgp]peer 2.2.2.2 as-number 2
    //在使用环回地址作为源、目IP地址时,既要定义目标为对端的环回,还需要修改本端的源为环回,否则将自动使用本地的物理出口作为源、
    [R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
    ---
    [R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. 多链路的EBGP邻居关系
      建议使用环回作为源、目标接口
      1、IP可达 — 一般使用静态
    [R4]ip route-static 5.5.5.0 24 45.1.1.5
    [R4]ip route-static 5.5.5.0 24 54.1.1.5
    ---
    [R5]ip route-static 4.4.4.0 24 45.1.1.4 
    [R5]ip route-static 4.4.4.0 24 54.1.1.4
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、建立EBGP邻居关系

    [R4]bgp 2
    [R4-bgp]router-id 4.4.4.4
    [R4-bgp]peer 5.5.5.5 as-number 3
    [R4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
    ---
    [R5]bgp 3   
    [R5-bgp]router-id 5.5.5.5
    [R5-bgp]peer 4.4.4.4 as-number 2
    [R5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3、TTL问题,默认IBGP邻居间的数据包TTL值为255,EBGP邻居间TTL值为1,因此若使用环回来建立EBGP邻居关系,TTL值不够

    //修改TTL
    [R4-bgp]peer 5.5.5.5 ebgp-max-hop 2
    ---
    [R5-bgp]peer 4.4.4.4 ebgp-max-hop 2
    
    • 1
    • 2
    • 3
    • 4

    宣告路由

    BGP协议所宣告路由为本地路由表中任何来源产生的路由
    宣告时可逐条选择本地路由表中的路由信息宣告

    [R1]bgp 1
    [R1-bgp]network 1.1.1.0 24
    //宣告时,所宣告的网络号必须和本地路由表中的记完全一致
    
    • 1
    • 2
    • 3

    当宣告配置完成后,本地生成 BGP表 — 装载本地发出及接收到所有BGP路由

    [R1]display bgp routing-table
     Total Number of Routes: 1
          Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
     *>   1.1.1.0/24         0.0.0.0         0                     0      i
    //* 可用;> 优秀;i 标识路由条目通过IBGP学习,不加表且不传递
    //一条路由条目可用且优秀才能传输给本地的其他邻居,才能加载到本地的路由表中
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    条目优秀条件

    1. 同步问题 — 目前的设备同步规则默认关闭,该问题在当下已经不需要关注了
      同步问题 — 本地必须先通告IGP徐熙到该路由,再通过BGP学习(不可行)
    2. 下一跳不可达问题 — 因为 AS-BY-AS规则,使得下一跳地址在一个AS内部传递时,默认不修改,故通过本地IBGP邻居学习到的路由,大多下一跳不可达
    [R2]bgp 2
    [R2-bgp]peer 3.3.3.3 next-hop-local	//R2 将路由传递给3.3.3.3的时候,修改下一跳属性为本地
    
    • 1
    • 2

    逻辑悖论

    过河是为了取河对面的木板修船;
    修船是为了过河!

    <R4>dis bgp routing-table
     Total Number of Routes: 1
          Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
          5.5.5.0/24         5.5.5.5         0                     0      3i
    
    • 1
    • 2
    • 3
    • 4

    R5 给 R4 的 5.5.5.0/24 网段不优,正是因为此逻辑悖论
    结局方法:将R4-5建邻时的静态写到 5.5.5.5/32 即可

    路由表展示:
    在这里插入图片描述
    连通性测试:
    在这里插入图片描述

  • 相关阅读:
    2024年新版宝塔面板如何安装WordPress网站教程
    SpringBoot整合Kafka
    板块一 Servlet编程:第三节 HttpServletRequest对象全解与请求转发 来自【汤米尼克的JAVAEE全套教程专栏】
    概统 | 多维随机变量
    Vue2 Element DatePicker组件设置默认日期、控制日期范围
    给电脑一键重装系统后找回照片查看器的方法
    特性介绍 | MySQL测试框架 MTR 系列教程(四):语法篇
    尿苷二磷酸修饰阿拉伯糖,阿拉伯糖偶联核苷酸,UDP-B-L-阿拉伯糖二钠盐,15839-78-8
    Python3,区区一段代码,自己就可以制作动漫头像,YYDS。
    Ubuntu22.04 下 NFS 相关问题与完整配置(客户机 MacOS)
  • 原文地址:https://blog.csdn.net/SuichI314/article/details/126061246