VXLAN
VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展。VXLAN的特点是将L2的以太帧封装到UDP报文(即L2 over L4)中,并在L3网络中传输。
VXLAN本质上是一种隧道技术,在源网络设备与目的网络设备之间的IP网络上,建立一条逻辑隧道,将用户侧报文经过特定的封装后通过这条隧道转发。从用户的角度来看,接入网络的服务器就像是连接到了一个虚拟的二层交换机的不同端口上,可以方便地通信。
创建点对点VXLAN隧道
系统:Debian10
A端机器ip:192.168.0.10
B端机器ip:192.168.2.11
vni:1200
本端节点配置
# A机器配置
ip link add vxlan0 type vxlan local 192.168.0.10 remote 192.168.2.11 vni 1200 dstport 4789 dev eth0
ip link set vxlan0 up
对端节点配置
# B机器配置
ip link add vxlan0 type vxlan local 192.168.2.11 remote 192.168.0.10 vni 1200 dstport 4789 dev eth0
ip link set vxlan0 up
查看fdb转发表
bridge fdb show
多播模式的VXLAN隧道
有时候应用场景是一对多台机器的,这时候需要利用配置组播方式的vxlan隧道。
本端配置
# A 机器配置
ip link add vxlan0 type vxlan group 239.1.1.1 vni 1200 dst port dev eth0
ip link set vxlan0 up
# 添加到B机器的fdb转发表项
bridge fdb append to 00:00:00:00:00:00 dst 192.168.2.11 dev vxlan0
对端配置
# B机器配置
ip link add vxlan0 type vxlan group 239.1.1.1 vni 1200 dev eth0
ip link set vxlan0 up
# 添加到A机器的FDB转发表项
bridge fdb append to 00:00:00:00:00:00 dst 192.168.0.10 dev vxlan0
VXLAN隧道与Bridge配合使用
# 创建网桥 br0
ip link add br0 type bridge
# 将vxlan端口加入网桥
ip link set vxlan0 master br0
# 将本地端口加入网桥
ip link set eth2 master br0
# 接口退出网桥
ip link set eth2 nomaster
注意:esxi虚拟机网络接口需要开启网卡混杂和伪传输模式;加入网桥的接口不配置ip地址。
# 查看fdb转发表
bridge fdb show
# 查看网桥连接
bridge link