我需要提高 LAN 用户的 Internet 连接性和速度。这些是我手头上要做的事情。
- 具有 3 个网卡的 PC,其中 1 个用于 LAN,2 个用于路由器
- 2 个带有动态 IP 的宽带连接连接到两个路由器。 (一台使用 192.168.1.1,一台使用 192.168.0.1)
- CentOs 6.4
我需要 My Eth0 来为我的 LAN 用户提供服务,如下所示:
Eth0 Ip:192.168.100.250 这应该是他们通往互联网的网关和 DNS(如果错误请纠正我)
我使用每个路由器的 LAN IP 作为网关,使用 DNS 作为; Eth1 IP:192.168.0.250,网关 192.168.0.1,DNS 192.168.0.1 Eth2 IP:192.168.1.250,网关 192.168.1.1,DNS 192.168.1.1
但如何配置 Bonding?在配置绑定之前是否需要分配 IP 设置?我应该将路由器的 LAN IP 地址更改为与 192.168.1.1 和 192.168.1.2 相同的网段/子网吗?如果我配置绑定,我的 Eth0 配置应该是什么?保持原状?对于超过50个用户的局域网,什么绑定模式最合适?
答案1
以太网绑定不是这里的解决方案。绑定是第 2 层功能,并且您在路由器上运行第 3 层 (IP)。
我假设您的路由器连接到不同的 ISP 端点。
我会做什么:
从配置中删除两个路由器,并直接在具有 3 个 NIC 的 PC 上配置 ISP 网络。那是:
- 网卡1:192.168.100.250
- NIC 2:ISP #1 公共 IP
- NIC 3:ISP #2 公共 IP
创建 NAT 规则,使来自源端口 1-32767 的流量 NAT 到第一个出局连接公共 IP,来自源端口 32768-65535 的流量被 NAT 到第二个出局连接公共 IP。通过此配置,您将获得基本的负载平衡配置。
编辑:您可能还需要在这里应用一些策略路由,因为 NAT 是在路由决策之后完成的,因此数据包仍然会被路由到错误的接口。
特定源端口的多网关路由对于如何应用基于源端口的策略路由有明确的说明。
答案2
我会按照第 1 部分中 Tero 的建议进行操作(可能不需要配置公共 IP,但我使用公共地址配置了 NIC。)关于第 2 部分,我认为必须有更好的方法来执行此操作,但不确定如何实现。我想补充的是关于策略路由,因为给出的链接不是专门针对这种情况的,并且还涉及我认为没有提到的伪装。添加行
1 isp1
2 isp2
到 /etc/iproute2/rt_tables。
然后:
ip addr add 192.168.100.250 dev eth0
ip addr add 192.168.0.250 dev eth1
ip addr add 192.168.1.250 dev eth2
(如果尚未配置)然后
iptables-save > IptablesSaveFile
然后编辑这个文件,使它看起来像
*nat
:PREROUTING ACCEPT
:INPUT ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT
-A POSTROUTING ! -d 192.168.100.0/24 -o eth1 -j SNAT --to-source 192.168.0.250
-A POSTROUTING ! -d 192.168.100.0/24 -o eth2 -j SNAT --to-source 192.168.1.250
-A POSTROUTING -o eth1 -j MASQUERADE
-A POSTROUTING -o eth2 -j MASQUERADE
COMMIT
*filter
... your iptables filtering rules here ...
-A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A FORWARD -i eth0 -o eth2 -j ACCEPT
COMMIT
然后
iptables-restore < IptablesSaveFile
激活防火墙(伪装)规则。然后
ip route add 192.168.100.0/24 dev eth0 table isp1
ip route add 192.168.100.0/24 dev eth0 table isp2
ip route add 192.168.0.0/24 dev eth1 table isp1
ip route add default via 192.168.0.1 dev eth1 table isp1
ip route add 192.168.1.0/24 dev eth2 table isp2
ip route add default via 192.168.1.1 dev eth2 table isp2
ip rule add from 192.168.0.250 table isp1
ip rule add from 192.168.1.250 table isp2
上述操作是为了使进入一个接口的连接在同一接口上返回。我在设置的机器上运行了一个 DNS 服务器,这样用户就可以连接到 192.168.100.250 - 如果你不这样做,我不确定执行此操作的最佳方法 - 你可以设置一个存根解析器它在 2 个 DNS 地址之间切换以转发请求,或将一半用户计算机设置为使用一个 DNS 地址,另一半使用另一个。