95 lines
3.2 KiB
Markdown
95 lines
3.2 KiB
Markdown
# 动态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-GigabitEthernet0/0/1]quit
|
||
[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
|
||
```
|
||
|
||
|