使用VXLAN搭建跨三层网络的二层隧道(RouterOS&Ubuntu)

使用VXLAN搭建跨三层网络的二层隧道(RouterOS&Ubuntu)

· json · rss
Subscribe:

About

使用的系统是RouterOS和Ubuntu,为啥是RouterOS,因为的我的主路由是Mikrotik RB5009UG+S+,WinBox配置方便😋

RouterOS

添加VXLAN接口

Interface->VXLAN->"+"

VNI就是类似VLAN ID,同一链路上进行标记。

添加VTEP

Interface->VXLAN->VTEP

如果在不信任环境建议设置Remote Ip,比如公网隧道传输,在局域网如果有多个VTEP断点也建议设置。

到这RouterOS的VXLAN就配置完了。

END.

配置一些DHCP和SLAAC来让对端自动配置IP,不需要自己配置静态地址,如果你有现成的Bridge可以直接把接口绑定进桥,VXLAN和普通的二层接口一样,可以直接被绑定Bridge

LInux

ubuntu使用ifupdown管理Vxlan接口,为啥不用netplan?我觉得netplan的缩进过于恶心了,编辑太折磨人,所以提供一个ifupdown的配置/etc/network/interface

#auto vxlan0
iface vxlan0 inet manual                                                    
			pre-up ip link add vxlan0 type vxlan id 1 dstport 8472 local 10.10.0.67 remote 10.10.0.1 dev eth0
			up ip link set vxlan0 up

这里创建了一个vxlan0的接口,目标端口是8472,本地ip10.10.0.67远程VTEP接口ip 10.10.0.1,通过eth0发送数据包,因为是测试不建议自动启用接口所以注释掉auto vxlan0,如果不需要可以取消注释。

启用接口

ifup vxlan0

这时候看FBD能看到对端IP了,说明二层就已经打通了。

不过还没完,RouterOS的VXLAN是有BUG的,会莫名奇妙广播包没法通过vxlan接口,我们需要创建一个LInux Bridge来管理接口地址,同样ifupdown操作

确保你的系统安装了bridge-utils

sudo apt install bridge-utils

配置/etc/netwok/interface

#auto br0
iface br0 inet dhcp
        bridge-ports vxlan0
        bridge-stp off
        bridge-fd 0
    
iface br0 inet6 auto
        bridge-ports vxlan0
        accept_ra 1
        autoconf 1

启用接口br0

ifup br0

理论上你能看到接口已经能通过DHCP获取IP了,不知道是Roueros的bug还是ifupdown的bug,无法SLAAC获取IPv6地址,不知道这个为啥,目前没办法解决。

相关问题已经提交到https://www.reddit.com/r/mikrotik/comments/1ejp2e2/about_vxlan_ipv6_slaac_configuration_in_routeros/


2024.8.13日更新

目前mikrotik的支持已经回复我的邮件了,确实是RouterOS的BUG,7.16rc1工作正常。