组网需求
如配置公网和私网用户通过非公网口的IP地址访问内部服务器和Internet示例所示,某小型企业内网部署了一台路由器、一台FTP服务器和一台Web服务器。路由器作为接入网关,为下挂的内网用户提供上网服务,主要包括浏览网页、使用即时通信工具、观看视频、访问邮箱等。企业内网的FTP/Web服务器对内网和外网用户分别提供FTP服务和WWW服务。该企业有两个公网IP地址,一个1.1.1.1/24部署在网关上行接口,另一个1.1.1.3/24预留给内部FTP/Web服务器使用。企业希望在路由器上配置NAT功能,使内网用户可以访问Internet,同时外网和内网用户都可以通过预留的公网IP地址访问内部FTP/Web服务器。
图1 配置公网和私网用户通过非公网口的IP地址访问内部FTP/Web服务器和Internet
数据准备
项目 | 数据 | 说明 |
---|---|---|
路由器上行接口IP地址 | GE0/0/1:1.1.1.1/24(公网口) | 使用三层接口GE0/0/1连接Internet。 |
路由器下行接口IP地址 | GE0/0/2:192.168.1.1/24 | 使用三层接口GE0/0/2连接企业内网用户。如果有多个内网用户需要上网,可以在路由器上下挂一个二层交换机来扩展用户个数。 |
对端运营商接口的IP地址 | 1.1.1.2/24 | 对端运营商接口的IP地址用于配置路由信息,否则内网用户上网的报文无法转发到Internet。 |
FTP服务器的内网IP地址和端口号 Web服务器的内网IP地址和端口号 | 192.168.1.2/24:21 192.168.1.3/24:80 | 企业内网分配给FTP/Web服务器的内网IP地址和端口号。本例中,虽然内网用户和FTP/Web服务器都在内网,但是为了防止内部服务器受内网用户的攻击,要求内网用户也通过预留的公网IP地址来访问FTP/Web服务器。 |
FTP服务器映射后的公网IP地址和端口号 Web服务器映射后的公网IP地址和端口号 | 1.1.1.3/24:21 1.1.1.3/24:9080 | 该企业预留了一个公网IP地址1.1.1.3/24给内部FTP/Web服务器使用。因此,可以使用该公网IP地址作为FTP/Web服务器映射后的公网IP地址。同时,需要规划不同的公网端口号21和9080来区分FTP/Web服务器。 |
内网用户HostA的IP地址 | 192.168.1.10/24 | 企业内部分配给用户的内网IP地址,用于验证内网用户访问Internet、FTP和Web服务器是否正常。 |
外网用户HostC的IP地址 | 2.2.2.2/24 | 外部用户的公网IP地址,用于验证外网用户访问内网的FTP/Web服务器是否正常。 |
配置思路
- 配置路由器的接口IP地址、缺省路由,实现内部网络和外部Internet之间三层互通。
- 在路由器的上行接口配置Easy IP方式的NAT Outbound,实现内网用户访问Internet功能。
- 在路由器的上行接口配置服务器映射NAT Static,实现外网用户访问内部FTP/Web服务器功能。
- 在路由器上,开启FTP的NAT ALG功能。FTP协议是一个多通道协议,需要配置NAT ALG功能,否则报文无法穿越NAT,HTTP协议不需要配置NAT ALG功能。
- 在路由器的下行接口配置服务器映射NAT Static和Easy IP方式的NAT Outbound,将内部服务器与内网PC之间的流量都引到路由器上进行转发,实现内网用户通过预留的公网IP地址访问FTP/Web服务器功能。
操作步骤
- 配置Router的接口IP地址、缺省路由,实现内部网络和外部Internet之间三层互通。
- 配置上行接口和下行接口的IP地址。
<Huawei> system-view [Huawei] sysname Router [Router] interface gigabitethernet 0/0/1 [Router-GigabitEthernet0/0/1] undo portswitch //有些二层接口需要切换成三层接口后,才可以配置IP地址 [Router-GigabitEthernet0/0/1] ip address 1.1.1.1 24 [Router-GigabitEthernet0/0/1] quit [Router] interface gigabitethernet 0/0/2 //下行接口如果不是三层接口,这里可以使用VLANIF接口代替 [Router-GigabitEthernet0/0/2] undo portswitch [Router-GigabitEthernet0/0/2] ip address 192.168.1.1 24 [Router-GigabitEthernet0/0/2] quit
- 配置缺省路由,下一跳为对端运营商接口的IP地址,保证内网用户上网的报文可以到达Internet。
[Router] ip route-static 0.0.0.0 0.0.0.0 1.1.1.2
- 配置上行接口和下行接口的IP地址。
- 在Router的上行接口配置Easy IP方式的NAT Outbound,使内网用户可以访问Internet。
[Router] acl 3000 [Router-acl-adv-3000] rule 5 permit ip source 192.168.1.0 0.0.0.255 //只允许192.168.1.0网段的用户访问Internet [Router-acl-adv-3000] quit [Router] interface gigabitethernet 0/0/1 [Router-GigabitEthernet0/0/1] nat outbound 3000 [Router-GigabitEthernet0/0/1] quit
- 在Router的上行接口配置服务器映射NAT Static,实现外网用户通过预留的公网IP地址访问内部FTP/Web服务器功能。
[Router] interface gigabitethernet 0/0/1 [Router-GigabitEthernet0/0/1] nat static protocol tcp global 1.1.1.3 21 inside 192.168.1.2 21 //使用预留的IP地址进行NAT转换,供外网用户访问 [Router-GigabitEthernet0/0/1] nat static protocol tcp global 1.1.1.3 9080 inside 192.168.1.3 80 //对于知名端口号,可以配置成80,也可以配置成它代表的应用www [Router-GigabitEthernet0/0/1] quit
- 在Router上开启FTP的NAT ALG功能。
[Router] nat alg ftp enable
- 在Router的下行接口配置Easy IP方式的NAT Outbound,将内部服务器与内网PC之间的流量都引到路由器上进行转发。
[Router] acl 3001 [Router-acl-adv-3001] rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 1.1.1.3 0 //只有内部主机使用公网IP地址访问服务器的流量,才会引到Router上进行NAT转换 [Router-acl-adv-3001] quit [Router] interface gigabitethernet 0/0/2 [Router-GigabitEthernet0/0/2] nat outbound 3001 [Router-GigabitEthernet0/0/2] quit
- 在Router的下行接口配置服务器映射NAT Static,实现内网用户通过预留的公网IP地址访问内部FTP/Web服务器功能。
[Router] interface gigabitethernet 0/0/2 [Router-GigabitEthernet0/0/2] nat static protocol tcp global 1.1.1.3 21 inside 192.168.1.2 21 //使用预留的IP地址进行NAT转换,供内网用户访问 [Router-GigabitEthernet0/0/2] nat static protocol tcp global 1.1.1.3 9080 inside 192.168.1.3 80 [Router-GigabitEthernet0/0/2] quit [Router] quit
- 验证配置结果。
- 在Router上执行命令display nat outbound,查看动态NAT地址池配置。
<Router> display nat outbound NAT Outbound Information: -------------------------------------------------------------------------- Interface Acl Address-group/IP/Interface Type -------------------------------------------------------------------------- GigabitEthernet0/0/1 3000 1.1.1.1 easyip GigabitEthernet0/0/2 3001 192.168.1.1 easyip -------------------------------------------------------------------------- Total : 2
- 在Router上执行命令display nat static,查看静态NAT地址映射关系。
<Router> display nat static Static Nat Information: Interface : GigabitEthernet0/0/1 Global IP/Port : 1.1.1.3/21(ftp) Inside IP/Port : 192.168.1.2/21(ftp) Protocol : 6(tcp) VPN instance-name : ---- Acl number : ---- Vrrp id : ---- Netmask : 255.255.255.255 Description : ---- Global IP/Port : 1.1.1.3/9080 Inside IP/Port : 192.168.1.3/80(www) Protocol : 6(tcp) VPN instance-name : ---- Acl number : ---- Vrrp id : ---- Netmask : 255.255.255.255 Description : ---- Interface : GigabitEthernet0/0/2 Global IP/Port : 1.1.1.3/21(ftp) Inside IP/Port : 192.168.1.2/21(ftp) Protocol : 6(tcp) VPN instance-name : ---- Acl number : ---- Vrrp id : ---- Netmask : 255.255.255.255 Description : ---- Global IP/Port : 1.1.1.3/9080 Inside IP/Port : 192.168.1.3/80(www) Protocol : 6(tcp) VPN instance-name : ---- Acl number : ---- Vrrp id : ---- Netmask : 255.255.255.255 Description : ---- Total : 4
- 在内网主机HostA上执行命令ping 1.1.1.2,模拟内网主机访问Internet,流量能Ping通,同时在Router上执行命令display nat session all可以查看到地址转换结果。
- 在内网主机HostA上执行命令ftp 1.1.1.3 21,模拟内网主机访问内部FTP服务器,FTP能正常访问,同时在Router上执行命令display nat session all可以查看到地址转换结果。
- 在外网主机HostC上执行命令ftp 1.1.1.3 21,模拟外网主机访问内部FTP服务器,FTP能正常访问,同时在Router上执行命令display nat session all可以查看到地址转换结果。
- 在Router上执行命令display nat outbound,查看动态NAT地址池配置。
配置文件
Router配置文件
# sysname Router # acl number 3000 rule 5 permit ip source 192.168.1.0 0.0.0.255 acl number 3001 rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 1.1.1.3 0 # nat alg ftp enable # interface GigabitEthernet0/0/1 undo portswitch ip address 1.1.1.1 255.255.255.0 nat static protocol tcp global 1.1.1.3 ftp inside 192.168.1.2 ftp netmask 255.255.255.255 nat static protocol tcp global 1.1.1.3 9080 inside 192.168.1.3 www netmask 255.255.255.255 nat outbound 3000 # interface GigabitEthernet0/0/2 undo portswitch ip address 192.168.1.1 255.255.255.0 nat static protocol tcp global 1.1.1.3 ftp inside 192.168.1.2 ftp netmask 255.255.255.255 nat static protocol tcp global 1.1.1.3 9080 inside 192.168.1.3 www netmask 255.255.255.255 nat outbound 3001 # ip route-static 0.0.0.0 0.0.0.0 1.1.1.2 # return