感谢支持
我们一直在努力

在Red Hat Linux AS 5 下实现NAT路由

  连接两个逻辑上分开的网络,传统上是使用路由器来实现,Linux的完善与发展为此提供了一个低廉可靠的替代方案,越来越多的人们用它来代替传统的网络设备,下面就是我们使用Red Hat Linux AS 5实现NAT路由的一个实例。


  小知识:


  NAT


  NAT是Network Address Translation的缩写,又称网络地址转换。它是通过内部网络地址与公网地址相互转换,从而实现内外的互通互联。它不仅能隐藏内部IP地址,降低内部网络受到攻击的风险,而且能帮助解决因特网的IP地址紧缺的问题。是目前被广泛采用的联接因特网的方式。


  一、需求分析


  前段时间,我们租用了网通10M光纤线路,并获得了一个公网IP地址,通过一台Cisco 2621路由器作地址转换,实现了家属小区的局域网与因特网的互联。在网络运行初期,这种配置和连接方式还是经受住了考验。随着时间的推移,小区局域网内的电脑不断增多,由原来的50多台发展到100多台,而且越来越多的人使用BT、电驴等下载工具,从而致使Cisco 2621严重过载,并多次出现死机。


  面对这种情况,我们设计了三种方案:其一,购买一台高性能的路由器,将cisco 2621替换下来;其二,windows +ISA server另加一台电脑;其三,Linux 加一台电脑。第一种方案简单易行,但投资太高;第二种方案性能比要高一些,但windows的稳定性、安全性却成了最大的隐患,而且windows对硬件要求高,如果全部使用正版软件,费用也很不低。第三种方案性价比最高,于是一台闲置的旧服务器+ Linux成为了我们的首选。


  二、网络结构


  


图1


  图1中的Linux服务器插有双网卡,其中eth0(网卡1)与小区内网相联,eth1(网卡2)与因特网相联。IP地址设置如下:


  小区内网:192.168.1.0 / 255.255.255.0


  Linux服务器:


  eth0:192.168.1.1 / 255.255.255.0


  eth1:221.214.141.12 / 255.255.255.0


  网关 221.214.141.1


  DNS 202.102.134.68 202.102.128.28


  三、Linux服务器配置


  以下配置基于Red Hat Enterprise Linux AS 5,内核版本是2.6.18,在安装时选择了 “最小安装”,语言包只选英文,以减少其它组件对系统资源的占用。安装完后,以root用户登陆系统,在字符界面下进行设置。


  1、IP地址设置


  ifconfig eth0 192.168.1.1 netmask 255.255.255.0


  ifconfig eth1 221.214.141.12 netmask 255.255.255.0


  为了让计算机启动时自动设置IP地址,还需要分别修改/etc/sysconfig/network-scripts/下的两个文件:ifcfg-eth0、ifcfg-eth1,将ONBOOT属性设为yes,即ONBOOT=yes ,


  eth0(网卡1)对应的ifcfg-eth0文件格式如下:


  # 3com Corporation|3c905B 100BaseTX [Cyclone]


  DEVICE=eth0


  BOOTPROTO=none


  HWADDR=00:10:4B:95:95:E8


  ONBOOT=yes


  TYPE=Ethernet


  USERCTL=no


  PEERDNS=no


  NETMASK=255.255.255.0


  IPADDR=192.168.1.1


  eth1(网卡2)对应的ifcfg-eth1文件格式如下:


  # 3com Corporation|3c905B 100BaseTX [Cyclone]


  DEVICE=eth1


  BOOTPROTO=none


  HWADDR=00:10:4B:95:95:E9


  ONBOOT=yes


  TYPE=Ethernet


  USERCTL=no


  PEERDNS=no


  NETMASK=255.255.255.0


  IPADDR=221.214.141.12


  GATEWAY=221.214.141.1


  注:修改这两个文件可以使用vi 命令,输入并执行“vi /etc/sysconfig/network-scripts/ ifcfg-eth0”,键入i命令,vi编辑器将进入编辑模式。编辑结束后按“ESC”键,返回命令模式,输入“:wq”,按回车键存盘退出。若输入“:q!”,则退出而不进行任何保存。

  2、DNS服务器设置


  编辑“/etc/resolv.conf”,命令如下:


  vi /etc/resolv.conf


  文件内容为:


  nameserver 202.102.134.68


  nameserver 202.102.128.28


  3、打开ip转发功能


  echo “1” > /proc/sys/net/ipv4/ip_forward


  为了在电脑重启之后继续有效,需将文件“/etc/sysctl.conf”中的“net.ipv4.ip_forward=0”改为“net.ipv4.ip_forward=1”


  4、启动NAT


  iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth1 -j SNAT –to 221.214.141.12


  (注:”/24”表示子网掩码为24位,即255.255.255.0)


  这条命令是将来自于192.168.1.0/24并通过eth1出去的数据包的源地址修改为221.214.141.12,从而实现网络地址转换。将这条命令添加到“/etc/rc.d/rc.local”文件中,则可以在每次引导系统时自动应用。


  四、功能扩展


  在上面的实例中,我们通过Linux中的iptables命令实现了NAT,从而使小区内网可以访问因特网。这仅仅是用到了NAT两种类型中的一个——SNAT(改变数据包的来源地址),若是用上另一种类型——DNAT(改变数据包的目的地址)能实现什么功能呢?


  让我们看一个最典型的例子:以前面的网络拓扑为例,在小区内网中有一台服务器(192.168.1.3)运行着web服务,现在我们想让因特网上的用户通过访问公网地址(221.214.141.12)来访问它。这就需要设置DNAT规则,将对公网地址的web访问请求,重定向到内网的web服务器上。


  iptables -t nat -A PREROUTING -d 221.214.141.12 -p tcp –dport 80 -j DNAT –to 192.168.1.3


  短短的几条命令,外加一台旧服务器,轻松实现了NAT,这仅仅是Linux强大功能的一小部分,如果你愿意,完全可以用它做用它来做路由器、防火墙,做嵌入式系统,做实时系统……


更多RedHat相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10

赞(0) 打赏
转载请注明出处:服务器评测 » 在Red Hat Linux AS 5 下实现NAT路由
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏