NAT实验
文章目录
- NAT实验
- NAT 简介
- 工作原理
- 优点与缺点
- 应用场景
- 实验拓扑
- 实验需求:
- 实验步骤:
- 1.配置 IP 地址部分略
- 2.R1 和 R3 上配置默认路由指向公网
- 3.私网 A 内部单臂路由
- 4.私网 A 通过 NAPT 使 Vlan10 和 Vlan20 都能够使用 R1 的公网地址访问互联网
- 4.1.在R1上创建基本ACL,允许`192.168.1.0/24`和`192.168.2.0/24`;R1 上创建 NAT 地址池,设置公网地址;在 R1 的公网接口上配置 NAPT
- 4.2.在 PCA 上 Ping R3 的公网地址,测试是否可以访问互联网
- 5.私网 B 通过在 R3 上配置 EASY IP 访问互联网
- 5.1.R3 上创建基本 ACL,允许 192.168.1.0/24 网段;在 R3 的公网接口上配置 EASY IP
- 5.2.在 PCB 上 Ping R1 的公网地址,测试是否可以访问互联网
- 6.私网 A 配置 NAT SERVER 把 FTPA 的 FTP 服务发布到公网,使 PCB 可以访问
- 6.1.在FTP-A上配置 FTP 服务
- 6.2.在 R1 的公网接口上配置 NAT SERVER,映射端口 20 和 21
- 6.3.在 PCB 上测试是否能够通过 R1 的公网地址访问 FTPA 的 FTP 服务
NAT 简介
NAT(Network Address Translation,网络地址转换) 是一种用于在IP数据包通过路由器或防火墙时,修改其源或目标IP地址的技术。NAT的主要目的是解决IPv4地址短缺的问题,同时提供一定程度的网络安全保护。
工作原理
- 基本概念
- 私有IP地址:在局域网内部使用的非公开IP地址(如
10.0.0.0/8
、172.16.0.0/12
、192.168.0.0/16
)。 - 公有IP地址:在互联网上全局唯一的IP地址。
- 私有IP地址:在局域网内部使用的非公开IP地址(如
- NAT 类型
- 静态NAT(Static NAT)
一对一映射,将私有IP固定转换为公有IP(常用于服务器对外提供服务)。- 例:
192.168.1.10
↔203.0.113.5
- 例:
- 动态NAT(Dynamic NAT)
从公有IP池中动态分配地址,实现多对多转换(适用于少量设备同时访问外网)。- 例:
192.168.1.10
↔203.0.113.5
(临时分配)
- 例:
- PAT(Port Address Translation,端口地址转换)
多对一转换,通过端口号区分不同连接(最常见的NAT形式,也称为NAPT)。- 例:
192.168.1.10:1234
↔203.0.113.5:50000
192.168.1.11:5678
↔203.0.113.5:50001
- 例:
- 静态NAT(Static NAT)
- 工作流程(以 PAT 为例)
- 出方向:
- 内网主机发送数据包(源IP
192.168.1.10:1234
,目标IP8.8.8.8:80
)。 - NAT 路由器将源IP替换为公有IP并分配新端口(
203.0.113.5:50000
),记录映射关系。 - 数据包转发至外网。
- 内网主机发送数据包(源IP
- 入方向:
- 外网返回数据包(目标IP
203.0.113.5:50000
)。 - NAT 路由器根据端口号查表,将目标IP还原为内网地址(
192.168.1.10:1234
)。 - 数据包转发至内网主机。
- 外网返回数据包(目标IP
- 出方向:
优点与缺点
优点 | 缺点 |
---|---|
1. 节省公有IP地址:多个设备共享一个公有IP。 | 1. 复杂性:某些协议(如FTP、SIP)需额外处理(ALG支持)。 |
2. 增强安全性:隐藏内网拓扑,减少暴露风险。 | 2. 性能开销:需维护连接表,可能成为网络瓶颈。 |
3. 灵活组网:支持内网使用私有IP地址。 | 3. 端到端连通性问题:P2P应用(如视频通话)需额外穿透技术(STUN/TURN)。 |
4. 解决地址冲突:合并不同私有网络时避免IP重叠。 | 4. 日志管理:溯源需依赖NAT日志,增加运维复杂度。 |
应用场景
- 家庭/企业网络
- 通过路由器将多个设备共享一个公有IP访问互联网。
- 云服务器端口映射
- 将公有IP的特定端口映射到私有云服务器的服务端口(如Web服务器的80端口)。
- IPv4与IPv6过渡
- 使用NAT64实现IPv6网络与IPv4互联网的互通。
- 负载均衡
- 结合DNAT(目标地址转换)将流量分发到多台后端服务器。
实验拓扑
实验需求:
- 按照图示配置 IP 地址
- 私网 A 通过 R1 接入到互联网,私网 B 通过 R3 接入到互联网
- 私网 A 内部存在 Vlan10 和 Vlan20,通过 R1 上单臂路由访问外部网络
- 私网 A 通过 NAPT 使 Vlan10 和 Vlan20 都能够使用 R1 的公网地址访问互联网
- 私网 B 通过在 R3 上配置 EASY IP 访问互联网
- 私网 A 配置 NAT SERVER 把 FTPA 的 FTP 服务发布到公网,使 PCB 可以访问
实验步骤:
1.配置 IP 地址部分略
在R1上
[R1]int g0/0
[R1-GigabitEthernet0/0]int g0/1
[R1-GigabitEthernet0/1]ip address 100.1.1.1 24
[R1-GigabitEthernet0/1]qu
[R1]在R2上
<H3C>sys
System View: return to User View with Ctrl+Z.
[H3C]sysn R2
[R2]int g0/0
[R2-GigabitEthernet0/0]ip address 100.1.1.2 24
[R2-GigabitEthernet0/0]int g0/1
[R2-GigabitEthernet0/1]ip address 100.2.2.2 24
[R2-GigabitEthernet0/1]qu
[R2]在R3上
<H3C>sys
System View: return to User View with Ctrl+Z.
[H3C]sysn R3
[R3]int g0/0
[R3-GigabitEthernet0/0]ip address 100.2.2.3 24
[R3-GigabitEthernet0/0]int g0/1
[R3-GigabitEthernet0/1]ip address 192.168.1.254 24
[R3-GigabitEthernet0/1]qu
[R3]在PCB上
<H3C>sys
System View: return to User View with Ctrl+Z.
[H3C]sysn PCB
[PCB]int g0/0
[PCB-GigabitEthernet0/0]ip address 192.168.1.4 24
[PCB-GigabitEthernet0/0]qu
[PCB]
2.R1 和 R3 上配置默认路由指向公网
在R1上
[R1]ip route-static 0.0.0.0 0 100.1.1.2在R3上
[R3]ip route-static 0.0.0.0 0 100.2.2.2
3.私网 A 内部单臂路由
在SWA上
[SWA]vlan 10
[SWA-vlan10]port g1/0/1
[SWA-vlan10]vlan 20
[SWA-vlan20]port g1/0/2
[SWA-vlan20]int g 1/0/3
[SWA]int g1/0/3
[SWA-GigabitEthernet1/0/3]port link-type trunk
[SWA-GigabitEthernet1/0/3]port trunk permit vlan 10 20
[SWA-GigabitEthernet1/0/3]在R1上
[R1]int g0/0.1
[R1-GigabitEthernet0/0.1]%Mar 21 13:02:46:104 2025 R1 IFNET/3/PHY_UPDOWN: Physical state on the interface GigabitEthernet0/0.1 changed to up.
%Mar 21 13:02:46:105 2025 R1 IFNET/5/LINK_UPDOWN: Line protocol state on the interface GigabitEthernet0/0.1 changed to up.[R1-GigabitEthernet0/0.1]vlan-type dot1q vid 10
[R1-GigabitEthernet0/0.1]%Mar 21 13:03:30:849 2025 R1 IFNET/3/PHY_UPDOWN: Physical state on the interface GigabitEthernet0/0.1 changed to down.
%Mar 21 13:03:30:849 2025 R1 IFNET/5/LINK_UPDOWN: Line protocol state on the interface GigabitEthernet0/0.1 changed to down.
%Mar 21 13:03:30:849 2025 R1 IFNET/3/PHY_UPDOWN: Physical state on the interface GigabitEthernet0/0.1 changed to up.
%Mar 21 13:03:30:849 2025 R1 IFNET/5/LINK_UPDOWN: Line protocol state on the interface GigabitEthernet0/0.1 changed to up.[R1-GigabitEthernet0/0.1]ip address 192.168.1.254 24
[R1-GigabitEthernet0/0.1]qu
[R1]int g0/0.2
[R1-GigabitEthernet0/0.2]%Mar 21 13:03:58:290 2025 R1 IFNET/3/PHY_UPDOWN: Physical state on the interface GigabitEthernet0/0.2 changed to up.
%Mar 21 13:03:58:290 2025 R1 IFNET/5/LINK_UPDOWN: Line protocol state on the interface GigabitEthernet0/0.2 changed to up.[R1-GigabitEthernet0/0.2]vlan-type dot1q vid 20
[R1-GigabitEthernet0/0.2]%Mar 21 13:04:12:720 2025 R1 IFNET/3/PHY_UPDOWN: Physical state on the interface GigabitEthernet0/0.2 changed to down.
%Mar 21 13:04:12:720 2025 R1 IFNET/5/LINK_UPDOWN: Line protocol state on the interface GigabitEthernet0/0.2 changed to down.
%Mar 21 13:04:12:720 2025 R1 IFNET/3/PHY_UPDOWN: Physical state on the interface GigabitEthernet0/0.2 changed to up.
%Mar 21 13:04:12:721 2025 R1 IFNET/5/LINK_UPDOWN: Line protocol state on the interface GigabitEthernet0/0.2 changed to up.[R1-GigabitEthernet0/0.2]ip address 192.168.2.254 24
[R1-GigabitEthernet0/0.2]qu
[R1]dis ip int b
*down: administratively down
(s): spoofing (l): loopback
Interface Physical Protocol IP address/Mask VPN instance Description
GE0/0 up up -- -- --
GE0/0.1 up up 192.168.1.254/24 -- --
GE0/0.2 up up 192.168.2.254/24 -- --
GE0/1 up up 100.1.1.1/24 -- --
GE0/2 down down -- -- --
GE5/0 down down -- -- --
GE5/1 down down -- -- --
GE6/0 down down -- -- --
GE6/1 down down -- -- --
Ser1/0 down down -- -- --
Ser2/0 down down -- -- --
Ser3/0 down down -- -- --
Ser4/0 down down -- -- --
[R1]
4.私网 A 通过 NAPT 使 Vlan10 和 Vlan20 都能够使用 R1 的公网地址访问互联网
4.1.在R1上创建基本ACL,允许192.168.1.0/24
和192.168.2.0/24
;R1 上创建 NAT 地址池,设置公网地址;在 R1 的公网接口上配置 NAPT
注:由于私网A只有一个公网地址可以使用,所以意味着创建的NAT地址池起始地址和结束地址就都是100.1.1.1在R1上
[R1]acl basic 2000
[R1-acl-ipv4-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[R1-acl-ipv4-basic-2000]rule permit source 192.168.2.0 0.0.0.255
[R1-acl-ipv4-basic-2000]qu
[R1]nat address-group 1 //创建 NAT 地址池
[R1-address-group-1]address 100.1.1.1 100.1.1.1 //设置公网地址
[R1-address-group-1]qu
[R1]int g0/1
[R1-GigabitEthernet0/1]nat outbound 2000 address-group 1 //在 R1 的公网接口上配置 NAPT
[R1-GigabitEthernet0/1]
4.2.在 PCA 上 Ping R3 的公网地址,测试是否可以访问互联网
在PCA上
<PCA>
<PCA>ping 100.2.2.3
Ping 100.2.2.3 (100.2.2.3): 56 data bytes, press CTRL+C to break
56 bytes from 100.2.2.3: icmp_seq=0 ttl=253 time=1.847 ms
56 bytes from 100.2.2.3: icmp_seq=1 ttl=253 time=1.092 ms
56 bytes from 100.2.2.3: icmp_seq=2 ttl=253 time=1.915 ms
56 bytes from 100.2.2.3: icmp_seq=3 ttl=253 time=1.317 ms
56 bytes from 100.2.2.3: icmp_seq=4 ttl=253 time=1.151 ms--- Ping statistics for 100.2.2.3 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.092/1.464/1.915/0.349 ms
<PCA>%Mar 21 15:07:10:868 2025 PCA PING/6/PING_STATISTICS: Ping statistics for 100.2.2.3: 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 1.092/1.464/1.915/0.349 ms.
5.私网 B 通过在 R3 上配置 EASY IP 访问互联网
5.1.R3 上创建基本 ACL,允许 192.168.1.0/24 网段;在 R3 的公网接口上配置 EASY IP
注:ACL 需要配置允许 192.168.1.0/24 网段;使用EASY IP,就无需配置NAT地址池,直接在公网接口上配置即可,EASY IP会自动识别公网接口的IP地址在R3上
[R3]acl basic 2000
[R3-acl-ipv4-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[R3-acl-ipv4-basic-2000]qu
[R3]int g0/0
[R3-GigabitEthernet0/0]nat outbound 2000 //在 R3 的公网接口上配置 EASY IP
[R3-GigabitEthernet0/0]
5.2.在 PCB 上 Ping R1 的公网地址,测试是否可以访问互联网
在PCB上
<PCB>ping 100.1.1.1
Ping 100.1.1.1 (100.1.1.1): 56 data bytes, press CTRL+C to break
56 bytes from 100.1.1.1: icmp_seq=0 ttl=253 time=1.596 ms
56 bytes from 100.1.1.1: icmp_seq=1 ttl=253 time=1.040 ms
56 bytes from 100.1.1.1: icmp_seq=2 ttl=253 time=1.988 ms
56 bytes from 100.1.1.1: icmp_seq=3 ttl=253 time=1.085 ms
56 bytes from 100.1.1.1: icmp_seq=4 ttl=253 time=1.293 ms--- Ping statistics for 100.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.040/1.400/1.988/0.353 ms
<PCB>%Mar 21 15:12:03:542 2025 PCB PING/6/PING_STATISTICS: Ping statistics for 100.1.1.1: 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 1.040/1.400/1.988/0.353 ms.
6.私网 A 配置 NAT SERVER 把 FTPA 的 FTP 服务发布到公网,使 PCB 可以访问
6.1.在FTP-A上配置 FTP 服务
注:我们需要发布 FTPA 的 FTP 服务,也就是说我们要把 R1 的公网地址的 20 和 21 端口映射到 FTPA 的私网地址在FTP-A上
[FTP-A]ftp server enable
[FTP-A]local-user lq class manage
New local user added.
[FTP-A-luser-manage-lq]password simple admin@12345
[FTP-A-luser-manage-lq]service-type ftp
[FTP-A-luser-manage-lq]authorization-attribute user-role level-15
[FTP-A-luser-manage-lq]qu
[FTP-A]
6.2.在 R1 的公网接口上配置 NAT SERVER,映射端口 20 和 21
在R1上
[R1]int g0/1
[R1-GigabitEthernet0/1]nat server protocol tcp global current-interface 20 21 in
side 192.168.1.1 20 21
[R1-GigabitEthernet0/1]
6.3.在 PCB 上测试是否能够通过 R1 的公网地址访问 FTPA 的 FTP 服务
在PCB上
<PCB>ftp 100.1.1.1
Press CTRL+C to abort.
Connected to 100.1.1.1 (100.1.1.1).
220 FTP service ready.
User (100.1.1.1:(none)): lq
331 Password required for lq.
Password:
230 User logged in. //登录成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (100,1,1,1,227,156)
150 Accepted data connection
drwxrwxrwx 2 0 0 4096 Mar 21 11:33 diagfile
-rwxrwxrwx 1 0 0 43136 Mar 21 11:33 licbackup
-rwxrwxrwx 1 0 0 43136 Mar 21 11:33 licnormal
drwxrwxrwx 2 0 0 4096 Mar 21 11:33 logfile
-rwxrwxrwx 1 0 0 0 Mar 21 11:33 msr36-cmw710-boot-r0424p22.bin
-rwxrwxrwx 1 0 0 0 Mar 21 11:33 msr36-cmw710-system-r0424p22.bin
drwxrwxrwx 2 0 0 4096 Mar 21 11:33 seclog
226 7 matches total
ftp>