相关知识点
NAT的作用:缓解IP地址耗尽的速度
 
NAT操作过程:
1、接受数据
2、根据转换关系表转换IP,并将转换关系保存到内存
3、转发数据
4、返回数据
 
NAT基本术语
内部局部地址:被转换得内部地址(一般是企业内部的私有IP)
内部全局地址:被转换后的外部地址(一般是企业所拥有的公网IP)
外部局部地址:外部主机被转换的内部地址(相当于内部局部地址)
外部全局地址:外部主机转换后的地址(相当于内部全局地址)

NAT分类:大类是分静态和动态两种。
1、静态NAT,即一对一的地址映射。通常用在企业需要向外提供服务的服务器,如Web Server和FTP Server向外的转换。
2、网段对网段的映射,即一个网段整体影射成另一个网段。通常用在通信双方地址发生冲突的情况,或者需要隐藏真实地址的情况。
3、动态端口映射(PAT),多个地址对应一个地址的动态映射。最常见的是企业访问Internet时,整个公司共用同一个公网IP地址的场合。
4、静态端口映射(PAR),多个地址静态映射为同一个地址,端口固定。最常见的是同一个公网IP地址不同的端口提供不同服务,对应企业内部不同的服务器,如Web、Mail、FTP等可以使用同一个公网IP地址,80对应Web,8000(举例)对应Mail,20、21对应FTP。

一.NA简介
NAT(Network Address Translation)
的功能,就是指在一个网络内部,根据需要可以随意自定义的IP地址,而不需要经过申请。在网络内部,

各计算机间通过内部的IP地址进行通讯。而当内部的计算机要与外部internet网络进行通讯时,具有NAT功能的设备(比如:路由器)负责将其内部的IP地址转换为合法的IP地址(即经过申请的IP地址)进行通信。

 

二、 关于NAT的几个概念:

1    内部本地地址(Inside Local Address

分配给内部网络中的PC机的私有IP地址,一般都是我们常见的10.0.0.0/172.16.0.0/192.168.0.0

2    内部全局地址(Inside Global Address

对外进行IP通信时,代表一个或多个内部本地地址的合法IP地址

3    外部本地地址(Outside Local Address

由主机的拥有者分配给在外部网上的主机的IP地址.该地址不一定是属于合法的IP地址,但一定是可以路由的IP地址.

4    外部全局地址 (outside global address)

外部网络使用的地址.它是一个公有的IP地址

 

三、 优点与缺点

1 、节省IP。有了NAT技术,我们可以让一个企业内部的PC机共用少量的公网IP来连上Internet,而不需要为每一台PC都申请一个IP。这样做太浪费了,大家都知道,私有地址是不能在公网上路由的,如果要想拿到公网IP,有一个办法就是花钱申请,对外部网络屏蔽了内部的网络拓扑。

2 、内部网络中的PC机和外部通信的时候,在边缘经过NAT转换才把数据包交出去,速度上会稍微慢一些

 

 

 


 

实验一:配置静态NAT

用途:可以把企业内某一台服务器或计算机内部IP地址单独映射到外网地址,

使其可以对外提供服务。


 

 

拓扑如下

 

 

 

具体配置:

 

 

R1

Router>en

Router#conf t

Router(config)#hostname R1

R1(config)#interface f0/0

R1(config-if)#ip address 192.168.1.254 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#interface f0/1

R1(config-if)#ip address 218.87.18.23 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#ip nat inside source static 192.168.1.1 218.87.18.23

-- 这条语句说明把内部本地地址192.168.1.1静态映射内部全局地址218.87.18.23 (也就是下面那台PC的地址)

R1(config)#interface f0/0

R1(config-if)#ip nat inside    -- 使用NAT标识内部接口

R1(config-if)#interface f0/1

R1(config-if)#ip nat outside     -- 使用NAT标识外部接口

 

R1(config-if)#end

R1#

 

 

 

ISP

Router>en

Router#conf t

Router(config)#hostname ISP

ISP(config)#interface f0/1

ISP(config-if)#ip address 218.87.18.24 255.255.255.0

ISP(config-if)#no sh

ISP(config-if)#end

ISP#

 

 

 

验证在PCISP

PC>ping 218.87.18.24

 

Pinging 218.87.18.24 with 32 bytes of data:

 

Reply from 218.87.18.24: bytes=32 time=73ms TTL=254

Reply from 218.87.18.24: bytes=32 time=41ms TTL=254

Reply from 218.87.18.24: bytes=32 time=36ms TTL=254

Reply from 218.87.18.24: bytes=32 time=39ms TTL=254

 

Ping statistics for 218.87.18.24:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 36ms, Maximum = 73ms, Average = 47ms

PC>

 

 

 

查看NAT转换表:

R1#show ip nat translations

/ 协议  /内部全局地址   /内部本地地址       /外部全局地址

Pro  Inside global     Inside local       Outside local      Outside global

icmp 218.87.18.23:3    192.168.1.1:3      218.87.18.24:3     218.87.18.24:3

icmp 218.87.18.23:4    192.168.1.1:4      218.87.18.24:4     218.87.18.24:4

icmp 218.87.18.23:5    192.168.1.1:5      218.87.18.24:5     218.87.18.24:5

icmp 218.87.18.23:6    192.168.1.1:6      218.87.18.24:6     218.87.18.24:6

---  218.87.18.23      192.168.1.1        ---                ---

 

R1#

 

 

 

 

实验二:配置动态NAT

用途:如果企业当中向服务提供商申请了多个或者一串公网地址,使企业内成员都能访问因特网或者提供服务

 

拓扑如下:

 

 

具体配置:

 

R1

Router>

Router>en

Router#conf t

Router(config)#hostname R1

R1(config)#interface f0/0

R1(config-if)#ip address 192.168.1.254 255.255.255.0

R1(config-if)#no sh

R1(config-if)#int f0/1

R1(config-if)#ip address 218.87.18.23 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255     -- 定义允许的流量

R1(config)#ip nat pool lab 218.87.18.21 218.87.18.23 netmask 255.255.255.0

-- 定义名为lab的公网IP地址池,范围为:218.87.18.21 – 218.87.18.23

R1(config)#ip nat inside source list 1 pool lab overload

-- 定义允许访问控制列表1的流量从lab地址池中转发出去,overload表示多路复用

R1(config)#interface f0/0

R1(config-if)#ip nat inside      -- 使用NAT标识内部接口

R1(config-if)#interface f0/1     -- 使用NAT标识外部接口

R1(config-if)#ip nat outside

R1(config-if)#end

R1#

 

 

ISP

Router>en

Router#conf t

Router(config)#hostname ISP

ISP(config)#interface f0/1

ISP(config-if)#ip address 218.87.18.24 255.255.255.0

ISP(config-if)#no sh

ISP(config-if)#end

ISP#

 

 

 

验证在PCISP

PC>ping 218.87.18.24

 

Pinging 218.87.18.24 with 32 bytes of data:

 

Reply from 218.87.18.24: bytes=32 time=53ms TTL=254

Reply from 218.87.18.24: bytes=32 time=21ms TTL=254

Reply from 218.87.18.24: bytes=32 time=36ms TTL=254

Reply from 218.87.18.24: bytes=32 time=39ms TTL=254

 

Ping statistics for 218.87.18.24:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 36ms, Maximum = 73ms, Average = 47ms

 

PC>

 

 

 

查看NAT转换表:

R1#show ip nat translations

Pro  Inside global     Inside local       Outside local      Outside global

icmp 218.87.18.21:30   192.168.1.1:30     218.87.18.24:30    218.87.18.24:30

icmp 218.87.18.21:31   192.168.1.1:31     218.87.18.24:31    218.87.18.24:31

icmp 218.87.18.21:32   192.168.1.1:32     218.87.18.24:32    218.87.18.24:32

icmp 218.87.18.21:33   192.168.1.1:33     218.87.18.24:33    218.87.18.24:33

icmp 218.87.18.21:34   192.168.1.1:34     218.87.18.24:34    218.87.18.24:34

icmp 218.87.18.21:35   192.168.1.1:35     218.87.18.24:35    218.87.18.24:35

icmp 218.87.18.21:36   192.168.1.1:36     218.87.18.24:36    218.87.18.24:36

R1#

 

注:由于下面只有一台PC,从以上表中不能看出所有的公网IP都被使用,大家用实验时可以下面挂两台或多台计算机.

 

 

 

实验三:配置PAT(端口地址转换)     ---- 拓扑为实验一拓扑

用途:这种方式是最普遍,也是最常用的方法,当企业仅只有申请了一个公网IP地址的情况下,我们可以使用PAT方式来实现企业内部能够访问因特网.

 

 

具体配置:

 

R1

Router>

Router>en

Router#conf t

Router(config)#hostname R1

R1(config)#interface f0/0

R1(config-if)#ip address 192.168.1.254 255.255.255.0

R1(config-if)#no sh

R1(config-if)#int f0/1

R1(config-if)#ip address 218.87.18.23 255.255.255.0

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255     -- 定义允许的流量

R1(config)#ip nat inside source list 1 interface f0/1 overload

-- 定义所有符合访问控制列表1的流量,全部从F0/1接口转发出去.

R1(config)#interface f0/0

R1(config-if)#ip nat inside

R1(config-if)#interface f0/1

R1(config-if)#ip nat outside

R1(config-if)#end

R1#

 

 

 

ISP

Router>en

Router#conf t

Router(config)#hostname ISP

ISP(config)#interface f0/1

ISP(config-if)#ip address 218.87.18.24 255.255.255.0

ISP(config-if)#no sh

ISP(config-if)#end

ISP#

 

 

验证在PCISP

 

PC>ping 218.87.18.24

 

Pinging 218.87.18.24 with 32 bytes of data:

 

Reply from 218.87.18.24: bytes=32 time=86ms TTL=254

Reply from 218.87.18.24: bytes=32 time=45ms TTL=254

Reply from 218.87.18.24: bytes=32 time=49ms TTL=254

Reply from 218.87.18.24: bytes=32 time=35ms TTL=254

 

Ping statistics for 218.87.18.24:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 35ms, Maximum = 86ms, Average = 53ms

 

 

 

查看NAT转换表:

 

R1#show ip nat translations

Pro  Inside global     Inside local       Outside local      Outside global

icmp 218.87.18.23:43   192.168.1.1:43     218.87.18.24:43    218.87.18.24:43

icmp 218.87.18.23:44   192.168.1.1:44     218.87.18.24:44    218.87.18.24:44

icmp 218.87.18.23:45   192.168.1.1:45     218.87.18.24:45    218.87.18.24:45

icmp 218.87.18.23:46   192.168.1.1:46     218.87.18.24:46    218.87.18.24:46

 

R1#

 

 

 

总结:

网络地址转换就是将一个IP地址用另一个IP地址代替。尽管最初设计网络地址转换的目的是为了增加在专用网络中可使用的IP地址数,但是它有一个隐蔽的安全特性,如内部主机隐蔽等,保证了网络的一定安全。网络地址转换主要用在两个方面:
1)网络管理员希望隐藏内部网络的IP地址。这样,互联网上的主机无法判断内部网络的情况; 
2内部网络的IP地址是无效的。这种情况主要是因为现在的IP地址不够用,要申请到足够多的合法IP地址很难办到,因此需要转换IP地址。

    
在上面两种情况下,内部网对外面是不可见的,互联网不能访问内部网,但是内部网主机之间可以相互访问。