当前位置:   article > 正文

OpenWRT/Linux多WAN负载均衡实现方法详解

iptalbes 统计wwan1

之前有介绍OpenWrt下ADSL多拨使用nexthop负载均衡,负载不是很理想,本次使用iptable标记数据包并配合策略路由实现负载均衡。

WAN1数据标记:iptables -t mangle -N WAN1

iptables -t mangle -A WAN0 -j MARK --set-mark 1

#标记数据包

iptables -t mangle -A WAN0 -j CONNMARK --save-mark

#把数据包中的mark设置到整个连接中

WAN2数据标记:iptables -t mangle -N WAN2

iptables -t mangle -A WAN2 -j MARK --set-mark 1

iptables -t mangle -A WAN2 -j CONNMARK --save-mark

把已存在连接中的mark设置到数据包中:iptables -t mangle -N RESTORE

iptables -t mangle -A RESTORE -j CONNMARK --restore-mark

iptables -t mangle -A PREROUTING -m state --state ESTABLISHED,RELATED -j RESTORE

使用NTH模块公平分发新数据包到WAN1和WAN2:iptables -t mangle -A PREROUTING -m state --state NEW -m statistic --mode nth --every 2 --packet 0 -j WAN1

iptables -t mangle -A PREROUTING -m state --state NEW -m statistic --mode nth --every 2 --packet 1 -j WAN2

设置路由表:cat /etc/iproute2/rt_tables

#https://www.haiyun.me

255 local

254 main

253 default

0 unspec

252 WAN1

251 WAN2

设置路由表默认路由:ip route flush table WAN1

ip route add table WAN1 default via 2.2.2.2 dev ppp0

ip route flush table WAN2

ip route add table WAN2 default via 1.1.1.1 dev ppp1

根据iptables标记应用路由:ip rule del from all fwmark 2 2>/dev/null

ip rule del from all fwmark 1 2>/dev/null

ip rule add fwmark 1 table my_wan0

ip rule add fwmark 2 table my_wan1

ip route flush cache

禁用源地址验证:cat /etc/sysctl.conf

net.ipv4.conf.default.rp_filter = 0

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/232160
推荐阅读
相关标签
  

闽ICP备14008679号