一、项目背景 NAT技术原理和配置方式
(一)NAT的概念
随着网络用户的迅猛增长,IPV4的地址空间日趋紧张,在将地址空间从IPV4转到IPV6之前,需要将日益增多的企业内部网接入外部网,在申请不到足够的公网IP地址的情况下,要使企业都能上Internet,必须使用NAT(网络地址转换)技术。
NAT英文全称是Network Address Translation,称为网络地址转换,它是一个IETF标准,允许一个机构众多的用户仅用少量的公网地址连接到Internet上。
1.企业NAT的基本应用
NAT可以解决地址空间不足的问题(IPv4的空间已经严重不足)。可以私有IP地址网络与公网互联(企业内部经常采用私有IP地址空间10.0.0.0/8,172.16.0.0/12,192.168.0.0/16),也可以非注册的公有IP地址网络与公网互联(企业建网时就使用了公网IP地址空间,但此公网IP并没有注册,为避免更改地址带来的风险和成本,在网络改造中,仍保持原有的地址空间)。
2.NAT术语
Inside local address:内部私有地址,指定给内部主机使用的地址,局域网内部地址,可为私有地址。
Inside global address:内部公有地址,指从ISP或NIC注册的地址,为合法的公网的地址,即内部主机地址被NAT转换的外部地址。
Outside local address:外部网络中的内部主机地址,是另一个局域网的内部地址。
Outside global address:外部网络的公网地址。
图4-7显示了在NAT转换拓扑结构中各地址的情况。
3.NAT的优点
局域网内保持私有IP,无须改变,只需改变路由器,做NAT转换,就可以上外网。NAT节省了大量的地址空间。NAT隐藏了内部网络拓扑结构。
4.NAT的缺点
NAT增加了延迟。NAT隐藏了端到端的地址,丢失了IP地址的跟踪,不能支持一些特定的应用程序。需要更多的资源如内存、CPU来处理NAT。
5.NAT设备
具有NAT功能的设备有服务器、路由器,防火墙、核心三层交换机、各种软件代理服务器proxy、ISA、ICS、wingate、sysgate等。因软件耗时太长、转换效果较低,只适合小型企业。有的也可将NAT功能配置在防火墙上,以减少一台路由器的成本。但随着硬件成本的下降,大多数企业都选用路由器。即使家用的路由器中也有NAT功能。
通常NAT是本地网络与INTERNET的边界。工作在存根网络的边缘,由边界路由器执行NAT功能,将内部私有地址转换成公网可路由的地址。
(二)NAT的分类
NAT有三种类型:静态NAT(Static NAT)、动态地址池NAT(Pooled NAT)、网络地址端口转换NAPT(PAT)。其中静态NAT设置起来最为简单、最容易实现,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址,多用于服务器的永久映射。而动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络,多用于网络中的工作站的转换。NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。
静态NAT转换的工作过程如图4-8所示。如内网的本地地址192.168.1.5与200.8.7.4对应,而192.168.1.7与200.8.7.3对应。
动态地址池NAT(Pooled NAT)指的是有一个内部全局地址池,如200.8.7.1到200.8.7.10,可将内部网络中内部本地地址动态地映射到这个地址池内。这样,从192.168.1.5发出的前后两个包,可能分别映射到不同的内部全局地址上,如第1个包是192.168.1.5到200.8.7.3,第2个包是192.168.1.5到200.8.7.4,如图4-9所示。
无论是动态还是静态NAT,其主要作用为改变传出包的源地址,改变传入包的目的地址。
网络端口地址转换NAPT(PAT)是动态建立内部网络中内部本地地址与端口之间的对应关系。就是将多个内部地址映射为一个合法公网地址,但以不同的协议端口号与不同的内部地址相对应,也就是<内部地址+内部端口>与<外部地址+外部端口>之间的转换。如<192.168.1.7>+<1024> 与<200.8.7.3>+<1024>、<192.168.1.5>+<1136>与<200.8.7.3>+1136的对应,如图4-10所示。
根据不同的需要,三种NAT:静态NAT(staticNAT)、NAT池(pooledNAT)和端口NAPT(PAT)各有所用。其中静态NAT设置起来最为简单,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址,多用于服务器。而NAT池则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络,多用于网络中的工作站。NAPT则是把内部地址映射到外部网络中一个IP地址的不同端口上。
(三)NAT的配置
表4-2列出了主要的NAT命令。
命令行 |
作用 |
---|---|
Router(config-if)# ip nat outside |
定义出口 |
Router(config-if)# ip nat inside |
定义入口 |
Router(config)#ip nat inside source static 内部私有地址 内部公有地址 |
建立私有与公有地址之间一对一的静态映射 |
Router(config)# ip nat pool 池名 开始内部公有地址 结束内部公有地址[netmask 子网掩码 | prefix-length前缀长度] |
建立一个公有地址池 |
Router(config)# access-list 号码 permit内部私有地址 反码 |
创建内网访问地址列表 |
Router(config)#ip nat inside source list号码 pool 池名 |
配置基于源地址的动态NAT |
Router(config)#ip nat inside source list号码 pool池名 overload |
配置基于源地址的动态NAPT |
show ip nat translations |
显示NAT转换情况 |
1.静态NAT的配置
静态NAT的特征是内部私有主机地址与公网主机地址做一对一映射。如果内网主机地址需要被外网访问,这种转换非常有用。
1定义内网接口和外网接口。
Router(config)# interface fastethernet 1/0
Router(config-if)#ip addr 200.8.7.1 255.255.255.0
Router(config-if)#ip nat outside
Router(config)# interface fastethernet 1/1
Router(config-if)#ip addr 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside
2建立静态的一对一的映射关系。
Router(config)#ip nat inside source static 192.168.1.7 200.8.7.3
Router(config)#ip nat inside source static 192.168.1.5 200.8.7.4
3设置默认路由。
Router(config)#ip route 0.0.0.0 0.0.0.0 200.8.7.2
2.动态NAT配置步骤
动态NAT的特征是内部主机使用地址池中的公网地址来映射,同一内部地址两次映射后的公网地址可能不一样。
1定义内网接口和外网接口。
Router(config)#interface fastethernet 1/0
Router(config-if)#ip addr 200.8.7.1 255.255.255.0
Router(config-if)#ip nat outside
Router(config)#interface fastethernet 1/1
Router(config-if)#ip addr 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside
2定义访问控制列表(内部本地地址范围)。
Router(config)#access-list 10 permit 192.168.1.0 0.0.0.255
3定义转换的外网地址池(ISP提供的全局地址池)。
Router(config)#ip nat pool abc 200.8.7.1 200.8.7.10 netmask 255.255.255.0
4建立映射关系。
Router(config)#ip nat inside source list 10 pool abc
5设置默认路由。
Router(config)#ip route 0.0.0.0 0.0.0.0 200.8.7.2
3.端口复用(NAPT)(Overloading)
端口复用的特征是内部多个私有地址映射到一个公网地址的不同端口上,理想状况下,一个单一的IP地址可以使用的端口数为4000个。
1定义内网接口和外网接口。
Router(config)#interface fastethernet 1/0
Router(config-if)#ip addr 200.8.7.1 255.255.255.0
Router(config-if)#ip nat outside
Router(config)#interface fastethernet 1/1
Router(config-if)#ip addr 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside
2建立静态的映射关系。
Router(config)#ip nat inside source static tcp 192.168.1.7 1024 200.8.7.3 1024
Router(config)#ip nat inside source static udp 192.168.1.7 1024 200.8.7.3 1024
3设置默认路由。
Router(config)#ip route 0.0.0.0 0.0.0.0 200.8.7.2
4.动态NAPT配置步骤
1定义内网接口和外网接口。
Router(config)#interface fastethernet 1/0
Router(config-if)#ip addr 200.8.7.1 255.255.255.0
Router(config-if)#ip nat outside
Router(config)#interface fastethernet 1/1
Router(config-if)#ip addr 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside
2定义内部本地地址范围。
access-list 10 permit 192.168.1.0 0.0.0.255
3定义内部全局地址池。
Router(config)#ip nat pool abc 200.8.7.3 200.8.7.3 netmask 255.255.255.0
4建立映射关系。
Router(config)#ip nat inside source list 10 pool abc overload
5.删除NAT
1删除静态NAT转换。
Router(config)#no ip nat inside source static
2从NAT转换表中清除所有动态表项。
Router(config)#Clear ip nat translation
3从NAT转换表中清除扩展动态转换表项。
Router(config)#Clear ip nat translation protocol
6.NAT的验证
1当前NAT转换情况。
Router#show ip nat translate
2显示转换统计信息。
Router#show ip nat statistics
二、任务实施 NAT技术配置与管理
掌握内网中所有主机连接到Internet网中,通过端口号区分的复用内部全局地址转换。
你是某公司的网络管理员,公司只向ISP申请了一个公司IP地址,希望全公司的主机都能访问外网,请你实现。
允许内部所有主机在公司地址缺乏的情况下可以访问外部网络。
路由器(两台)、V.35线缆(1条)、PC(2台)、直连线或交叉线(2条)。
1基本配置。
局域网络由器配置:
Red-Giant(config)#hostname lan-router
Lan-router(config)#interface fastEthernet 1/0
Lan-router(config-if)#ip address 172.16.1.1 255.255.255.0
Lan-router(config-if)#no shutdown
Lan-router(config-if)#exit
Lan-router(config)#interface serial 1/2
Lan-router(config-if)#ip address 200.1.8.7 255.255.255.0
Lan-router(config-if)#no shutdown
Lan-router(config-if)#exit
互联网络由器配置:
internet-router(config)#interface fastEthernet 1/0
internet-router(config-if)#ip address 63.19.6.1 255.255.255.0
internet-router(config-if)#no shutdown
internet-router(config-if)#exit
internet-router(config)#interface serial 1/2
internet-router(config-if)#ip address 200.1.8.8 255.255.255.0
internet-router(config-if)#clock rate 64000
internet-router(config-if)#no shutdown
internet-router(config-if)#end
在局域网络由器上配置缺省路由:
lan-router(config)#ip route 0.0.0.0 0.0.0.0 serial1/2
在互联网络由器上配置静态路由:
internet-router(config)#ip route 172.16.1.0 255.255.255.0serial1/2
验证测试:
Internet-router#ping 200.1.8.7
2配置动态NAPT映射。
lan-router(config)#interface fastEthernet 1/0
lan-router(config-if)#ip nat inside !定义F1/0为内网接口
lan-router(config-if)#exit
lan-router(config)#interface serial 1/2
lan-router(config-if)#ip nat outside !定义S1/2为外网接口
lan-router(config-if)#exit
lan-router(config)#ip nat pool to_internet 200.1.8.7 200.1.8.7 netmask 255.255.255.0 !定义外部全局地址池
lan-router(config)#access-list 10 permit 172.16.1.0 0.0.0.255 !定义允许转换的地址(即定义内部本地地址)
lan-router(config)#ip nat inside source list 10 pool to_internet overload !为内部本地调用转换地址池
3验证测试。
在服务器63.19.6.2上配置FTP服务,如图4-12所示。
在PC机测试访问63.19.6.2的FTP服务器,如图4-13所示。
在路由器lan-router查看NAPT映射关系。
lan-router#show ip nat translations
(1)不要把inside和outside应用的接口弄错。
(2)要加上能使数据包向外转发的路由,比如默认路由。
(3)尽量不要用广域网接口地址作为映射的全局地址,本项目中特定仅有一个公司地址,实际工作中不推荐。
掌握NAT源地址转换和目的地址转换的区别,掌握如何向外网发布内网的服务器。
你是某公司的网络管理员,公司只向ISP申请了一个公网IP地址,现公司的网站在内网,要求在互联网也可以访问公司网站,请你实现。172.16.1.2是FTP服务器的IP地址。
内网服务器能够转换成外网公网IP,被互联网访问。
路由器(两台)、V.35线缆(1条)、PC(2台)、直连线(1条)。
1基本配置。
Red-Giant(config)#hostname lan-router
Lan-router(config)#interface fastEthernet 1/0
Lan-router(config-if)#ip address 172.16.1.1 255.255.255.0
Lan-router(config-if)#no shutdown
Lan-router(config-if)#exit
Lan-router(config)#interface serial 1/2
Lan-router(config-if)#ip address 200.1.8.7 255.255.255.0
Lan-router(config-if)#no shutdown
Lan-router(config-if)#exit
Internet-router(config)#interface fastEthernet 1/0
Internet-router(config-if)#ip address 63.19.6.1 255.255.255.0
Internet-router(config-if)#no shutdown
Internet-router(config-if)#exit
Internet-router(config)#interface serial 1/2
Internet-router(config-if)#ip address 200.1.8.8 255.255.255.0
Internet-router(config-if)#clock rate 64000
Internet-router(config-if)#no shutdown
Internet-router(config-if)#end
在lan-router上配置缺省路由:
lan-router(config)#ip route 0.0.0.0 0.0.0.0 serial 1/2
在internet-router上配置静态路由:
internet-router(config)#ip route 172.16.1.0 255.255.255.0 serial1/2
验证测试:
Internet-router#ping 200.1.8.7
2配置反向NAT映射。
lan-router(config)#interface fastEthernet 1/0
lan-router(config-if)#ip nat inside
lan-router(config-if)#exit
lan-router(config)#interface serial 1/2
lan-router(config-if)#ip nat outside
lan-router(config-if)#exit
lan-router(config)#ip nat pool web_server 172.16.1.2 172.16.1.2 netmask 255.255.255.0 !定义内网服务器地址池。
lan-router(config)#access-list 3 permit host 200.1.8.7 !定义外网的公网IP地址。
lan-router(config)#ip nat inside destination list 3 pool web_server !将外网的公网IP地址转换为Web服务器地址。
lan-router(config)#ip nat inside source static tcp 172.16.1.2 21 200.1.8.7 21 !定义访问外网IP的21端口时转换为内网的服务器IP的21端口。
3验证测试。
在内网主机配置FTP服务。利用外网的1台主机通过IE浏览器登录内网服务器200.1.8.7。
lan-router#show ip nat translations
不要把inside和outside应用的接口弄错。
配置目标地址转换后,需要利用静态NAPT配置静态的端口地址转换。