上篇文章《011-跨数据中心VXLAN实现DCI互联》发布后,有微信好友留言建议修改下文章标题,还有朋友私信我,建议分享下数据中心之间VXLAN互联的方式,实际上华为有3种跨数据中心的解决方案,(其他厂商我没有用过,不敢妄下结论),本篇文章先解决第一个问题,把文章的标题修改成《011-端到端VXLAN实现DCI互联抓包详解》。
下面先提出大家讨论的几个问题:
1. 这个实验不是三段式的BGP-EVPN邻居关系吗?为什么叫端到端?
2. 两个VTEP设备之间不建立BGP-EVPN的邻居关系能动态建立VXLAN隧道吗?
3. 还有微信好友私信我说“一台路由器不是只能建立一个BGP进程吗?”你是怎么在一个路由器上实现多个进程并存的?
4. 上面实验配置不全能发一个完整的配置吗?没有ENSP_PRO的账号怎么办?(这个问题我先回答下:所有文章都有完整的实验工程文件含有详细的拓扑和配置信息,请文章评论区留言或公众号私信我获取打包工程文件。另外没有ENSP_PRO账号,ENSP也完全可以做VXLAN的实验。可参考我以前的文章有使用ENSP做的,也有ENSP的手把手安装教程。)
下面我把昨天的拓扑重新修改的更直观点,通过抓包和截图一步一步解决上面的3个问题。
端到端VXLAN实现跨数据中心DCI互联抓包详解:
一、网络拓扑介绍
网络架构没有任何变化,只是在上篇文章的基础上增加了3台server终端用于抓包测试。使用端到端的vxlan实现跨数据中心的DCI通信。
1. 服务器IP地址:
server-1地址10.1.1.10/24 网关10.1.1.1
server-2地址10.2.1.10/24网关10.2.1.1
server-3地址10.1.1.20/24网关10.1.1.1
server-4地址10.2.1.20/24网关10.2.1.1
server-5地址10.1.1.30/24网关10.1.1.1
2. 互联地址详见拓扑图或私信作者下载打包工程文件
3. 组网架构(详细配置见上篇文章此处只介绍组网架构)
(1)左边是数据中心A,有server-1和server-2连接到leaf-1交换机,server-3连接到leaf-2交换机,首先leaf-1、Spine-1、Leaf-2交换机之间建立OSPF邻居发布互联地址和各自的loopback接口地址。
(2)Leaf-2交换机和骨干网PE-1之间建立EBGP的邻居关系,同时Leaf-2交换机向外发布本中心内部的loopback接口地址5.5.5.5和6.6.6.6。PE-1与PE-2之间建立IBGP邻居关系.同理PE-2与Leaf-3建立EBGP邻居关系,同时Leaf-3向PE-2发布本中心内部的loopback接口地址7.7.7.7和8.8.8.8。
(3)Leaf-2和Leaf-3交换机将骨干网学习到对端的路由引入到本中心的OSPF中,至此Underlay网络已建立完毕。数据中心内部能学习到对端中心交换机的loopback接口的路由。
(4)数据中心内部leaf1和lea2、leaf3和leaf4之间建立MP-IBGP-EVPN邻居并相互发布IRB的路由。
(5)数据中心之间Leaf-2与Leaf-3之间建立MG-EBGP-EVPN邻居,并向邻居发送IRB的路由。同时各自修改发布给内外部邻居的路由的下一跳地址不变。
二、问题解决
1. 这个实验不是三段式的BGP-EVPN邻居关系吗?为什么叫端到端?
答案:通过在Leaf-4上查看vxlan隧道信息可以很清楚的看到隧道是从leaf-4的loopback接口地址8.8.8.8直接连接leaf-1的loopback接口5.5.5.5的。证明是端到端的Vxlan。
- 两个VTEP设备之间不建立BGP-EVPN的邻居关系,能动态建立VXLAN隧道吗?
答案:可以
本案例中Leaf-1和Leaf-4之间没有建立任何的BGP邻居关系、BGP-EVPN邻居关系.所有的TYPE-2和TYPE-3的路由都是道听途说(从自己的邻居那里学习到的)。那Leaf-1怎么知道leaf-4的存在?答案就是Leaf-2在向Leaf-1发布自己行EBGP-evpn邻居那里学习到的路由时没有修改下一跳地址,同理,自己向EBGP-EVPN邻居Leaf-3发布evpn路由时也不修改下一跳地址。
下面通过debug信息来看下leaf-1收到的BGP-EVPN的路由信息:
3. 还有微信好友私信我说“一台路由器不是只能建立一个BGP进程吗?”你是怎么在一个路由器上实现多个进程并存的?
答案:这个问题,在传统的数据中心网络中,一般只使用public实例下的BGP,这时确实只能创建一个实例:如leaf-3上已经有BGP 30了,就不能再创建BGP40等。
但是我们能通过instance再创建一个区域的BGP:
这个instance实例下的bgp也只能创建一个,且只能创建一个instance
至此微信好友的4个问题已完全解决。另外继续进行抓包分析下端到端的数据包传递过程,为下一章节分享handoff的vxlan做铺垫。
二、抓包分析
- 10.1.1.10 ping 10.1.20在Leaf-1的G1/0/1接口抓包:
可以发现进行了vxlan封装,内层源mac是01:10 目的mac是01:20都是真实mac,外层源mac是leaf-1的出接口MAC,即G1/0/1的mac,外层目的MAC是该条物理线路对端接口的mac地址,即Spine-1的G1/0/1接口的mac地址。同时外层源地址5.5.5.5,目的地址8.8.8.8进一步证明了隧道是端到端建立的。
2. 在Spine-1的G1/0/2接口抓包:
可以发现,只有外层mac进行了改变:外层源mac是Spine-1的出接口MAC,即G1/0/2的mac,外层目的MAC是该条物理线路对端接口的mac地址,即Leaf-2的G1/0/1接口的mac地址:和传统的以太网通信没有什么区别。
3. 在Leaf-2的G1/0/3接口抓包:
同样,只有外层mac进行了改变:外层源mac是Leaf-2的出接口MAC,即G1/0/3的mac,外层目的MAC是该条物理线路对端接口的mac地址,即PE-1的G1/0/1接口的mac地址:和传统的以太网通信没有什么区别。
4.在PE-1的G1/0/2抓包:
同样是外层mac进行了改变:外层源mac是PE-1的G1/0/2mac,外层目的MAC是该条物理线路对端接口的mac地址,即PE-2的G1/0/2接口的mac地址。
5. 结论:
通过抓包分析,该实验确实是E2E的VXLAN,即端到端建立的VXLAN隧道,回应第一个问题。工程文件及数据包抓包打包下载请评论区留言或关注下方公众号,私信作者。下次分享handoff的vxlan跨数据中心通信。