Skip to content

Commit ec00f46

Browse files
committed
Finished 'src/d30/configuring_and_verifying.md'.
1 parent db19bea commit ec00f46

1 file changed

Lines changed: 50 additions & 52 deletions

File tree

Lines changed: 50 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
# 配置并验证 NAT ,Configuring and Verifying NAT
1+
# 配置并验证 NAT
22

3-
在思科 IOS 上对网络地址转换的配置和验证是一个简单的事情。在配置 NAT 时,要执行下面这些操作。
3+
在 Cisco 10S 软件下 NAT 的配置与验证,是一项简单易行的任务。在配置 NAT 时,要执行以下操作:
44

5-
- 使用接口配置命令`ip nat inside`将一个或多个的接口指定为内部接口。
5+
- 使用 `ip nat inside` 这条接口配置命令,指定一个或多个接口为为内部接口;
6+
- 使用 `ip nat outside` 这条接口配置命令,指定一个接口为外部接口;
7+
- 配置一个将匹配全部要转换流量的访问控制列表 (ACL)。这个 ACL 可以是个标准或扩展的命名或编号的 ACL。
8+
- 作为可选项,可使用 `ip nat pool <name> <start-ip> <end-ip> [netmask <mask> | prefix-length <length>]` 这条全局配置命令,配置一个全局地址池。这会定义出一个内部的全局地址池,那些内部本地地址,将被转换到这个地址池;
9+
- 使用 `ip nat inside source list <ACL> [interfacelpool] <name> [overload]` 这条全局配置命令,配置全局地 NAT。
610

7-
- 使用接口配置命令`ip nat outside`将某个接口指定为外部接口。
11+
**Farai 有言**:“还请查看 `ip nat inside source static` 这条命令, 咱们可在 [web.archive.org: `ip nat inside source static`](https://web.archive.org/web/20150325010326/www.howtonetwork.net/public/698.cfm) 处免费查阅。”
812

9-
- 配置一条访问控制清单(access control list, ACL ), 其将匹配所有需要转换的流量。此访问控制清单可以是标准、扩展的命名 ACL 或编号 ACL (a standard or an extended named or numbered ACL )。
1013

11-
- 作为可选项,使用全局配置命令`ip nat pool <name> <start-ip> <end-ip> [netmaske <mask> | prefix-length <length>]`, 配置一个全球地址池(a pool of global addresses)。这会定义出一个内部本地地址将会转换成的内部全球地址池。
14+
下面的输出显示给咱们,在 Cisco IOS 软件下配置 NAT(动态 NAT)的一种方式。咱们可以看到,这种配置使用了可用的 `description``remark` 特性,帮助管理员更轻松地管理他们的网络及排除故障:
1215

13-
- 使用全局配置命令`ip nat inside source list <ACL> [interface | pool] <name> [overload]`,全局性地配置上 NAT 。
14-
15-
> Farai 指出 -- “请看看命令`ip nat inside source static`, 可以在[www.howtonetwork.net/public/698.cfm](http://www.howtonetwork.net/public/698.cfm)免费查阅。”
16-
17-
下面的输出给出了一种思科 IOS 软件下配置 NAT (动态 NAT )的方式。可以看出,该配置使用了可用的`description``remark`两种特性,来帮助管理员更容易地对网络进行管理和故障排除。
1816

1917
```console
2018
R1(config)#interface FastEthernet0/0
@@ -34,7 +32,7 @@ R1(config)#ip nat inside source list 100 pool INSIDE-POOL
3432
R1(config)#exit
3533
```
3634

37-
按照这个配置,命令`show ip nat translations`就可以用来对路由器上具体进行的转换进行查看,如下面的输出所示。
35+
这一配置之后,`show ip nat translations` 这条命令既可用于验证该路由器上,是否真的发生着转换(一旦流量开始穿越该路由器),如下所示:
3836

3937
```console
4038
R1#show ip nat translations
@@ -44,30 +42,29 @@ icmp 150.1.1.3:1 10.5.5.2:1 200.1.1.1:1 200.1.1.1:1
4442
tcp 150.1.1.5:159 10.5.5.3:159 200.1.1.1:23 200.1.1.1:23
4543
```
4644

47-
在路由器上配置 NAT 时,通常有以下三个选择。
45+
在咱们的路由器上配置 NAT 时,咱们实际上有三种选择:
4846

49-
- 对一个内部地址,用一个外部地址进行替换(静态 NAT ,static NAT
50-
- 对多个内部地址,用两个以上的外部地址进行替换(动态 NAT ,dynamic NAT
51-
- 将多个内部地址,用多个外部端口进行转换(这就是**端口地址转换**,或者叫**单向NAT**, Port Address Translation or one-way NAT
47+
- 将一个内部地址交换为一个外部地址(静态的 NAT)
48+
- 将多个内部地址,交换为两个或更多外部地址(动态的 NAT)
49+
- 将用多个内部地址,交换为多个外部端口(端口地址转换或单向的 NAT)
5250

53-
### 静态NAT
5451

55-
**Static NAT**
52+
## 静态的 NAT
5653

57-
在网络内部一些有一台 web 服务器时,就要将某个特定内部地址,替换成另一个外部地址了。如此时仍然进行动态分址,就没有办法到达该特定目的地址,因为它总是变动的
54+
当咱们在咱们网络内部,有个 web 服务器(比如)时,咱们会希望将一个特定地址,交换为另一地址。当咱们继续使用动态分址时,那么就无法到达这个目的地址,因为他会不断变化
5855

59-
> Farai 指出,“对那些需要经由互联网可达的所有服务器,比如e- mail 或 FTP 服务器,都要使用静态 NAT (如下面的图6. 4 所示)
56+
**FARAI 有言**:“针对任何需要经由 Internet 可达的服务器,比如电子邮件或 FTP 等,咱们都会使用静态的 NAT(见下图 30.4)。
6057

6158
![在用的静态NAT](../images/0604.png)
6259

63-
**图6.4 -- 在用的静态NAT**
60+
**图 30.4** -- **在用的静态 NAT**
6461

6562
| 内部地址 | 外部 NAT 地址 |
66-
| -- | -- |
67-
| `192.168.1.1` | `200.1.1.1` |
68-
| `192.168.2.1` | `200.1.1.2` |
63+
| -: | -: |
64+
| 192.168.1.1 | 200.1.1.1 |
65+
| 192.168.2.1 | 200.1.1.2 |
6966

70-
对上面的网络,配置应像下面这样。
67+
对于上面的网络,咱们的配置将如下:
7168

7269
```console
7370
Router(config)#interface f0/0
@@ -83,28 +80,31 @@ Router(config)#ip nat inside source static 192.168.1.1 200.1.1.1
8380
Router(config)#ip nat inside source static 192.168.2.1 200.1.1.2
8481
```
8582

86-
命令`ip nat inside``ip nat outside`,告诉路由器哪些是内侧 NAT 接口,哪些是外侧的 NAT 接口。而命令`ip nat inside source`命令,就定义了那些静态转换,想要多少条就可以有多少条的该命令,那么就算你掏钱买的那些公网 IP 地址有多少个,就写上多少条吧。在思科公司,笔者曾解决有关此类问题的大量主要的配置错误,就是找不到`ip nat inside``ip nat outside`语句!考试中可能会碰到那些要求找出配置错误的问题
83+
`ip nat inside``ip nat outside` 两条命令,告诉该路由器哪些属于内部的 NAT 接口,哪些属于外部的 NAT 接口。`ip nat inside source` 这条命令,定义了那些静态转换,只要咱们支付了这些公共 IP 地址的费用,咱们就可以有着咱们想要的任意数量静态转换。我(作者)在思科期间修复的绝大多数配置错误,都是缺少 `ip nat inside``ip nat outside` 这两条语句!咱们可能在考试中,看到其中咱们必须指出配置错误的一些问题
8784

88-
强烈建议将上述命令敲入到某台路由器中去。本书中有很多的 NAT 实验,但是在阅读理论章节的同时,你敲入得越多,那么这些信息就能越好地进入你的大脑
85+
我(作者)强烈建议,咱们要在某个路由器上键入上面的命令。咱们将完成这本书中的许多 NAT 实验,但咱们在阅读理论部分的同时,键入的命令越多,那么咱们脑子里的信息就会越牢固
8986

90-
### 动态 NAT 或 NAT 地址池
87+
## 动态 NAT 或 NAT
9188

92-
通常会用到一组可路由地址,或是一个可路由地址池。一对一的 NAT 映射,有其局限性,首当其冲的就是成本高,其次路由器上有着多行的配置。动态 NAT 允许为内部主机配置一或多个的公网地址组
89+
咱们将经常需要用到一组,或一池的可路由地址。当然,一对一的 NAT 映射有着其局限性,费用及路由器上的大量配置行,便是可列出的两条。动态的 NAT 允许咱们配置供咱们内部主机使用的一组或多组地址
9390

94-
路由器会维护一个内部地址到外部地址对应的清单,而最后该表格中的转换会超时(Your router will keep a list of the internal addresses to external addresses, and eventually the translation in the table will time out)。可以修改此超时值,但请找Cisco 技术支持工程师(a Cisco TAC engineer )的建议去修改
91+
咱们的路由器会保留一个内部地址到外部地址的列表,而最终该数据表中的那些转换会超时。咱们可更改超时值,但要按照 Cisco TAC 工程师的建议行事
9592

9693
![到一个 NAT 公网可路由地址池的内部私有地址](../images/0605.png)
9794

98-
*图6.5 -- 到一个 NAT 公网可路由地址池的内部私有地址*
95+
**图 30.5** -- **到某个 NAT 可路由地址池的内部地址**
96+
97+
当咱们在一些内部主机已建立了一些外部连接时,于路由器上执行 `show ip nat translations` 这条命令,那么咱们就会看到,包含着像下面这些信息的一个图表:
98+
9999

100-
当路由器上的内部主机发出到外部的连接时,如执行命令`show ip nat translations`, 就会看到下面的包含类似信息的图表。
101100

102-
| 内侧地址 | 外侧 NAT 地址 |
103-
| -- | -- |
104-
| `192.168.1.3` | `200.1.1.11` |
105-
| `192.168.1.2` | `200.1.1.14` |
101+
| 内部地址 | 外部的 NAT 地址 |
102+
| -: | -: |
103+
| 192.168.1.3 | 200.1.1.11 |
104+
| 192.168.1.2 | 200.1.1.14 |
106105

107-
在上面的图6. 5 中,让内部地址使用的是一个从`200.1.1.1``200.1.1.16`的地址池。下面是要实现该目的的配置文件。这里就不再给出路由器接口地址了。
106+
107+
在上面的图 30.5 中,咱们会有着一些,正使用 `200.1.1.1``200.1.1.16` 中地址的一个池的内部地址。下面是实现他的配置文件。此刻我(作者)已保留了路由器的接口地址:
108108

109109
```console
110110
Router(config)#interface f0/0
@@ -116,28 +116,28 @@ Router(config)#ip nat inside source list 1 pool poolname
116116
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
117117
```
118118

119-
该 ACL 用于告诉路由器哪些地址要转换,哪些地址不要转换。而该子网掩码实际上是反转的,叫做反掩码,在第九天会涉及。所有 NAT 地址池都需要一个名字,而在本例中,它简单地叫做“ poolname ”。源列表引用自那个 ACL (the source list refers to the ACL ), **经译者在 GNS3 上测试,动态 NAT 仍然是一对一的地址转换**
119+
其中的 ACL 用于告诉路由器,哪些地址他可以转换,哪些地址不能转换。其中的子网掩码实际上是反转的,称为通配符掩码,这已在早先介绍过。所有 NAT 池都需要一个名字,在这个示例中,他就被简称为 `"poolname"`。其中 `source list` 指向了那个 ACL。
120+
120121

121-
### NAT Overload/端口地址转换/单向NAT
122+
## NAT 过载/端口地址转换/单向 NAT
122123

123-
**NAT Overload/Port Address Translation/One-Way NAT**
124124

125-
IP 地址处于紧缺之中,在有着成千上万的地址需要路由时,将花一大笔钱(**静态 NAT 、动态 NAT 都无法解决此问题**)。在此情况下,可以使用**NAT overload 方案**(如图6. 6 ), 该方案又被思科叫做**端口地址转换(Port Address Translation, PAT****单向NAT**PAT 巧妙地允许将某端口号加到某个 IP 地址,作为与另一个使用该 IP 地址的转换区分开来的方式。每个 IP 地址有多达 `65000` 个可用端口号
125+
IP 地址供不应求,当咱们有成百上千甚至数万个需要路由的地址时,那么就会花费咱们很多钱。在这种情形下,咱们可使用 NAT 过载(见图 30.6),也被思科其称为端口地址转换(PAT),或单向 NAT。PAT 巧妙地允许将端口号添加到 IP 地址,作为将其与另一使用同一 IP 地址的转换标识的方式。每个 IP 地址都有超过 65,000 个的可用端口
126126

127-
尽管**这是超出 CCNA 考试范围的,但了解 PAT 如何处理端口号,会是有用的**。在每个思科文档中,都将每个公网 IP 地址的可用端口号分为`3`个范围,分别是`0-511``512-1023``1024-65535`PAT 给每个 UDP TCP 会话都分配一个独特的端口号。它会尝试给原始请求分配同样的端口值,但如果原始的源端口号已被使用,它就会开始从某个特别端口范围的开头进行扫描,找出第一个可用的端口号,分配给那个会话
127+
虽然这超出了 CCNA 考试的范围,但了解 PAT 如何处理端口号,会非常有用。根据 Cisco 文档,他将每个全球 IP 地址的可用端口,分为三个范围:0-511512-10231024-65535PAT 会分配一个唯一源端口,给每个 UDP TCP 会话。他将尝试分配原始请求的同一端口值,但当这个原始源端口已被使用时,那么他将从特定端口范围的起点开始扫描,找到第一个可用端口并将其分配给该次对话
128128

129129
![NAT Overload](../images/0606.png)
130130

131-
*图6.6 -- NAT Overload*
131+
**图 30.6** -- **NAT 过载**
132132

133-
此时,命令`show ip nat translations`给出的表格,将会显示下面这样的 IP 地址及端口号。
133+
这次的 `show ip nat translations` 数据表,就会显示 IP 地址及端口号。
134134

135-
| 内侧地址 | 外侧 NAT 地址(带有端口号) |
136-
| -- | -- |
137-
| `192.168.1.1` | `200.1.1.1:30922` |
138-
| `192.168.2.1` | `200.1.1.2:30975` |
135+
| 内部地址 | 外部 NAT 地址(带有端口号) |
136+
| -: | -: |
137+
| 192.168.1.1 | 200.1.1.1:30922 |
138+
| 192.168.2.1 | 200.1.1.2:30975 |
139139

140-
而要配置 PAT ,需要进行如同动态 NAT 的那些同样配置,还要在地址池后面加上关键字 `overload`
140+
要配置 PAT,咱们将执行与动态 NAT 完全相同配置,不过咱们将添加 `overload` 这个关键字到池的末尾
141141

142142
```console
143143
Router(config)#interface f0/0
@@ -151,6 +151,4 @@ Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
151151

152152
这该很容易记住吧!
153153

154-
> Farai 指出 -- “以多于一个 IP 方式使用 PAT ,就是对地址空间的浪费,因为路由器会使用第一个 IP 地址,并为每个随后的连接仅增大端口号。这就是为何通常将 PAT 配置为该接口上的超载(overload)。”
155-
156-
154+
**FARAI 有言**:“以多个 IP 使用 PAT,属于一种地址空间的浪费,因为路由器将使用第一个 IP,并针对每个后续连接,递增端口号。这就是为什么 PAT 通常被配置对接口过载的原因。”

0 commit comments

Comments
 (0)