V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wangbin11
V2EX  ›  宽带症候群

跨网段通过 vxlan 做二层互通,发现这样设置会断网,看看哪个大佬有办法, Linux 机器不是路由器

  •  
  •   wangbin11 · 98 天前 · 1424 次点击
    这是一个创建于 98 天前的主题,其中的信息可能已经有所发展或是发生改变。

    VXLAN 隧道与 Bridge 配合使用

    创建网桥 br0
    
        ip link add bridge0 type bridge
        ip link add vxlan0 type vxlan id 42 dstport 4789 dev ens34
        ip link set vxlan0 up
        ip link set vxlan0 master bridge0
        bridge fdb append 00:00:00:00:00:00 dev vxlan0 dst 172.17.200.1
        ip addr add 192.168.99.4/24 dev bridge0
    

    学艺不精,哪位大佬熟悉可以聊聊,看看有没有更好的办法我学习一下

    39 条回复    2023-11-27 12:37:05 +08:00
    Jat001
        1
    Jat001  
       98 天前
    最好画个拓扑图,流量进来是 untagged 还是 tagged ?如果是 untagged ,需要设 pvid 。流量出去如果下一级是接收 untagged ,那流出的端口需要设置成 untagged ,反之 tagged 。好乱还是画个拓扑图方便解释
    wangbin11
        2
    wangbin11  
    OP
       98 天前
    @Jat001 大佬,这个没法传图,要不您发个 v 我加您发图
    leonshaw
        3
    leonshaw  
       98 天前
    跨网段是内层网段还是外层网段?另外从你命令看,set bridge0 up 了没有?
    两边看一下
    ip neigh
    bridge fdb
    Jat001
        4
    Jat001  
       98 天前
    @wangbin11 #2 你随便找个图床吧,比如 https://sm.ms
    wangbin11
        5
    wangbin11  
    OP
       98 天前
    @Jat001 wang0123qwe
    要不大佬加我 v 吧。没咋玩过图床这种东西
    wangbin11
        6
    wangbin11  
    OP
       98 天前
    @leonshaw up 是肯定 up 了,跨外网网段的
    wangbin11
        7
    wangbin11  
    OP
       98 天前
    @Jat001 大佬帮忙看看呗,红包奉上
    Jat001
        8
    Jat001  
       98 天前
    红包就算了,最近不想加陌生人了……
    不想登录就用 https://imgur.com/upload 直接传图就行
    wangbin11
        9
    wangbin11  
    OP
       98 天前
    @Jat001 ![image.png]( https://s2.loli.net/2023/11/24/QeuaXKUxMyHbSOR.png)
    大致是这么个架构,北京二层访问到深圳二层,然后我现在只知道要用桥,汇聚虚拟网卡和物理网卡,通过桥来实现物理网卡会断网,vxlan 不熟悉。看看大佬这里有什么好办法吗
    Jat001
        10
    Jat001  
       98 天前
    卧槽,打扰了,这种企业级的路由我没搞过
    我以为是基于 802.1Q 的 VLAN 呢,没注意看不好意思
    wangbin11
        11
    wangbin11  
    OP
       98 天前
    @Jat001 vxlan 和路由有什么关系,主要看 vxlan ,通过 Linux 实现,你别跑,我抓了半天没抓到一个,好不容易看到你
    Jat001
        12
    Jat001  
       98 天前
    我是说你这种跨区域的网络我没搞过,我就搞过家庭组网的 vlan 而已,跟 vxlan 也不是一回事,用的都是 vlan 交换机+openwrt
    wangbin11
        13
    wangbin11  
    OP
       98 天前
    @Jat001 着实非常离谱,找不到大佬研究过这个了,我自己研究遇到问题,理论不行进展太慢了
    Jat001
        14
    Jat001  
       97 天前
    这种企业级的互联互通我建议你咨询宽带运营商或云服务商,他们都有解决方案
    wangbin11
        15
    wangbin11  
    OP
       97 天前
    @Jat001 你说有没有可能我就是做 sdwan 的,,
    Jat001
        16
    Jat001  
       97 天前
    那你这技术不行啊,找友商套套方案吧
    wangbin11
        17
    wangbin11  
    OP
       97 天前
    @Jat001 哈哈哈
    wsycqyz
        18
    wsycqyz  
       97 天前
    一定要用桥的目的?
    wangbin11
        19
    wangbin11  
    OP
       97 天前
    @wsycqyz 不一定要用桥其他任何方法都行,但是没找到,大佬有想法可以加我 v ,聊天记录有
    fan88
        20
    fan88  
       97 天前
    二层互通不一定要通过 VXLAN ,简单的方案比如 Zerotier 也可以实现二层互通。
    wangbin11
        21
    wangbin11  
    OP
       97 天前
    @fan88 大佬知道他是应用的什么方案吗,这才是我好奇的东西,
    wsycqyz
        22
    wsycqyz  
       97 天前
    我猜我知道用桥的目的了
    一端机器:
    ip link add vxlan42 type vxlan id 42 remote 1.2.3.4 local 5.6.7.8 dev ens3 dstport 4789
    ip link add br-vxlan42 type bridge
    #在这一行,把你想打通二层的那个 Linux 接口也加到 br-vxlan20 里
    ip link set vxlan20 master br-vxlan20
    ip link set vxlan20 up
    ip link set br-vxlan20 up

    另一端机器基本同上。
    wsycqyz
        23
    wsycqyz  
       97 天前
    @wangbin11 上面的写法里有 42 ,20 写混了,本应该是一个数字,我觉得意思你应该懂哈。
    wangbin11
        24
    wangbin11  
    OP
       97 天前
    @wsycqyz 我把物理网卡设置进去会断网,有什么办法不断网,这里我没发全,可以私聊。给大佬红包哈
    wsycqyz
        25
    wsycqyz  
       97 天前
    @wangbin11 建议哈,这里需要两个物理网口,一个是两地之间的三层通信口,另一个是用来桥二层的物理口,这样怎么折腾两地都不会断网。

    什么,只有一个物理口?也没有 vlan 子口?我真做不到。
    wangbin11
        26
    wangbin11  
    OP
       97 天前
    @wsycqyz 这个东西能不能通过虚拟物理网库或者什么其他方法,通过工具来操作,有些地方不具备多个网口的能力。大佬说的这个 vlan 子口,应该是交换机的东西吧,Linux 能虚拟一个吗
    GKLuke
        27
    GKLuke  
       97 天前 via iPhone
    有什么需求非要二层通
    wsycqyz
        28
    wsycqyz  
       97 天前
    @wangbin11 我懂你的需求。我没有研究过是否有工具+虚拟网口来实现你的想法。
    Linux 连接到交换机的 Trunk 口上,然后在物理网口上建立多个不同 VLAN 号的子网口,在这个例子中,可以创建两个子口,ens34.100 用来做三层通信,ens34.42 放到 br-vxlan42 里,这样两边 VLAN42 就是二层联通的。
    但是,你想的,VLAN100 既三层通,又二层通,在只有一个物理口的情况下,我目前做不出来。
    wangbin11
        29
    wangbin11  
    OP
       97 天前
    @wsycqyz 加个好友把,两个网口的我做出来,大佬发联系方式
    lcdtyph
        30
    lcdtyph  
       97 天前 via iPhone
    @wangbin11
    试试 veth pair ?新建一对 (veth0, veth0p)
    然后 vxlan dev veth0
    set veth0p master bridge0
    然后把物理端口也加进 bridge
    wangbin11
        31
    wangbin11  
    OP
       97 天前
    @lcdtyph 卡在这一步,物理网口加进桥导致清空网卡配置,结果断网
    thereone
        32
    thereone  
       97 天前
    这种单纯要二层互通的可以采用 softether 来搞,很简单的。一定要用 vxlan 我建议还是搞华为华三这些企业级交换机来做转发能力要比单纯 linux 加通用硬件要强,而且配置教程都很好找。
    789phitim789
        33
    789phitim789  
       97 天前 via Android
    做个 ros OS 软路由
    life90
        34
    life90  
       97 天前 via Android
    你这个需求,macOS 的网络设置就能做到。但是没去研究。至于你加进去就断网,应该是物理口丢失了三层配置。但系统没有应用你的 Vxlan 三层配置。像 systemd 体系的 Linux 发行版。做了桥或者 vxlan 要单独再去设置一遍。
    miemie666
        35
    miemie666  
       95 天前
    如果你只是打通两个点的二层的话,建议用 softether 傻瓜化组二层网络。

    vxlan 多播模式可以尝试下面的方法,建议先检查两边 udp 4789 端口打开没有。
    #起网桥
    ip link add br0 type bridge
    ip addr add 192.168.99.4/24 dev br0
    ip link set br0 up
    #起网卡
    ip link add vx1 type vxlan \
    id 42 \
    group 239.1.1.1 \
    dstport 4789 \
    dev ens34
    #附加桥
    ip link set vx1 master br0
    #动态表
    bridge fdb append to 00:00:00:00:00:00 dst 172.17.200.1 dev br0
    miemie666
        36
    miemie666  
       95 天前
    不过你说的断网应该是将物理网卡直接附加到桥上去导致的,那你只需要再设置一下桥接网卡的 IP 就行了,如果是 DHCP 模式就执行 dhclient br0 命令,或者更新 netplan 规则。
    wangbin11
        37
    wangbin11  
    OP
       95 天前
    @miemie666 大佬你的思路和我一样我给桥设置了 ip 也设置了网关还是断网,加个 v 吧,记录我留了
    miemie666
        38
    miemie666  
       95 天前
    @wangbin11 你是在虚拟机上弄的吧,那宿主机得开混杂模式( Promiscuous mode ),否则默认会丢弃非 ens34 的数据导致网络不通。如果开不了就行不通了,改其他方式。
    wangbin11
        39
    wangbin11  
    OP
       95 天前
    @miemie666 打开了的,找不到原因了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2648 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:31 · PVG 20:31 · LAX 04:31 · JFK 07:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.