通过NAT ALG实现FTP服务器的访问【实例】

[注:本实验和相关理解限于本人知识水平,难免有错误,如有前辈发现,谢谢批评指正]

本实例拓扑的实现是在华为eNSP模拟器上进行的,使用了一台客户端、一台FTP服务器和两台华为AR2240路由器。相关的实验拓扑如下图所示:
通过NAT ALG实现FTP服务器的访问【实例】_第1张图片

ALG概述

普通的NAT协议实现了TCP和UDP报文头中IP地址的转换功能,然而它对应用层协议数据中的相关字段无法进行转换,FTP就是其中之一,而ALG的出现解决了普通NAT的不足之处,其能对多通道协议进行应用层报文信息的地址转换,从而保证应用层通信的正确性。

FTP概述

【两个连接】
FTP是一个多通道协议,它需要用到两个连接——控制连接和数据连接,按照个人理解,控制连接用于传输各节点之间的控制命令及执行信息,比如TCP的三次握手等;数据连接用于传输实际的数据,比如实际文件的传输。
【两种模式】
FTP有两种工作模式——PORT(主动模式)和PASV(被动模式),通俗点理解这两个模式,PORT就是内网客户端主动向外网FTP服务器主动建立连接,并主动告知自己地址和开放的端口等待FTP服务器来建立连接,这些信息包含在客户端发送的私网PORT报文中,PORT报文经过路由器时被路由器进行ALG处理,进行地址和端口的转换,转换完成后转发至外网FTP服务器,FTP服务器收到报文后,基于相关的地址和端口进行相应的数据连接,当然这个过程仍然要经过相应的转换,PORT原理图示如下:
通过NAT ALG实现FTP服务器的访问【实例】_第2张图片
图片来源:https://blog.csdn.net/chenlycly/article/details/52357359

需要注意的是,PORT模式下需要经过ALG处理的是私网客户端发出的PORT报文,只有私网出口路由器使能ALG功能后相应的文件操作才能正常进行,根据本人在eNSP中的实验,如果出口路由器没有使能ALG功能,客户端可以登录外网FTP服务器但是读不到FTP服务器中的文件。

PASV与PORT相反,这个过程由外网的FTP服务器主动发送相应的报文告知内网客户端自己的地址和相应的端口,经过中间路由器ALG处理后,发送到内网客户端,等待内网客户端与自己建立连接,如下图所示:
通过NAT ALG实现FTP服务器的访问【实例】_第3张图片

图片来源:https://blog.csdn.net/chenlycly/article/details/52357359

查看PORT和PASV模式中私网客户端和外网FTP服务器公布的地址和端口 下图是PORT模式私网客户端发布的私网地址和端口号:

通过NAT ALG实现FTP服务器的访问【实例】_第4张图片
从这里我们可以看出,内网客户端发送的相关信息是以“A1,A2,A3,A4,P1,P2”这样的格式体现出来,其中A1、A2、A3、A4代表的私网IP地址,P1、P2代表开放的端口号,在这里有个公式——端口号=P1*256+P2(后面图片中的红圈部分均适用这个公式)。

下图是转换后的地址和端口号:
通过NAT ALG实现FTP服务器的访问【实例】_第5张图片
接下来是PASV模式中,外网FTP服务器发布的外网地址和端口号:
通过NAT ALG实现FTP服务器的访问【实例】_第6张图片
转换后的地址和端口号:
通过NAT ALG实现FTP服务器的访问【实例】_第7张图片

附:相关配置

【私网客户端】
通过NAT ALG实现FTP服务器的访问【实例】_第8张图片
通过NAT ALG实现FTP服务器的访问【实例】_第9张图片
【AR1】

#                                         
 nat alg ftp enable                       
#                                         
interface GigabitEthernet0/0/0            
 ip address 192.168.1.1 255.255.255.0     
#                                         
interface GigabitEthernet0/0/1            
 ip address 10.1.1.1 255.255.255.0        
 nat server global 10.1.1.3 inside 192.168.1.2
 nat static enable                        
#
ip route-static 0.0.0.0 0.0.0.0 10.1.1.2  
#

【AR2】

#                                         
interface GigabitEthernet0/0/0            
 ip address 10.1.1.2 255.255.255.0        
#                                         
interface GigabitEthernet0/0/1            
 ip address 10.1.2.1 255.255.255.0        
#

【外网FTP服务器】
通过NAT ALG实现FTP服务器的访问【实例】_第10张图片
通过NAT ALG实现FTP服务器的访问【实例】_第11张图片

你可能感兴趣的:(网络工程,网络,NAT,ALG,FTP)