• MPLS BGP virtual private network OptionC实验(方案二)


    1.无RR配置

    拓补图

    其实跟方案一的配置大同小异,就是需要增加命令lsp-trigger bgp-label-route,这条命令的意思就是说,让LDP为带标签的公网BGP路由分发标签

     1.基础的配置

    • IP地址的配置就省略了
    • MPLS域之间运行LDP标签分发协议
    • PE和CE之间路由的交互就省略了,可以参考之前的实验
    • RT以及RD的配置也忽略了,可以参考之前做的实验

    2.ASBR之间i建立MP-EBGP的邻居关系并且宣告PE的路由

    ASBR1:

    bgp 100

    peer 10.1.45.5 as-number 200

    network 2.2.2.2 32

    ipv4-family vpnv4

    peer 10.1.45.5 enable

    ASBR2:

    bgp 200

    peer 10.1.45.4 as-number 100

    network 7.7.7.7 32

    ipv4-family vpnv4

    peer 10.1.45.4 enable

    3.ASBR和PE之间i建立普通的IBGP邻居关系

    PE1:

    bgp 100

    peer 4.4.4.4 as-number 100

    peer 4.4.4.4 connect-interface LoopBack0

    ipv4-family vpnv4

    peer 4.4.4.4 enable

    ASBR1:

    bgp 100

    peer 2.2.2.2 as-number 100

    peer 2.2.2.2 connect-interface LoopBack0

    ipv4-family vpnv4

    peer 10.1.45.5 enable

    AS 200区域同理

    4.MPLS之间开启MPLS协议

    [ASBR1]int g0/0/1

    [ASBR1-GigabitEthernet0/0/1]mpls

    [ASBR2]int g0/0/0

    [ASBR2-GigabitEthernet0/0/0]mpls

    这个时候MPLS域的PE都收到对端的PE的路由,但是还是一条无效的路由

    5.开启标签路由分发协议

    PE1:

    bgp 100

    peer 4.4.4.4 label-route-capability

    ASBR1:

    bgp 100

    peer 2.2.2.2 label-route-capability

    peer 10.1.45.5 label-route-capability

    ASBR2和PE2同理

    6.让ASBR之间的传输携带BGP的标签

    [ASBR1]bgp  100

    [ASBR1-bgp]peer 10.1.45.5 route-policy lable-export export

    [ASBR1]route-policy lable-export permit node 10

    [ASBR1-route-policy]apply mpls-label

    ASBR2同理

    发现现在的路由携带着标签,意思就是说如果ASBR2收到标签为1027的就说明是去往目的地址7.7.7.7的,然后下一跳地址的话是往10.1.45.5发,也就是ASBR2,同理另外一边也是如此

    7.让ASBR发送给PE的路由做标签的替换

    ASBR1:

    bgp  100

    peer 2.2.2.2 route-policy lable-sw export

    route-policy lable-sw permit node 10 
    if-match mpls-label 
    apply mpls-label

    ASBR2同理

    ASBR1收到对端访问自己区域的PE的路由2.2.2.2使用的是1026的标签,这个标签是公网BGP的标签,收到之后做标签替换的动作,把1026的标签替换成1025的标签,这个标签是内部的LDP分发的标签了,然后在传递给P1,PE1会向上游的P1到发送一个特殊标签3来进行隐士空弹出,所以PE收到的就是一个普通的IP报文了

     8.PE之间建立MP-EBGP的关系

    PE1:

    bgp 100

    peer 7.7.7.7 as 200

    peer 7.7.7.7 connect-interface  lo 0

    peer 7.7.7.7 ebgp-max-hop 10

    ipv4-family vpnv4

    peer 7.7.7.7 enable

    PE2同理

    9.验证结果

    虽然现在CE之间都相互有了对方的路由,但是这个并不是方案二去实现的效果,通过抓包可以清楚的看到,现在还是有三层标签的,分别是VPN、BGP、TUNNEL标签,方案二实现的效果就是从三层标签变成两层标签,即BGP和TUNNLE合为一层 

    10.配置触发带标签的公网BGP路由建立LSP的策略

    ASBR1:

    mpls

    lsp-trigger bgp-label-route

    ASBR2同理

    当然这样还不行,可以清楚的看到ASBR2有PE1的路由的标签,为什么P2没有PE1的路由的标签,因为没有路由,有路由才会生成FEC的,ASBR2有PE1的路由因为再建立MP-EBGP宣告了PE的路由

    10.路由的引入

    ASBR1:

    ospf 1

    import-route bgp

    ASBR2同理

    在查看P2设备上的LSP是否有去往2.2.2.2的FEC了

    11.验证最后的效果

    抓包查看就剩下两层的标签了,把TUNNL标签和BGP标签合并成一层标签了,加上VPN标签就剩下了两层标签

     2.有RR配置

    拓补图

    根据以上实验的基础做出以下的调整

    • 取消PE之间的MP-EBGP邻居关系,RR之间建立MP-EBGP邻居即可
    • ASBR宣告自己所在域的RR的路由
    • 每个AS的RR跟PE之间建立MP-IBGP邻居关系,注意要取消对接收的VPN路由或者标签块进行VPN-Target过滤
    • 设置RR之间传递不更改下一跳,RR传递给PE不更改下一跳

    1.ASBR宣告自己所在区域的RR的路由

    ASBR1:

    bgp 100

    network 3.3.3.3 32

    ASBR2同理

    2.RR之间建立MP-EBGP的邻居关系

    RR1:

    bgp 100
    peer 6.6.6.6 as-number 200 
    peer 6.6.6.6 ebgp-max-hop 10 
    peer 6.6.6.6 connect-interface LoopBack0

    ipv4-family vpnv4

    peer 6.6.6.6 enable

    RR2同理

    3.每个AS的RR跟PE之间建立MP-IBGP邻居关系,注意要取消对接收的VPN路由或者标签块进行VPN-Target过滤

    RR1:

    bgp 100

    peer 2.2.2.2 as-number 100 
    peer 2.2.2.2 connect-interface LoopBack0

    ipv4-family vpnv4

    undo policy vpn-target
    peer 2.2.2.2 enable

    PE1:

    bgp 100

    peer 3.3.3.3 as-number 100

    peer 3.3.3.3 connect-interface LoopBack0

    ipv4-family vpnv4

    peer 3.3.3.3 enable

    undo policy vpn-target

    RR2以及PE2同理

    4.观察CE1访问CE2访问的LSP路径

    PE1:PE1去往CE2走的LSP的路径的下一跳是3.3.3.3,也就是RR1

     RR1:RR1去往CE2的走的LSP的路径下一跳是6.6.6.6,也就是RR2

     RR2:RR2去往CE2的走的LSP路径的下一跳是7.7.7.7,也就是PE2

    综上所述,CE1访问CE2的路径是CE1>PE1>RR1>RR2>PE2>CE2,虽然在这张图里面看不出有什么问题,但是如下图所示,如果RR是以R9和R10这种形式连接着其他设备的话,可以就会出现次优路径的问题(红线的路径),那就可以使用下一跳不更改的方法解决这个问题

    5.设置下一跳不更改

    RR1:

    [RR1]bgp 100

    [RR1-bgp]ipv4-family vpnv4

    [RR1-bgp-af-vpnv4]peer 6.6.6.6 next-hop-invariable

    [RR1-bgp-af-vpnv4]peer 2.2.2.2 next-hop-invariable

    RR2:

    [RR2]bgp 200

    [RR2-bgp]ipv4-family vpnv4

    [RR2-bgp-af-vpnv4]peer 7.7.7.7 next-hop-invariable

    [RR2-bgp-af-vpnv4]peer 3.3.3.3 next-hop-invariable

    验证结果:PE1去往CE2的下一跳不再是RR1了,而是对端的PE2,所以这个也解决了次优路径的问题

  • 相关阅读:
    Spring Boot 2.x系列【13】功能篇之声明Bean的八种方式
    04 【函数的扩展】
    computer planetary——全球生物多样性信息机构 (GBIF)
    蓝桥杯备赛系列——倒计时50天!
    Mybatis
    Android统一管理Timer计时器Service工具
    BBR 数学模型直观展示
    TCPIP网络编程第一章踩坑过程 bind() error connect() error
    测试2
    攻防世界WEB练习-mfw
  • 原文地址:https://blog.csdn.net/zljszn/article/details/127102771