eNSP模拟实验-路由器配置NAT网络地址转换

eNSP模拟实验-路由器配置NAT网络地址转换,第1张

    在以往的实践中,笔者在centos中使用防火墙iptables来配置NAT网络地址转换。VirtualBox中也可以配置NAT网络地址转换。但是最近接触到的云服务器,有私网IP地址和公网IP地址,公网IP提供外部通信,私网IP可以使用云上的各种服务。对于大型的网络来说,通过路由器来进行地址转换可能更加高效。于是笔者在华为的书籍上找了例子来进行配置实践。

     IPV6可用解决地址短缺的问题,但是无法立刻替换现在成熟且广泛应用的IPV4。网络地址转换(NAT)可以延长IPV4的寿命。NAT是将IP数据报文中的头IP地址转换成另一个IP地址的过程,主要用于内部网络(私有IP地址)访问外部网络(共有IP地址)。NAT有三种类型:静态NAT、动态地址NAT以及网路地址端口转换NAT。

    NAT转换设备维护着地址转换表,所有经过NAT转换设备并且需要地址转换的报文,都会通过该表做地址转换。NAT转换设备处于内部和外部网络的连接处,常见的有路由器、防火墙。

    根据图示的信息搭建网络。

    在网关路由器AR1上配置访问外网的默认路由。

    ip route-static 0000 0000 202169102

    查看配置好的静态路由协议。

    由于内网使用的是私有IP地址,员工无法直接访问公网。现需要在网关路由器上配置NAT地址转换,将私网地址转换为公网地址。PC1自身能够访问外网,并且需要外网用户也能够直接访问他,分配一个公网IP地址202169105给PC1做静态NAT地址转换。在R1的G0/0/0接口使用nat static命令配置内部地址到外部地址的一对一转换。

    配置完成后在AR1上查看NAT静态配置信息。

      在PC1上ping命令测试与外网的连通性,可以看到静态NAT已经可以成功访问外网。

    在路由器的G0/0/0接口上抓包查看NAT地址转换,AR1成功把来自PC1的ICMP报文的源地址1721611转换成公网地址202169105 。

    在AR2上使用环回地址loopback0模拟外网访问PC1,测试成功。

        在PC1的E0/0/1接口上抓包观察,PC1的私网地址被转换成唯一的公网地址,外网用户也能访问PC1。且数据包在经过R1进入内网时,R1把目的IP地址转为公网地址202169105对应的私网地址1721611发给PC1。

    PC2 、PC3都需要访问外网,网段为1721710/24 。使用公网地址池2021691050-2021691060 为其做NAT转换

    在AR1上使用nat address-group命令配置NAT地址池,设置起始地址2021691050,终止地址2021691060。

    nat  address-group 1  2021691050   2021691060  

    创建ACL2000。

    在AR1的G0/0/0接口下使用nat outbound 命令将acl200和地址池关联,使得地址池中规定的地址可以使用地址池进行进行地址转换。并在AR1上查看NAT outbound信息。

    在PC2上测试与外网的连通性成功。

    并在AR1的接口G0/0/0上抓包观察地址转换情况。来自PC2的ICMP数据包在AR1的G0/0/0接口上源地址1721712被替换成地址池中的第一个地址202171050 。

        由于PC众多,采用多对多的NAT转换方式就必须增加公网IP地址池的地址数量。为了节约地址,需要配置多对一的Easy-IP转换方式实现访问外网的需求。Easy-IP是NAPT的一种方式,直接借用路由器的接口IP地址作为公网地址,将不同的内部地址映射到同一公网地址的不同端口上,实现多对一地址转换。

    在AR1的G0/0/0接口上删除NAT Outbound配置,并使用nat outbound命令配置Easy-IP特性,直接使用接口IP地址作为NA转换后的地址。

      [AR1]int g0/0/0

      [AR1-GigabitEthernet0/0/0]undo nat outbound  2000 address-group 1 no-pat

      [AR1-GigabitEthernet0/0/0]nat outbound 2000

        配置完成后,在PC2上使用UDP数据包发包工具发送udp数据包到公网地址202169201,配置好目的IP地址和UDP源、目的端口号后,输入字符串后发送。

    PC2的配置如下:

        在AR1上查看nat session的详细信息。可以看到,源地址1721712的UDP数据包被新源地址202169101和新源端口10241替换。AR1借用自身G0/0/0接口的公网地址为所有私网地址做NA转换,使用不同端口号区分不同私网数据。此方式不需要创建地址池,大大节省了地址空间。

    公司内server服务器提供ftp服务供外网用户访问,配置NAT server并使用公网IP地址202169106对外公布服务器地址 ,然后开启nat alg功能。对于封装在ip数据报文中应用层协议报文,正常的NAT转换会导致错误,在开启某应用协议的nat alg功能后,该应用协议报文可以正常进行nat转换,否则该应用协议不能正常工作。

    在AR1的G0/0/0接口使用nat server命令定义内部服务器的映射表,指定通信协议为tcp,配置服务器使用公网ip地址202169106 ,服务器内网地址为1721613,指定端口为21,该常用端口号可以直接使用关键字“ftp”代替。并在AR1上查看nat server信息。

        查看server配置成效,选择根目录并启动ftpserver 。

    设置服务器完成后,在AR2上模拟公网用户访问私网ftp服务器。

    本文实现路由器动态分配IP功能,终端通过交换机接入路由器,目前只配置路由器,交换机不配置,使用默认vlan1。

1、进入系统视图

<Huawei>sys

2、取消消息通知

[Huawei]un in en

3、开启dhcp功能

[Huawei]dhcp enable

4、进入gi0/0/0接口

[Huawei]int gi0/0/0

5、配置接口地址

[Huawei-GigabitEthernet0/0/0]ip address 19216811 24

[Huawei-GigabitEthernet0/0/0]q

6、建立ip地址池pool23

[Huawei]ip pool pool23

7、配置地址池pool23的网段和掩码

[Huawei-ip-pool-pool23]network 19216810 mask 2552552550

8、配置地址池pool23的网关

[Huawei-ip-pool-pool23]gateway-list 19216811

9、配置地址池pool23的DNS

[Huawei-ip-pool-pool23]dns-list 202106020

[Huawei-ip-pool-pool23]q

10、选择全局的地址池给 DHCP 客户端使用 

[Huawei]int gi 0/0/0

[Huawei-GigabitEthernet0/0/0]dhcp select global

[Huawei-GigabitEthernet0/0/0]q

在终端PC上IPV4上设置开启DNCP。

测试。在PC上允许ipconfig查看是否分配了IP。

抓包DHCP报文分析。

1、 发现阶段discover: 在DHCP服务配置完成后,DHCP Client启动时,由于没有IP地址,会自动发送以discover的广播报文,源地址为0000目的地址为255255255255。网络上的所有支持TCP/IP的主机都会收到该DHCP Discovery报文,但是只有DHCP Server会响应该报文。

2、响应阶段offer: DHCP Server收到discover报文后,通过解析报文,查询dhcpdconf配置文件,如果在地址池中能找到合适的IP地址,DHCP Server会给DHCP Client发送offer报文,告诉DHCP Client,该DHCP Server拥有资源,可以提供DHCP服务。

3、请求阶段request:当DHCP Client收到offer报文时,知道在本网段中有可用的DHCP Server可以提供DHCP服务,因此,它会发送一个request请求报文,向该DHCP Server请求IP地址、掩码、网关、DNS等信息,以便登陆网络。

4、确认使用阶段ACK:当DHCP Server收到DHCP Client发送的DHCP Request后,确认要为该DHCP Client提供的IP地址后,便向该DHCP Client响应一个包含该IP地址以及其他Option的报文,来告诉DHCP Client可以使用该IP地址了。然后DHCP Client即可以将该IP地址与网卡绑定。

对于一台使用TCP/IP协议连接到网络的一台主机来说,要想成功的与其他网络连接通信,TCP/IP就必须了解三信息

如上图所示,你会看到三个重要的信息:ipv4地址、子网掩码、默认网关;在同一子网下 默认网关和子网掩码是一样的。

网关就是一个网络连接到另一个网络的“关口”。它实质上是一个网络通向另外网络的ip地址。不同网络之间的接口。从一个网络到另一个网络的转发点。

对于不在同一网络的ip地址,想要互相通信,就必须依赖网关。这个功能是由 路由器 ,即三层设备来完成。

默认网关:就像一个房间有多扇门一样,一台主机可以有多个网关,默认网关是指一台主机如果找不到一台可以用的网关,就会把数据包发送给默认网关。

网关的值一般是取本网段的最后一个ip地址。

想要数据在网络中可以正常的通信,那么有三个地址是必不可少的。

端口号的作用是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上传送给应用层的每个应用进程。从这个意义上讲,每一个端口就相当于每一个应用进程。

注意事项

一般来说,端口号大致分三类:

21 FTP传输协议

23 Telnet远程登录

25 SMTP简单文件传输协议

53 DNS域名解析协议

80 >如果查询不到失败原因,则需要检查STA是否获取到正确的IP地址。
执行命令display ip pool { interface interface-pool-name | name ip-pool-name } used,查看已分配的IP地址情况,通过MAC地址对比看STA是否已经获取到IP地址。
<AC6605> display ip pool interface Vlanif100 used
Pool-name : Vlanif100
Pool-No : 4
Lease : 1 Days 0 Hours 0 Minutes
Domain-name : -
DNS-server0 : -
NBNS-server0 : -
Netbios-type : -
Position : Interface Status : Unlocked
Gateway-0 : 10112
Network : 10100
Mask : 2552552400
instance : --
Conflicted address recycle interval: -
-----------------------------------------------------------------------------
Start End Total Used Idle(Expired) Conflict Disable
-----------------------------------------------------------------------------
101151 10115254 254 4 250(0) 0 0
-----------------------------------------------------------------------------
Network section :
-----------------------------------------------------------------------
Index IP MAC Lease Status
-----------------------------------------------------------------------
4085 10115246 dcd2-fc9a-c800 7375 Used
4086 10115247 1047-80af-fbc0 7369 Used
4087 10115248 dcd2-fcf4-6420 7929 Used
4090 10115251 dcd2-fc22-d880 9368 Used
-----------------------------------------------------------------------
检查Service VLAN是否创建且配置正确,并注意业务VLAN不要和管理VLAN相同。
业务数据直接转发模式下
检查AP和STA网关之间的设备是否创建业务VLAN并配置允许业务VLAN通过,若没有,会导致转发业务VLAN的报文失败。
业务数据隧道转发模式下
为STA分配地址的DHCP服务器不是AC时,检查AC上是否创建业务VLAN并配置允许业务VLAN通过,若没有,会导致转发业务VLAN的报文失败。
建议管理VLAN和业务VLAN分别使用不同的VLAN。只有业务数据直接转发模式下,AP上配置了management-vlan,接入交换机连接AP的接口不将PVID配置成管理VLAN的场景下,才允许管理VLAN和业务VLAN相同,其他场景下管理VLAN和业务VLAN相同会导致STA无法获取IP地址。
V200R005版本 *** 作:
执行命令display service-set id service-set-id查看Service VLAN的配置值。
<AC6605> display service-set id 1
----------------------------------------------------------------------------
Service-set ID : 1
Security profile name : -
Service-vlan : 1

----------------------------------------------------------------------------
如果Service VLAN未配置正确,请参考以下命令配置,配置完成后请重新让STA关联WLAN网络,查看STA是否可以获取到IP地址。
<AC6605> system-view
[AC6605] vlan 100
[AC6605-vlan100] wlan
[AC6605-wlan-view] service-set name set1
[AC6605-wlan-service-set-set1] service-vlan 100
V200R006及之后版本 *** 作:
执行命令display vap-profile name profile-name查看Service VLAN的配置值。
<AC6605> display vap-profile name default
--------------------------------------------------------------------------------
Service mode : enable
Type : service
Forward mode : direct-forward
mDNS centralized-control : disable
Offline management : disable
Service VLAN ID : 1
Service VLAN Pool : -

--------------------------------------------------------------------------------
如果Service VLAN未配置正确,请参考以下命令配置,配置完成后请重新让STA关联WLAN网络,查看STA是否可以获取到IP地址。
<AC6605> system-view
[AC6605] vlan 100
[AC6605-vlan100] wlan
[AC6605-wlan-view] vap-profile name vap1
[AC6605-wlan-vap-prof-vap1] service-vlan vlan-id 100
[AC6605-wlan-vap-prof-vap1] quit
[AC6605-wlan-view] quit
如果Service VLAN为VLAN Pool,检查VLAN Pool相关的配置。只有V200R006及之后版本支持此步骤。
查看VLAN Pool中的VLAN是否全部创建。
执行命令 display vlan pool name pool-name查看VLAN Pool中包含的VLAN。
[AC6605] display vlan pool name sta_pool
--------------------------------------------------------------------------------
Name : sta_pool
Total : 6
Assignment : hash
VLAN ID : 1050 to 1055
--------------------------------------------------------------------------------
执行命令display vlan查看当前设备已经创建的VLAN。
[AC6605] display vlan
: management-vlan
---------------------
The total number of vlans is : 13
VLAN ID Type Status MAC Learning Broadcast/Multicast/Unicast Property
--------------------------------------------------------------------------------
1 common enable enable forward forward forward default
10 common enable enable forward forward forward default
20 common enable enable forward forward forward default
100 common enable enable forward forward forward default
101 common enable enable forward forward forward default
102 common enable enable forward forward forward default
103 common enable enable forward forward forward default
104 common enable enable forward forward forward default
105 common enable enable forward forward forward default
107 common enable enable forward forward forward default
111 common enable enable forward forward forward default
120 common enable enable forward forward forward default
400 common enable enable forward forward forward default
请参考以下命令创建VLAN Pool中的所有VLAN ID,配置完成后请重新让STA关联WLAN网络,查看STA是否可以获取到IP地址。
[AC6605] vlan batch 1050 to 1055
检查中间网络设备上需要放通业务VLAN的接口是否已经放通了VLAN Pool中的所有VLAN。以交换机为例:
[Switch] interface GigabitEthernet 0/0/1
[Switch-GigabitEthernet0/0/1] display this
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 100 to 500 1050 to 1054
#
[Switch-GigabitEthernet0/0/1] port trunk allow-pass vlan 1055
[Switch-GigabitEthernet0/0/1] quit
配置完成后请重新让STA关联WLAN网络,查看STA是否可以获取到IP地址。
检查DHCP相关配置。
检查接入交换机是否配置了DHCP Snooping
无线用户流动性大,用户离线通常不会发送DHCP Release报文释放IP地址,导致DHCP Snooping绑定表经常满规格,新用户无法获取IP地址。
<HUAWEI> display dhcp snooping
DHCP snooping global running information :
DHCPv4 snooping : Enable
DHCPv6 snooping : Enable
Static user max number : 256
Current static user number : 0
Dhcp user max number : 256 (default)
Current dhcp user number : 256
AP已默认开启针对无线用户的DHCP snooping功能,建议接入交换机上删除DHCP Snooping配置。如果接入交换机上连接了有线终端,确实需要开启DHCP Snooping功能,建议在连接AP的端口上执行dhcp snooping enable no-user-binding命令,使该端口下挂的用户不生成DHCP Snooping绑定表。
检查是否关闭了AP上行口DHCP信任功能,缺省情况下该功能是打开的。
V200R005版本 *** 作:
执行命令 display ap-profile id profile-id查看是否关闭了AP上行口的DHCP信任功能。
[AC6605] display ap-profile id 0
AP profile 0 detail information:
------------------------------------------------------------------------------
Name: ap-profile-0
Ethernet port MTU: 1400 Bytes
Log server ip address: 0000
Telnet : enable
Ssh : enable
Dhcp trust port : disable

------------------------------------------------------------------------------
执行命令 dhcp trust port打开AP上行口的DHCP端口信任功能。然后请重新关联STA,查看STA是否可以获取到IP地址。
[AC6605] wlan
[AC6605-wlan-view] ap-profile id 0
[AC6605-wlan-ap-prof-default] dhcp trust port
[AC6605-wlan-ap-prof-default] quit
[AC6605-wlan-view] ap id 0
[AC6605-wlan-ap-0] profile-id 0
[AC6605-wlan-view] quit
V200R006及之后版本 *** 作:
执行命令 display wired-port-profile name profile-name查看是否关闭了AP上行口的DHCP信任功能。
[AC6605] display wired-port-profile name wired
----------------------------------------------------------------------------
Port link profile : wired

Port Tagged VLAN : -
Port untagged VLAN : 1
Port PVID VLAN : -
User isolate mode : disable
Traffic filter inbound(IPv4) : -
Traffic filter outbound(IPv4) : -
DHCP trust port : disable

----------------------------------------------------------------------------
执行命令 dhcp trust port打开AP上行口的DHCP端口信任功能。然后请重新关联STA,查看STA是否可以获取到IP地址。
[AC6605] wlan
[AC6605-wlan-view] wired-port-profile name wired
[AC6605-wlan-wired-port-prof-wired] dhcp trust port
[AC6605-wlan-wired-port-prof-wired] quit
[AC6605-wlan-view] ap-group name default
[AC6605-wlan-ap-group-default] wired-port-profile wired gigabitethernet 0
[AC6605-wlan-view] quit
检查DHCP服务器配置是否正确,如果配置正确请执行下一步。
DHCP配置可以参考以下三种情况:
如果STA和DHCP服务器同网段时可以使用接口地址池,请参考以下配置检查,使用VLANIF100作为接口地址池。
[AC6605] dhcp enable
[AC6605] interface vlanif 100
[AC6605-Vlanif100] ip address 10231001 24
[AC6605-Vlanif100] dhcp select interface
[AC6605-Vlanif100] quit
如果STA和DHCP服务器同网段时可以使用全局地址池,请参考以下配置检查,使用全局地址池pool1,并绑定在接口VLANIF100上。
[AC6605] dhcp enable
[AC6605] interface vlanif 100
[AC6605-Vlanif100] ip address 10231001 24
[AC6605-Vlanif100] dhcp select global
[AC6605-Vlanif100] quit
[AC6605] ip pool pool1
[AC6605-ip-pool-pool1] gateway-list 10231001
[AC6605-ip-pool-pool1] network 10231000 mask 24
[AC6605-ip-pool-pool1] quit
如果STA和DHCP服务器不同网段时必须使用全局地址池,且必须在中继设备上配置DHCP中继,请参考以下配置检查。
DHCP服务器上的配置:
[AC6605] dhcp enable
[AC6605] interface vlanif 100
[AC6605-Vlanif100] ip address 10231001 24
[AC6605-Vlanif100] dhcp select global //指定地址池采用全局地址池。
[AC6605-Vlanif100] quit
[AC6605] ip pool pool1
[AC6605-ip-pool-pool1] gateway-list 10232001 //STA的网关是中继设备地址。
[AC6605-ip-pool-pool1] network 10232000 mask 24
[AC6605-ip-pool-pool1] quit
中继设备上的配置(此处假设是交换机):
[Switch] interface vlanif 200
[Switch-Vlanif200] ip address 10232001 24
[Switch-Vlanif200] dhcp select relay //该命令使能设备DHCP中继功能,如果缺少需添加。
[Switch-Vlanif200] dhcp relay server-ip 10231001 //该命令指定DHCP服务器的地址,若未指定或指定错误的DHCP服务器地址,DHCP请求报文无法被转发给DHCP服务器,会导致STA无法获取到IP地址。
[Switch-Vlanif200] quit
检查DHCP地址池是否还有空闲地址。
执行命令 display ip pool命令,查看地址池中是否有可用的IP地址。
[AC6605] display ip pool interface Vlanif100
Pool-name : Vlanif100
Pool-No : 0
Lease : 1 Days 0 Hours 0 Minutes
Domain-name : -
DNS-server0 : -
NBNS-server0 : -
Netbios-type : -
Position : Interface Status : Unlocked
Gateway-0 : -
Network : 10231000
Mask : 2552552550
Logging : Disable
Conflicted address recycle interval: -
Address Statistic: Total :253 Used :253
Idle :0 Expired :0
Conflict :0 Disabled :0
-------------------------------------------------------------------------------
Network section
Start End Total Used Idle(Expired) Conflict Disabled
-------------------------------------------------------------------------------
10231002 1023100254 253 253 0(0) 0 0
-------------------------------------------------------------------------------
如果“Idle(Expired)”为“0(0)”,说明服务器没有可用地址。可以在IP地址池视图下执行命令network ip-address [ mask { mask | mask-length } ],扩充地址池的IP地址范围。也可以在IP地址池视图下执行命令lease { day day [ hour hour [ minute minute ] ] | unlimited },或在接口地址池下执行命令dhcp server lease { day day [ hour hour [ minute minute ] ] | unlimited },缩短地址租期。
 说明:
执行lease和dhcp server lease命令后仅对新上线的用户生效,已经在线的用户需要重新上线或者续租成功后才使用新租期,否则继续使用老租期。
地址池释放出空闲地址后请重新关联STA,查看STA是否可以获取到IP地址。
查看DHCP服务器重启记录,并检查地址池是否被清除过
执行命令display reset-reason,查看DHCP服务器是否重启过。
[AC6605] display reset-reason
The MPU frame[0] board[0]'s reset total 9, detailed information:
-- 1 2016-05-17 14:48:41, Reset No: 3
Reason: Reset by user command
-- 2 2016-05-17 09:45:04, Reset No: 2
Reason: Reset by user command
-- 3 2016-05-16 09:26:42, Reset No: 1
Reason: Reset forpower off
执行命令display history-command,查看地址池是否被清空过。
[AC6605] display history-command
reset ip pool name 1
display history-command
display reset-reason
如果服务器有重启记录或地址池信息被清除过,则地址池中客户端信息可能丢失,导致客户端采用DHCP两步上线时服务器无响应。这种情况下,可以先为客户端设置任意固定IP,再设置客户端使用DHCP方式获取IP,触发客户端采用DHCP四步上线。
检查STA与DHCP服务器之间链路是否正常。
检查STA网关能否学习到STA的MAC表
在STA网关上执行命令display mac-address mac-address ,查看MAC地址是mac-address的STA地址表项信息。
若查询结果中有表项,说明网关能够学习到STA的MAC表,STA和网关之间链路正常。若网络中存在DHCP中继,继续进行5b;若网络中不存在DHCP中继,继续检查WLAN、DHCP配置是否正确。
<Huawei> display mac-address 14d6-4da7-3725
-------------------------------------------------------------------------------
MAC Address VLAN/VSI Learned-From Type
-------------------------------------------------------------------------------
14d6-4da7-3725 4094/- GE0/0/1 dynamic
-------------------------------------------------------------------------------
Total items displayed = 1
若查询结果中无表项,说明网关不能学习到STA的MAC表,STA和网关之间链路不通。
<Huawei> display mac-address 14d6-4da7-3725
-------------------------------------------------------------------------------
MAC Address VLAN/VSI Learned-From Type
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Total items displayed = 0
检查DHCP中继到DHCP服务器之间链路是否正常
在DHCP中继设备上,使用中继IP作为源地址,Ping测试DHCP服务器。
<Huawei> ping -a 19216813 19216821
PING 19216813: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 19216813 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
10000% packet loss
若能够Ping通,说明DHCP中继与DHCP服务器之间路由可达,继续检查WLAN、DHCP配置是否正确。
若Ping不通,说明服务器与中继之间路由不可达,需要检查并添加服务器与中继之间的路由。
如果上述原因都已经检查并作出对应处理STA仍然获取不到地址,请联系技术支持人员寻求技术支持。
返回启示录 上一步 下一步

启动超时是一个常见的现象。
菜单-工具-选项-服务器页面,将里面的三个端口号分别改成54012,54013,54014然后点应用-确定。
重启后还是报端口错误,就将这三个数字接着往后加1,再试,一直到不报错为止。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13416844.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-01
下一篇 2023-08-01

发表评论

登录后才能评论

评论列表(0条)

保存