vSwitches 虚拟交换机本质上来讲还是一种简单的2层设备,并假装3层的ip并不存在,来简化其功能。

但是在实际应用的时候,比如大规模的openstack集群中,VLAN的数量超出4094的话,vlan的802.1q帧格式中vid最大支持4096(2^12)个vlan,就会带来麻烦。这种情况下,Cisco(Nexus 1000V)和Nicira(Open vSwitch)就开始研究 MAC-over-IP 的封装技术 两种技术:(VXLAN-over-UDP 或者 GRE)

VXLAN的技术本质是什么呢?

     1)首先它和SDN的思想一样通过重新自定义帧格式,采用基于2.5层UDP的socket走3层将这种自定义的2层帧跨数据中心传过去再解析出来。

     2)在这种自定义帧中可以加入原有的VLAN和tenant的概念来隔离网络,这个vlan的大小可以轻易突破0-4094的限制。

VXLAN实际是强依赖网络的IP multicast多播,来发现 MAC-to-VTEP的对应关系,也就是说如果网络没有多播,vxlan不存在。

VXLAN的帧封装技术叫做VXLAN Tunnel Endpoint (VTEP),一个VTEP有两个逻辑interface:一个uplink和一个downlink.

VTEP是直接与EndSystem连接的设备,负责原始以太报文的VXLAN封装和解封装,形态可以是虚拟交换机,也可以是物理交换机。
VXLAN GW(二层)除了具备VTEP的功能外,还负责VLAN报文与VXLAN报文之间的映射和转发,主要以物理交换机为主。
VXLAN IP GW(三层)具有VXLAN GW的所有功能,此外,还负责处理不同VXLAN之间的报文通信,同时也是数据中心内部服务向往发布业务的出口,主要以高性能物理交换机为主。

相同VXLAN VM之间互访流程: a, 单播报文在VTEP处查找目的MAC地址,确定对应的VTEP主机IP地址。
b, 根据目的和源VTEP主机IP地址封装VXLAN报文头后发送给IP核心网
c, IP核心内部根据路由转发该UDP报文给目的VTEP
d, 目的VTEP解封装VXLAN报文头后按照目的MAC转发报文给目的VM

不同VXLAN VM之间需要互访,必须经过VXLAN IP GW完成,在VXLAN IP GW上配置VXLAN Maping表项进行转发,报文封装模式同同一VXLAN内VM一致;

VXLAN VM与VLAN VM之间互访,通过VXLAN GW来完成,VXLAN报文先通过VXLAN内部转发模式对报文进行封装,目的IP为VXLAN GW,在VXLAN GW把VXLAN报文解封装后,匹配二层转发表项进行转发,VLAN到VXLAN的访问流程正好相反。

GRE和VXLAN都是mac-in-ip的封装形式,所以用法也很相似。

之后我们要利用Open vSwitch来建立vxlan。

comments powered by Disqus