Daily update. 2018-06-22 09:10:58

This commit is contained in:
gnu4cn
2018-06-22 09:10:58 +08:00
parent bf8119fe31
commit 8b3a8a365a

View File

@@ -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.x172.16.x.x等等。该地址被转换成外部全局地址那么**外部全局地址通常就是来自一个公开分配的或是经注册的地址池了**。要记住的是,尽管如此,**内部本地地址也可以是一个公网地址**。
而**内部本地地址则是某台内部网络上的主机的IP地址**。在**多数情况下,内部本地地址都是一个`RFC 1918`地址**(也就是不可路由地址,比如`192.168.x.x``172.16.x.x`等等)。该地址被转换成外部全局地址,那么**外部全局地址通常就是来自一个公开分配的或是经注册的地址池了**。要记住的是,尽管如此,**内部本地地址也可以是一个公网地址**。
**内部全局地址,则是内部主机在其呈现在外部世界时的地址**。一旦内部IP地址被转换过后对公网或是其它任何外部网络及主机来说它就成为了一个内部全局地址了。
@@ -95,7 +95,7 @@ NAT为进入和发出的流量去改装数据包的头部并对每个会话
NAT内部和外部的分址是一个经典的考试问题所以还需在回头看几次这里的内容。
##配置并验证NATConfiguring 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.1200.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-511512-10231024-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并修改hostnameRouter 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并修改hostnameRouter 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.1172.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