用树莓派实现宽带多次拨号,带宽叠加
2014-04-21 10:55
615 查看
条件:宽带接入没有做整体带宽限制。
树莓派安装无线网卡,并配置无线WIFI(内网地址192.168.0.0/24,树莓派wlan0地址192.168.0.1),这个可以查找相应文章,很多。
添加vlan网卡
ip link add link eth0 name eth0.1 type macvlan
ip link add link eth0 name eth0.2 type macvlan
编辑/etc/iproute2/rt_tables添加
1 pppoe_conn1
2 pppoe_conn2
配置pppoe,拨号,参考网上文章,每一个vlan网卡绑定一个,可以多个,本例两个
拨号获取ppp0、ppp1
使用 CONNMARK 对连接进行标记
标记外来数据包
iptables -t mangle -A PREROUTING -i ppp0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 99
iptables -t mangle -A PREROUTING -i ppp1 -m conntrack --ctstate NEW -j CONNMARK --set-mark 66
标记转出的包
iptables -t mangle -A POSTROUTING -o ppp0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 99
iptables -t mangle -A POSTROUTING -o ppp1 -m conntrack --ctstate NEW -j CONNMARK --set-mark 66
局域网进来数据
iptables -t mangle -A PREROUTING -i wlan0 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
标记本地出去的包
iptables -t mangle -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
在 IPROUTE2 中做基于 mark 的策略路由
ip rule add mark 99 table pppoe_conn1 prio 50
ip rule add mark 66 table pppoe_conn2 prio 50
添加原路返回路由,
ip route add table pppoe_conn1 to ppp0上的ip dev ppp0 scope link # 175是本地ip
ip route add table pppoe_conn1 to ppp1上的ip dev ppp1 scope link
ip route add table pppoe_conn1 to 192.168.0.0/24 dev wlan0 scope link
ip route add default via ppp0上的网关地址 dev ppp0 table pppoe_conn1
ip route add table pppoe_conn2 to ppp0上的ip dev ppp0 scope link
ip route add table pppoe_conn2 to ppp1上的ip dev ppp1 scope link
ip route add table pppoe_conn2 to 192.168.0.0/24 dev wlan0 scope link
ip route add default viappp1上的网关地址 dev ppp1 table pppoe_conn2
ip route add 0/0 scope global nexthop via ppp0上的网关地址 dev ppp0 weight 1 nexthop via ppp1上的网关地址 dev
ppp1 weight 1
NAT规则
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o ppp1 -j MASQUERADE
打开转发
echo 1 > /proc/sys/net/ipv4/ip_forward
参考:http://wenku.baidu.com/view/2ae8757b02768e9951e738e8.html
树莓派安装无线网卡,并配置无线WIFI(内网地址192.168.0.0/24,树莓派wlan0地址192.168.0.1),这个可以查找相应文章,很多。
添加vlan网卡
ip link add link eth0 name eth0.1 type macvlan
ip link add link eth0 name eth0.2 type macvlan
编辑/etc/iproute2/rt_tables添加
1 pppoe_conn1
2 pppoe_conn2
配置pppoe,拨号,参考网上文章,每一个vlan网卡绑定一个,可以多个,本例两个
拨号获取ppp0、ppp1
使用 CONNMARK 对连接进行标记
标记外来数据包
iptables -t mangle -A PREROUTING -i ppp0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 99
iptables -t mangle -A PREROUTING -i ppp1 -m conntrack --ctstate NEW -j CONNMARK --set-mark 66
标记转出的包
iptables -t mangle -A POSTROUTING -o ppp0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 99
iptables -t mangle -A POSTROUTING -o ppp1 -m conntrack --ctstate NEW -j CONNMARK --set-mark 66
局域网进来数据
iptables -t mangle -A PREROUTING -i wlan0 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
标记本地出去的包
iptables -t mangle -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
在 IPROUTE2 中做基于 mark 的策略路由
ip rule add mark 99 table pppoe_conn1 prio 50
ip rule add mark 66 table pppoe_conn2 prio 50
添加原路返回路由,
ip route add table pppoe_conn1 to ppp0上的ip dev ppp0 scope link # 175是本地ip
ip route add table pppoe_conn1 to ppp1上的ip dev ppp1 scope link
ip route add table pppoe_conn1 to 192.168.0.0/24 dev wlan0 scope link
ip route add default via ppp0上的网关地址 dev ppp0 table pppoe_conn1
ip route add table pppoe_conn2 to ppp0上的ip dev ppp0 scope link
ip route add table pppoe_conn2 to ppp1上的ip dev ppp1 scope link
ip route add table pppoe_conn2 to 192.168.0.0/24 dev wlan0 scope link
ip route add default viappp1上的网关地址 dev ppp1 table pppoe_conn2
ip route add 0/0 scope global nexthop via ppp0上的网关地址 dev ppp0 weight 1 nexthop via ppp1上的网关地址 dev
ppp1 weight 1
NAT规则
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o ppp1 -j MASQUERADE
打开转发
echo 1 > /proc/sys/net/ipv4/ip_forward
参考:http://wenku.baidu.com/view/2ae8757b02768e9951e738e8.html
相关文章推荐
- 在Vista中轻松实现宽带自动拨号
- linux iptables实现单机多ip出口ip负载均衡(宽带叠加)
- RouterOS如何实现多线路带宽叠加功能
- Win7系统下如何实现开机自动宽带拨号上网
- windows7系统双网卡同时上网实现宽带叠加
- 用C#实现宽带重新拨号
- Qt实现Rasdial宽带拨号
- Qt实现Rasdial宽带拨号
- 用C#实现宽带重新拨号
- C# 网络营销 - c#可以实现连接和断开宽带的拨号程序吗?
- Qt实现Rasdial宽带拨号
- 用C#实现宽带重新拨号
- 用C#实现宽带重新拨号
- 巧用批处理文件实现宽带自动拨号
- c#可以实现连接和断开宽带的拨号程序吗?
- 利用VMWare和软路由多播实现校园网带宽叠加
- 什么是拨号上网,即点击“宽带连接”输入账号和密码方式,实现上网,即为拨号上网
- win7实现开机自动登录并自动连接宽带拨号方法
- GPRS模块实现拨号上网
- C# 实现程序只启动一次(多次运行激活第一个实例,使其获得焦点,并在最前端显示)