Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux内核支持多少vrf,哪些系统资源限制了vrf数量?_Linux_Networking_Linux Kernel_Routing - Fatal编程技术网

linux内核支持多少vrf,哪些系统资源限制了vrf数量?

linux内核支持多少vrf,哪些系统资源限制了vrf数量?,linux,networking,linux-kernel,routing,Linux,Networking,Linux Kernel,Routing,Linux内核现在支持全新的vrf(虚拟路由和转发)体系结构,这与旧的网络名称空间解决方案不同 问题: linux内核支持多少vrf 什么系统资源限制vrf容量 我是内核源代码的新手,找不到关于上面两个问题的信息 我编写了一个脚本来添加4096 vrf,并将vrf设备设置在openswitch x86 docker容器中,一切正常 脚本: def main(): for i in range(0, 4096): cmd("ip link add vrf%d type vr

Linux内核现在支持全新的vrf(虚拟路由和转发)体系结构,这与旧的网络名称空间解决方案不同

问题:

  • linux内核支持多少vrf
  • 什么系统资源限制vrf容量
  • 我是内核源代码的新手,找不到关于上面两个问题的信息

    我编写了一个脚本来添加4096 vrf,并将vrf设备设置在openswitch x86 docker容器中,一切正常

    脚本:

    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链路添加vrf0类型vrf表0
    root@switch:~#ip链路设置dev vrf0已启动
    ...
    root@switch:~#ip链路添加vrf4095类型vrf表4095
    root@switch:~#ip链路设置dev vrf4095已启动
    root@switch:~#ip-d链接显示类型vrf vrf4095
    4098:vrf4095:mtu 1500 qdisc pfifo_快速状态未知模式默认组默认qlen 1000
    链接/以太22:78:87:9d:ca:81 brd ff:ff:ff:ff:ff:ff乱交0
    vrf表4095 addrgenmode eui64
    root@switch:~#ip-d链接显示类型vrf | grep“NOARP,MASTER”| wc
    4097   61455  485311
    root@switch:~#uname-a
    Linux switch 4.4.0-45-generic#66 Ubuntu SMP周三10月19日14:12:37 UTC 2016 x86_64 GNU/Linux
    
    我的推荐人:


  • 您可以创建的VRF的数量似乎没有限制,唯一的限制是内存大小(为您创建的每个VRF netdev分配内存)和ifindex类型限制(它是int,通常是32位),非常高

    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