构建机房运维基础架构(十一): 搭建NAT服务

本文档介绍如何在一台服务器做NAT转发,以外网网卡是em1 ,源IP段10.0.0.0/16 为例。


1.开启forward ,并加入开机启动

# sysctl -w net.ipv4.ip_forward=1
# echo “sysctl -w net.ipv4.ip_forward=1” >> /etc/rc.d/rc.local

2.增加外网IP。

外网出口可以有多个IP,先增加这些IP (不配置的話NAT不生效)。

来个例子脚本( 执行而且把这段脚本写入/etc/rc.d/rc.local ):

ip_prefix=“121.14.25”
ip_min=131
ip_max=158
netmask=“255.255.255.224”

n=0
for i in `seq $ip_min $ip_max`
do
    /sbin/ifconfig em1:$n ${ip_prefix}.$i netmask $netmask up
    ((n++))
done

3.用iptables 增加nat 转发

类似:

# iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -o em1 -j SNAT –to-source 121.14.25.17-121.14.25.22
# iptables-save > /etc/sysconfig/iptables

如果不指定出口IP,可以用:

# iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -o em1 -j MASQUERADE

另外两点:

  1. 最好要两台NAT机器(接入一台交换机),起一个VIP指向这两台机器,并且在接入交换机上打开 源IP、源端口、目的IP、目的端口 的哈希功能(在等价路由基础上),这其实是实现了流量的负载均衡和高可用(具体咨询搞网络的同学)。

  2. 最好有安全策略,不要让所以机器都可以通过NAT访问外网,这个功能自己去调研方案啦。

发表评论

电子邮件地址不会被公开。 必填项已用*标注