您现在的位置是:首页 > IT基础架构 > 网络与安全 >
NAT技术的原理与实现
摘要 随着网络的发展,网络地址转换(NAT,Network Address Translation)在网络建设中正发挥着不可替代的作用。...
一。NAT技术简介
随着网络的发展,网络地址转换(NAT,Network Address Translation)在网络建设中正发挥着不可替代的作用。从本质上来说,NAT的出现是为了缓解lP地址不足的问题;而在实际应用中,NAT还具备一些衍生功能,诸如隐藏并保护网络内部的计算机,以避免来自网络外部的攻击、方便内部网络地址规划,等等。
二。NAT技术的基本原理。
随着接入Internet的计算机数量的不断猛增,IP地址资源也就显得愈加紧张。在实际应用中,一般用户几乎申请不到整段的C类和B类IP地址。当我们的企业向ISP申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求。为了缓解供给和需求不可调和的矛盾,使用NAT技术便成为了企业和ISP的必然选择。
企业使用NAT时,一般认为应当使用RFC1918规定的三段私有地址部署企业内部网络。当企业内部设备试图以私有地址为源,向外部网络(Internet)发送数据包的时候,NAT可以对IP包头进行修改,先前的源IP地址-私有地址被转换成合法的公有IP地址(前提是,该共有IP地址应当是企业已经从ISP申请到的合法公网IP),这样,对于一个局域网来说,无需对内部网络的私有地址分配做大的修改,就可以满足内网设备和外网通信的需求。由于设备的源IP地址被NAT替换成了公网IP地址,设备对于外网用户来说就显得“不透明”,达到了保证设备安全性的目的。在这种情况下,内部私有地址和外部公有地址是一一对应的。甚至,我们只需使用少量公网IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
三。企业实现NAT的常用方式
在企业网络中,NAT的实现方式有三种,即静态转换NAT、动态转换NAT 以及 端口多路复用(PAT)。下面的章节里将一一介绍。
1.静态转换
静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。私有地址和公有地址的对应关系由管理员手工指定。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问,并使该设备在外部用户看来变得“不透明”。
2.动态转换
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对并不是一一对应的,而是随机的。所有被管理员授权访问外网的私有IP地址可随机转换为任何指定的公有IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。每个地址的租用时间都有限制。这样,当ISP提供的合法IP地址略少于网络内部的计算机数量时,可以采用动态转换的方式。
3.端口多路复用(Port address Translation,PAT)
通过使用端口多路复用,可以达到一个公网地址对应多个私有地址的一对多转换。在这种工作方式下,内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,来自不同内部主机的流量用不同的随机端口进行标示,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
四。如何让你的NAT开始工作?
1)。静态地址转换的实现
假设内部局域网使用的lP地址段为 192.168.12.1~192.168.12.254,路由器局域网端口(即默认网关)的IP地址为192.168.0.1/24.网络分配的合法公有IP地址范围为11.11.11.128~11.11.11.135,路由器在广域网中的IP地址为 11.11.11.129,子网掩码为255.255.255.248.可用于转换的IP地址范围为 11.11.11.130~11.11.11.134.要求将内部网止192.168.12.2~192.168.12.4分别转换为合法IP地址 11.11.11.130~11.11.11.132.
第一步,设置外部端口。
在配置网络地址转换的过程之前,首先必须搞清楚内部接口和外部接口,以及在哪个外部接口上启用NAT.通常情况下,连接到用户内部网络的接口是NAT内部接口,而连接到外部网络(如Internet)的接口是NAT外部接口。
interface serial 0 ip address 11.11.11.129 255.255.255.248 ip nat outside
第二步,设置内部端口。
interface ethernet 0 ip address 192.168.0.1 255.255.255.0 ip nat inside
第三步,在内部本地与内部合法地址之间建立静态地址转换。
ip nat inside source static 内部本地地址内部合法地址
示例:ip nat inside source static 192.168.12.2 11.11.11.130//将内部网络地址192.168.12.2转换为合法IP地址11.11.11.130 ip nat inside source static 192.168.12.3 11.11.11.131//将内部网络地址192.168.12.3转换为合法IP地址11.11.11.131 ip nat inside source static 192.168.12.4 11.11.11.132//将内部网络地址192.168.12.4转换为合法IP地址11.11.11.132这样,静态地址转换配置完毕。
2)。动态地址转换的实现
假设内部网络使用的IP地址段为172.16.100.1~172.16.100.254,路由器局域网端口(即默认网关)的IP地址为172.16.100.1,子网掩码为255.255.255.0.网络分配的合法IP地址范围为 11.11.11.128~11.11.11.191,路由器在广域网中的IP地址为11.11.11.129,子网掩码为 255.255.255.192,可用于转换的IP地址范围为11.11.11.130~11.11.11.190.要求将内部网址 172.16.100.1~172.16.100.254动态转换为合法IP地址11.11.11.130~11.11.11.190.
第一步,设置外部端口。
设置外部端口命令的语法如下:
ip nat outside
示例:interface serial 0//进入串行端口serial 0 ip address 11.11.11.129 255.255.255.248//将其IP地址指定为11.11.11.129,子网掩码为255.255.255.248 ip nat outside //将串行口serial 0设置为外网端口
注意,可以定义多个外部端口。
第二步,设置内部端口。
设置内部接口命令的语法如下:
ip nat inside
示例:interface ethernet 0 //进入以太网端口Ethernet 0 ip address 172.16.100.1 255.255.255.0 // 将其IP地址指定为172.16.100.1,子网掩码为255.255.255.0 ip nat inside //将Ethernet 0 设置为内网端口。
注意,可以定义多个内部端口。
第三步,定义合法IP地址池。
定义合法IP地址池命令的语法如下:
ip nat pool 地址池名称 起始IP地址 终止IP地址 子网掩码
其中,地址池名字可以任意设定。
示例:ip nat pool ccxx 11.11.11.130 11.11.11.190 netmask 255.255.255.192//指明地址缓冲池的名称为ccxx,IP地址范围为11.11.11.130~11.11.11.190,子网掩码为 255.255.255.192.
第四步,定义内部网络中允许访问Internet的访问列表。
定义内部访问列表命令的语法如下:access-listl 标号 permit 源地址 通配符(其中,标号为1~99之间的整数)
access-listl permit 172.16.100.0 0.0.0.255 //允许访问Internet的网段为172.16.100.0~172.16.100.255,通配符为0.0.0.255.
第五步,实现网络地址转换。
在全局设置模式下,将由access-list指定的内部本地地址与指定的内部合法地址池进行地址转换。命令语法如下:ip nat inside source list 访问列表标号 pool 内部合法地址池名字
示例:ip nat inside source list 1 pool ccxx
至此,动态地址转换设置完毕。
3)。端口复用动态地址转换(PAT)
内部网络使用的IP地址段为 10.100.100.1~10.100.100.254,路由器局域网端口的IP地址为10.100.100.1,子网掩码为 255.255.255.0.网络分配的合法IP地址范围为11.11.11.0~11.11.11.3,路由器广域网接口中的IP地址为 11.11.11.1,子网掩码为255.255.255.252,可用于转换的IP地址为11.11.11.2.要求将内部网址 10.100.100.1~10.100.100.254 转换为合法IP地址11.11.11.2.
第一步,设置外部端口。
interface serial 0 ip address 11.11.11.1 255.255.255.252 in nat outside
第二步,设置内部端口。
interface ethernet 0 ip address 10.100.100.1 255.255.255.0 ip nat inside
第三步,定义合法IP地址池。
in nat pool ccxx 11.11.11.2 11.11.11.2 netmask 255.255.255.252
// 指明地址缓冲池的名称为ccxx,由于我们做的是PAT,所以地址池里完全可以只有1个公网IP地址
第四步,定义内部访问列。
access-list 1 permit 10.100.100.0 0.0.0.255允许访问Internetr的网段为10.100.100.0~10.100.100.255,子网掩码为/24
第五步,设置复用动态地址转换。
在全局设置模式下,设置在内部的本地地址与内部合法IP地址间建立复用动态地址转换。命令语法如下:ip nat inside source list访问列表号pool内部合法地址池名字overload
示例:ip nat inside source list1 pool ccxx overload //以端口复用方式,将访问列表1中的私有IP地址转换为onlyone IP地址池中定义的合法IP地址。Overload关键词是这条命令的重点。
(本文不涉密)
责任编辑:
上一篇:4G革命——无线新时代
下一篇:100G生逢其时 长成仅用5年