我想在networking接口之间select一个特定的IP。 例如:
请求192.168.1.5 //使用接口1
请求192.168.1.5 //使用接口2
请求192.168.1.5 //使用接口1
请求192.168.1.5 //使用接口2
请求192.168.1.5 //使用接口1
请求192.168.1.5 //使用接口2
我使用的是Ubuntu 10.我发现这个:
http://www.go2linux.org/load-balance-traffic-for-two-isps-with-linux
这就是我要找的东西吗
Linux绑定驱动程序提供了将多个networking接口聚合为单个逻辑绑定接口的方法。
http://www.linuxhorizon.ro/bonding.html
http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding
我已经在一台Ubuntu服务器上设置了这个设置,我将在下面发布configuration。 这种设置很痛苦,仍然存在一些问题,这台机器还提供了NAT(在另一个接口上),对于NAT客户端,一些服务(openvpn,icq)在来自不同地址不时地。
无论如何: – 我用它来利用两个100Mbps的互联网链接与两个公共IP – 适用于Apache – 每个请求处理不同的接口,等等…但客户的路由得到修复,所以这是一种很好的清理路由caching每隔一段时间(通过/sbin/route del default ) – 但是当你这样做 – 一些服务变得困惑。 (OpenVPN客户端需要有“浮动”添加到configuration,以便他们将信任服务器与多个地址,等等…)。 每个连接可以获得最大100 Mbps,但2个连接可以达到200 Mbps …
许多应用程序都很混乱,所以当你有机会使绑定工作 – 你可以pipe理交换机 – 我会build议这种方法。
我的互联网接口:
eth0 Link encap:Ethernet HWaddr 00:11:09:5e:af:af
inet addr:69.42.248.102 Bcast:69.42.248.127 Mask:255.255.255.192
eth2 Link encap:Ethernet HWaddr 00:0e:2e:0d:32:b4
inet addr:69.42.248.103 Bcast:69.42.248.127 Mask:255.255.255.192
它们通过/ etc / network / interfaces中相当默认的设置进行configuration
auto eth0
iface eth0 inet static
地址69.42.248.102
networking掩码255.255.255.192
网关69.42.248.65
auto eth2
iface eth2 inet static
地址69.42.248.103
networking掩码255.255.255.192
网关69.42.248.65
最后,我通过在启动后调用脚本来初始化负载平衡(添加到rc.local(退出前)或crontab)
#!/斌/庆典 #我不记得为什么在这里多次 - 但我有默认设置多个门和接口,所以我想这是在这里清除他们所有;-) / sbin / route del默认 / sbin / route del默认 / sbin / route del默认 / sbin / route del默认 ip route add default scope global \ 下一步通过69.42.248.65 dev eth0权重1 \ 下一步通过69.42.248.65 dev eth2权重1
这基本上告诉路由使用不同的ethX和相同的权重相同的门 – 从而做循环每个连接的负载平衡。
我的DNS是生锈的,但是你不能只在你的Alogging中放两个IP地址,如果我没记错的话,大多数系统会在两者之间交替。 当然,这假设你使用的是主机名而不是直接的IP地址。