梅利333

从无到有,自有至精

导航

NAT

NAT地址 转换

为什么 要使用NAT

使用NAT的原因有两点,

 其一:是因为私网IP无法在公网上正常使用,

 其二:起到内外网隔离的作用,使得内网更加安全,不至于完全暴露。

NAT的部署方法有几种 ?

1 共享上网的方式,实现内网用户使用一个共网地址上网

2 地址池的方式,共享上网,因为一个地址的端口号被占满,导致无法上网(断断续续)

3 将内网地址映射出去,如SERVER提供的服务,可以由INTERNET进行访问

 

先讲一下原理 吧,

 

 

 

如图所示,

R2做为公司GW,进行内外网隔离

如果在不配置NAT的情况下,请问R3可以访问 R1吗?

咱们分析 一下

出去的时候 数据是如何封装 的?

MAC,假设是A

目换MAC,是R2的内网口

IP:自己 192.168.1.1

目的IPR1 100.1.1.1

 

如果数据能够 到达R1,那么R1的返回数据又是如何封装 的呢?

不可否认的是会将源目对调,对于MAC部份,我们不用在此处讲了,因为每经过一个路由设备 都会变的,要进行解封装与重新封装的动作,此处只讲IP

R1收到 以后,所执行的动作是“源/目”IP对调

则:

IP: 100.1.1.1

目的 IP:192.168.1.1

问题出现了,请问R1此时有去往192.168.1.1的路由吗?没有吧,

我想,就算是有,也未必是你的,这不合规矩的,内网地址 怎么可以出现在公网的路由器中呢?~(此时等于是数据出得去,但是回不来,找不到回来的路,丢了)

那面对这样的问题如何解决呢

这个时候 NAT就出现了,

它的原理是将内网地址 转换成公网地址

 

 

 R2会将内网192.168.1.0/24的网段所有内网地址 ,转换成100.1.1.10进行公网访问 ,

而此时,做为R1而言,有没有去往100.1.1.10的路由呢?肯定是有的

这个时候再进行源目对调就说得过去了,(出得去,也回得来)

 

那如何来部署呢?

 

思路

1 首先部署ACL,抓取感兴趣的数据流,(说白了,就是你想让谁上网)

2 配置默认路由

3 配置NAT入接口,和出接口

4 调用NAT,开启端口复用

 

R2(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1
R2(config)#inter f0/0
R2(config-if)#ip nat outside  //定义出接口(连接公网)
R2(config-if)#inter f0/1
R2(config-if)#ip nat inside  //定义入接口(连接局域网) 

R2(config)#access-list 1 per any   //直接允许所有通过,如果后期想加策略再单独写ACL
R2(config)#ip nat in so li 1 inter f0/0 overload  //使用出接口做端口复用

 

  

 

 

 此时的R3可以pingR1以及它上面的LOOPBACK接口,这说明NAT起到了做用。

 

这里的NAT所使用的ACL和你自己定义的ACL没有关系 的,如果你想要针对 于内网的主机进行策略部署,(ACL,不管是标准还是扩展,都 是可以的,只要在相应的接口挂接就OK了)

 

查看R2NAT配置

Show ip nat statistics

 

 

 查看NAT地址转换表

Show ip nat translations

 

 

 


NAT地址池

由于此时我的终端数量较多,1000台左右,那此时的并发数也会上升,一个公网IP的端口号有限,65535个,很快就满了,

所以我申请了多个公网IP,(这些IP并不是非要配置在我的GW出口上)

而是把做他们创建一个Pool,供地址转换使用

 

ip nat pool NAT 100.1.1.1 100.1.1.5 netmask 255.255.255.0  //定义地址池

//定义一个地址池,名字为NAT,地址范围是100.1.1.1 – 100.1.1.5,共5个地址,掩码为/24位,(为个要看实际的)

ip nat inside source list 1 pool NAT overload 

然后使用地址池进行端口复用

 

 


地址映射

有时企业内部也要发布服务器到公网,供外部进行测试使用,

而这时如果没有NAT的话等于直接 把服务器搬到大街上,很不安全,

那么这时也可以使用NAT做地址映射 ,

将服务器的单独IP映射到服务器的固定IP,并且端口号还可以自定义,

比如

现将R4telnet 服务发布到外网中,映射 地址为公网IP 12.0.0.2,所映射端口号为23----2000,这样一来,即隐藏了服务器的IP地址,还隐藏了它的端口号,而且还能正常访问

 

怎么来做呢?

R2(config)#ip nat inside source static tcp 192.168.1.4 23 12.0.0.2 2000

很简单,就一条命令

当然,这东西在实际中一定要查清楚服务器的IP地址,以及相应服务的端口号,最后不要忘记查一下ACL的策略,有没有限制端口号。

 

 

 ISP端 的R1进行远程测试。完成

 

 ------------------------------------------------

CCIE成长之路 --- 梅利

 

posted on 2020-07-17 15:50  梅利333  阅读(319)  评论(0)    收藏  举报