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 规则的报文进

行地址转换。

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

器功能。

• 为使内网主机通过外网地址访问内网 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

[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

[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 访问 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
#
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 服务器IPACL3000

(3) 

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

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

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

100.0.0.110.0.0.2是个地址端口映射

10.0.0.1010.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转换为为本接口IP10.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  阅读(3113)  评论(0编辑  收藏  举报