linux怎么查看路由路径,如何在Linux上实现每包多路径路由?

好的,所以在有更多时间进行调查后,我发现了一种使用Linux TEQL(True Link均衡器)的方法.这是我松散遵循的链接,但有一些调整.

这就是我如何使用Arch Linux ARMv7(Raspberry Pi 3)

在开机时:

应在引导时运行以下命令以加载适当的内核模块.

modprobe sch_teql

假设您希望从eth0上的本地网络进行NAT,以下命令也将在引导时运行.

sysctl -w net.ipv4.ip_forward=1

iptables -A INPUT -i ppp+ -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i ppp+ -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

iptables -A POSTROUTING -t nat -o teql+ -j MASQUERADE

FORWARD返回流量在ppp上,而POSTROUTING MASQUERADE在teql上,因为传出流量在teql上消失,返回流量在ppp上返回.

当ppp链接出现时:

假设要进行负载平衡的链接是ppp,则在/etc/ppp/ip-up.d/脚本的脚本中运行以下命令.

sysctl -w net.ipv4.conf.ppp1.rp_filter=2

sysctl -w net.ipv4.conf.ppp2.rp_filter=2

tc qdisc add dev ppp1 root teql0

tc qdisc add dev ppp2 root teql0

ip address add 1.1.1.1/32 dev teql0

# you can add additional public IP addresses teql0 if you need to

ip link set teql0 up

ip route replace default scope global dev teql0

1.1.1.1是面向ISP的公共IP地址.可以将其他公共IP分配给teql0设备,但不需要将其分配给ppp设备.在我的设置中,两个ppp链接共享相同的IP(由pppoe等协商)如上所示手动分配的teql链接. ISP需要在两个链路上均等地发送IP流量.

在上面的脚本中,反向路径(rp_filter)都设置为2(松散),因此返回数据包不会因为它们返回到ppp接口而不是teql0而被丢弃.

我已经设置了这种方式,它完美无缺.很容易!当链接失败时,会有无缝的故障转移.当他们出现时,他们才刚刚开始工作.似乎在故障转移时没有数据包丢失或延迟,并且在它恢复时也没有.

此外,其中一位评论者提出了以下链接,该链接使用策略路由,使用iptables标记其他所有数据包等,但我会在几天内尝试查看它是否比上述更好,并在此提供相应的反馈.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值