Linux 使用iptables标记策略路由负载均衡

WAN1数据标记:

1

2

3

4

5

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数据标记:

1

2

3

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设置到数据包中:

1

2

3

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模块公平分发新数据包到WAN1WAN2

1

2

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

设置路由表:

1

2

3

4

5

6

7

8

cat /etc/iproute2/rt_tables

#http://www.haiyun.me

255 local

254 main

253 default

0  unspec

252 WAN1

251 WAN2

设置路由表默认路由:

1

2

3

4

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标记应用路由:

1

2

3

4

5

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

禁用源地址验证:

1

2

cat /etc/sysctl.conf

net.ipv4.conf.default.rp_filter = 0

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值