目录

VXLAN用例

  1. 创建多播接口
root@kwephis8419858:~# ip link add vxlan0 type vxlan id <VNI> group <multicast_group> dev <underlying_interface>
vxlan: destination port not specified
Will use Linux kernel default (non-standard value)
Use 'dstport 4789' to get the IANA assigned value
Use 'dstport 0' to get default and quiet this message

这里创建的接口没有指定端口,默认使用4789vxlan0只有通过该端口才会触发vxlan封装。

  • VNI:指定 VXLAN 网络标识符(例如 10)
  • multicast_group:如果使用的是组播,指定组播地址;如果不使用,通常可以忽略
  • underlying_interface:指定承载 VXLAN 隧道的物理接口(例如 eth0)
  1. 查看接口
root@kwephis8419858:~# ip link add vxlan0 type vxlan id 10 group 239.1.1.1 dev eth0 dstport 4789
root@kwephis8419858:~# ip addr add 192.168.1.2/24 dev vxlan0
root@kwephis8419858:~# ip link set vxlan0 up
root@kwephis8419858:~# ip addr
20: vxlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 82:0e:4b:f1:ca:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 scope global vxlan0
       valid_lft forever preferred_lft forever
  1. 创建单播接口
root@kwephis8419858:~# ip link add vxlan0 type vxlan id 10 remote <remote-ip> local <local-ip> dev eth0 dstport 4789
<br/>
root@kwephis8419858:~# ip addr add <inner-ip>/24 dev vxlan0
  • remote-ip:配置vxlan协议封装时,外层的目的IP地址
  • local-ip:配置vxlan协议封装时,外层的源IP地址
  • inner-ip:配置vxlan协议内层的源IP地址
root@kwephis8419858:~# ping -I vxlan0 177.0.0.3
PING 177.0.0.3 (177.0.0.3) from 178.0.0.2 vxlan0: 56(84) bytes of data.
From 178.0.0.2 icmp_seq=1 Destination Host Unreachable
root@kwephis8419858:~# tcpdump -i eth0 udp port 4789
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
<br/>
10:25:08.231914 IP kwephis8419858.39008 > 239.1.1.1.4789: VXLAN, flags [I] (0x08), vni 10
ARP, Request who-has 177-0-0-3.dsl.brasiltelecom.net.br tell dslb-178-000-000-002.178.000.pools.vodafone-ip.de, length 28