zoukankan      html  css  js  c++  java
  • OpenWRT/Linux多WAN带宽叠加使用iptables标记策略路由负载均衡

    http://www.haiyun.me/archives/iptables-nth-mark-route-load.html


    之前有介绍OpenWrt下ADSL多拨使用nexthop负载均衡,负载不是很理想,本次使用iptable标记数据包并配合策略路由实现负载均衡。
    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模块公平分发新数据包到WAN1和WAN2:

    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

  • 相关阅读:
    python zip,lambda,map函数
    TKinter Scale
    TKinter Radiobutton
    TKinter Listbox
    TKinter Entry 和 Text
    TKinter Label 和 Button
    python中global的用法
    收不到github认证邮件
    IDEA中文显示字体混乱
    使用码云加速下载github项目
  • 原文地址:https://www.cnblogs.com/ztguang/p/12644873.html
Copyright © 2011-2022 走看看