Linux内核现在支持全新的vrf(虚拟路由和转发)架构,这与旧的网络命名空间解决方案不同。
问题:
我是内核源代码的新手,无法找到有关上面两个问题的信息。
我写了一个脚本来添加4096 vrf并在openwitch x86 docker容器中设置vrf设备,一切正常。
脚本:
def main():
for i in range(0, 4096):
cmd("ip link add vrf%d type vrf table %d"%(i,i))
sleep(50)
cmd("ip link set dev vrf%d up"%i)
sleep(50)
main()
日志:
root@switch:~# ip link add vrf0 type vrf table 0
root@switch:~# ip link set dev vrf0 up
...
root@switch:~# ip link add vrf4095 type vrf table 4095
root@switch:~# ip link set dev vrf4095 up
root@switch:~# ip -d link show type vrf vrf4095
4098: vrf4095: <NOARP,MASTER,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 22:78:87:9d:ca:81 brd ff:ff:ff:ff:ff:ff promiscuity 0
vrf table 4095 addrgenmode eui64
root@switch:~# ip -d link show type vrf | grep "NOARP,MASTER" | wc
4097 61455 485311
root@switch:~# uname -a
Linux switch 4.4.0-45-generic #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC 2016 x86_64 GNU/Linux
我的参考:
答案 0 :(得分:0)
似乎您可以创建的VRF数量没有限制,唯一的限制是内存大小(为您创建的每个VRF netdev分配内存)和ifindex类型限制(它是int,通常是32位),这是非常高的。