- VXLAN Header
- UDP Header
- Outer IP Header
- Outer MAC Header
- 当目的IP为接收端的VTEP的IP时 , 假如不知道这个IP地址 , 则需要执行ARP请求来获取 , 步骤如下:
2. 所有VTEP端都接收该多播报文 , VTEP查找所在主机上的全部虚拟机来匹配源虚拟机的Inner 目的MAC 。
3. 目标VTEP的虚拟机会回应该多播包 , 从而获得目标VTEP的IP地址 。
4. 发送端VTEP添加VNI-VTEP-虚拟机MAC的映射关系到自己的VXLAN表中 , 以避免再次组播学习 。
VxLAN的部署
- VxLAN存在underlay及overlay的概念 , 它是在原有的网络架构上再overlay新增了一层网络(不影响原有网络) 。因为是架构在IP层之上 , 两站点只需要IP可达 , 就可以建立VxLAN隧道(部署VxLAN) 。
#
bridge-domain 20 //表示创建一个“大二层广播域”BD , 其编号为20
vxlan vni 2000 //表示在BD 20下指定与之关联的VNI为2000
#
VTEP会根据以上配置生成BD与VNI的映射关系表 , 该映射表可以通过命令行查看 , 如下所示:
<HUAWEI> display vxlan vni
Number of vxlan vni : 1
VNI BD-ID State
----------------------------------
5000 10 up
有了映射表后 , 进入VTEP的报文就可以根据自己所属的BD来确定报文封装时该添加哪个VNI 。那么 , 报文根据什么来确定自己属于哪个BD呢?
- 报文根据什么去确定自己属于哪个BD呢?
以华为的交换机为例:
文章插图
default类型允许所有报文进入VXLAN隧道 , dot1q和untag类型的只允许某一类报文进入 。
- 经过同一物理接口的报文既有带VLAN Tag的 , 又有不带VLAN Tag的 , 并且他们各自要进入不同的VXLAN隧道 , 则可以在该物理接口上同时创建dot1q和untag类型的二层子接口 。
- default类型(应用于均需要走同一条VXLAN隧道的场景 , 下挂的VM全部属于同一BD)的子接口允许所有报文进入VXLAN隧道 , dot1q和untag类型的子接口只允许某一类报文进入 。也即意味着前者不可与后者在同一子接口 。(不然报文到了接口之后如何判断要进入哪个二层子接口)
- VxLAN隧道的建立:分手动和自动建立
#
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
<HUAWEI> display vxlan vni 5000 verbose
BD ID : 10
State : up
NVE : 288
Source : 1.1.1.1
UDP Port : 4789
BUM Mode : head-end
Group Address : -
Peer List : 2.2.2.2 2.2.2.3 //同一大二层广播域的范围,属于同一个BD 10域的范围 。
//当VTEP收到BUM(Broadcast&Unknown-unicast&Multicast , 广播&未知单播&组播)报文时 , 会将报文复制并发送给Peer List中所列的所有对端VTEP(这就好比广播报文在VLAN内广播) 。
推荐阅读
- 十一 网络编程懒人入门:一文读懂什么是IPv6
- 区块链服务网络BSN即将全球商用 火币中国等联盟成员积极推进
- 如何快速处理网络故障,一文了解网络故障排查方法
- 沉迷网络,你的大脑“很受伤”
- 苹果|苹果iPhone 14将支持卫星网络连接:关键时刻能救命
- 举报网络赌钱软件奖励多少?
- 网络故障怎么办?排障思路清晰是关键!
- 识破网络诈骗陷阱 保护我们的钱袋子
- WPS这个不起眼的工具箱,原来如此强大
- 又见DDoS僵尸网络,一大波路由器、交换机沦为“肉鸡”