NAT实验

NAT配置

老样子,复制一下百度百科。
NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
另外,这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。在RFC 2663中有对NAT的说明。

(还起到和内网和外网的隔离起到一部分安全防护)。

实验

1.实验基本配置

首先,还是华为的ensp的设备。如下图针对各个设备先进行基本配置。

对内网(绿色部分)

PC1                                      
ip:     10.1.1.1/24
gw:   10.1.1.254
Server
ip:    10.1.1.88/24
gw:     10.1.1.254

S1:将3个接口全加入vlan10,设置为access模式
R1:
G0/0/0: 10.1.1.254/24               //网关地址
G0/0/1:    110.1.1.1/24                  //连接外网的接口地址,唯一的公网ip
ip route-static : 0.0.0.0   0    110.1.1.2               //默认路由

NAT实验_第1张图片

对外网

Client:
ip:   210.1.1.1/24
gw: 210.1.1.254
R2:
G0/0/1: 210.1.1.1 /24
G0/0/0: 110.1.1.2 /24

这样基本配置就配置好了。可以尝试用PC1 ping 110.1.1.1查看内网链路是否通。同样用Client ping 110.1.1.2查看链路。

2.配置内网对外网的动态NAT

我们现在是无法对外进行通信的,因为我们仅有一个公网IP在边界路由器的对外接口上。而我们所拥有的设备都是私有ip,只针对内部局域网的。
我们思考一个问题,内部的设备无法对外通信,但是边界接口的ip可以。我们可不可以将这个公有IP当作所谓的中介人,来替我们传达信息呢?这个其实就是NAT技术。
直接给个例子:
PC1要发送数据给Client,正常情况下无法通信。但是我们在出内网边界接口(R1:g0/0/1)配置了NAT转化,就可以了。
实际情况是这样,(1)PC1出站,会将他本身的服务所携带的ip和端口号和边界NAT服务器进行映射(eg.10.1.1.1:1000)。(2).NAT服务器发现这个内网ip是被允许出去的,公网ip也会自身产生一个端口和内网的socket进行一对一映射(eg.110.1.1.1:12345)。(3).转换过后如下图,会代替原有内网ip进行通信。(内网all topology对外网来说都是看不见的)

这里需要注意两个问题
1.这个时候NAT服务器中存有内网到公有ip的socket映射(eg.10.1.1.1:1000 <-> 110.1.1.1:12345),通信完后会释放掉。
2.内网对外网的通信根据端口的。端口0-65535,所有公有ip仅能产生这么多的端口。同时运行的服务超出端口数只能再购买一个IP了。

NAT实验_第2张图片
因为通信的最后设备是R1上,且最终出口是R1 G0/0/1.我们需要在R1做如下配置:

R1:
[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit source 10.1.1.0 0.0.0.255             //建立普通acl规则,仅需要让所有10.1.1.0的所有主机出去就好
[R1-acl-basic-2000]int g0/0/1                                     
[R1-GigabitEthernet0/0/1]nat outbound 2000                  //进入出接口,直接设置nat并且设置配置好的acl规则
[R1-GigabitEthernet0/0/1]dis this                      //查看该端口信息
[V200R003C00]
#
interface GigabitEthernet0/0/1
 ip address 110.1.1.1 255.255.255.0 
 nat outbound 2000
#
return

这个时候我们尝试使用PC1来ping外网的Client。通过wireshark来抓包查看。可以看到源ip就是我们的内网的唯一的公有ip,是被转换了。所以以上操作是可行的。(顺便说一下,以上的命令配置是最常用的,不排除具体需求具体配置)
NAT实验_第3张图片
以上的配置就是传说中的easy ip,动态NAT。因为是所有ip和端口随机自己配。而下面将设置是静态的。
这个时候再抛出一个问题。看图!为什么外网的Client无法和内网的PC1通信呢?通信不是相互的吗??
NAT实验_第4张图片
其实我前面在强调注意的第一点有说过,映射的socket会被释放掉,且各个设备的端口都是随机的。
在出接口配置NAT,允许了内网所有主机出去和外网通信,这是内网的主动行为。
首先,内网主机发出数据,进入边界路由器。首先查找路由表,找到了对应路由。
转发出边接路由器的出接口。然后边界路由器的出接口设置了NAT,就可以生成对应的公网:端口->
私网:端口 的一个映射。然后ip地址转换成公网ip和外界通信。外界收到后,回复的ip也是转发出去的
公网ip。因为进入的时候先进入的是内网的出接口,这个接口存在这么一个nat的映射。所以
外界进来后nat服务器会自动转换成对应的内网主机ip和端口,进行转发。达成通路。
我们通信成功是因为内网出外网的接口存在nat映射。但是外界主动进来根本不存在映射,
所以无法通行。所以我们还需要在该端口上进行设置对外网的nat服务。

我们现在设置一个小服务,外网仅能访问Server的http服务,无法对内网其他主机进行通信。输入配置命令

R1:
[R1-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 55555 inside 10.1.1.88 80 
// nat 服务器 协议 tcp 全局进来的socket只要端口是55555就进行映射,然后转发和内网的10.1.1.88:80进行通信

连接成功:
注意内网对外网是‘不存在’的,故访问的服务都应该填写公网ip。
NAT实验_第5张图片
以上的配置足矣说明了一般公司的nat配置。内网可以和外网通信,但是外网无法触及内网。但是公司服务器的服务是对外开放的,所以要设置静态打开。接下来再添加一个对于网络管理员教常用的,其实和上面基本一致。

远程控制内网设备

假设我们最开始的实验图,内网中的交换机是可以提供远程连接的。我们首先需要在S1和R1上添加相应的管理配置和静态nat。

[S1]int vlanif 10
[S1-Vlanif10]ip address 10.1.1.10 24               //vlan10的虚拟ip
[S1]ip route-static 0.0.0.0 0 10.1.1.254             //配置路由
[S1]user-interface vty 0 4                                 //配置管理员管理账号
[S1-ui-vty0-4]authentication-mode password 
[S1-ui-vty0-4]set authentication password cipher 123
[S1-ui-vty0-4]user privilege level 15
[R1-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 12345  inside 10.1.1.10 23

查看实验结果:

NAT实验_第6张图片

实验NAT就写到这里了,有问题可以给我留言我再改!

你可能感兴趣的:(网络运维)