小型高可用NAT网关设计

小企业内,很多都是直接拿1台Linux服务器用iptables做NAT,给内部服务器提供上网的需求。但是这样的NAT网关实际很容易成为单点。所以在设计的时候最好还是需要做一下HA。简单的考虑小规模场景,可以2个服务器起一个keepalived跑VRRP,把网关的IP和SNAT的IP都做浮动IP。这样单机挂掉的时候能自动进行切换。

如果公网地址足够,最好是需用一个段做SNAT地址池。比如64个地址的话就ifcfg-eth0:1~ifcfg-eth0:64,每个配置文件把公网地址配置上去


DEVICE="eth0.X:Y"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="ethernet"
IPADDR=aa.aa.aa.Y
NETMASK=255.255.255.0
VLAN=yes
PEERDNS=no

/etc/sysctl.conf记得配置net.ipv4.ip_forward = 1。

iptables规则如下


<br />*filter
:INPUT ACCEPT [3:309]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [518:57577]
-A INPUT -m state --state RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
-A INPUT -d a.a.a.0/255.255.255.0 -i eth0.X -p tcp -j DROP
-A INPUT -d a.a.a.0/255.255.255.0 -i eth0.X -p udp -j DROP
COMMIT
# Completed on Tue Apr 15 18:21:48 2014

*nat
:PREROUTING ACCEPT [6778:567991]
:POSTROUTING ACCEPT [41:3373]
:OUTPUT ACCEPT [41:3373]

-A POSTROUTING -s 10.10.0.0/16 -o eth0.X-j SNAT --to-source aa.aa.aa.1-aa.aa.aa.64
COMMIT
此条目发表在net分类目录。将固定链接加入收藏夹。

发表评论