Linux内核的策略路由确实支持面向VXLAN的路由。Linux从3.7版本开始就支持VXLAN,且内核对VXLAN的支持已非常完备,包括对VXLAN接口的创建、配置和通过路由表实现基于VXLAN接口的路由转发。具体来说,可以创建VXLAN类型的虚拟网络接口,设置VNI(VXLAN Network Identifier)标识,并通过Linux的路由表配置对应的路由条目,使得数据包可以根据VNI通过对应的VXLAN接口转发。
此外,Linux利用策略路由和VRF技术,可以实现基于不同VXLAN VNI的隔离路由,实现面向VXLAN VNI的策略路由。这样,可以通过策略路由表管理不同VXLAN隧道数据流的路由,满足复杂网络环境下的需求。
Linux内核面向VXLAN VNI的路由配置详情通常包含如下关键步骤:
-
创建VXLAN接口:
- 使用命令
ip link add vxlan0 type vxlan id <VNI> remote <对端IP> local <本地IP> dev <物理网卡> dstport 4789创建VXLAN接口。 - 其中,
id是VNI(VXLAN Network Identifier),唯一标识VXLAN隧道。 remote指定对端VTEP的IP地址,local是本端VTEP的IP地址,dev是用于VXLAN封装通信的物理网卡,dstport一般用IANA分配的4789。
- 使用命令
-
启动VXLAN接口并分配IP地址:
- 通过
ip link set vxlan0 up启动该接口。 - 使用
ip addr add <Overlay网络IP>/掩码 dev vxlan0给VXLAN虚拟接口分配IP地址。
- 通过
-
配置路由表:
- 通过
ip route add <目的Overlay网段> dev vxlan0将特定的Overlay网络路由指向VXLAN接口,确保数据包经由VXLAN隧道发送。
- 通过
-
策略路由(可选):
- 可用
ip rule结合策略路由,根据不同匹配条件(如源地址、接口等)指定特定的路由表,从而支持复杂的面向VNI的路由策略。
- 可用
简单示例:
bash
ip link add vxlan1 type vxlan id 42 remote 10.30.10.51 local 10.30.10.50 dev ens33 dstport 4789
ip addr add 192.168.1.2/24 dev vxlan1
ip link set vxlan1 up
ip route add 192.168.1.0/24 dev vxlan1
这意味着将访问192.168.1.0/24网络的流量通过VNI 42的VXLAN隧道发出,使用底层物理网卡ens33,通过UDP端口4789到达对端地址10.30.10.51。
这套配置允许Linux内核基于VXLAN VNI实现二层Overlay虚拟网络,同时利用策略路由机制可进一步细粒度控制路由决策。
以上为Linux内核配置面向VXLAN VNI路由的详细步骤和命令示例.
结论:
使用 linux 作为 router , 实现 node 本地和 vxlan vpc 内网络互通肯定是可行的
那么把 linux 作为 gw, 实现 underlay 跨 gw 再和 vpc 互通也是可行的
可以通过 BGP 把流量引到 node 上,再通本地的 vpc 内部的 ip