介绍前,首先讲一下网络中underlay和overlay的概念。underlay指的是物理网络层,overlay是指在物理网络层之上的逻辑网络或者又称为虚拟网络。overlay是创建在underlay的基础上,须要物理网络中的设备两两互联,overlay的出现突破了underlay的物理局限性,使得网络的架构更为灵活。以vlan为例,在underlay环境下不一样网络的设备须要链接至不一样的交换机下,若是要改变设备所属的网络,则要调整设备的连线。引入vlan后,调整设备所属网络只须要将设备加入目标vlan下,避免了设备的连线调整。api
# bridge-domain 10 //建立一个编号为10的bd vxlan vni 5000 //设置bd10对应的vni为5000 #
vtep会根据以上配置生成bd与vni的映射关系表,该映射表能够经过命令行查看,以下所示:
有了映射表后,进入vtep的报文就能够根据本身所属的bd来肯定报文封装时该添加哪一个vni。问题就剩下报文根据什么来肯定本身属于哪一个bd。
它能够经过二层子接口接入vxlan隧道和vlan接入vxlan隧道来实现。二层子接口主要作两件事:一是根据配置来检查哪些报文须要进入vxlan隧道;二是判断对检查经过的报文作怎样的处理。
如上图所示,基于二层物理接口10GE 1/0/1,分别建立二层子接口10GE 1/0/1.1和10GE 1/0/1.2,且分别配置其流封装类型为dot1q和untag。配置以下: 服务器
# interface 10GE1/0/1.1 mode l2 //建立二层子接口10GE1/0/1.1 encapsulation dot1q vid 10 //只容许携带VLAN Tag 10的报文进入VXLAN隧道 bridge-domain 10 //报文进入的是BD 10 # interface 10GE1/0/1.2 mode l2 //建立二层子接口10GE1/0/1.2 encapsulation untag //只容许不携带VLAN Tag的报文进入VXLAN隧道 bridge-domain 20 //报文进入的是BD 20 #
基于二层物理接口10GE 1/0/2,建立二层子接口10GE 1/0/2.1,且流封装类型为default。配置以下: 网络
# interface 10GE1/0/2.1 mode l2 //建立二层子接口 10GE1/0/2.1 encapsulation default //容许全部报文进入VXLAN隧道 bridge-domain 30 //报文进入的是BD 30 #
至此,全部条件都已具有,就能够经过协议自动创建vxlan隧道隧道,或者手动指定vxlan隧道的源和目的ip地址在本端vtep和对端vtep之间创建静态vxlan隧道。对于华为CE系列交换机,以上配置是在nve(network virtualization Edge)接口下完成的。配置过程以下: 架构
# interface Nve1 //建立逻辑接口 NVE 1 source 1.1.1.1 //配置源VTEP的IP地址(推荐使用Loopback接口的IP地址) vni 5000 head-end peer-list 2.2.2.2 vni 5000 head-end peer-list 2.2.2.3 #
其中,vni 5000的对端vtep有两个,ip地址分别为2.2.2.2和2.2.2.3,至此,vxlan隧道创建完成。
VXLAN隧道两端二层子接口的配置并不必定是彻底对等的。正由于这样,才可能实现属于同一网段可是不一样VLAN的两个VM经过VXLAN隧道进行通讯。
总结一下,vxlan目前支持三种封装类型,以下表所示:
这种方法当有众多个vni的时候,须要为每个vni建立一个子接口,会变得很是麻烦。
此时就应该采用vlan接入vxlan隧道的方法。vlan接入vxlan隧道只须要在物理接口下容许携带这些vlan的报文经过,而后再将vlan与bd绑定,创建bd与vni对应的bd信息,最后建立vxlan隧道便可。
vlan与bd绑定的配置以下: dom
# bridge-domain 10 //建立一个编号为10的bd l2 binding vlan 10 //将bd10与vlan10绑定 vxlan vni 5000 //设置bd10对应的vni为5000 #