H3C内网用公网IP访问内网服务器,其它品牌参照思路

方法(一)内网接口只需要启用端口回流:nat hairpin enable

h3c v7 正常配置出口的nat server protocol映射,内网接口只需要启用端口回流:nat hairpin enable

所以对于V7版本的路由(防火墙)设备只需要2条配置即可完成内网和外网均用公网IP访问内网服务器

(1) 出口映射:nat server protocol global 公网 端口 inside 内网服务器 端口

(2) 内口启用回流:nat hairpin enable

 

组网需求:

如 图 1 所示, Host A和FTP服务器同在一个局域网内, Router作为该局域网的网关,具体要求如下:

• 外网主机可以通过 Router 访问内网 FTP 服务器;

• 内网主机在访问 FTP 服务器时,需要通过外网地址访问,从而有效的避免服务器受到来自内部网络的攻击

配置思路

• 通过定义 ACL 规则,并将其与 NAT 配置关联,实现只对内网匹配指定的 ACL 规则的报文进

行地址转换, 就是 出接口 配置NAT源地址转换到互联网 NAT时匹配ACL转发转换。

• 为使外网主机可以通过外网地址访问内网 FTP 服务器,需要在外网侧接口配置 NAT 内部服务

器功能。就是单位外部主机 访问单位内部服务器 需要在出接口配置nat server protocol global...进行地址端口向内网服务器的映射配置

• 为使内网主机通过(用)外网地址访问内网 FTP 服务器,需要在内网侧接口  使能 NAT hairpin 功能

配置步骤

# 配置 Router 的内网接口 GigabitEthernet1/1 和外网接口 GigabitEthernet1/2 的 IP 地址。

<Router> system-view

[Router] interface gigabitethernet 1/1............内网接口

[Router-GigabitEthernet1/1] ip address 192.168.1.1 24------------>内网服务器为1.5

[Router-GigabitEthernet1/1] quit

[Router] interface gigabitethernet 1/2...........外网接口

[Router-GigabitEthernet1/2] ip address 10.0.0.1 24

[Router-GigabitEthernet1/2] quit

# 配置 ACL 2000,允许对内部网络中 192.168.1.0/24 网段的报文进行(源)地址转换。就是上互联网的基础配置

[Router] acl number 2000

[Router-acl-basic-2000] rule permit source 192.168.1.0 0.0.0.255...........只允许匹配到192.168.1的IP进行源地址转换上互联网

[Router-acl-basic-2000] quit

# 在接口 GigabitEthernet1/2 上配置 NAT 内部服务器,允许外网主机使用地址 10.0.0.1 访问内网

FTP 服务器,同时使得内网主机访问内网 FTP 服务器的报文可以进行目的地址转换。

[Router] interface gigabitethernet 1/2

[Router-GigabitEthernet1/2] nat server protocol tcp global 10.0.0.1 inside 192.168.1.5 ftp........这个可以叫目标地址转换

# 在接口 GigabitEthernet1/2 上配置 Easy IP 方式的出方向动态地址转换,使得内网主机访问内网

FTP 服务器的报文可以使用接口 GigabitEthernet1/2 的 IP 地址进行源地址转换。

[Router-GigabitEthernet1/2] nat outbound 2000

[Router-GigabitEthernet1/2] quit

# 在接口 GigabitEthernet1/1 上使能 NAT hairpin 功能。

[Router] interface gigabitethernet 1/1

[Router-GigabitEthernet1/1] nat hairpin enable

[Router-GigabitEthernet1/1] quit

验证配置
# 以上配置完成后,内网主机和外网主机均能够通过外网地址访问内网 FTP Server。通过 display
nat all 命令查看所有 NAT 的配置信息,可以看到 GigabitEthernet1/1 接口上使能了 NAT hairpin 功

能。
[Router] display nat all
NAT outbound information:
There are 1 NAT outbound rules.
Interface: GigabitEthernet1/2
ACL: 2000 Address group: --- Port-preserved: N
NO-PAT: N Reversible: N
NAT internal server information:
There are 1 internal servers.
Interface: GigabitEthernet1/2
3
Protocol: 6(TCP)
Global IP/port: 10.0.0.1/21
Local IP/port: 192.168.1.5/21
NAT logging:
Log enable : Disabled
Flow-begin : Disabled
Flow-end : Disabled
Flow-active : Disabled
Port-block-assign : Disabled
Port-block-withdraw : Disabled
Alarm : Disabled
NAT hairpinning:
There are 1 interfaces enabled with NAT hairpinning.
Interface: GigabitEthernet1/1
NAT mapping behavior:
Mapping mode: Address and Port-Dependent
ACL : ---
NAT ALG:
DNS : Enabled
FTP : Enabled
H323 : Enabled
ICMP-ERROR : Enabled
ILS : Enabled
MGCP : Enabled
NBT : Enabled
PPTP : Enabled
RSH : Enabled
RTSP : Enabled
SCCP : Enabled
SIP : Enabled
SQLNET : Enabled
TFTP : Enabled
XDMCP : Enabled
# 通过 display nat session verbose 命令查看 NAT 会话的详细信息,可以看到 Host A (内网主机) 用出接口的1/2的公网IP访问 (内网)FTP
server 时生成 NAT 会话信息。
[Router] display nat session verbose
Initiator:起动
Source IP/port: 192.168.1.2/1694
Destination IP/port: 10.0.0.1/21
VPN instance/VLAN ID/VLL ID: -/-/-
Protocol: TCP(6)
Responder:应答
Source IP/port: 192.168.1.5/21
Destination IP/port: 10.0.0.1/1025
4
VPN instance/VLAN ID/VLL ID: -/-/-
Protocol: TCP(6)
State: TCP_ESTABLISHED
Application: HTTP
Start time: 2013-08-15 14:53:29 TTL: 3597s
Interface(in) : GigabitEthernet1/1
Interface(out): GigabitEthernet1/2
Initiator->Responder: 7 packets 308 bytes
Responder->Initiator: 5 packets 312 bytes
Total sessions found: 1

配置文件
#
interface GigabitEthernet1/1-----------内网口
port link-mode route
ip address 192.168.1.1 255.255.255.0
nat hairpin enable-----------OK 使得内网主机可以使用出接口的公网IP访问内网的服务器
#
interface GigabitEthernet1/2-----------出口
port link-mode route
ip address 10.0.0.1 255.255.255.0
nat outbound 2000
nat server protocol tcp global 10.0.0.1 21 inside 192.168.1.5 21
#
acl number 2000
rule 0 permit source 192.168.1.0 0.0.0.255
#

方法(二)h3c v5---------老版本

H3C出口设备nat server端口映射解决NAT回流问题

我们在配置nat server(端口映射)的时候会出现外网访问正常,而内网主机访问外网IP的端口不能访问的情况,这就是因为NAT回流造成的。

 

具体原因如下图所示:

 

1、内网主机访问100.0.0.1:8023(对外这就是FTP服务器,访问这个出口公网IP会映射到内网FTP服务器10.0.0.2),会把流量送到出口设备的G0/1接口。

10.0.0.10---(100.0.0.1-换-10.0.0.2)

2、出口设备的G0/1接口配置了nat server(修改目标IP-映射),数据包就会修改数据包的目的地址和目的端口号,并不对原地址进行改变。

 

3、数据包从出口设备发送到服务器,因为发过来数据包的原地址为10.0.0.10(内网主机)。

源->目: 10.0.0.10->10.0.0.2

4、服务器对出口设备的数据包回复,原目地址对调,导致数据包直接通过交换机发送到内网主机。

回复: 10.0.0.2 ->10.0.0.10

5、内网主机解封装服务器回复的数据包,因为地址不匹配,则进行丢弃,导致访问失败。

 

一、 通过nat hairpin解决问题

 

 

H3C V7版本可以在内网接口侧(图中为GE0/0)配置 nat hairpin解决NAT回流的问题。

 

通过在内网侧接口上使能NAT hairpin功能,可以实现内网用户使用NAT地址访问内网服务器或内网其它用户。

 

interface GigabitEthernet0/0    //内网口

port link-mode route

combo enable copper

ip address 10.0.0.1 255.255.255.0

nat hairpin enable

 

配置nat hairpin功能后,通过抓包可以发现出口设备发送给服务器的源地址将变为WAN口地址:

 

回来时:把源目交换

一、 通过双向NAT解决问题:

双向NAT配置要点:

(1) 出口nat server protocol…映射,应用于互联网用户

(2) 建立匹配任意IP destination 服务器IP的ACL3000

(3) 

a) 内口nat server protocol映射,目标IP转换

b) Nat outbound 3000,匹配ACL后进行源IP转换

看此图注意是映射nat server先执行, 然后再执行nat outbount acl 3000

100.0.0.1与10.0.0.2是个地址端口映射

10.0.0.10与10.0.0.1是个源地址转换

 

如果使用的是H3C v5版本的出口设备可能不支持 nat hairpin,只能使用双向NAT的方式进行解决。

 

1、在内网口配置与公网口相同的nat server条目(目标IP转换);

 

2、配置基于acl的nat outbound(源地址转换);

 

acl advanced 3000

rule 0 permit ip destination 10.0.0.2 0 //任意IP匹配服务器IP,如果匹配就..匹配特定唯一IP掩码全0,写一个0

#

interface GigabitEthernet0/0      //内网口,外网接口写的nat server是为互联网用户映射到内网服务器用的,也得写

port link-mode route

combo enable copper

ip address 10.0.0.1 255.255.255.0

nat outbound 3000 //改写源IP即10.0.0.10转换为为本接口IP即10.0.0.1

nat server protocol tcp global 100.0.0.1 8023 inside 10.0.0.2//目标IP(出接口IP)100.0.0.1转为内网服务器IP10.0.0.2

经上述转换

源------------目标

 

10.0.0.10->100.0.0.1

变更为

100.0.0.1->10.0.0.2

到了服务器

服务器回包

10.0.0.2->100.0.0.1

100.0.0.1->10.0.0.10

以上访问完全由

nat server...进行的目标IP转换

和

nat outbound...进行的源地址转换

以上转换完全在内网接口独立完成和外网接口没有了关系

acl advanced 3000

rule 0 permit ip destination 10.0.0.2 0

#

interface GigabitEthernet0/0      //内网口

port link-mode route

combo enable copper

ip address 10.0.0.1 255.255.255.0

nat outbound 3000

nat server protocol tcp global 100.0.0.1 8023 inside 10.0.0.2 23

我们通过抓包可以看到出口设备进行了双向NAT:

 

注意:使用双向NAT因为映射的数据包需要在出口设备内部进行多次转换,这样会增大设备压力,如果设备支持nat hairpin的话建议使用nat hairpin。

 

三、模拟器设备配置:

出口设备配置:

 interface GigabitEthernet0/0 //内网接口

 port link-mode route

 combo enable copper

 ip address 10.0.0.1 255.255.255.0

 nat outbound 3000 匹配到服务器IP,进行源IP转换,那10.0.0.10转换成10.0.0.1了?还是出口公网IP?

 nat server protocol tcp global 100.0.0.1 8023 inside 10.0.0.2 23 //目标IP更换

#

interface GigabitEthernet0/1 //互联网接口

 port link-mode route

 combo enable copper

 ip address 100.0.0.1 255.255.255.0

 nat outbound //easy NAT

 nat server protocol tcp global 100.0.0.1 8023 inside 10.0.0.2 23 //互联网的映射到内服

#

 ip route-static 0.0.0.0 0 100.1.1.2 //互联网网关

#

acl advanced 3000 //精确的ACL,匹配这个就换源IP为内网IP

 rule 0 permit ip destination 10.0.0.2 0

posted @ 2023-01-29 16:06  techNote  阅读(4556)  评论(0)    收藏  举报