LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1256|回复: 4

请问怎么能叠加这两个AP的带宽呢?

[复制链接]
发表于 2009-3-19 12:06:09 | 显示全部楼层 |阅读模式
我有两块网卡,请问怎么连接2个ap并且叠加带宽?
发表于 2009-3-19 17:00:03 | 显示全部楼层
bind,please  google "bind"
回复 支持 反对

使用道具 举报

发表于 2009-3-20 12:51:53 | 显示全部楼层
不行吧,而且根据我对无线的理解,这样只能降低带宽。空中数据的速率是一定的,两个网卡同时工作只会增加错误碰撞的概率,还不如让一个网卡充分使用带宽。

当然如果人为限制了速度,用两块还是有效果的,最明显的例子就是一个网通宽带,一个电信宽带同时接入
回复 支持 反对

使用道具 举报

发表于 2009-3-20 20:10:55 | 显示全部楼层
bind是不可能的,计算机bind了,但ap那边没有bind功能,通讯会发生错误,反而严重影响速度。

用lartc.org里面说的,应用策略路由(多路由表+weight)的方法,只在用p2p软件的时候见效果——某些连接使用第一条线路,另一些连接使用另一条线路。
回复 支持 反对

使用道具 举报

发表于 2009-3-20 21:24:54 | 显示全部楼层
Post by abby;1963670
bind是不可能的,计算机bind了,但ap那边没有bind功能,通讯会发生错误,反而严重影响速度。

用lartc.org里面说的,应用策略路由(多路由表+weight)的方法,只在用p2p软件的时候见效果——某些连接使用第一条线路,另一些连接使用另一条线路。


这个从交换的角度上双网卡就需要双网关,计算机获得双网关是不能同时通讯的。默认还是一个网关通讯。

所以要走路由。路由可以分配网关。但是如何选择路由和判断那条线路空闲。就是另外的一种方式了。
通过dns做轮训可以实现一定的分流。但是无法判断线路负载。

所以这个问题不是很容易解决。

我的设想是:

线路1:

网段A 10.0.0.2 =====================  eth1

网关
10.0.0.1

线路2

网段B 160.0.0.2 ======================  eth2

网关
160.0.0.1

内部通讯

网段C

192.168.0.2  =========================== eth3

网关
192.168.0.1

路由
0.0.0.0 <-----> 192.168.0.1
160.0.0.0<-----> 192.168.0.1


/sbin/router_wifi

#加入eth1的IP指向和网关

#10.0.0.2 是eth1的IP地址;10.0.0.1 是网关

ip rule add pref 10 from 10.0.0.2 table 10
ip route replace default via 10.0.0.1 dev eth1 table 10

#加入eth2的IP指向和网关

ip rule add pref 20 from 160.0.0.2 table 20
ip route replace default via 160.0.0.1 dev eth2 table 20

#为eth3 做路由  (192.168.0.0)

ip route add 10.0.0.2 dev eth1 src 10.0.0.0
ip route add 160.0.0.2 dev eth2 src 160.0.0.0

# 负载均衡 地址为网关
ip route replace default \nexthop via 10.0.0.1 dev eth1 weight 3 \nexthop via 160.0.0.1 dev eth2 weight 1

#刷新CACHE
ip route flush cache

//////////////////////////////////

下边是FIREWALL,模仿这里老大的FIREWALL改的,

#! /bin/sh

UPLINK1="eth1"
UPLINK2="eth2"
UPIP1="10.0.0.0"
UPIP2="160.0.0.0"
ROUTER="yes"
NAT="UPIP"
INTERFACES="lo eth0 eth1 eth2 "
SERVICES="80 22 10000 "
deny=""

case "$@" in
start)
echo -n "Starting firewall..."
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
iptables -P INPUT DROP
iptables -A INPUT -i ! ${UPLINK1} -j ACCEPT
iptables -A INPUT -i ! ${UPLINK2} -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -P OUTPUT DROP
#enable public access to certain services
for x in ${SERVICES}
do
iptables -A INPUT -p tcp --dport ${x} -m state --state NEW -j ACCEPT
done

for y in ${deny}
do
iptables -A OUTPUT -p tcp --dport ${y} -j DROP
iptables -A OUTPUT -p udp --dport ${y} -j DROP
done

#enable system-log
#iptables -A INPUT -j LOG --log-prefix "bad input:"

iptables -A INPUT -p tcp -i ${UPLINK1} -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -i ${UPLINK2} -j REJECT --reject-with tcp-reset

#explicitly disable ECN
if [ -e /proc/sys/net/ipv4/tcp_ecn ]
then
echo 0 > /proc/sys/net/ipv4/tcp_ecn
fi

#disable spoofing on all intefaces
for x in ${INTERFACES}
do
echo 1 > /proc/sys/net/ipv4/conf/${x}/rp_filter
done

if [ "$ROUTER" = "yes" ]
then
#we're a router of some kind, enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
if [ "$NAT" = "dynamic" ]
then
#dynamic IP address, use masquerading
iptables -t nat -A POSTROUTING -o ${UPLINK} -j MASQUERADE
elif [ "$NAT" != "" ]
then
#static IP, use SNAT
#注意这里,将原来的IP伪装改为直接转发!别的事让路由去做

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.0.0/24 -j MASQUERADE

fi
fi
echo "OK!"
exit 0
;;
stop)
echo -n "Stopping firewall..."
iptables -F INPUT
iptables -P INPUT ACCEPT
iptables -F OUTPUT
iptables -P OUTPUT ACCEPT
#turn off NAT/masquerading, if any
#iptables -t nat -F POSTROUTING
echo "OK!"
exit 0
;;
restart)
$0 stop
$0 start

;;
show)
clear
echo ">-------------------------------------------------------------------"
iptables -L
echo ">-------------------------------------------------------------------"
iptables -t nat -L POSTROUTING
exit 0
;;
*)
echo "Usage: $0 {start|stop|restart|show}"
exit 1
esac


上面脚本是网上来的。

这样eth3 192.168.0.x被iptable转到eth1和eth2。
eth1与eth2优先级不同。可以做负载判定,选择出口网关是10.0.0.1还是160.0.0.1。实现负载均衡。
将/sbin/router_wifi赋予可执行权限。
通过/etc/rc.local调用。


请大家看看这种想法是否可以完成。有问题请指出。谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表