Linux 中的vxlan

简介
Linux 对 VXLAN 协议的支持时间并不久,2012 年 Stephen Hemminger 才把相关的工作合并到 kernel 中,并最终出现在 kernel 3.7.0 版本。为了稳定性和很多的功能,可能会看到某些软件推荐在 3.9.0 或者 3.10.0 以后版本的 kernel 上使用 VXLAN。

到了 kernel 3.12 版本,Linux 对 VXLAN 的支持已经完备,支持单播和组播,IPv4 和 IPv6。利用 man 查看 ip 的 link 子命令,可以查看是否有 VXLAN type:
管理接口
Linux VXLAN 接口的基本管理如下:

  1. 创建点对点的 VXLAN 接口:
$ ip link add vxlan0 type vxlan id 4100 remote 192.168.1.101 local 192.168.1.100 dstport 4789 dev eth0
其中 id 为 VNI,remote 为远端主机的 IP,local 为你本地主机的 IP,dev 代表 VXLAN 数据从哪个接口传输。
在 VXLAN 中,一般将 VXLAN 接口(本例中即 vxlan0)叫做 VTEP。

  1. 创建多播模式的 VXLAN 接口:
$ ip link add vxlan0 type vxlan id 4100 group 224.1.1.1 dstport 4789 dev eth0
多播组主要通过 ARP 泛洪来学习 MAC 地址,即在 VXLAN 子网内广播 ARP 请求,然后对应节点进行响应。group 指定多播组的地址。
  1. 查看 VXLAN 接口详细信息:
$ ip -d link show vxlan0

FDB 表
FDB(Forwarding Database entry,即转发表)是 Linux 网桥维护的一个二层转发表,用于保存远端虚拟机/容器的 MAC地址,远端 VTEP IP,以及 VNI 的映射关系,可以通过 bridge fdb 命令来对 FDB 表进行操作:

  1. 条目添加:
$ bridge fdb add  dev  dst 
  1. 条目删除:
$ bridge fdb del  dev 
  1. 条目更新:
 $ bridge fdb replace  dev  dst 

4.条目查询:

$ bridge fdb show

你可能感兴趣的:(网络)