海运的博客

Openwrt路由宽带多拨叠加及多线路wan负载均衡

发布时间:September 8, 2012 // 分类:OpenWrt // 2 Comments

OpenWRT使用macvlan虚拟多wan:

opkg update
opkg install kmod-macvlan
#https://www.haiyun.me
#eth1.1为wan接口
ip link add link eth1.1 eth1.2 type macvlan
ip link set eth1.2 address 00:1f:a3:65:55:2d
ip link set eth1.2 up
ip link add link eth1.1 eth1.3 type macvlan
ip link set eth1.3 address 00:1f:a3:65:55:3d
ip link set eth1.3 up    

拨号时写入脚本同时多拨,也可使用morfast修改的pppd提高多拨成功率,PPPD拨号参数:

/usr/sbin/pppd plugin rp-pppoe.so mtu 1492 mru 1492 nic-eth1.1 persist usepeerdns nodefaultroute \
user <user> password <passwd> ipparam wan ifname pppoe-wan1 &

多拨成功后配置多路由负载均衡:

ip route add default scope global nexthop via ip1 dev pppoe-wan1 weight 1 nexthop via ip2 dev \
pppoe-wan2 weight 1 nexthop via ip3 dev pppoe-wan3 weight 1

iptables添加SNAT:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o pppoe-wan1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o pppoe-wan2 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o pppoe-wan3 -j MASQUERADE

一段时间后查看负载均衡效果:

iptables -t nat -L POSTROUTING -nv
Chain POSTROUTING (policy ACCEPT 1206 packets, 81303 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1948  158K MASQUERADE  all  --  *      pppoe-wan1  192.168.1.0/24       0.0.0.0/0           
 1943  159K MASQUERADE  all  --  *      pppoe-wan2  192.168.1.0/24       0.0.0.0/0           
 1912  559K MASQUERADE  all  --  *      pppoe-wan3  192.168.1.0/24       0.0.0.0/0

为公平分配可禁用路由缓存:

echo -1 > /proc/sys/net/ipv4/rt_cache_rebuild_count

另外可参考使用iptables nth标记策略路由实现负载均衡

Linux/Openwrt策略路由配置使用

发布时间:September 8, 2012 // 分类:OpenWrt // No Comments

Linux多可支持255个路由表,查看当前路由表:

#https://www.haiyun.me
ip rule ls
0:    from all lookup local 
32766:    from all lookup main 
32767:    from all lookup default 

根据源IP或目标IP选择路由表:

echo '252    onovps'>>/etc/iproute2/rt_tables 
#新建路由表ID与名称映射
ip rule add from 192.168.1.5 table onovps pref 32764
#新建路由表onovps,优先级32764
ip route add default via 192.168.1.2 dev pppoe-wan2 table onovps
#新建路由表onovps默认路由项
ip route flush cache
#刷新路由缓存

基于iptables标记选择路由表:

ip rule add fwmark 20 table onovps  pref 32763
#新建路由表,防火墙标记20的数据
ip route add default via 192.168.1.2 dev pppoe-wan2 table onovps
#默认路由
iptables -t mangle -APREROUTING -p udp --dport 53 -j MARK --set-mark 20
#标记数据

查看当前路由表:

ip rule ls
0:    from all lookup local 
32764:    from 192.168.1.5 lookup onovps
32765:    from all lookup main 
32766:    from all lookup main 
32767:    from all lookup default 

查看路由表onovps下路由项:

ip route ls table onovps
default via 192.168.1.2 dev eth1 
分类
最新文章
最近回复
  • fengfeng: N1 armbian 能有编译下内核吗。。我要开启can 不懂怎么操作
  • 1: 方法一ngtcp2要改下:./configure PKG_CONFIG_PATH=/usr/l...
  • 海运: 关闭服务器
  • 海风: override.battery.charge.low以及override.battery.r...
  • koldjf: 不能过滤
  • 杰迪武士: 此文甚好甚强巨,依照此文在树莓派2 + Rasbian上部署成功 感谢博主美文共赏
  • 海运: ups不知有没选项可设置此参数,不过你可以在另外一台电脑上安装nut客户端自动关机。
  • kgami: 想请教一下,设置了的电脑自动关机之后,几秒后UPS怎么也跟着关机了,导致另外一台电脑没关机就断...
  • 海运: 写的很详细了啊,/etc/nut/hosts.conf用以nut-cgi连接nut服务器参数,...
  • ryan: 请问下nginx配置好了,怎么和这个nut链接呢?最后可视化管理这块能给个详细一点的教程么?谢谢。