• 【HCIE】13.VXLAN EVPN


    数据中心一直使用VXLAN当做隧道协议,但是VXLAN没有自己的控制面协议,EVPN本来就可以传递MAC信息,IP信息,也可以传递VNI。就将EVPN做了改造(只把标签改了VNI)。

    为什么二层一定需要一个控制面?

    1.N个节点需要创建N*(N-1)/2条隧道,配置工作量大。

    2.VXLAN设备收到BUM流量会给所有隧道泛洪,泛洪流量大

    BGP EVPN使用BGP传递路由,路由的类型是EVPN(EVPN是一种地址族,可以传递的路由类型特别多,可以传递IPV4形成的路由,VPNV4形成的路由,甚至可以传递MAC地址形成的路由)。是一个控制面协议,但是不是只能给VXLAN当做控制面协议,也可以给其他的协议当做控制面协议使用。控制层面可以控制泛洪流量,也可以控制建立隧道

    RT决定了是否传递路由,是控制平面;VNI决定了是否建立隧道是转发平面。

    跨子网通信都是要先找自己的网关,找到自己网关之前都是二层通信,不管中间经过了几台设备。找到网关之后查路由表,要经过三层转发(不管经过了多少跳),找到对方网关之后再进行二层转发。

    BGP EVPN概述

    BGP EVPN通过扩展 BGP协议新定义了几种BGP EVPN路由(在MP_REACH_NLRI属性中新定义了几种NLRI,称为EVPN NLRI)。

    这些BGP EVPN路由可以用于传递VTEP地址和主机信息,因此BGP EVPN应用于VXLAN网络中,可以使VTEP发现和主机信息学习从数据平面转移到控制平面。

    不会出现二层环路,因为封装到了IP(且BGP有水平分割原则)

    BGP EVPN路由

    TYPE 2路由(MAC/IP路由):用于主机MAC地址/ARP/IP路由通告,主机路由不是凭空来的,是有PC触发流量产生的路由

    TYPE 3路由(Inclusive Multicast路由):用于传递二层VNI和VTEP IP地址信息,实现VTEP的自动发现和VXLAN隧道的动态建立,实现BUM报文转发

    如果对端VTEP IP地址是三层路由可达的,则建立一条到对端的VXLAN隧道。同时,如果对端VNI与本端相同,则创建一个头端复制列表,用于后续BUM报文转发。

    TYPE 5路由(IP前缀路由):用于主机MAC地址/ARP/IP路由通告,外部网络路由通告

    主机MAC地址通告

    L2网关将学习到的MAC地址加工后(加工RD,RT等信息),通过BGP传递

    主机ARP通告

    分布式网关

    非对称IRB转发

    1. PC1发送单播给PC2,此时因为是三层转发所以要先去找自己的网关,VBDIF20
    2. VBDIF20接收到数据帧后会查路由表发现直连路由,需要从VBDIF 10出发到对面的VBDIF 10
    3. 于是数据帧进入BD 10封装的VNI号是100,数据帧从隧道发往了VTEP2进入了BD 10,VTEP2发现这个数据帧就在同一个BD里面,于是直接二层转发交给了PC2

    以上过程,在左边一部分进行的是三层转发,而数据到了右边部分进行的是二层转发,这就是非对称IRB转发。

    缺点:需要建立多余的BD

    对称IRB转发

    两边都执行三层转发

    缺点:中间要有一个互联的IP地址(稍后会把这个省略,因为互联地址主要是为了下一跳解析到的MAC,而这个MAC地址会由IRB路由携带)

    三层 IP VPN-instance 路由表

    二层 EVPN VPN-instance MAC表

    此时VTEP之间传递IRB路由(多了L3 VNI),VTEP1的BD20、VTEP2的BD10 之间的IRB路由学习由路由携带RT值控制。

    两边BD的VNI不相同,无法直接二层互通,但是建立三层VNI(三层VNI相同),因此可以三层互通

    EVPN RT、IP VPN RT(1)

    新增IP VPN实例之后,BGP EVPN在传递TYPE 2路由时携带的RT值依旧是EVPN RT值,只是对端收到路由之后的处理行为存在区别:

    • 检查该路由携带的RT,如果与本端EVPN实例的import rt相同,则接收路由。EVPN实例获取到IRB类型路由后,还能提取到其中包含的ARP类型路由,用于主机ARP通告。
    • 检查该路由携带的RT,如果与本端IP VPN实例的import rt相同,则接收该路由。然后,VPN实例获取到该路由携带的IRB类型路由,从中提取的主机IP地址、三层VNI,在其路由表中保存主机IP路由,并根据路由的下一跳迭代出接口,最终迭代结果是指向VTEP的VXLAN隧道。

    通过EVPN Router's MAC Extended Community这一扩展团体属性子属性,BGP EPVN传递VTER自身的Router MAC,该MAC地址为NVE接口的MAC地址。

    ARP广播抑制

    广播变成单播

    因为VTEP已经通过路由获得了PC2的MAC地址,所以VTEP可以直接向VTEP2单播发送。

    VTEP1首先能学习到PC2的MAC地址形成ARP广播抑制表才可以进行ARP广播抑制

    主机信息收集

    ARP广播抑制功能的实现依赖于ARP广播抑制表,而该表项的形成依赖于BGP EVPN携带的TYPE 2路由(IRB路由,主机ARP路由)

    默认情况下L3网关不会由本地的ARP信息生成BGP EVPN路由,需要手动使能BGP EVPN主机信息收集功能。之后VTEP会依据ARP信息生成IRB路由。

    本机ARP代理

    全网开启BGP EVPN主机信息收集功能之后,L3网关上将学习到全部主机的32位路由,这使得L3网关在转发属于同一个BD之间的流量时完全可以依赖主机路由进行三层IRB对称转发。

    为此可以在L3网关的VBDIF接口上开启本地ARP代理,VBDIF 接口会相应下连主机对同网段IP地址的ARP请求,之后对该同网段IP的访问可以由L3网关进行三层转发完成。

    MAC地址迁移

    MAC地址迁移后,会使用序列号最大的路由

    实验

    1. 1.开启over支持evpn的功能
    2. 2.建立EVPN BGP对等体关系
    3. 3.创建BD,绑定VNI与EVPN实例
    4. 4.进入接口,绑定BD
    5. 5.进入隧道接口,配置源与头部复制列表
    6. CE2
    7. evpn-overlay enable //开启支持evpn overlay的功能
    8. bgp 123
    9. peer 3.3.3.3 as-number 123
    10. peer 3.3.3.3 connect-interface l0
    11. #
    12. l2vpn-family evpn //建立EVPN邻居
    13. policy vpn-target
    14. peer 3.3.3.3 enable
    15. #
    16. bridge-domain 1030 //创建BD
    17. vxlan vni 1030
    18. evpn //创建EVPN实例,绑定到BD里面
    19. route-distinguisher 1030:2
    20. vpn-target 1030:1030 export-extcommunity
    21. vpn-target 1030:1030 import-extcommunity
    22. #
    23. bridge-domain 2040
    24. vxlan vni 2040
    25. evpn
    26. route-distinguisher 2040:2
    27. vpn-target 2040:2040 export-extcommunity
    28. vpn-target 2040:2040 import-extcommunity
    29. #
    30. interface G1/0/9.10 mode l2
    31. encapsulation dot1q vid 10
    32. bridge-domain 1030
    33. #
    34. interface G1/0/9.20 mode l2
    35. encapsulation dot1q vid 20
    36. bridge-domain 2040
    37. #
    38. int Nve 1 //进入到VNI里面
    39. source 2.2.2.2
    40. vni 1030 head-end peer-list protocol bgp //1030隧道根据BGP来建立
    41. vni 2040 head-end peer-list protocol bgp
    1. CE1:
    2. 1.开启over支持evpn的功能
    3. 2.建立BGP EVPN对等体关系,且配置反射客户端与通告ARP路由功能
    4. 3.创建BD,绑定VNI与EVPN实例
    5. 4.配置VBDIF地址及arp collect host enable
    6. 5.进入隧道接口,配置源地址与头部复制列表
    7. CE2:
    8. 1.开启over支持evpn的功能
    9. 2.建立EVPN BGP对等体关系,并通告arp路由功能
    10. 3.创建BD,绑定VNI与EVPN实例
    11. 4.进入接口,绑定BD
    12. 5.进入隧道接口,配置源与头部复制列表
    13. CE1
    14. evpn-overlay enable
    15. bridge-domain 1030
    16. vxlan vni 1030
    17. evpn
    18. route-distingusisher 1030:1
    19. vpn-target 1030:1030 export-extocommunity
    20. vpn-target 1030:1030 import-extcommunity
    21. #
    22. bridge-domain 2040
    23. vxlan vni 2040
    24. evpn route-distinguisher 2040:1
    25. vpn-target 2040:2040 export-extcommunity
    26. vpn-tartge 2040:2040 import-extcommunity
    27. #
    28. interface vbdif1030
    29. ip add 192.168.1.1 24
    30. interface vbdif 2040
    31. ip add 192.168.2.1 24
    32. #
    33. bgp 123
    34. peer 2.2.2.2 as-number 123
    35. peer 2.2.2.2 connect-interface l0
    36. peer 3.3.3.3 as-number 123
    37. peer 3.3.3.3 connect-interface l0
    38. #
    39. l2vpn-family evpn
    40. policy vpn-target
    41. peer 2.2.2.2 enable
    42. peer 2.2.2.2 relect0clinet
    43. peer 2.2.2.2 advertise arp
    44. peer 3.3.3.3 enable
    45. peer 3.3.3.3 relect-client
    46. peer 3.3.3.3 advertise arp
    47. #
    48. interface Nve1
    49. source 1.1.1.1
    50. vni 1030 head-end peer-list protocol bgp
    51. vni 2040 head-end peer-list protocol bgp
    52. CE2
    53. evpn-overlay enable
    54. bridge-domain 1030
    55. vxlan vni 1030
    56. evpn
    57. route-distinguisher 1030:2
    58. vpn-target 1030:1030 export-extcommunity
    59. vpn-target 1030:1030 import-extcommunity
    60. #
    61. interface G1/0/9.10 mode l2
    62. encapsulation dot1q vid 10
    63. bridge-domain 1030
    64. #
    65. bgp 123
    66. peer 1.1.1.1 as-number 123
    67. peer 1.1.1.1 connect-interface l0
    68. l2vpn-family evpn
    69. policy vpn-target
    70. peer 1.1.1.1 enable
    71. peer 1.1.1.1 advertise arp
    72. interface Nve 1
    73. source 2.2.2.2
    74. vni 1030 head-end peer-list protocol bgp
    75. CE3
    76. evpn-overlay enable
    77. bridge-domain 2040
    78. vxlan vni 2040
    79. evpn route-distinguisher 2040:3
    80. vpn-target 2040:2040 export-extcommunity
    81. vpn-target 2040:2040 import-extommunity
    82. #
    83. interface G1/0/9.10 mode l2
    84. encapsulation dot1q vid 40
    85. bridge-domain 2040
    86. #
    87. bgp 123
    88. peer 1.1.1.1 as-number 123
    89. peer 1.1.1.1 connect-interface l0
    90. l2vpn-family evpn
    91. policy vpn-target
    92. peer 1.1.1.1 enable
    93. peer 1.1.1.1 advertise arp
    94. #
    95. interface Nve 1
    96. sorece 3.3.3.3
    97. vni 2040 head-end peer-list protocol bgp
    98. CE1
    99. interface vbdif1030
    100. arp collect host enable //主机收集功能
    1. CE2
    2. evpn-overlay enable
    3. bridge-domain 1030
    4. vxlan vni 1030
    5. evpn
    6. route-distinguisher 1030:1030
    7. vpn-target 1030:1030 export-extcommunity
    8. vpn-target 1234:1234 export-extcommunity
    9. vpn-target 1030:1030 import-extcommunity
    10. #
    11. bridge-domain 2040
    12. vxlan vni 2040
    13. evpn
    14. route-distinguisher 2040:2040
    15. vpn-target 2040:2040 export-extcommunity
    16. vpn-target 1234:1234 export-extcommunity
    17. vpn-target 2040:2040 import-extcommunity
    18. ###
    19. ip vpn-instance vpn1
    20. route-distinguisher 1234:1234
    21. vpn-target 1234:1234 export-extcommunity evpn
    22. vpn-target 1234:1234 import-extcommunity evpn
    23. vxlan vni 1234
    24. #
    25. interface GE1/0/9
    26. undo shutdown
    27. #
    28. interface GE1/0/9.30 mode l2
    29. encapsulation dot1q vid 10
    30. bridge-domain 1030
    31. #
    32. interface GE1/0/9.40 mode l2
    33. encapsulation dot1q vid 20
    34. bridge-domain 2040
    35. #
    36. interface Vbdif1030
    37. ip binding vpn-instance vpn1
    38. ip address 192.168.1.1 255.255.255.0
    39. mac-address 0000-5e00-1030
    40. vxlan anycast-gateway enable
    41. arp collect host enable
    42. #
    43. interface Vbdif2040
    44. ip binding vpn-instance vpn1
    45. ip address 192.168.2.1 255.255.255.0
    46. mac-address 0000-5e00-2040
    47. vxlan anycast-gateway enable //对外界声明是一个分布式网关
    48. arp collect host enable //通过arp提取出IP MAC地址等信息放到对应的表项里面
    49. #
    50. bgp 123
    51. peer 3.3.3.3 as-number 123
    52. peer 3.3.3.3 connect-interface LoopBack0
    53. ipv4-family unicast
    54. peer 3.3.3.3 enable
    55. l2vpn-family evpn
    56. policy vpn-target
    57. peer 3.3.3.3 enable
    58. Y
    59. peer 3.3.3.3 advertise irb
    60. #
    61. interface Nve1
    62. source 2.2.2.2
    63. vni 1030 head-end peer-list protocol bgp
    64. vni 2040 head-end peer-list protocol bgp
    65. CE3
    66. evpn-overlay enable
    67. bridge-domain 1030
    68. vxlan vni 1030
    69. evpn
    70. route-distinguisher 1030:1030
    71. vpn-target 1030:1030 export-extcommunity
    72. vpn-target 1234:1234 export-extcommunity
    73. vpn-target 1030:1030 import-extcommunity
    74. #
    75. bridge-domain 2040
    76. vxlan vni 2040
    77. evpn
    78. route-distinguisher 2040:2040
    79. vpn-target 2040:2040 export-extcommunity
    80. vpn-target 1234:1234 export-extcommunity
    81. vpn-target 2040:2040 import-extcommunity
    82. #
    83. ip vpn-instance vpn1
    84. ipv4-family
    85. route-distinguisher 1234:1234
    86. vpn-target 1234:1234 export-extcommunity evpn
    87. vpn-target 1234:1234 import-extcommunity evpn
    88. vxlan vni 1234
    89. #
    90. interface GE1/0/9
    91. undo shutdown
    92. #
    93. interface GE1/0/9.30 mode l2
    94. encapsulation dot1q vid 30
    95. bridge-domain 1030
    96. #
    97. interface GE1/0/9.40 mode l2
    98. encapsulation dot1q vid 40
    99. bridge-domain 2040
    100. #
    101. interface Vbdif1030
    102. ip binding vpn-instance vpn1
    103. ip address 192.168.1.1 255.255.255.0
    104. mac-address 0000-5e00-1030
    105. vxlan anycast-gateway enable
    106. arp collect host enable
    107. #
    108. interface Vbdif2040
    109. ip binding vpn-instance vpn1
    110. ip address 192.168.2.1 255.255.255.0
    111. mac-address 0000-5e00-2040
    112. vxlan anycast-gateway enable
    113. arp collect host enable
    114. #
    115. bgp 123
    116. peer 2.2.2.2 as-number 123
    117. peer 2.2.2.2 connect-interface LoopBack0
    118. ipv4-family unicast
    119. peer 2.2.2.2 enable
    120. l2vpn-family evpn
    121. policy vpn-target
    122. peer 2.2.2.2 enable
    123. Y
    124. peer 2.2.2.2 advertise irb
    125. #
    126. interface Nve1
    127. source 3.3.3.3
    128. vni 1030 head-end peer-list protocol bgp
    129. vni 2040 head-end peer-list protocol bgp
  • 相关阅读:
    组合计数3以及高斯消元
    前后端分离的项目——图书管理系统(下)
    为什么我们需要带上类型后缀?U/UL/ULL/L/LL
    qdockwidget隐藏标题栏导致无法拖动问题
    驱动开发--汇总
    智能组卷系统设计
    【深度学习】05-02-自注意力机制多种变形-李宏毅老师21&22深度学习课程笔记
    脑机接口003 | 马斯克称已实现与云端的虚拟自己对话,相关概念股份大涨
    MQTT协议详解
    小程序如何开通流量主
  • 原文地址:https://blog.csdn.net/weixin_45988710/article/details/133818012