用动态路由打通各 Virtual L2(Zerotier)网络 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hiplon
V2EX    宽带症候群

用动态路由打通各 Virtual L2(Zerotier)网络

  •  
  •   hiplon 2020 年 9 月 15 日 4473 次点击
    这是一个创建于 1944 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文主要以 Zerotier 组好的各 Virtual L2 网络节点 + 动态路由 RIP 为例,最终效果就是让网关建立 Zerotier 的 Virtual L2 网络,网关下的其它网段就能相互通信。

    拓扑如下:

    Zerotier RIP 拓扑

    例如如上拓扑,Zerotier 建立了 192.168.193.0/24 的互联虚拟二层,有 192.168.193.6 、192.168.193.11 、192.168.193.21 的网关下面有 172.16.0.0/23 、192.168.2.0/24 、192.168.11.0/24 三个网段,那么通过建立 rip 动态路由,让这三个网段可以互通。

    网关设备默认是 OpenWRT 设备,前提是已经通过例如 VPN/Tinc/Zerotier 等方法建立了互联段。

    如果还没建立的话可以参考: /t/649829

    https://vnf.cc/2019/12/zerotier-sd-lan/

    先建好互联的段,

    下面开始做动态路由的配置

    先安装 quagga-zebra 和 quagga-ripd 组件:

    # opkg install quagga-zebra quagga-ripd 

    如果想要有操作终端界面可以安装quagga-vtysh

    分别编辑 rip 路由 /etc/quagga/ripd.conf

    192.168.193.6 、172.16.0.0/23

    password zebra ! router rip network 192.168.193.0/24 route 172.16.0.0/23 ! access-list vty permit 127.0.0.0/8 access-list vty deny any ! line vty access-class vty 

    192.168.193.11 、192.168.2.0/24

    password zebra ! router rip network 192.168.193.0/24 route 192.168.2.0/24 ! access-list vty permit 127.0.0.0/8 access-list vty deny any ! line vty access-class vty 

    192.168.193.21 、192.168.11.0/24

    password zebra ! router rip network 192.168.193.0/24 route 192.168.11.0/24 ! access-list vty permit 127.0.0.0/8 access-list vty deny any ! line vty access-class vty 

    然后重启 quagga 进程 /etc/init.d/quagga restart

    在有装 vtysh 的设备可以进终端看看 rip 状态

    # vtysh Hello, this is Quagga (version 1.1.1). Copyright 1996-2005 Kunihiro Ishiguro, et al. nRouter# show ip rip status Routing Protocol is "rip" Sending updates every 30 seconds with +/-50%, next due in 28 seconds Timeout after 180 seconds, garbage collect after 120 seconds Outgoing update filter list for all interface is not set Incoming update filter list for all interface is not set Default redistribution metric is 1 Redistributing: Default version control: send version 2, receive any version Interface Send Recv Key-chain ztuku6smag 2 1 2 Routing for Networks: 192.168.193.0/24 Routing Information Sources: Gateway BadPackets BadRoutes Distance Last Update 192.168.193.21 0 0 120 00:00:19 192.168.193.11 0 0 120 00:00:07 192.168.193.14 0 0 120 00:00:10 Distance: (default is 120) nRouter# 

    在其它设备可以看看路由

    # ip route | grep zebra 172.16.0.0/23 via 192.168.193.6 dev ztuku6smag proto zebra metric 20 192.168.11.0/24 via 192.168.193.21 dev ztuku6smag proto zebra metric 20 192.168.12.0/24 via 192.168.193.14 dev ztuku6smag proto zebra metric 20 

    这样子这三个网段就能够互通了,

    比如从 172.16.1.99 可以通 192.168.11.8

    root@ubuntu-lxc:/etc/apt# ip addr | grep inet inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host inet 172.16.1.99/23 brd 172.16.1.255 scope global eth0 inet6 fe80::38a9:fcff:fe1d:b7f6/64 scope link root@ubuntu-lxc:/etc/apt# ping 192.168.11.8 PING 192.168.11.8 (192.168.11.8) 56(84) bytes of data. 64 bytes from 192.168.11.8: icmp_seq=1 ttl=62 time=19.0 ms 64 bytes from 192.168.11.8: icmp_seq=2 ttl=62 time=14.6 ms 64 bytes from 192.168.11.8: icmp_seq=3 ttl=62 time=15.0 ms 64 bytes from 192.168.11.8: icmp_seq=4 ttl=62 time=16.1 ms 64 bytes from 192.168.11.8: icmp_seq=5 ttl=62 time=16.9 ms ^C --- 192.168.11.8 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 14.592/16.344/19.022/1.572 ms root@ubuntu-lxc:/etc/apt# 

    refer: https://vnf.cc/2020/09/zerotier-l3-rip/

    11 条回复    2020-09-17 16:08:32 +08:00
    burndown
        1
    burndown  
       2020 年 9 月 15 日
    赞,静态路由是不是也可以?
    hiplon
        2
    hiplon  
    OP
       2020 年 9 月 15 日
    @burndown 静态路由也可以的,不过节点一多要人工维护起来就很麻烦了
    mason961125
        3
    mason961125  
       2020 年 9 月 15 日
    quagga 太老了,基本处于不维护状态了,建议换 frrouting 。
    IGP 还可以选择 OSPF 等别的协议。
    hello365
        4
    hello365  
       2020 年 9 月 15 日
    zerotier 不是支持页面配置的嘛,更方便一些,quagga 或是 frrouting 是只配置一台机器的就能远程全部更新所有节点路由表的软件?最近一直在好奇是不是有这种软件。
    vbcity
        5
    vbcity  
       2020 年 9 月 15 日
    OSPF 搞定一切。
    hiplon
        6
    hiplon  
    OP
       2020 年 9 月 15 日
    @vbcity 有些隧道协议会过滤 OSPF 这种 IP RAW 的报文
    hiplon
        7
    hiplon  
    OP
       2020 年 9 月 15 日
    @hello365 这种都是动态路由,每个节点都要配置,因为这种方法比较通用,用 VPN 或者其它隧道组互联网段都能通用
    hiplon
        8
    hiplon  
    OP
       2020 年 9 月 15 日
    @mason961125 好像 openwrt 还没有 frr 的二进制-_-k, 不过可以用 bird1cl-ipv4 替换 quagga, 不过嵌入式设备跑个路由协议哪个资源占用少就用哪个了^^
    hello365
        9
    hello365  
       2020 年 9 月 15 日
    @hiplon 嗯,又 get 到新的东西,回头学习一下,感谢分享。
    samondlee
        10
    samondlee  
       2020 年 9 月 17 日
    写的很详细,但是还是看不懂哭了
    hiplon
        11
    hiplon  
    OP
       2020 年 9 月 17 日
    @samondlee 开两台虚拟机操作一下就明了^_^
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2583 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 02:35 PVG 10:35 LAX 18:35 JFK 21:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86