Ubuntu 中目前接入了两个宽带,enp1s0 为联通,enp2s0 为电信
不想在上级路由使用 RouterOS iKuai OpenWRT 等,也不作路由使用,仅作为下载机及轻量容器部署
已经根据 https://lartc.org/howto/lartc.rpdb.multiple-links.html 试过 iproute 的方法,但是效果很不佳,丢包严重
请教下各位 V 友有什么好的办法负载均衡并叠加带宽提升上下行?
1
hefish 357 天前
这个要用对等路由吧。
ip route add default equalize nexthop via $LT_GW dev enp1s0 weight 10 nexthop via $CT_GW dev enp2s0 weight 10 |
2
hefish 357 天前
或者是用两个路由表,
联通进来的线路用默认的路由表, ip route add default via $LT_GW dev enp1s0 电信进来的用另一个路由表。 ip route add default via $CT_GW dev enp2s0 table 100 然后用 ip rules 分配 ip rule add from 0.0.0.0/0 dev enp2s0 table 100 |
3
Judoon 357 天前
不如换个思路吧,把联通和电信的 ip 网段扒出来,单独加路由表分开网卡走
|
4
Mythologyli 357 天前
用 kvm 装个软路由(逃
|
5
wheat0r 357 天前
链路负载均衡设备能卖钱就是因为这事其实很复杂。
单纯流量平均分,会有大量的请求走到不合适的线路里。 原则上来说,这事必须从 dns 开始,根据两个线路的带宽,按比例把解析请求扔给不同线路的 dns 服务器,这样自然会解出不同线路的 IP ,然后再根据路由表走对应的线路。如果解出来的 ip 不在两个运营商里,再平均分。 思考一下,linux 上面可以通过哪些方式解决这些问题。 |
6
hefish 357 天前
@hefish
上面只是来自电信的包,走电信路由回程, 忘了来自联通的包,走联通回程, ip rule add from 0.0.0.0/0 dev enp1s0 table main 还忘了创建 100 的路由表: echo 100 telecom >> /etc/iproute2/rt_tables |
7
liantian 357 天前 via iPhone
仅作为下载机…
那可以下载软件上下功夫,哪怕一个目的地址,多线程走不同出口…那不才是彻底吃满带宽。 |
8
Misakax OP 起因仅仅只是电信突然免费帮我从 100M 升到了 1000M ,本来 Ubuntu 只接了一条联通的千兆,就突发奇想想试试两条千兆接入能否叠加,又受制于网口都是千兆口,在上级路由叠加带宽也不能实现目的。
|
10
hefish 356 天前
按说能叠加,好像只要用对等路由就可以了,跟前些年的软路由多拨使 PT 带宽加倍差不多的意思。
|