首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >为什么数据中心都开始用VxLAN?附实验【文末福利】

为什么数据中心都开始用VxLAN?附实验【文末福利】

作者头像
Ponnie
发布2021-07-05 20:41:34
发布2021-07-05 20:41:34
1.1K0
举报
文章被收录于专栏:玉龙小栈玉龙小栈

  • 基于VLAN接入业务:
    • 在VTEP上建立VLAN与VNI的映射。这样,当VTEP收到业务侧报文后,根据VLAN与VNI的映射关系,实现报文在隧道内进行转发。
  • 基于报文流封装类型接入业务:
    • 在VTEP连接下行业务的物理接口上创建二层子接口,并配置不同的流封装类型,使得不同的接口接入不同的数据报文。同时,将二层子接口与VNI进行一一映射。这样业务侧报文到达VTEP后,即会进入指定的二层子接口。即根据二层子接口与VNI的映射关系,实现报文在隧道内进行转发。
  • L2 Gateway
    • 类似传统网络的二层接入设备,在VXLAN网络中通过二层网关解决租户接入VXLAN虚拟网络,也可用于同一VXLAN虚拟网络的子网通信.
1.2、 VXLAN间网络间互访

不同VXLAN之间的主机不能直接进行二层通信,需要通过VXLAN Gateway实现主机的三层通信(vxlan与vxlan之间的互访和vxlan与vlan之间的互访,需要注意的是,vlan与vxlan的访问需要通过vxlan网关进行映射的翻译。)

如下图所示:

  • VXLAN网络间互访中涉及的概念如下:
  • 三层 VXLAN Gateway
  • 类似传统网络中不同VLAN的用户间不能直接进行二层互访,不同VNI之间的VXLAN及VXLAN和非VXLAN之间也不能直接相互通信。为了使VXLAN之间,以及VXLAN和非VXLAN之间能够进行通信,引入了VXLAN三层网关的概念。三层网关用于VXLAN虚拟网络的跨子网通信以及外部网络的访问。

二. VXLAN报文封装格式

通过将MAC地址封装在UDP中,使用UDP 4789端口进行数据转发,数据报文。 如下图,所示:

三. VXLAN运行机制

3.1VTEP发现和地址学习过程。

如下图,所示:

  • 主机A向主机B发出ARP Request,Src MAC为MAC-A,Dst MAC为全f;
  • ARP Request报文到达vtep-1后,vtep-1对其封装VXLAN包头,其中外层的Src MAC为vtep-1的MAC-1,Dst MAC为组播mac地址, Src IP为vtep-1的IP-1,Dst IP为组播IP地址,并且打上了VXLAN VNID:10。由于vtep之间是三层网络互联的,广播包无法穿越三层网络,所以只能借助组播来实现arp报文的泛洪。通常情况下一个组播地址对应一个VNID,同时可能会对应一个租户或者对应一个vrf网络,通过VNID进行租户之间的隔离。
  • 打了VXLAN头的报文转发到了其他的vtep上,进行VXLAN头解封装,原始的ARP Request报文被转发给了vtep下面的主机,并且在vtep上生成一条MAC-A(主机A的mac)、VXLAN ID、IP-1(vtep-1的IP)的对应表项;
  • 主机B收到ARP请求,回复ARP Response,Src MAC:MAC-B、Dst MAC:MAC-A;
  • ARP Response报文到达vtep-2后,被打上VXLAN的包头,此时外层的源目mac和IP以及VXLAN ID是根据之前在vtep-2上的MAC-A、VXLAN ID、IP-1对应表项来封装的,所以ARP Response是以单播的方式回复给主机A;
  • 打了VXLAN头的报文转发到vtep-1后,进行VXLAN头的解封装,原始的ARP Response报文被转发给了主机A;
  • 主机A收到主机B返回的ARP Response报文,整个ARP请求完成。
3.2 VXLAN单播数据流转发过程。

如下图,所示:

  • host-A将原始报文上送到vtep;
  • 根据目的mac和VNI的号(这里的VNI获取是vlan和vxlan的mapping查询出的结果),查找到外层的目的IP是vtep-2 IP,然后将外层的源目IP分别封装为vtep-1 IP和vtep-2 IP,源目mac为下一段链路的源目mac;
  • 数据包穿越IP网络;
  • 根据VNI、外层的源目IP,进行解封装,通过VNI和目的mac查表,得目标IP为IP-B.
  • host-B接受此原始报文,并回复host-A,回复过程同上一致。
3.3、多目的流量处理

由于目前信令下而已尚未实现,多目的流量(Broadcast,Multicast,Unkonwn)利用底层IP网络提供的组播服务实现,即借助数据转发平台实现。

如下图,所示:

当BUM报文进入VXLAN隧道,源端VTEP依据获取的隧道列表对报文进行复制,并分别进行封装。BUM报文出VXLAN隧道,目的端VTEP对报文解封装。

4. 4、实验配置

PC1 IP地址配置

代码语言:javascript
复制
IP :100.0.0.10/24
Gateway:100.0.0.1

PC2 IP地址配置

代码语言:javascript
复制
IP:200.0.1.10/24
Gateway:200.0.1.2

ASA1 接口及IP地址配置

代码语言:javascript
复制
interface GigabitEthernet0/0
 nameif inside
 security-level 100
 ip address 200.0.0.1 255.255.255.0 

interface GigabitEthernet0/1
 nameif outside
 security-level 0
 ip address 100.0.0.1 255.255.255.0

ASA1 VXLAN相关配置,(开启组播路由,封装VXLAN,配置vni,ACL方向测试流量)

代码语言:javascript
复制
multicast-routing

nve 1
 encapsulation vxlan
 source-interface inside
 default-mcast-group 239.0.0.1
 
 interface vni1
 segment-id 6000
 nameif VXLAN
 security-level 50
 ip address 200.0.1.1 255.255.255.0 
 vtep-nve 1
 
 access-list out extended permit ip any any
 access-group out in interface outside

ASA2 接口及IP地址配置(为BVI接口配置IP地址)

代码语言:javascript
复制
interface GigabitEthernet0/1
 nameif inside
 bridge-group 1
 security-level 100
 
 interface BVI1
 ip address 200.0.1.2 255.255.255.0

ASA2 VXLAN相关配置(封装VXLAN,配置vni,ACL方向测试流量)

代码语言:javascript
复制
interface GigabitEthernet0/0
 nve-only
 nameif outside
 security-level 0
 ip address 200.0.0.2 255.255.255.0 
 
 nve 1
 encapsulation vxlan
 source-interface outside
 
interface vni1
 segment-id 6000
 nameif VXLAN
 bridge-group 1
 security-level 50
 vtep-nve 1
 mcast-group 239.0.0.1
 
access-list in extended permit ip any any
access-group in in interface VXLAN

测试PC1与PC2的连通性

代码语言:javascript
复制
PC2> ping 100.0.0.10

84 bytes from 100.0.0.10 icmp_seq=1 ttl=64 time=13.662 ms
84 bytes from 100.0.0.10 icmp_seq=2 ttl=64 time=5.751 ms
84 bytes from 100.0.0.10 icmp_seq=3 ttl=64 time=5.354 ms
84 bytes from 100.0.0.10 icmp_seq=4 ttl=64 time=4.188 ms
84 bytes from 100.0.0.10 icmp_seq=5 ttl=64 time=3.687 ms

检测VTEP邻居状态

代码语言:javascript
复制
ASA1# show nve 1
nve 1, source-interface "inside" is up
 IP address 200.0.0.1, subnet mask 255.255.255.0
 Encapsulation: vxlan
 Encapsulated traffic statistics:
   154 packets input, 7726 bytes
   723 packets output, 74666 bytes
   0 packets dropped
 Number of configured static peer VTEPs: 0
 Number of discovered peer VTEPs: 1
    Discovered peer VTEPs:
        IP address 200.0.0.2
 Default multicast group: 239.0.0.1
 Number of VNIs attached to nve 1: 1
 VNIs attached:
        vni 1: segment-id 6000, mcast-group none

抓包查看ASA1与ASA2之间数据包封装

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玉龙网络新知社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.2、 VXLAN间网络间互访
  • 二. VXLAN报文封装格式
  • 三. VXLAN运行机制
    • 3.1VTEP发现和地址学习过程。
    • 3.2 VXLAN单播数据流转发过程。
    • 3.3、多目的流量处理
    • 4. 4、实验配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档