diff --git a/d06-NAT.md b/d06-NAT.md index a58dcc6..336ccb6 100644 --- a/d06-NAT.md +++ b/d06-NAT.md @@ -56,14 +56,14 @@ | 内部地址 | 外部地址 | | -- | -- | -| 192.168.1.1 | 200.100.1.5 | -| 192.168.1.3 | 200.100.1.7 | +| `192.168.1.1` | `200.100.1.5` | +| `192.168.1.3` | `200.100.1.7` | 根据特定的需求,**在路由器上配置NAT有三种方式**。CCNA考试要求你掌握所有三种方式。 为了配置NAT,要先告诉路由器,有哪些内部和外部接口。这是因为事实上可以将众多内部地址替换成某个NAT地址池中的地址(a pool of NAT addresses),或者最起码替换成单一的NAT地址, 并在路由器上的两个以太网接口之间完成NAT。 -正如前面说的,对于考试和现实需求来说,通常都会将私有互联网地址转换成互联网上的可路由的地址(routable addresses on the Internet)。这在家庭宽带路由器上就能见到,其通常会给笔记本电脑一个192.168.1范围的IP,而在连接到ISP的接口上有着一个可路由的地址。 +正如前面说的,对于考试和现实需求来说,通常都会将私有互联网地址转换成互联网上的可路由的地址(routable addresses on the Internet)。这在家庭宽带路由器上就能见到,其通常会给笔记本电脑一个`192.168.1`范围的IP,而在连接到ISP的接口上有着一个可路由的地址。 NAT令到私有网络上的主机可以访问互联网上的资源,或是可以访问到其它公共网络。NAT是一个IETF标准,其让局域网的内部流量使用一个IP地址集合,这些地址通常就是RFC 1918中所定义的私有地址空间,对于外部流量,又使用另一个地址集合,这些地址通常是公开注册的IP地址空间。 @@ -78,7 +78,7 @@ NAT为进入和发出的流量去改装数据包的头部,并对每个会话 上面NAT术语中的**内部接口,是指由该组织所控制的管理域的边界接口(the border interface of the administrative domain controlled by the organization)。而并不非得要是内部网络上的主机所使用的默认网关**。 -而**内部本地地址则是某台内部网络上的主机的IP地址**。在**多数情况下,内部本地地址都是一个RFC 1918地址**(也就是不可路由地址,比如192.168.x.x或172.16.x.x等等)。该地址被转换成外部全局地址,那么**外部全局地址通常就是来自一个公开分配的或是经注册的地址池了**。要记住的是,尽管如此,**内部本地地址也可以是一个公网地址**。 +而**内部本地地址则是某台内部网络上的主机的IP地址**。在**多数情况下,内部本地地址都是一个`RFC 1918`地址**(也就是不可路由地址,比如`192.168.x.x`或`172.16.x.x`等等)。该地址被转换成外部全局地址,那么**外部全局地址通常就是来自一个公开分配的或是经注册的地址池了**。要记住的是,尽管如此,**内部本地地址也可以是一个公网地址**。 **内部全局地址,则是内部主机在其呈现在外部世界时的地址**。一旦内部IP地址被转换过后,对公网或是其它任何外部网络及主机来说,它就成为了一个内部全局地址了。 @@ -95,7 +95,7 @@ NAT为进入和发出的流量去改装数据包的头部,并对每个会话 NAT内部和外部的分址,是一个经典的考试问题,所以还需在回头看几次这里的内容。 ##配置并验证NAT,Configuring and Verifying NAT - + 在思科IOS上对网络地址转换的配置和验证是一个简单的事情。在配置NAT时,要执行下面这些操作。 - 使用接口配置命令`ip nat inside`将一个或多个的接口指定为内部接口。 @@ -160,8 +160,8 @@ tcp 150.1.1.5:159 10.5.5.3:159 200.1.1.1:23 200.1.1.1:23 | 内部地址 | 外部NAT地址 | | -- | -- | -| 192.168.1.1 | 200.1.1.1 | -| 192.168.2.1 | 200.1.1.2 | +| `192.168.1.1` | `200.1.1.1` | +| `192.168.2.1` | `200.1.1.2` | 对上面的网络,配置应像下面这样。 @@ -196,10 +196,10 @@ Router(config)#ip nat inside source static 192.168.2.1 200.1.1.2 | 内侧地址 | 外侧NAT地址 | | -- | -- | -| 192.168.1.3 | 200.1.1.11 | -| 192.168.1.2 | 200.1.1.14 | +| `192.168.1.3` | `200.1.1.11` | +| `192.168.1.2` | `200.1.1.14` | -在上面的图6.5中,让内部地址使用的是一个从200.1.1.1到200.1.1.16的地址池。下面是要实现该目的的配置文件。这里就不再给出路由器接口地址了。 +在上面的图6.5中,让内部地址使用的是一个从`200.1.1.1`到`200.1.1.16`的地址池。下面是要实现该目的的配置文件。这里就不再给出路由器接口地址了。 ``` Router(config)#interface f0/0 @@ -219,7 +219,7 @@ Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255 IP地址处于紧缺之中,在有着成千上万的地址需要路由时,将花一大笔钱(**静态NAT、动态NAT都无法解决此问题**)。在此情况下,可以使用**NAT overload方案**(如图6.6), 该方案又被思科叫做**端口地址转换(Port Address Translation, PAT)**或**单向NAT**。PAT巧妙地允许将某端口号加到某个IP地址,作为与另一个使用该IP地址的转换区分开来的方式。每个IP地址有多达65000个可以的端口号。 -尽管**这是超出CCNA考试范围的,但了解PAT如何处理端口号,会是有用的**。在每个思科文档中,都将每个公网IP地址的可用端口号分为3个范围,分别是0-511、512-1023和1024-65535。PAT给每个UDP和TCP会话都分配一个独特的端口号。它会尝试给原始请求分配同样的端口值,但如果原始的源端口号已被使用,它就会开始从某个特别端口范围的开头进行扫描,找出第一个可用的端口号,分配给那个会话。 +尽管**这是超出CCNA考试范围的,但了解PAT如何处理端口号,会是有用的**。在每个思科文档中,都将每个公网IP地址的可用端口号分为`3`个范围,分别是`0-511`、`512-1023`和`1024-65535`。PAT给每个UDP和TCP会话都分配一个独特的端口号。它会尝试给原始请求分配同样的端口值,但如果原始的源端口号已被使用,它就会开始从某个特别端口范围的开头进行扫描,找出第一个可用的端口号,分配给那个会话。 ![NAT Overload](images/0606.png) @@ -229,8 +229,8 @@ IP地址处于紧缺之中,在有着成千上万的地址需要路由时,将 | 内侧地址 | 外侧NAT地址(带有端口号) | | -- | -- | -| 192.168.1.1 | 200.1.1.1:30922 | -| 192.168.2.1 | 200.1.1.2:30975 | +| `192.168.1.1` | `200.1.1.1:30922` | +| `192.168.2.1` | `200.1.1.2:30975` | 而要配置PAT,需要进行如同动态NAT的那些同样配置,还要在地址池后面加上关键字“overload”。 @@ -298,9 +298,9 @@ NAT故障中十次有九次,都是由于路由器管理员忘记了把`ip nat **实验步骤** -1. 将IP地址192.168.1.1 255.255.255.0加入到路由器A,并修改hostname为Router A。把IP地址192.168.1.2 255.255.255.0加入到路由器B。在正确的一侧加上时钟速度(clock rate),然后分别自A往B和自B往A进行ping测试。如需提示,请回顾先前的那些实验。 +1. 将IP地址`192.168.1.1 255.255.255.0`加入到路由器`A`,并修改`hostname`为`Router A`。把IP地址`192.168.1.2 255.255.255.0`加入到路由器`B`。在正确的一侧加上时钟速度(`clock rate`),然后分别自`A`往`B`和自`B`往`A`进行`ping`测试。如需提示,请回顾先前的那些实验。 -2. 在路由器A上需要加入一个IP地址,以模拟LAN上的一台主机。**通过一个环回接口,可以实现这个目的**。 +2. 在路由器`A`上需要加入一个IP地址,以模拟LAN上的一台主机。**通过一个环回接口,可以实现这个目的**。 ``` RouterA#conf t @@ -310,7 +310,7 @@ RouterA(config-if)#ip add 10.1.1.1 255.0.0.0 RouterA(config-if)# ``` -3. 为进行测试,需要告诉Router B将发往任何网络的任何流量,都发往Router A。通过一条静态路由完成这个。 +3. 为进行测试,需要告诉`Router B`将发往任何网络的任何流量,都发往`Router A`。通过一条静态路由完成这个。 ``` RouterB#conf t @@ -319,7 +319,7 @@ RouterB(config)#ip route 0.0.0.0 0.0.0.0 Serial0/1/0 RouterB(config)# ``` -4. 要测试该条静态路由是否工作,通过从Router A上的环回接口对Router B进行ping操作。 +4. 要测试该条静态路由是否工作,通过从`Router A`上的环回接口对`Router B`进行`ping`操作。 ``` RouterA#ping @@ -344,7 +344,7 @@ Success rate is 100 percent (5/5), round-trip min/avg/max = 31/31/32 ms RouterA# ``` -5. 在Router A上配置一个静态NAT条目。使用NAT,将地址10.1.1.1, 在其离开该路由器时,转换成172.16.1.1。同样需要告诉路由器哪个是NAT的内部接口,哪个是外部接口。 +5. 在`Router A`上配置一个静态NAT条目。使用NAT,将地址`10.1.1.1`, 在其离开该路由器时,转换成`172.16.1.1`。同样需要告诉路由器哪个是NAT的内部接口,哪个是外部接口。 ``` RouterA#conf t @@ -358,7 +358,7 @@ RouterA(config-if)#ip nat inside source static 10.1.1.1 172.16.1.1 RouterA(config)# ``` -6. 打开NAT调试,如此就可以看到转换的进行。此时再执行另一个扩展ping操作(自L0接口的),并查看NAT表。因为IOS的不同,你的输出可能与我的不一样。 +6. 打开NAT调试,如此就可以看到转换的进行。此时再执行另一个扩展`ping`操作(自`L0`接口的),并查看NAT表。因为IOS的不同,你的输出可能与我的不一样。 ``` RouterA#debug ip nat @@ -433,9 +433,9 @@ NAT: expiring 172.16.1.1 (10.1.1.1) icmp 7 (7) **实验步骤** -1. 将IP地址192.168.1.1 255.255.255.0加入到路由器A,并修改hostname为Router A。把IP地址192.168.1.2 255.255.255.0加入到路由器B。在正确的一侧加上时钟速度(clock rate),然后分别自A往B和自B往A进行ping测试。如需提示,请回顾先前的那些实验。 +1. 将IP地址`192.168.1.1 255.255.255.0`加入到路由器`A`,并修改`hostname`为`Router A`。把IP地址`192.168.1.2 255.255.255.0`加入到路由器`B`。在正确的一侧加上时钟速度(`clock rate`),然后分别自`A`往`B`和自`B`往`A`进行`ping`测试。如需提示,请回顾先前的那些实验。 -2. 需要给RouterA添加两个IP地址来模拟LAN上的主机。通过两个环回接口,可以达到这个目的。这两个IP地址将位处不同子网,但都一10地址开头。 +2. 需要给`RouterA`添加两个IP地址来模拟LAN上的主机。通过两个环回接口,可以达到这个目的。这两个IP地址将位处不同子网,但都以`10`地址开头。 ``` RouterA#conf t @@ -447,7 +447,7 @@ RouterA(config-if)#ip address 10.2.2.2 255.255.255.0 RouterA(config-if)# ``` -3. 为了进行测试,需要告诉RouterB将到任何网络的任何流量,都发往RouterA。用一条静态路由完成这点。 +3. 为了进行测试,需要告诉`RouterB`将到任何网络的任何流量,都发往`RouterA`。用一条静态路由完成这点。 ``` RouterB#conf t @@ -456,7 +456,7 @@ RouterB(config)#ip route 0.0.0.0 0.0.0.0 Serial0/1/0 RouterB(config)# ``` -4. 在RouterA上,从环回接口向RouterB发出ping操作,以此来测试该静态路由是否工作。 +4. 在`RouterA`上,从环回接口向`RouterB`发出`ping`操作,以此来测试该静态路由是否工作。 ``` RouterA#ping @@ -481,7 +481,7 @@ Success rate is 100 percent (5/5), round-trip min/avg/max = 31/31/32 ms RouterA# ``` -5. 在RouterA上配置一个NAT地址池。在本实验中,使用地址池172.16.1.1到172.16.1.10。任何以10开头的地址,都将成为一个NAT。记住你**必须**指定NAT的内部和外部接口,否则NAT就不会工作。 +5. 在`RouterA`上配置一个NAT地址池。在本实验中,使用地址池`172.16.1.1`到`172.16.1.10`。任何以`10`开头的地址,都将成为一个NAT。记住你**必须**指定NAT的内部和外部接口,否则NAT就不会工作。 ``` RouterA#conf t @@ -504,7 +504,7 @@ RouterA(config)# **命令`source list`告诉路由器查看的ACL。该条ACL告诉路由器哪些网络将与NAT地址池进行匹配和转换**。 -6. 打开NAT调试,如此才可以看到转换的发生。接着执行扩展ping(自L0和L1发出的),并查看NAT表。因为IOS平台的不同,你的输出可能和下面的不一样。将会看到NAT地址池中的两个地址正在用到。 +6. 打开NAT调试,如此才可以看到转换的发生。接着执行扩展`ping`(自`L0`和`L1`发出的),并查看NAT表。因为IOS平台的不同,你的输出可能和下面的不一样。将会看到NAT地址池中的两个地址正在用到。 ``` RouterA#debug ip nat