Ubuntu 如何定义网卡优先级?

2019-07-07 10:24:20 +08:00
 blueboyggh

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

6473 次点击
所在节点    Ubuntu
21 条回复
mason961125
2019-07-07 10:26:34 +08:00
你需要策略路由
sinopec
2019-07-07 10:31:42 +08:00
路由?
blueboyggh
2019-07-07 10:32:20 +08:00
@mason961125 这是软件还是啥
aaa5838769
2019-07-07 10:33:05 +08:00
为什么不做 bond
blueboyggh
2019-07-07 10:45:00 +08:00
@aaa5838769 不懂😂
2067
2019-07-07 10:51:08 +08:00
最简单的方法是添加路由的时候增加 metric
如果路由是从 dhcp 来的,可以变通的增加两条路由 0.0.0.0/1 和 128.0.0.0/1

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

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

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

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

我想这就是你要的。
chinawrj
2019-07-08 09:06:50 +08:00
你先定义一下什么是保持连接。
blueboyggh
2019-07-08 09:09:13 +08:00
@Hardrain 感谢,这个 overrides 属性之前我试过不行,研究了一下,可能是当时系统的 netplan 版本低,现在这个属性已经可以用了
blueboyggh
2019-07-08 09:09:53 +08:00
@chinawrj 就是网卡 b 有固定 ip 的情况下,能访问回来
blueboyggh
2019-07-08 09:11:14 +08:00
@Hardrain 但是我发现用这个方法,我的服务器打开一个端口,外网只能用网卡 a 访问,无法从网卡 b 访问,这是为啥
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

缘分就这么多,关键信息已给出。再见

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/580680

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX