V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blueboyggh
V2EX  ›  Ubuntu

Ubuntu 如何定义网卡优先级?

  •  
  •   blueboyggh · 2019-07-07 10:24:20 +08:00 via Android · 6194 次点击
    这是一个创建于 1726 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接了两个网卡,都是有线,想让系统优先走网卡 a,但是网卡 b 也要保持连接,怎么搞?

    21 条回复    2019-12-12 11:15:30 +08:00
    mason961125
        1
    mason961125  
       2019-07-07 10:26:34 +08:00
    你需要策略路由
    sinopec
        2
    sinopec  
       2019-07-07 10:31:42 +08:00
    路由?
    blueboyggh
        3
    blueboyggh  
    OP
       2019-07-07 10:32:20 +08:00 via Android
    @mason961125 这是软件还是啥
    aaa5838769
        4
    aaa5838769  
       2019-07-07 10:33:05 +08:00
    为什么不做 bond
    blueboyggh
        5
    blueboyggh  
    OP
       2019-07-07 10:45:00 +08:00 via Android
    @aaa5838769 不懂😂
    2067
        6
    2067  
       2019-07-07 10:51:08 +08:00
    最简单的方法是添加路由的时候增加 metric
    如果路由是从 dhcp 来的,可以变通的增加两条路由 0.0.0.0/1 和 128.0.0.0/1

    然后给想走网卡 b 的特定网段单独添加路由

    因为路由选择的原则是:优先最长匹配,匹配相同的时候选 metric 小的那个
    所以不用担心局域网直连的设备访问不到
    2exploring
        7
    2exploring  
       2019-07-07 10:51:47 +08:00
    路由表有个优先级,决定数据包从哪个网卡哪个 IP 出去。你可以自己改,如果你想自动调整路由,就得看你用什么软件来管理网络了。( Ubuntu 的话一般是 NetworkManager 吧)
    2067
        8
    2067  
       2019-07-07 10:54:31 +08:00
    @aaa5838769 #4
    主备的 bond 并不提升带宽,负荷分担的需要交换机支持,否则看上去似乎工作正常,实际上交换机一直在震荡
    aaa5838769
        9
    aaa5838769  
       2019-07-07 11:00:54 +08:00
    @yujiaxin 哦哦 有学习了一波
    realpg
        10
    realpg  
       2019-07-07 11:27:25 +08:00
    需要补习基础网络知识
    gaodaabao
        11
    gaodaabao  
       2019-07-07 11:39:55 +08:00 via Android
    你可以服务器网卡做 bond0 应该是两个都负载,做 bond1 应该是主备,你查下 bond 就懂了,有多个模式
    deorth
        12
    deorth  
       2019-07-07 12:41:09 +08:00
    #10+1
    2067
        13
    2067  
       2019-07-07 13:08:53 +08:00 via Android
    @gaodaabao bond 后边的数字只是编号
    具体的模式参考
    https://www.ibm.com/support/knowledgecenter/linuxonibm/com.ibm.linux.z.l0wlcb00/l0wlcb00_bondingmodes.html

    但是还是之前说的,负荷分担需要对端设备(通常是交换机)配合,否则只有上行分担,下行处于震荡状态,根据交换机刷 mac 表项的速度以及生效的速度,可能出现丢包以及网络抖动增大的情况而且下行带宽并不增大
    stephenyin
        14
    stephenyin  
       2019-07-07 13:37:32 +08:00
    route 命令设置 default 走网卡 a
    Hardrain
        15
    Hardrain  
       2019-07-07 18:48:17 +08:00
    如果你用 18.04 以上
    或者任何其他使用 netplan 管理网路的版本

    参考:
    https://netplan.io/examples#connecting-multiple-interfaces-with-dhcp

    我想这就是你要的。
    chinawrj
        16
    chinawrj  
       2019-07-08 09:06:50 +08:00
    你先定义一下什么是保持连接。
    blueboyggh
        17
    blueboyggh  
    OP
       2019-07-08 09:09:13 +08:00 via Android
    @Hardrain 感谢,这个 overrides 属性之前我试过不行,研究了一下,可能是当时系统的 netplan 版本低,现在这个属性已经可以用了
    blueboyggh
        18
    blueboyggh  
    OP
       2019-07-08 09:09:53 +08:00 via Android
    @chinawrj 就是网卡 b 有固定 ip 的情况下,能访问回来
    blueboyggh
        19
    blueboyggh  
    OP
       2019-07-08 09:11:14 +08:00 via Android
    @Hardrain 但是我发现用这个方法,我的服务器打开一个端口,外网只能用网卡 a 访问,无法从网卡 b 访问,这是为啥
    chinawrj
        20
    chinawrj  
       2019-07-08 13:38:43 +08:00
    @blueboyggh
    策略路由:
    ip rule add from xxx table policy_a
    ip route add xxxxxxxxxxx table policy_a

    缘分就这么多,关键信息已给出。再见
    standin000
        21
    standin000  
       2019-12-12 11:15:30 +08:00
    ip route add default via <gateway> dev <interface> metric <val> @blueboyggh 通过 metric 控制路由优先级
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3233 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:40 · PVG 19:40 · LAX 04:40 · JFK 07:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.