Cyber_Security_Notes/B. 第二阶段/拓扑练习/0902_动态NAT.md
2024-09-02 12:01:46 +08:00

94 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 动态NAT
![image-20240830165842097](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20240830165842097.png)
### 一、IP & Routing
- **PC**
- **AR1**
```
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 192.168.1.254 24
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 100.1.1.1 29
[AR1]ip route-static 0.0.0.0 0 100.1.1.2
```
- **IPX-dx**
```
[ISP-dx]int g0/0/0
[ISP-dx-GigabitEthernet0/0/0]ip add 100.1.1.2 29
[ISP-dx-GigabitEthernet0/0/0]int g0/0/1
[ISP-dx-GigabitEthernet0/0/1]ip add 200.1.1.254 24
```
### 二、动态NAT + ACL
- **AR1**
```
[AR1]acl 2000
[AR1-acl-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255
[AR1-acl-basic-2000]quit
[AR1]nat address-group 1 100.1.1.3 100.1.1.5
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
```
*解析:*
- `[AR1]acl 2000`创建一个编号为2000的ACL。
- `[AR1-acl-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255`在ACL 2000中添加一条规则允许源IP地址为192.168.1.0/24的流量。
- `[AR1]nat address-group 1 100.1.1.3 100.1.1.5`创建一个NAT地址组1包含IP地址范围100.1.1.3到100.1.1.5。
- `[AR1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat`配置NAT出口将ACL 2000中允许的流量转换为地址组1中的IP地址并且不进行端口映射。
- `nat outbound`这是命令的关键词用于指定接口上的NAT转换应用于出向流量即从接口发出的流量。
- `2000`这是之前配置的访问控制列表ACL的编号它定义了哪些流量应该被NAT转换。在这种情况下只有ACL 2000中定义的流量会应用NAT规则。
- `address-group 1`这是指明了用于NAT转换的地址组编号。地址组是在NAT配置中预先定义的一组公网IP地址用于替换私网IP地址。在本例中地址组1包含了IP地址范围100.1.1.3到100.1.1.5。
- `no-pat`这个参数意味着执行的是NAT的“无端口地址转换”No Port Address Translation也就是说在执行NAT时不会转换端口号。通常NAT会同时转换IP地址和端口号称为PAT或NAPT以允许多个私网地址共享一个公网IP地址。但在这里`no-pat`指定了只转换IP地址不转换端口号。
> 不进行端口映射,*不写`no-pat`这个就是NAPT*
### 三、测试
- **PC PING Server**
```
PC>ping 200.1.1.1 -T
Ping 200.1.1.1: 32 data bytes, Press Ctrl_C to break
From 200.1.1.1: bytes=32 seq=1 ttl=253 time=63 ms
From 200.1.1.1: bytes=32 seq=2 ttl=253 time=47 ms
From 200.1.1.1: bytes=32 seq=3 ttl=253 time=78 ms
Request timeout!
Request timeout!
Request timeout!
Request timeout!
Request timeout!
Request timeout!
Request timeout!
Request timeout!
Request timeout!
Request timeout!
From 200.1.1.1: bytes=32 seq=14 ttl=253 time=46 ms
From 200.1.1.1: bytes=32 seq=15 ttl=253 time=63 ms
From 200.1.1.1: bytes=32 seq=16 ttl=253 time=47 ms
Request timeout!
Request timeout!
Request timeout!
--- 200.1.1.1 ping statistics ---
19 packet(s) transmitted
6 packet(s) received
68.42% packet loss
round-trip min/avg/max = 46/57/78 ms
```