我的设置是这样的 –
eth0(192.168.0.0/24) – 本地网络
eth1(192.168.1.0/24) – ISP#1
eth2(192.168.2.0/24) – ISP#2
我的本地网络通过eth0连接到此服务器,该框是LAN中所有计算机的DHCP服务器和网关.
服务器需要在两个ISP之间进行负载均衡,还需要进行NAT-ing.
我已按照lartc.org的路由指示进行操作,但仍需要正确执行NAT的说明.
任何帮助将不胜感激.
PS – 我知道pFsense但我需要使用Linux.
解决方法
让我们假设一些事情:
LAN:eth0:192.168.0.1/24
ISP1:eth1:192.168.1.1/24,网关:192.168.1.2/24
ISP2:eth2:192.168.2.1/24,网关:192.168.2.2/24
所以这是我将如何使用iptables方法:
路线表
首先编辑/ etc / iproute2 / rt_tables以在路由表编号和ISP名称之间添加映射
... 10 ISP1 20 ISP2 ...
因此,表10和20分别用于ISP1和ISP2.我需要使用此代码片段(使用hxxp://linux-ip.net/html/adv-multi-internet.html)从主表的路径填充这些表.
ip route show table main | grep -Ev '^default' \ | while read ROUTE ; do ip route add table ISP1 $ROUTE done
并通过该ISP1的网关将默认网关添加到ISP1:
ip route add default via 192.168.1.2 table ISP1
为ISP2做同样的事情
所以现在我有2个路由表,每个ISP 1个.
iptables的
好的,现在我使用iptables将数据包均匀分配到每个路由表.有关如何在这里找到这项工作的更多信息(http://www.diegolima.org/wordpress/?p=36)和这里(http://home.regit.org/?page_id=7)
# iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark # iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j ACCEPT # iptables -t mangle -A PREROUTING -j MARK --set-mark 10 # iptables -t mangle -A PREROUTING -m statistic --mode random --probability 0.5 -j MARK --set-mark 20 # iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
NAT
NAT很简单:
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。