关于双网卡同一网关做均衡的笔记

    单位的网络是针对IP限速的,每IP速度不高,有时候下个iso镜像带宽就基本干不了别的了。于是想,装两块网卡用两个IP速度翻倍。记得去年就有过念头而且简单折腾了2天,没成功。前天看到某个话题又想起来,于是又去搜索了一下,找到些资料:

    先搜均衡,NAT的方法可以实现以目的IP 或者源IP+目的IP 分配均衡。也就是有两个网关的话,去往同一个目的IP的数据包都走同一个出口。然后找到了关于双连接的负载均衡 , Linux可以做到 连接级别 的负载均衡和 包级别 的负载均衡。连接级别就是每个Session都会去route cache里找下一个尽量和上次不同的出口发送数据包,已经建立的TCP连接会使用同一个出口。如果是包级别,每个数据包轮转使用不同出口发出去,对于数据通信没问题,如果是登录某个网站,可能会发生登录之后网站收到从不同出口(网关)发出的包认为又没有登录的情况。

    看到这里,基本可以确定,对于大多数都是浏览的情况,连接级别的均衡比较合适。并且,连接级别很容易实现;包级别对于Linux,2.4的内核需要一个补丁equalize-2.4.18.patch,然后用ip route add default scope global equalize 添加多个网关。2.6内核似乎没有可用的补丁,至少没有搜到。那就更是只能用连接级别了,事先命令很简单:ip route add default scope global nexthop via 网关1 dev eth0 nexthop via 网关2 dev eth1 。于是我加一块网卡,eth0和eth1是同一网段的不同IP,两个网卡使用同一个网关。

    测试:同时下载两个iso镜像,确实能达到两倍于原来的速度。


    关于Linux路由,有两处很好的网站可以看: Linux Advanced Routing & Traffic Control Guide to IP Layer Network Administration with Linux

 

    第二个网站中route 一节解释了我之前不明白的,route命令和ip route命令的区别。“When using route and ip route on the same machine, it is important to understand that not all routing table entries can be shown with route . The key distinction is that route only displays information in the main routing table. NAT routes, and routes in tables other than the main routing table must be managed and viewed separately with the ip route tool.”

 

    昨晚又突然想到,虚拟机里的网卡是可以加入到宿主机所在的真实网段中工作的,那应该也可以直接虚拟出一个网卡,分配一个IP,实现同网段两个(甚至更多)IP一起达到更高的总速度。搜到了veth,在2.4内核时写的1.0版,我在Arch AUR里找到的也是1.0,当前的2.6内核也可以用。装上之后,使用很简单:开启vethd守护进程会自动创建一个veth0,自动计算mac地址;用veth -v -m可以定制虚拟网卡名和mac。今天把第二块网卡拔掉,修改/etc/rc.conf把ROUTE=(gateway)注释掉,然后在/etc/rc.d/network中启动路由的部分,增加vethd start和ip route add default scope global nexthop via [网关] dev eth0 nexthop via [网关] dev veth0两行。最后/etc/rc.d/network restart,OK。

 

    最后,在同时下载两个iso测试时,发现:1.系统监视器显示veth0是间歇性以1.5Mbps 接收数据,其他时间速度为0;而kdemod桌面放的网络监视器部件显示的速度是连续的曲线。2.eth0空闲,veth0工作时候,两个监视器显示的eth0的速度都等于veth0的速度。估计是监控程序对于虚拟出来的网卡识别有偏差。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值