News
发布日期:2024-01-29 浏览次数:1162 来源:WOLF-LAB
HCIE Datacom培训EVPN部署分布式网关-实验:让CE2和CE3充当分布式网关
技术文档提供:WOLF-LAB网络技术实验室崔志鹏
华为认证HCIE Datacom培训咨询联系WOLF-LAB,课程循环开班,笔试、LAB考试稳定!
第一步:配置underlay网络可达
第二步:CE2和CE3建立EVPN的邻居关系
第三步:建立VXLAN的隧道
[CE2-Nve1]dis this
#
interface Nve1
source 2.2.2.2
vni 10 head-end peer-list protocol bgp
[CE3-Nve1]dis this
#
interface Nve1
source 3.3.3.3
vni 10 head-end peer-list protocol bgp
第四步:配置用户的接入
CE2:
bridge-domain 10
vxlan vni 10
evpn
route-distinguisher 100:1
vpn-target 100:1 export-extcommunity
vpn-target 100:1 import-extcommunity
#
bridge-domain 20
vxlan vni 20
evpn
route-distinguisher 100:2
vpn-target 100:2 export-extcommunity
vpn-target 100:2 import-extcommunity
#
interface GE1/0/2
undo shutdown
#
interface GE1/0/2.10 mode l2
encapsulation dot1q vid 10
bridge-domain 10
#
interface GE1/0/2.20 mode l2
encapsulation dot1q vid 20
bridge-domain 20
CE3:
bridge-domain 10
vxlan vni 10
evpn
route-distinguisher 100:1
vpn-target 100:1 export-extcommunity
vpn-target 100:1 import-extcommunity
#
interface GE1/0/2
undo shutdown
#
interface GE1/0/2.10 mode l2
encapsulation dot1q vid 10
bridge-domain 10
第五步:配置VN //分布式网关一定要结合VN的概念进行配置
[CE2-vpn-instance-A]dis this //同一个公司有两个网段
#
ip vpn-instance A
ipv4-family
route-distinguisher 1:1
vpn-target 1:1 export-extcommunity evpn
vpn-target 1:1 import-extcommunity evpn
vxlan vni 22 //三层VNI
[CE3-vpn-instance-A]dis this
#
ip vpn-instance A
ipv4-family
route-distinguisher 1:1
vpn-target 1:1 export-extcommunity evpn
vpn-target 1:1 import-extcommunity evpn
vxlan vni 33
第六步:配置分布式网关
CE2:
interface Vbdif10
ip binding vpn-instance A
ip address 192.168.1.254 255.255.255.0
arp distribute-gateway enable //开启分布式网关的功能
arp collect host enable //开启收集主机路由的功能
#
interface Vbdif20
ip binding vpn-instance A
ip address 192.168.2.254 255.255.255.0
arp distribute-gateway enable
arp collect host enable
CE3:
interface Vbdif10
ip binding vpn-instance A
ip address 192.168.1.254 255.255.255.0
arp distribute-gateway enable
arp collect host enable
问题一:此时PC1访问PC3能否通信,怎么通信的?
CE2会发送BGP EVPN type 3,在CE2和CE3之间建立一条VXLAN的隧道
①RD:100:1
②2.2.2.2/32
③RT:100:1
④VNI:10
CE3也会发送BGP EVPN type 3
①RD:100:1
②3.3.3.3/32
③RT:100:1
④VNI:10
CE3收到CE2传递过来的两条路由会做如下动作:
①收到的ERT跟自己本端IRT是否有匹配,没有丢弃,有就收着;
②提取VTEP地址和VNI,如果VTEP地址在底层underlay网络可达则建立一条VXLAN的隧道;
③根据报文中的VNI,如果跟本端EVPN实例中的相同,创建一个相应的头端复制列表,用于BUM报文的转发;
PC1和PC3不同CE同子网互访是通过type 3路由建立的vxlan的隧道形成的头端复制列表,数据流量封装二层VNI=10进行通信的;
问题二:此时PC1访问PC2能否通信,怎么通信的?
可以,本地通信,因为Vbdif10、Vbdif20都在同一个VPN-Instance A下;
问题三:此时PC2访问PC3能否通信(不同CE不同子网)?
不行,因为CE3没有192.168.2.0/24网段的路由
怎么解决?
此时就需要用到type2(IRB)路由
[CE2-bgp]dis this
#
l2vpn-family evpn
peer 3.3.3.3 advertise irb //此时CE2会将收集到的主机路由携带三层VNI发出去给CE3
[CE3-bgp]dis this
#
bgp 100
#
l2vpn-family evpn
peer 2.2.2.2 advertise irb
问题四:为什么CE2和CE3没有看到对方的主机路由呢?
CE3会给CE2发送IRB的路由,就是ARP的路由加上三层VNI:
①RD:100:1
②主机路由:192.168.1.2/24
③主机MAC:PC3 MAC
④二层VNI:10
⑤EXRT:100:1
⑥3.3.3.3
⑦三层VNI:33
CE2收到后处理动作如下:
第一步:把ERT跟本地BD域的IRT进行匹配,接收该路由并且提取IP/MAC/VNI放到自己的EVPN的路由表,用于ARP广播抑制和虚拟机热迁移;
第二步:把ERT跟本地VPN里面的带有EVPN参数的IRT进行匹配,提取该主机路由和三层VNI注入到对应的VPN-instance中;
注意:只有当BGP EVPN路由携带的ERT与本端EVPN实例的IRT、本端L3VPN实例的eIRT都不同时,才会丢弃该路由;
此时需要在CE2上加一个IRT值
[CE2-vpn-instance-A]dis this
#
ip vpn-instance A
ipv4-family
route-distinguisher 1:1
vpn-target 1:1 export-extcommunity evpn
vpn-target 1:1 import-extcommunity evpn
vpn-target 100:1 import-extcommunity evpn
vxlan vni 22
同理CE2发出的IRB类型的路由如下:
①RD:100:1
②主机路由:192.168.1.1/24
③主机MAC:PC1 MAC
④二层VNI:10
⑤EXRT:100:1
⑥2.2.2.2
⑦三层VNI:22
------------------------------------------------
①RD:100:2
②主机路由:192.168.2.1/24
③主机MAC:PC2 MAC
④二层VNI:20
⑤EXRT:100:2
⑥2.2.2.2
⑦三层VNI:22
此时CE3也需要增加IRT值:
[CE3-vpn-instance-A]dis this
#
ip vpn-instance A
ipv4-family
route-distinguisher 1:1
vpn-target 1:1 export-extcommunity evpn
vpn-target 1:1 import-extcommunity evpn
vpn-target 100:1 import-extcommunity evpn
vpn-target 100:2 import-extcommunity evpn
vxlan vni 33
流量分析:
此时PC2访问PC3,去的流量先到网关CE2上,CE2查自己的路由表,数据包进行封装:
PC2---PC2 |VXLAN vni:33 | sip:2.2.2.2 dip:3.3.3.3,CE3收到后根据三层VNI查自己的VPN A进行报文的转发,跟MPLS VPN私网标签很像;
PC3回给PC2的数据包,打上三层VNI:22
问题五:分布式网关内网用户如何访问internet?
第一步:让CE1跟CE2和CE3也建立EVPN的邻居关系,CE1将外部路由传递给CE2和CE3,CE2和CE3将主机路由传递给CE1;
[CE2-bgp]dis this
#
bgp 100
undo default ipv4-unicast
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo peer 1.1.1.1 enable
undo peer 3.3.3.3 enable
#
l2vpn-family evpn
policy vpn-target
peer 1.1.1.1 enable
peer 1.1.1.1 advertise irb
peer 3.3.3.3 enable
peer 3.3.3.3 advertise irb
[CE3-bgp]dis this
#
bgp 100
undo default ipv4-unicast
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
#
ipv4-family unicast
undo peer 1.1.1.1 enable
undo peer 2.2.2.2 enable
#
l2vpn-family evpn
policy vpn-target
peer 1.1.1.1 enable
peer 1.1.1.1 advertise irb
peer 2.2.2.2 enable
peer 2.2.2.2 advertise irb
[CE1-bgp]dis this
#
bgp 100
undo default ipv4-unicast
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo peer 2.2.2.2 enable
undo peer 3.3.3.3 enable
#
l2vpn-family evpn
policy vpn-target
peer 2.2.2.2 enable //CE1无需给CE2和CE2通告type 2的路由,外部路由以type 5的方式通告;
peer 3.3.3.3 enable
第二步:在CE1上也配置BD域(虽然CE1没有主机接入,但是需要跟CE2和CE3之间建立VXLAN的隧道,主机在访问外网需要通过隧道转发)
CE1:
bridge-domain 10
vxlan vni 10
evpn
route-distinguisher 100:1
vpn-target 100:1 export-extcommunity
vpn-target 100:1 import-extcommunity
#
bridge-domain 20
vxlan vni 20
evpn
route-distinguisher 100:2
vpn-target 100:2 export-extcommunity
vpn-target 100:2 import-extcommunity
#
interface Nve1
source 1.1.1.1
vni 10 head-end peer-list protocol bgp
vni 20 head-end peer-list protocol bgp
第三步:在CE1上配置vpn-instance A,确保VPN A可以接收内网主机路由,用于回包;
CE1:
ip vpn-instance A
ipv4-family
route-distinguisher 1:1
vpn-target 1:1 export-extcommunity evpn
vpn-target 1:1 import-extcommunity evpn
vpn-target 100:1 import-extcommunity evpn
vpn-target 100:2 import-extcommunity evpn
vxlan vni 11
第四步:在CE1上配置访问外网的默认路由
CE1:
interface GE1/0/2
undo portswitch
undo shutdown
ip address 1.1.11.1 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 1.1.11.2
ip route-static vpn-instance A 0.0.0.0 0.0.0.0 1.1.11.2 public
第五步:将该默认路由变成EVPN的路由发布出去
CE1:
bgp 100
#
ipv4-family vpn-instance A
network 0.0.0.0 //将默认路由添加RD值变成VPNV4路由
advertise l2vpn evpn //将该VPNV4路由通过EVPN邻居关系以TYPE5的形式发布给CE2和CE3
①VPN实例下的RD:1:1
②前缀/掩码:0.0.0.0/0
③三层VNI:11
④VPN实例下的RT:1:1
⑤下一跳:1.1.1.1
CE2/CE3收到后做如下动作:
①检查该路由携带的ERT,如果与本端VPN实例的IRT相同,则接收该路由,否则丢弃该路由;
②提取出路由前缀、掩码、三层VNI,将该路由加入到对应VPN实例的路由表,三层VNI用于数据的封装;
③并将路由的下一跳迭代出接口设置为VXLAN隧道接口;
第六步:在CE1的全局路由表下,写回包路由;(CE1的出接口划入到VPN实例中,更简单些)
CE1:
ip route-static 192.168.1.0 255.255.255.0 vpn-instance A 192.168.1.1
ip route-static 192.168.2.0 255.255.255.0 vpn-instance A 192.168.2.1
第七步:验证
WOLFLAB官方微信:17316362402
WOLFLAB官方QQ:2569790740
华为认证HCIE Datacom培训课程咨询联系WOLF-LAB网络技术实验室
上一篇:暂无