美文网首页
CCNP之NAT中四种地址详细解析

CCNP之NAT中四种地址详细解析

作者: 请叫我学霸 | 来源:发表于2016-01-17 23:35 被阅读1334次

         NAT技术本身并不难理解,其主要的作用是私网地址和公网地址的转换。但是,在NAT的学习过程中,很容易把NAT的四个地址混淆,并且不知道他们运用的场合。本文就四个地址以及运用的场合进行详细分析。这是一个令多人困惑的问题,如果看了这篇文章,你顿时觉得醍醐灌顶,那还不赶紧打赏。

    1:NAT产生原因

       众所周知,如果希望自己的电脑可以上网,必须要到运营商(ISP)申请一个账号,这个账号就是你电脑连接上网的公网IP,是全球唯一的。(请注意:事实上,这个公网IP地址是运营商租给你的,当用户不租的时候,ISP会将此IP地址收回,并租给其他用户)。只有申请到了公网IP才可以连接到Internet.但是,IP地址只有32位,全球那么多电脑要上网,并且只能一台主机一个公网IP,显然,IP地址是不够的。对此,从长远的角度,提出了IPV6的解决方案。但是,在IPV4到IPV6的过度期间,必须存在一种技术解决地址短缺的问题,于是出现了NAT技术。

    2:NAT作用

    NAT完成私有地址和公有地址的转换。

    3:NAT应用场合

    NAT技术最常用的两种场景是:

    第一种:内部网络用户使用私网地址上网

    第二种:用户通过公共网络访问内部网络中的设备(例如:服务器)

    4:NAT四种地址以及区别

    内部本地地址:转换之前内部源地址的地址

    内部全局地址:转换之后内部主机的地址

    外部本地地址:转换之前目标主机的地址

    外部全局地址:转换之后外部目标主机的地址

    5:NAT两种适用场合的实验模拟

    5.1NAT常用的第一种场合:当内部网络用户通过私用网络上网

    请注意本实验中用路由器来模拟PC和Sever

    实验配置如下:

    PC1的配置为:

    PC1#conf t

    PC1#no ip routing

    PC1#ip default-gateway 192.168.0.1

    PC1#int f0/0

    PC1#no shu

    PC1#ip add 192.168.0.10 255.255.255.0

    PC1#no shu

    PC1#exit

    Sever的配置为:

    Sever#conf t

    Sever #no ip routing

    Sever #ip default-gateway 192.168.0.1

    Sever #int f0/0

    Sever #no shu

    Sever #ip add 192.168.0.20 255.255.255.0

    Sever #no shu

    Sever #exit

    对R1的配置为:

    R1(config)#int f0/0

    R1(config-if)#no shu

    R1(config-if)#ip add 192.168.0.1 255.255.255.0///这里IP地址与PC,Sever的网关地址相同

    R1(config-if)#ip nat inside

    R1(config-if)#exit

    R1(config)#int s1/0

    R1(config-if)#no shu

    R1(config-if)#ip add 200.10.10.1 255.255.255.0

    R1(config-if)#ip nat outside

    R1(config-if)#no shu

    R1(config-if)#exit

    R1(config)#ip nat inside source static 192.168.0.10 200.10.10.30

    R1(config)#router ospf 1

    R1(config-router)#network 200.10.10.0 0.0.0.255 a

    R1(config-router)#network 200.10.10.0 0.0.0.255 area 0

    对R2的配置为:

    R2#conf t

    R2(config)#int s1/0

    R2(config-if)#no shu

    R2(config-if)#ip add 200.10.10.2 255.255.255.0

    R2(config-if)#exit

    R2(config)#int e0/1

    R2(config-if)#no shu

    R2(config-if)#ip add 100.20.20.1 255.255.255.0

    R2(config)#router ospf 1

    R2(config-router)#network 200.10.10.0 0.0.0.255 area 0

    R2(config-router)#network 100.20.20.0 0.0.0.255 area 0

    R2(config-router)#exit

    对PC2的配置

    PC2#conf t

    PC2(config)#no ip routing

    PC2(config)#ip default-gateway 100.20.20.1

    PC2(config)#int e0/0

    PC2(config-if)#no shu

    PC2(config-if)#ip add 100.20.20.2 255.255.255.0

    PC2(config-if)#exit

    在上述配置过程中,有一条重点命令:

    (1)R1(config)#ip nat inside source static 192.168.0.10200.10.10.30

    请注意:

    (1)在这里,通过静态配置,我只对PC1的地址进行了转换,Server地址没有转换。

    (2)将PC1的私网地址转化为公网地址的时候,地址为200.10.10.30

     这里也可以转化为R1的出接口s1/0的地址200.10.10.1,但是会存在当外网访问200.10.10.1的  时候就变成全部访问PC1了。

    对实验结果进行分析:

    PC1#ping 100.20.20.1

    由此看出PC1可以成功的访问外网。

    Server#ping 100.20.20.1

    由此看出,由于没有对Sever进行地址转换的配置,所以Sever不能访问外网。

    如果在R1的上述配置基础上,加如下配置:

    R1(config)#ip nat inside source static 192.168.0.20 200.10.10.40

    此时验证实验结果:

    Server#ping 100.20.20.1

    发现Server可以正常访问外网。

    在PC1ping200.10.10.2的过程中,查看地址转换过程:

    R1#

    *Mar1 00:49:42.603: NAT*: s=100.20.20.2, d=200.10.10.30->192.168.0.10[41]

    *Mar1 00:49:42.899: NAT*: s=192.168.0.10->200.10.10.30, d=100.20.20.2[42]

        由此可以看出,数据包从内网发向外部网络的过程,源地址为192.168.0.10的数据包,在经过具有NAT功能的路由器之后,源地址转换后200.10.10.30;在此过程中目的地址一直保持不变。

    R1(config)#do show ip nat tran

    此时PC2pingPC1,

    由上图实验结果可以看出,当PC2pingPC1的时候,无法ping通。

    (这里请思考原因,在后续会有解释)

    总结:

    (1)由于本实验主要是讲解本地地址和局部地址的区别,所以在NAT配置过程中采用的是最简单的静态配置,当然你也可以采用动态NAT的方式对地址进行转换。

    (2)当内网设备访问外网设备的时候,进行的是内部本地地址和内部全局地址的转换

    在本实验中,内部本地地址为192.168.0.10和192.168.0.20

    内部全局地址为200.10.10.30和200.10.10.40

    NAT在此种运行场合中,仅进行的是内部本地地址和北部全局地址的转换。

    5.2 NAT常用的第二种场合:外网设备访问内网采用私有地址的设备

         当一个处于公共网网络的设备(上图中PC2)想访问一个企业内部的设备(例如:上图中的服务器)的时候,此服务器采用的私有地址(192.168.0.20),由于企业网内部安全的需要,不允许此公网地址(PC2的地址为100.20.20.2)出现在私有内部网络,那么就需要将此公网地址(100.20.20.2)转化为私有地址。那么,这里公网地址PC2的地址(100.20.20.2)就是外部全局地址,PC2经过NAT转换后的私有地址(本实验中是192.168.0.30)就是外部本地地址。

    实验拓扑跟上图一样:


    实验的配置在上面配置的基础上,在R1上添加如下配置命令:

    R1(config)#ip nat outside source static 100.20.20.2 192.168.0.30///

    上面这句命令的意思是:将外部全局地址100.20.20.2转化为私有地址192.168.0.30

    此时,PC2pingServer发现还是不通。

    但是

    R1(config)#do show ip nat tran

    Pro  Insideglobal        Inside local           Outside local           Outside global

                                                                         192.168.0.30   100.20.20.2

        200.10.10.30        192.168.0.10------

          200.10.10.40      192.168.0.20------

    发现外部全局地址100.20.20.2已经由NAT路由器转换为外部本地地址192.168.0.30.

    也就是说NAT已经发挥作用,那么为什么还是无法ping通呢?

       外部全局地址100.20.20.2成功的转化为外网局部地址192.168.0.30后,内网本地地址192.168.0.20回应192.168.0.30时,发现内部网络没有192.168.0.30这个地址,也就无法ping通。所以,我认为需要为NAT路由器R1指定一条通过S1/0到达192.168.0.30的路由。添加静态路由如下:

    R1(config)#ip route 192.168.0.30 255.255.255.255 s1/0

    但是发现指定路由之后,还是无法ping通。(请各位大牛看看,这里 怎么修改才能ping通)

    6:总结

        关于NAT技术的四种地址的区别已经通过上述常用的两种场合进行详细解析,至于在第二种场合中PC2无法ping通server,请大牛们提供些建议。

    相关文章

      网友评论

          本文标题:CCNP之NAT中四种地址详细解析

          本文链接:https://www.haomeiwen.com/subject/whthkttx.html