This commit is contained in:
Lenny Peng 2022-11-10 11:26:29 +08:00
parent ad81469740
commit 7ca2d216d7
26 changed files with 2239 additions and 2239 deletions

View File

@ -1,4 +1,4 @@
# 第1天 网络、线缆、OSI 以及 TCP 模型
# 第 1 天 网络、线缆、OSI 以及 TCP 模型
__Networks, Cables, OSI, and TCP Models__
@ -782,7 +782,7 @@ TLS以及旧版的 SSL被用到加固互联网上的通信是通过采
以太网线用于将工作站连接至交换机,交换机之间以及交换机与路由器的连接。其规格和速率在近年来有多次修订和提升,这就是说你可以很快用到将今天的标准速率甩得老远的速率,到你的桌面的高速链路也会很快到来。目前的标准以太网线仍然使用 8 条、4 对缠绕的电线以消除电干扰electromagnetic interference, EMI也就是串扰crosstalk这种会蔓延到相邻线路上的信号。
ANSI/TIA/EIA-568-A 标准中对以太网线的类别进行了定义,有 3 类、5 类、5e 类以及 6 类共 4 个类别。每个类别都有其相应标准、规格以及在限定距离范围内能够达到的数据吞吐速率。3 类以太网线布线可以最高 10Mbps 速率传输数据。5 类布线主要用于快速以太网络100BASE-TX 以及 1000BASE-T 都是 5 类网线。5e 类布线使用了增强的 100-MHz (100-Mhz-enhanced) 双绞线来组建千兆以太网GigabitEthernet, 就是 1000Base-T。最后的 6 类布线,每对电线以 250MHz 运作,以提供出改进了的 1000Base-T 的性能。“1000”表示数据传输速度有多少 Mbps“Base”代表基带传输--baseband而“T”则是指双绞线 -- twisted pair。表 1.6 给出了你所熟悉的一些常见的以太网标准。
ANSI/TIA/EIA-568-A 标准中对以太网线的类别进行了定义,有 3 类、5 类、5e 类以及 6 类共 4 个类别。每个类别都有其相应标准、规格以及在限定距离范围内能够达到的数据吞吐速率。3 类以太网线布线可以最高 10Mbps 速率传输数据。5 类布线主要用于快速以太网络100BASE-TX 以及 1000BASE-T 都是 5 类网线。5e 类布线使用了增强的 100-MHz (100-Mhz-enhanced) 双绞线来组建千兆以太网GigabitEthernet, 就是 1000Base-T。最后的 6 类布线,每对电线以 250MHz 运作,以提供出改进了的 1000Base-T 的性能。“1000”表示数据传输速度有多少 Mbps“Base”代表基带传输--baseband “T” 则是指双绞线 -- twisted pair。表 1.6 给出了你所熟悉的一些常见的以太网标准。
*表 1.6 常见以太网标准*
@ -909,7 +909,7 @@ EIA/TIA 的以太网线规格要求网线的末端务必是 RJ45 公头(见图
**交叉线crossover cables**
通过将网线的两对电线的位置交换一下,就可以用来在无需交换机、集线器的情况下,连接两台 PC 或是两台交换机(较新的网卡的 Auto-MDIX 功能能够自动侦测连接是否需要交叉连接,选择 MDI 或是 MDIX 配置来与链路的另一端恰当匹配)。一端的针脚 1 需要连接到另一端的针脚 3针脚 2 要连接到针脚 6见图 1.27)。
通过将网线的两对电线的位置交换一下,就可以用来在无需交换机、集线器的情况下,连接两台 PC 或是两台交换机较新的网卡的 Auto-MDIX 功能能够自动侦测连接是否需要交叉连接,选择 MDI 或是 MDIX 配置来与链路的另一端恰当匹配。一端的针脚 1 需要连接到另一端的针脚 3针脚 2 要连接到针脚 6见图 1.27)。
!["针脚 1 到 针脚 3针脚 2 到针脚 6"](images/60days-37.png)

View File

@ -1,4 +1,4 @@
# 第2天 CSMA/CD, 交换和虚拟局域网
# 第 2 天 CSMA/CD, 交换和虚拟局域网
__CSMA/CD, Switching, and VLANs__
@ -141,7 +141,7 @@ FastEthernet1/0/1 is down, line protocol is down (notconnect)
流量传输中的任何延时(delay)都被称为传输延迟latency。**依据你所希望的在流量传输前对帧的检查程度,思科交换机提供了三种流量交换的方式**。对帧的检查越多,引入到交换机的延迟就越多。三种可供选择的交换模式(switching modes)为:
- 直通模式Cut-through
- 存储转发模式(交换机默认)Store-and-forward
- 存储转发模式(交换机默认)Store-and-forward
- Fragment-free改进的直通模式
**直通模式**

View File

@ -1,4 +1,4 @@
# 第3天 中继、DTP 及 VLAN 间路由
# 第 3 天 中继、DTP 及 VLAN 间路由
__Trunking, DTP, and Inter-VLAN Routing__

View File

@ -1,4 +1,4 @@
# 第5天 IP 地址分配
# 第 5 天 IP 地址分配
__IP Addressing__
@ -116,7 +116,7 @@ IP 版本 4(IPv4设计用于解决设备命名问题。IPv4 使用二进制
| -- | -- | -- | -- | -- | -- | -- | -- |
| `0` | `0` | `0` | `0` | `0` | `0` | `0` | `0` |
而将1填入各列就得到了十进制的`255`.
而将 1 填入各列,就得到了十进制的`255`.
| `128` | `64` | `32` | `16` | `8` | `4` | `2` | `1` |
| -- | -- | -- | -- | -- | -- | -- | -- |
@ -134,7 +134,7 @@ IP 版本 4(IPv4设计用于解决设备命名问题。IPv4 使用二进制
`32+8+4=44`
**上面的基础知识是IP寻址和子网划分的基础。** 下面的表5.1对你现在所掌握的进行了总结。这些值可用作任意子网掩码,所以请留心一下。
**上面的基础知识,是 IP 寻址和子网划分的基础。** 下面的表5.1对你现在所掌握的进行了总结。这些值可用作任意子网掩码,所以请留心一下。
**表 5.1 -- 二进制值Binary Values**
@ -153,7 +153,7 @@ IP 版本 4(IPv4设计用于解决设备命名问题。IPv4 使用二进制
### 十六进制Hexadecimal
十六进制hex是另一个替代的计数系统。比起以2或10来计数它用到16个数字或字母。十六进制从0开始知道F如下面所示。
十六进制( hex )是另一个替代的计数系统。比起以 2 10 来计数,它用到 16 个数字或字母。十六进制从 0 开始知道 F如下面所示。
`0 1 2 3 4 5 6 7 8 9 A B C D E F`
每位十六进制数实际上代表的是`4`位二进制数如表5.2所示。
@ -238,17 +238,17 @@ IP 版本 4(IPv4设计用于解决设备命名问题。IPv4 使用二进制
IP 地址分配的规则有:**网络上的每个地址,都要是其主机所唯一的(也就是说 IP 地址不能共用)**。**一些地址不能用作主机地址**。这将在后面的章节涉及,但在这里,**要知道为整个网络保留的那个地址,也就是广播地址,以及保留用于测试目的的那些地址,此外,有三组保留的用于内部网络的地址(此举正是为节省 IP 地址),是不能使用的**。
由于网络规模的迅速增长每个IP地址就必须与一个子网掩码配合使用。子网掩码是要告诉网络设备怎样来使用IP地址中的数字。而此举的用意就是可以借用地址中的主机位将网络切割为更小的子网。
由于网络规模的迅速增长,每个 IP 地址就必须与一个子网掩码配合使用。子网掩码是要告诉网络设备,怎样来使用 IP 地址中的数字。而此举的用意,就是可以借用地址中的主机位,将网络切割为更小的子网。
这里有个带子网掩码的IP地址实例`192.168.1.1 255.255.255.0`。
这里有个带子网掩码的 IP 地址实例,`192.168.1.1 255.255.255.0`。
## 地址类别Address Classes
你是要掌握这个的,却没有掌握吧。我知道我是不能帮你太多的,但地址类别实际上是明显过时的了,所以作为一名思科工程师,当你在见到这种老规矩时,总是会感到迷惑,却还要把这些规则用到网络设计中去。
现在我们仍然将IP地址组别叫做类classes但随着子网掩码和变长子网掩码Variable-Length Subnet MaskingVLSM概念的引入地址类实际上已不再适用于网络设计了。掌握地址类别仍然是有用的因为类别的不同可以让我们清楚在小型网络子网可以使用哪些IP地址而不能使用另一些。
现在我们仍然将 IP 地址组别叫做类( classes 但随着子网掩码和变长子网掩码Variable-Length Subnet Masking VLSM )概念的引入,地址类实际上已不再适用于网络设计了。掌握地址类别仍然是有用的,因为类别的不同可以让我们清楚,在小型网络(子网)中,可以使用哪些 IP 地址,而不能使用另一些。
在IPv4刚推出时其地址就分成了不同类别。不同地址类别依其需求而分配给各家机构。机构越大地址类别就越大。不同地址类别又指定了相应字母从`A`到`E`。`A` 类地址保留给最大的一些网络。而`A`类地址的前`8`个二进制位可以是从`1`到`126`的数。此举的原因在于其前8位的首位必须是`0`。而当前`8`位中有了第一位的`0`时,那么剩下的值就只能是`1`到`126`了。也就是下面这样。
IPv4 刚推出时,其地址就分成了不同类别。不同地址类别依其需求而分配给各家机构。机构越大,地址类别就越大。不同地址类别又指定了相应字母,从`A`到`E`。`A` 类地址保留给最大的一些网络。而`A`类地址的前`8`个二进制位可以是从`1`到`126`的数。此举的原因在于其前 8 位的首位必须是`0`。而当前`8`位中有了第一位的`0`时,那么剩下的值就只能是`1`到`126`了。也就是下面这样。
`0000 0001 = 1`
@ -262,9 +262,9 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
`126.200.133.1`
这些都是`A`类地址,因为它们都是在`1`到`126`的范围内。`127`不是IP地址所允许的数字**`127.0.0.1`实际上用于在设备上测试TCP/IP是否正常**。
这些都是`A`类地址,因为它们都是在`1`到`126`的范围内。`127`不是 IP 地址所允许的数字;**`127.0.0.1`实际上用于在设备上测试TCP/IP是否正常**。
`B`类地址前`8`位二进制数的头两位则必须是10。这就意味着前`8`位二进制数值处于`128`到`191`之间,也就是下面这样。
`B`类地址前`8`位二进制数的头两位则必须是 10 。这就意味着前`8`位二进制数值处于`128`到`191`之间,也就是下面这样。
`1000 0000 = 128`
@ -280,7 +280,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
### 子网掩码初步Subnet Mask Primer
先前提到过IP地址用于区分网络的部分以及用于区分网络上主机地址的部分。子网掩码的作用就是确立此两部分。难点就在于并不总是能仅仅看一眼子网掩码就能知道IP地址的网络部分和主机部分。这需要实践且对于那些更难的地址你就必须要动手计算出来或是使用某个子网计算程序来作弊
先前提到过 IP 地址用于区分网络的部分以及用于区分网络上主机地址的部分。子网掩码的作用就是确立此两部分。难点就在于并不总是能仅仅看一眼子网掩码,就能知道 IP 地址的网络部分和主机部分。这需要实践,且对于那些更难的地址,你就必须要动手计算出来(或是使用某个子网计算程序来作弊)。
就算未曾将网络划分成更小的部分,你仍需采用为用到的每个地址应用一个子网掩码。而上面提到的地址类,它们都有一个默认的子网掩码,如同下面这样。
@ -296,7 +296,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
| `255` | `255` | `255` | `0` |
| 网络位 | 网络位 | 网络位 | 主机位 |
上面的地址表明 `192.168.12` 是网络地址,`2` 是该网络上的一台主机。再者,任何以`192.168.12`开头的IP地址都是在同一网络上的。而在看看前`8`位的数字,以及该默认的子网掩码,就知道这是一个`C`类网络。
上面的地址表明 `192.168.12` 是网络地址,`2` 是该网络上的一台主机。再者,任何以`192.168.12`开头的 IP 地址,都是在同一网络上的。而在看看前`8`位的数字,以及该默认的子网掩码,就知道这是一个`C`类网络。
请记住早前提到的规则:主机所不能使用的那些网络号,那么下面的这些网络号就不能为设备所使用了。
@ -316,19 +316,19 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
## IP地址的使用Using IP Addresses
接下来就是IP地址使用实务了在这里我们要探讨一下哪些可以使用哪些又不能使用。
接下来就是 IP 地址使用实务了,在这里我们要探讨一下哪些可以使用,哪些又不能使用。
你知道在过去二十年中计算机的使用曾有一个大暴发。个人计算机曾是十分昂贵的物品,以致只有少数人才买得起;因此只有那些有钱的机构才会保有使用。今天,几乎每个家庭都有那么一台或几台计算机了。
问题就在于IPv4实在仅有少数设备投入使用时发明的且那时未曾预期到会有如此大的变化。在地址分配时就意识到了如今的增长率我们将很快用完可用的地址。
问题就在于 IPv4 实在仅有少数设备投入使用时发明的,且那时未曾预期到会有如此大的变化。在地址分配时,就意识到了如今的增长率,我们将很快用完可用的地址。
### 私有IP地址Private IP Addresses
### 私有 IP 地址Private IP Addresses
几种解决方案之一就是保留一些类别的地址给那些要用的人同时这些地址不再国际互联网上使用。这些地址就是私有IP地址而此方案是由 `1918``4193` 两个RFC所构建的。
几种解决方案之一就是保留一些类别的地址给那些要用的人,同时这些地址不再国际互联网上使用。这些地址就是私有 IP 地址,而此方案是由 `1918``4193` 两个 RFC 所构建的。
下面就是私有地址的几个范围。
`10.x.x.x` -- 以10开头的地址
`10.x.x.x` -- 以 10 开头的地址
`172.16.x.x``172.31.x.x` -- `172.16`到`172.31`中的那些地址
@ -336,7 +336,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
## 子网划分Subnetting
子网划分让我们可以从一般用于网络上的主机位的那些IP地址位中进行借用。此时就可以自较大的网络空间划出一些更小的网络了这些较小的网络就被成为子网subnetworks, 简写为subnets
子网划分让我们可以从一般用于网络上的主机位的那些 IP 地址位中进行借用。此时就可以自较大的网络空间划出一些更小的网络了这些较小的网络就被成为子网subnetworks, 简写为 subnets )。
在对三类可用地址应用默认子网掩码时,你会发现不能用于划分子网的地址部分,如下面的表格所示。
@ -349,7 +349,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
| C类 -- `255` | `255` | `255` | `255` |
| 不能使用 | 不能使用 | 不能使用 | 可以使用 |
比如如你将某个C类网络以默认子网掩码方式使用那么就是这样的。
比如,如你将某个 C 类网络以默认子网掩码方式使用,那么就是这样的。
<table>
<tr><th>IP地址</th><td>`192`</td><td>`168`</td><td>`1`</td><td>`0`</td></tr>
@ -387,21 +387,21 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
### 无类域间路由Classless Inter-Domain Routing, CIDR
无类域间路由是由互联网工程任务组Internet Engineering Task Force, IETF创建的作为一种分配IP地址块及路由IP数据包的方法。这里要考察的CIDR主要特性就是以斜杠/地址表示法slash address notation, 来表示子网掩码。因为这可以节省时间所以该方法是较为重要的在现实中也要用到而除此之外还会考到有关CIDR地址的问题。
无类域间路由是由互联网工程任务组Internet Engineering Task Force, IETF创建的作为一种分配 IP 地址块及路由 IP 数据包的方法。这里要考察的 CIDR 主要特性,就是以斜杠(/地址表示法slash address notation, 来表示子网掩码。因为这可以节省时间,所以该方法是较为重要的,在现实中也要用到,而除此之外,还会考到有关 CIDR 地址的问题。
有了CIDR你要将所用到的二进制位的树木写下来以取代之前用到完整子网掩码。比如对于`255.255.0.0`, 它用到了两个`8`位二进制数,那么就会用`/16`来表示。又比如`255.255.240.0`, 使用到 8 + 8 + 4 个二进制位,就是`/20`了。
有了 CIDR ,你要将所用到的二进制位的树木写下来,以取代之前用到完整子网掩码。比如对于`255.255.0.0`, 它用到了两个`8`位二进制数,那么就会用`/16`来表示。又比如`255.255.240.0`, 使用到 8 + 8 + 4 个二进制位,就是`/20`了。
在网际互联是对子网掩码或是网络掩码的叫法应该读作”斜杠16“或”斜杠20“, 如此来与同事配合工作而他们就能明白你说的是一个CIDR掩码了。
在网际互联是对子网掩码或是网络掩码的叫法,应该读作”斜杠 16 “或”斜杠 20 “, 如此来与同事配合工作,而他们就能明白你说的是一个 CIDR 掩码了。
### 子网划分秘笈The Subnetting Secrects Chart
此秘笈将从几个星期的子网划分纠葛中将你拯救。我原作者的这本秘笈已为全世界上万的CCNA及CCNP学员所采用他们用其通过考试或是在工作面试中获得成功。
此秘笈将从几个星期的子网划分纠葛中将你拯救。我(原作者)的这本秘笈,已为全世界上万的 CCNA CCNP 学员所采用,他们用其通过考试,或是在工作面试中获得成功。
多年前在我在为CCNA考试学习时偶然发现这个简易方法前学员们都不得不将网络地址的二进制形式写下来或是要进行痛苦地计算来得到正确答案。
多年前,在我在为 CCNA 考试学习时偶然发现这个简易方法前,学员们都不得不将网络地址的二进制形式写下来,或是要进行痛苦地计算,来得到正确答案。
要写出秘笈所要用到的图表,你需要一只铅笔和一张纸。在考试中,因为只会给你一块白板用于计算,你需要凭记忆将该图表画出来。而在工作面试中,你是可以使用铅笔和白纸的。
在白纸的顶部右边,写下`1`, 再往左依次写下乘以`2`的结果,分别是`2`、`4`、`8`,并一直乘以`2`, 直到数字`128`。那么就有了一组8位二进制数了。
在白纸的顶部右边,写下`1`, 再往左依次写下乘以`2`的结果,分别是`2`、`4`、`8`,并一直乘以`2`, 直到数字`128`。那么就有了一组 8 位二进制数了。
| - | - | - | - | - | - | - | - |
| -- | -- | -- | -- | -- | -- | -- | -- |
@ -462,7 +462,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
`192.168.100.100/26` 是在那个子网中?
那么你知道这是一个C类地址而C类地址的默认掩码是24个二进制位或写着`255.255.255.0`。而这里是26位所以有两位被借用来产生子网了。我们只需简单地在上面的秘笈图表中的顶上一行从左往右勾上两个位置。这样就揭示出子网个数了。接着在子网号那列往下勾上两个位置来揭示出所存在的子网掩码。
那么,你知道这是一个 C 类地址,而 C 类地址的默认掩码是 24 个二进制位,或写着`255.255.255.0`。而这里是 26 位,所以有两位被借用来产生子网了。我们只需简单地在上面的秘笈图表中的顶上一行,从左往右勾上两个位置。这样就揭示出子网个数了。接着在子网号那列往下勾上两个位置,来揭示出所存在的子网掩码。
| 二进制位数 | `128` | `64` | `32` | `16` | `8` | `4` | `2` | `1` |
| -- | -- | -- | -- | -- | -- | -- | -- | -- |
@ -501,11 +501,11 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
| `192.168.100.128` | `192.168.100.129` | `192.168.100.190` | `192.168.100.191` |
| `192.168.100.192` | `192.168.100.193` | `192.168.100.254` | `192.168.100.255` |
考虑到IP地址是`0`到`255`之间的任何值。(不翻译了,太简单!)
考虑到 IP 地址是`0`到`255`之间的任何值。(不翻译了,太简单!)
## 路由汇总Route Summarisation
国际互联网上有数百万条路由。如果这些路由都不得不单独存储因特网在好多年前就会停摆了。路由汇总也就是常说的超网supernetting, 是在 `RFC 1338` 中提出的,点击 RFC -- [www.faqs.org/rfcs/rfc1338.html](http://www.faqs.org/rfcs/rfc1338.html) 可以读到这个 RFC。
国际互联网上有数百万条路由。如果这些路由都不得不单独存储,因特网在好多年前就会停摆了。路由汇总,也就是常说的超网( supernetting , 是在 `RFC 1338` 中提出的,点击 RFC -- [www.faqs.org/rfcs/rfc1338.html](http://www.faqs.org/rfcs/rfc1338.html) 可以读到这个 RFC。
如你要阅读一份更详尽的路由汇总文档,那么去找一本 Jeff Doyle 的卓越的思科书*Routing TCP/IP Volume 1*, 现在该书出了第二版。
@ -519,17 +519,17 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
### 路由汇总的前提Route Summarisation Prerequistes
为在网络上应用路由汇总,需要**使用某种无类协议**a classless protocol, 这将在后面涉及),**比如RIPv2、EIGRP、或者OSPF**。同时**还需以层次化顺序方式设计网络design your network in a hierarchical order, 这就需要仔细规划和设计**。这就意味着你—**不能随机地任意地在网络中给路由器或局域网分配网络**。
为在网络上应用路由汇总,需要**使用某种无类协议**a classless protocol, 这将在后面涉及),**比如 RIPv2 EIGRP 、或者OSPF**。同时**还需以层次化顺序方式设计网络design your network in a hierarchical order, 这就需要仔细规划和设计**。这就意味着你—**不能随机地任意地在网络中给路由器或局域网分配网络**。
### 应用路由汇总Applying Route Summarisation
我们来看看一个实例网络如不采用路由汇总会有什么问题。在此实例中说的就是在某网络上的IP地址范围下汇总是如何工作的。图5.3中的路由器连着一些网络。头一种解决办法是将这些网络都通告给下一跳的路由器the next-hop router。而替代的做法是汇总这8个网络到一条路由并将汇总结果发送给下一跳路由器这样做可降低带宽、CPU和内存的需求。
我们来看看一个实例网络,如不采用路由汇总,会有什么问题。在此实例中,说的就是在某网络上的 IP 地址范围下汇总是如何工作的。图5.3中的路由器连着一些网络。头一种解决办法是将这些网络都通告给下一跳的路由器the next-hop router。而替代的做法是汇总这 8 个网络到一条路由,并将汇总结果发送给下一跳路由器,这样做可降低带宽、 CPU 和内存的需求。
![路由汇总的一个实例](images/0503.png)
*图5.3 -- 路由汇总的一个实例*
抱歉的是计算出汇总路由a summary route的唯一方法是将IP地址转换成二进制形式。如你不这样做就无法知道是否通告了正确的汇总路由而这将导致网络故障。
抱歉的是计算出汇总路由a summary route的唯一方法是将 IP 地址转换成二进制形式。如你不这样做,就无法知道是否通告了正确的汇总路由,而这将导致网络故障。
首先,写出完整的所有网络地址,接着在右边写出其二进制形式,如下面所示。
@ -568,7 +568,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
那就是 `172.16.50.0 255.255.128.0`, 或者`/17`。
**练习二**: 下面述及的机构有3台连接到公司总部的路由器。他们需要将通告自伦敦`1`、`2`、`3`号路由器的路由进行汇总。
**练习二**: 下面述及的机构有 3 台连接到公司总部的路由器。他们需要将通告自伦敦`1`、`2`、`3`号路由器的路由进行汇总。
![通告自伦敦`1`、`2`、`3`号路由器的汇总路由](images/0504.png)
@ -662,7 +662,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
### 网络切分Slicing Down Networks
变长子网掩码的关键在于取得网络块并令到这些网络块满足特定的网络需求take your network block and make it work for your particular network needs。拿典型的网络地址`192.168.1.0/24`来说在使用VLSM时你可以使用掩码`/26`, 实现这样的划分。
变长子网掩码的关键在于取得网络块并令到这些网络块满足特定的网络需求take your network block and make it work for your particular network needs。拿典型的网络地址`192.168.1.0/24`来说,在使用 VLSM 时,你可以使用掩码`/26`, 实现这样的划分。
| `192.168.1.0/26` | 子网 | 主机数 |
| -- | -- | -- |
@ -671,7 +671,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
| `192.168.1.128` -- 使用中 | `3` | `62` |
| `192.168.1.192` -- 使用中 | `4` | `62` |
在发现基础设施中有着两个仅需`30`台主机的较小网络之前,这么做是没有问题的。那么在已经使用了`3`个较小子网(标为“使用中”),而仅剩下一个(也就是`192.168.1.0`)时呢?变长子网掩码就可以让你用上任何已划分出的子网,对其再进行划分。**唯一的规则就是IP地址仅能使用一次而与其掩码无关**。
在发现基础设施中有着两个仅需`30`台主机的较小网络之前,这么做是没有问题的。那么在已经使用了`3`个较小子网(标为“使用中”),而仅剩下一个(也就是`192.168.1.0`)时呢?变长子网掩码就可以让你用上任何已划分出的子网,对其再进行划分。**唯一的规则就是 IP 地址仅能使用一次,而与其掩码无关**。
如你使用子网划分秘笈图表,那么就可以看到哪个掩码带来`30`台主机的子网。
@ -698,21 +698,21 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
### 子网掩码及网关故障的排除
在出现IP分址、子网掩码或网关问题时你会看到多种现象。一些问题会如同下面这样。
在出现 IP 分址、子网掩码或网关问题时,你会看到多种现象。一些问题会如同下面这样。
- 网络设备可在其本地子网通信,却无法与本地网络之外的设备通信。这通常表明有着与网关配置或运行相关类型的问题。
- 没有任何类型的IP通信不管是内部的还是远程的。这通常表明存在大问题可能涉及相应设备上功能的缺失。
- 还有这种能与某些IP地址通信却无法与存在的全部IP地址通信的情形。这通常是最难解决的故障因为其可能有很多原因。
- 没有任何类型的 IP 通信,不管是内部的还是远程的。这通常表明存在大问题,可能涉及相应设备上功能的缺失。
- 还有这种能与某些 IP 地址通信,却无法与存在的全部 IP 地址通信的情形。这通常是最难解决的故障,因为其可能有很多原因。
在处理这些问题的过程中,**首先要做的就是对设备上所配置的IP地址、子网掩码及默认网关进行反复检查**。同时**还要查看设备文档,来验证相应信息**。**大量的故障都是由错误配置造成的**。
在处理这些问题的过程中,**首先要做的就是对设备上所配置的 IP 地址、子网掩码及默认网关进行反复检查**。同时**还要查看设备文档,来验证相应信息**。**大量的故障都是由错误配置造成的**。
如你正在首次安装一些网络设备多半要手动输入一些IP地址、子网掩码和默认网关等信息。建议在进行提交前进行检查因为这方面人所犯的错误是难免的。**许多企业都有关于将新设备引入网络的手册, 包括网关测试及到SNMP服务器的可达能力**。
如你正在首次安装一些网络设备,多半要手动输入一些 IP 地址、子网掩码和默认网关等信息。建议在进行提交前进行检查,因为这方面人所犯的错误是难免的。**许多企业都有关于将新设备引入网络的手册, 包括网关测试及到 SNMP 服务器的可达能力**。
如需在故障排除过程中收集信息,可能需要**做一下包捕获,以此来观察设备间发送了哪些数据包**。**如果看到有来自其它网络上主机的包就可能存在某种VLAN错误配置问题**。**如怀疑子网掩码不正确,就要检查网络上其它设备的参数**。如果其它机器工作良好,就要在该设备上使用如预期一样无法工作的同一子网掩码,并再行测试。
如需在故障排除过程中收集信息,可能需要**做一下包捕获,以此来观察设备间发送了哪些数据包**。**如果看到有来自其它网络上主机的包,就可能存在某种 VLAN 错误配置问题**。**如怀疑子网掩码不正确,就要检查网络上其它设备的参数**。如果其它机器工作良好,就要在该设备上使用如预期一样无法工作的同一子网掩码,并再行测试。
在使用了动态主机分址DHCP来为网络上的设备分配包括子网掩码和网关的地址信息时就要**检查DHCP服务器配置**因为此时问题可能发生在另一方面了。DHCP服务器错误配置或者DHCP服务已阻塞都是可能的所以在故障排除时包含这一步是必要的。务必还要记住从DHCP地址池中排除一些保留地址因为这些地址通常会分配给服务器及路由器接口。
在使用了动态主机分址( DHCP )来为网络上的设备分配包括子网掩码和网关的地址信息时,就要**检查 DHCP 服务器配置**,因为此时问题可能发生在另一方面了。 DHCP 服务器错误配置或者 DHCP 服务已阻塞,都是可能的,所以在故障排除时包含这一步是必要的。务必还要记住从 DHCP 地址池中排除一些保留地址,因为这些地址通常会分配给服务器及路由器接口。
另一些有助于找出网络故障发生所在之处的故障排除工具有traceroute和ping。在本书及本书实验中会有涉及。
另一些有助于找出网络故障发生所在之处的故障排除工具有 traceroute ping 。在本书及本书实验中会有涉及。
## 第五天的问题Day 5 Questions
@ -816,21 +816,21 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
## 第五天的实验
### 路由器上的IP分址实验
### 路由器上的 IP 分址实验
**拓扑图Topology**
![路由器上的IP分址实验拓扑图](images/0505.png)
![路由器上的 IP 分址实验拓扑图](images/0505.png)
*路由器上的IP分址实验拓扑图*
*路由器上的 IP 分址实验拓扑图*
**实验目的, Purpose**
学习如何熟练地在路由器上配置IP地址并经由某个串行接口执行ping操作。
学习如何熟练地在路由器上配置 IP 地址,并经由某个串行接口执行 ping 操作。
**实验步骤Walkthrough**
1. 先是明确路由器上的串行借口编号你的路由器与上面拓扑图中的可能有所不同。同时还要明确串行链路的哪一端连接的是DCE线因为在该端是需要`clock rate`命令的。
1. 先是明确路由器上的串行借口编号,你的路由器与上面拓扑图中的可能有所不同。同时,还要明确串行链路的哪一端连接的是 DCE 线,因为在该端是需要`clock rate`命令的。
```console
@ -851,7 +851,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
DCE cable, no clock rate
```
2. 在一侧为路由器加上主机名及IP地址如该侧是DCE就为其加上时钟速率the clock rate
2. 在一侧为路由器加上主机名及 IP 地址,如该侧是 DCE 就为其加上时钟速率the clock rate
```console
@ -865,7 +865,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
%LINK-5-CHANGED: Interface Serial0/1/0, changed state to downRouterA(config-if)#
```
3. 为另一侧加上主机名和IP地址。同时使用`no shut`命令将该接口开启。
3. 为另一侧加上主机名和 IP 地址。同时使用`no shut`命令将该接口开启。
```console
@ -893,7 +893,7 @@ IP 地址分配的规则有:**网络上的每个地址,都要是其主机所
Success rate is 100 percent (5/5), round-trip min/avg/max = 31/31/32 ms
```
>**注意:** 如ping不工作就要反复检查确保在正确的路由器上加上了`clock rate`命令。还要确保正确插入了线缆,并使用命令 `show controllers serial x/x/x`, 这里的接口编号是你的路由器上的。
>**注意:** 如 ping 不工作,就要反复检查,确保在正确的路由器上加上了`clock rate`命令。还要确保正确插入了线缆,并使用命令 `show controllers serial x/x/x`, 这里的接口编号是你的路由器上的。
### 二进制转换及子网划分练习, Binary Conversion and Subnetting Practice

View File

@ -1,10 +1,10 @@
# 第6天 网络地址转换
# 第 6 天 网络地址转换
**Network Address Translation**
___
Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
Gitbook [ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
你可以在 https://github.com/gnu4cn/ccna60d 上 fork 本项目,并提交你的修正。
@ -22,31 +22,31 @@ ___
- 回顾昨天的课文内容
- 完成今天的实验
- 阅读 ICND1 记诵指南
- 在网站[subnetting.org](http://www.subnetting.org) 上花15分钟
- 在网站[subnetting.org](http://www.subnetting.org) 上花 15 分钟
网络地址转换是另一个生僻内容(another strange subject)思科把网络地址转换拆分到ICND1和ICND2两个大纲中了。
网络地址转换是另一个生僻内容(another strange subject),思科把网络地址转换拆分到 ICND1 ICND2 两个大纲中了。
今天你会学到下面这些知识。
- NAT基础
- 对NAT的配置和验证
- NAT故障排除
- NAT 基础
- 对 NAT 的配置和验证
- NAT 故障排除
今天的课程涵盖了ICND1大纲的以下要求。
今天的课程涵盖了 ICND1 大纲的以下要求。
+ 弄清NAT的基本操作
- NAT的目的
- NAT地址池
+ 弄清 NAT 的基本操作
- NAT 的目的
- NAT 地址池
- 静态NAT
- 一对一的NAT
- NAT过载Overloading
- NAT 过载Overloading
- 源地址NAT
- 单向NAT
- 按需求配置并验证NAT
- 按需求配置并验证 NAT
## NAT基础NAT Basics
## NAT 基础NAT Basics
想象一下如果网络不是以IP地址运行而是按颜色来运作。蓝色和黄色有无限的供应其它颜色却是短缺的。网络分开成使用蓝色和黄色的许多用户因为这两种颜色可以随意使用。而蓝色用户需要频繁地前往外部网络那么就需要去买点绿色凭据在蓝色用户需要与外部网络上的主机通信时路由器可以用其将蓝色用户的凭据进行替换。路由器此时会像下面这样做。
想象一下如果网络不是以 IP 地址运行,而是按颜色来运作。蓝色和黄色有无限的供应,其它颜色却是短缺的。网络分开成使用蓝色和黄色的许多用户,因为这两种颜色可以随意使用。而蓝色用户需要频繁地前往外部网络,那么就需要去买点绿色凭据,在蓝色用户需要与外部网络上的主机通信时,路由器可以用其将蓝色用户的凭据进行替换。路由器此时会像下面这样做。
![内部凭据被替换成了外部凭据](images/0601.png)
@ -54,13 +54,13 @@ ___
| 内部凭据 | 外部凭据 |
| -- | -- |
| 蓝色1号 | 绿色1号 |
| 蓝色2号 | 绿色2号 |
| 蓝色3号 | 绿色3号 |
| 蓝色 1 号 | 绿色 1 号 |
| 蓝色 2 号 | 绿色 2 号 |
| 蓝色 3 号 | 绿色 3 号 |
在各台蓝色设备完成与外部的连接后,对应的绿色凭据会释放给其它蓝色设备使用。这么做的好处在于**外部设备无法看到内部凭据编号**,且**有助于留下互联网上十分有限的可用凭据**。
我们看到NAT不仅保护了网络IP地址同时也是节约地址的另一种方法。**NAT是在路由器或者防火墙上实现的**,那么,代替上面的颜色,你会看到下面这样的情况。
我们看到NAT 不仅保护了网络 IP 地址,同时也是节约地址的另一种方法。** NAT 是在路由器或者防火墙上实现的**,那么,代替上面的颜色,你会看到下面这样的情况。
![内部地址被替换成外部地址](images/0602.png)
@ -71,71 +71,71 @@ ___
| `192.168.1.1` | `200.100.1.5` |
| `192.168.1.3` | `200.100.1.7` |
根据特定的需求,**在路由器上配置NAT有三种方式**。CCNA考试要求你掌握所有三种方式。
根据特定的需求,**在路由器上配置 NAT 有三种方式**。CCNA 考试要求你掌握所有三种方式。
为了配置NAT要先告诉路由器有哪些内部和外部接口。这是因为事实上可以将众多内部地址替换成某个NAT地址池中的地址a pool of NAT addresses或者最起码替换成单一的NAT地址, 并在路由器上的两个以太网接口之间完成NAT。
为了配置 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地址空间。
NAT 令到私有网络上的主机可以访问互联网上的资源,或是可以访问到其它公共网络。 NAT 是一个 IETF 标准,其让局域网的内部流量使用一个 IP 地址集合这些地址通常就是RFC 1918 中所定义的私有地址空间,对于外部流量,又使用另一个地址集合,这些地址通常是公开注册的 IP 地址空间。
NAT为进入和发出的流量去改装数据包的头部并对每个会话进行跟踪。理解NAT的关键同时也是NAT故障排除的关键就是对NAT的有关术语有扎实理解。你应熟悉下面这些NAT名词。
NAT 为进入和发出的流量去改装数据包的头部,并对每个会话进行跟踪。理解 NAT 的关键,同时也是 NAT 故障排除的关键,就是对 NAT 的有关术语有扎实理解。你应熟悉下面这些 NAT 名词。
- NAT内部接口
- NAT 内部接口
- 内部本地地址
- 内部全球地址
- NAT外部接口
- NAT 外部接口
- 外部本地地址
- 外部全球地址
上面NAT术语中的**内部接口是指由该组织所控制的管理域的边界接口the border interface of the administrative domain controlled by the organization。而并不非得要是内部网络上的主机所使用的默认网关**。
上面 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地址被转换过后对公网或是其它任何外部网络及主机来说它就成为了一个内部全局地址了。
**内部全局地址,则是内部主机在其呈现在外部世界时的地址**。一旦内部 IP 地址被转换过后,对公网或是其它任何外部网络及主机来说,它就成为了一个内部全局地址了。
与内部接口对应,**外部接口是指不受该组织所控制的管理域的边界**。换句话说,外部接口是连接外部网络的,连接的网络可以是互联网或其它任何的外部网络,比如友商网络等。任何处于外部接口外侧的主机,都不属于本地组织的管理之下。
**外部本地地址是某台外部主机呈现给内部主机的IP地址**。最后,**外部全局地址又是一个合法的、可在互联网上使用的公网地址**。外部本地地址和外部全局地址都是分配自一个全球可路由网络地址空间。
**外部本地地址是某台外部主机呈现给内部主机的 IP 地址**。最后,**外部全局地址又是一个合法的、可在互联网上使用的公网地址**。外部本地地址和外部全局地址都是分配自一个全球可路由网络地址空间。
为搞清楚这些概念图6.3表示了两台主机之间的一个会话中各种地址的使用。中间的网关上开启了NAT。
为搞清楚这些概念图6. 3 表示了两台主机之间的一个会话中各种地址的使用。中间的网关上开启了 NAT
![理解NAT的各种内部外部地址](images/0603.png)
![理解 NAT 的各种内部外部地址](images/0603.png)
*图6.3 -- 理解NAT的各种内部外部地址*
*图6.3 -- 理解 NAT 的各种内部外部地址*
NAT内部和外部的分址是一个经典的考试问题所以还需在回头看几次这里的内容。
NAT 内部和外部的分址,是一个经典的考试问题,所以还需在回头看几次这里的内容。
## 配置并验证NATConfiguring and Verifying NAT
## 配置并验证 NAT Configuring and Verifying NAT
在思科IOS上对网络地址转换的配置和验证是一个简单的事情。在配置NAT时要执行下面这些操作。
在思科 IOS 上对网络地址转换的配置和验证是一个简单的事情。在配置 NAT 时,要执行下面这些操作。
- 使用接口配置命令`ip nat inside`将一个或多个的接口指定为内部接口。
- 使用接口配置命令`ip nat outside`将某个接口指定为外部接口。
- 配置一条访问控制清单access control list, ACL, 其将匹配所有需要转换的流量。此访问控制清单可以是标准、扩展的命名ACL或编号ACLa standard or an extended named or numbered ACL
- 配置一条访问控制清单access control list, ACL , 其将匹配所有需要转换的流量。此访问控制清单可以是标准、扩展的命名 ACL 或编号 ACL a standard or an extended named or numbered ACL )。
- 作为可选项,使用全局配置命令`ip nat pool <name> <start-ip> <end-ip> [netmaske <mask> | prefix-length <length>]`, 配置一个全球地址池(a pool of global addresses)。这会定义出一个内部本地地址将会转换成的内部全球地址池。
- 使用全局配置命令`ip nat inside source list <ACL> [interface | pool] <name> [overload]`全局性地配置上NAT。
- 使用全局配置命令`ip nat inside source list <ACL> [interface | pool] <name> [overload]`,全局性地配置上 NAT
> Farai 指出 -- “请看看命令`ip nat inside source static`, 可以在[www.howtonetwork.net/public/698.cfm](http://www.howtonetwork.net/public/698.cfm)免费查阅。”
下面的输出给出了一种思科IOS软件下配置NAT动态NAT的方式。可以看出该配置使用了可用的`description`和`remark`两种特性,来帮助管理员更容易地对网络进行管理和故障排除。
下面的输出给出了一种思科 IOS 软件下配置 NAT (动态 NAT )的方式。可以看出,该配置使用了可用的`description`和`remark`两种特性,来帮助管理员更容易地对网络进行管理和故障排除。
```console
R1(config)#interface FastEthernet0/0
R1(config-if)#description Connected To The Internal LAN
R1(config-if)#description Connected To The Internal LAN
R1(config-if)#ip address 10.5.5.1 255.255.255.248
R1(config-if)#ip nat inside
R1(config-if)#exit
R1(config)#interface Serial0/0
R1(config-if)#description Connected To The ISP
R1(config-if)#description Connected To The ISP
R1(config-if)#ip address 150.1.1.1 255.255.255.248
R1(config-if)#ip nat outside
R1(config-if)#exit
R1(config)#access-list 100 remark Translate Internal Addresses Only
R1(config)#access-list 100 remark Translate Internal Addresses Only
R1(config)#access-list 100 permit ip 10.5.5.0 0.0.0.7 any
R1(config)#ip nat pool INSIDE-POOL 150.1.1.3 150.1.1.6 prefix-length 24
R1(config)#ip nat inside source list 100 pool INSIDE-POOL
@ -152,25 +152,25 @@ icmp 150.1.1.3:1 10.5.5.2:1 200.1.1.1:1 200.1.1.1:1
tcp 150.1.1.5:159 10.5.5.3:159 200.1.1.1:23 200.1.1.1:23
```
在路由器上配置NAT时通常有以下三个选择。
在路由器上配置 NAT 时,通常有以下三个选择。
- 对一个内部地址用一个外部地址进行替换静态NATstatic NAT
- 对多个内部地址用两个以上的外部地址进行替换动态NATdynamic NAT
- 将多个内部地址,用多个外部端口进行转换(这就是**端口地址转换**,或者叫**单向NAT**, Port Address Translation or one-way NAT
- 对一个内部地址,用一个外部地址进行替换(静态 NAT static NAT
- 对多个内部地址,用两个以上的外部地址进行替换(动态 NAT dynamic NAT
- 将多个内部地址,用多个外部端口进行转换(这就是**端口地址转换**,或者叫**单向NAT**, Port Address Translation or one-way NAT
### 静态NAT
**Static NAT**
在网络内部一些有一台web服务器时就要将某个特定内部地址替换成另一个外部地址了。如此时仍然进行动态分址就没有办法到达该特定目的地址因为它总是变动的。
在网络内部一些有一台 web 服务器时,就要将某个特定内部地址,替换成另一个外部地址了。如此时仍然进行动态分址,就没有办法到达该特定目的地址,因为它总是变动的。
>Farai指出“对那些需要经由互联网可达的所有服务器比如e-mail或FTP服务器都要使用静态NAT如下面的图6.4所示)”
> Farai 指出“对那些需要经由互联网可达的所有服务器比如e- mail FTP 服务器,都要使用静态 NAT 如下面的图6. 4 所示)”
![在用的静态NAT](images/0604.png)
**图6.4 -- 在用的静态NAT**
| 内部地址 | 外部NAT地址 |
| 内部地址 | 外部 NAT 地址 |
| -- | -- |
| `192.168.1.1` | `200.1.1.1` |
| `192.168.2.1` | `200.1.1.2` |
@ -191,28 +191,28 @@ Router(config)#ip nat inside source static 192.168.1.1 200.1.1.1
Router(config)#ip nat inside source static 192.168.2.1 200.1.1.2
```
命令`ip nat inside`和`ip nat outside`告诉路由器哪些是内侧NAT接口哪些是外侧的NAT接口。而命令`ip nat inside source`命令就定义了那些静态转换想要多少条就可以有多少条的该命令那么就算你掏钱买的那些公网IP地址有多少个就写上多少条吧。在思科公司笔者曾解决有关此类问题的大量主要的配置错误就是找不到`ip nat inside`及`ip nat outside`语句!考试中可能会碰到那些要求找出配置错误的问题。
命令`ip nat inside`和`ip nat outside`,告诉路由器哪些是内侧 NAT 接口,哪些是外侧的 NAT 接口。而命令`ip nat inside source`命令,就定义了那些静态转换,想要多少条就可以有多少条的该命令,那么就算你掏钱买的那些公网 IP 地址有多少个,就写上多少条吧。在思科公司,笔者曾解决有关此类问题的大量主要的配置错误,就是找不到`ip nat inside`及`ip nat outside`语句!考试中可能会碰到那些要求找出配置错误的问题。
强烈建议将上述命令敲入到某台路由器中去。本书中有很多的NAT实验但是在阅读理论章节的同时你敲入得越多那么这些信息就能越好地进入你的大脑。
强烈建议将上述命令敲入到某台路由器中去。本书中有很多的 NAT 实验,但是在阅读理论章节的同时,你敲入得越多,那么这些信息就能越好地进入你的大脑。
### 动态NAT或NAT地址池
### 动态 NAT NAT 地址池
通常会用到一组可路由地址或是一个可路由地址池。一对一的NAT映射有其局限性首当其冲的就是成本高其次路由器上有着多行的配置。动态NAT允许为内部主机配置一或多个的公网地址组。
通常会用到一组可路由地址,或是一个可路由地址池。一对一的 NAT 映射,有其局限性,首当其冲的就是成本高,其次路由器上有着多行的配置。动态 NAT 允许为内部主机配置一或多个的公网地址组。
路由器会维护一个内部地址到外部地址对应的清单,而最后该表格中的转换会超时(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的建议去修改。
路由器会维护一个内部地址到外部地址对应的清单,而最后该表格中的转换会超时(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 )的建议去修改。
![到一个NAT公网可路由地址池的内部私有地址](images/0605.png)
![到一个 NAT 公网可路由地址池的内部私有地址](images/0605.png)
*图6.5 -- 到一个NAT公网可路由地址池的内部私有地址*
*图6.5 -- 到一个 NAT 公网可路由地址池的内部私有地址*
当路由器上的内部主机发出到外部的连接时,如执行命令`show ip nat translations`, 就会看到下面的包含类似信息的图表。
| 内侧地址 | 外侧NAT地址 |
| 内侧地址 | 外侧 NAT 地址 |
| -- | -- |
| `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`的地址池。下面是要实现该目的的配置文件。这里就不再给出路由器接口地址了。
```console
Router(config)#interface f0/0
@ -224,28 +224,28 @@ Router(config)#ip nat inside source list 1 pool poolname
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
```
该ACL用于告诉路由器哪些地址要转换哪些地址不要转换。而该子网掩码实际上是反转的叫做反掩码在第九天会涉及。所有NAT地址池都需要一个名字而在本例中它简单地叫做“poolname”。源列表引用自那个ACLthe source list refers to the ACL, **经译者在GNS3上测试,动态NAT仍然是一对一的地址转换**。
ACL 用于告诉路由器哪些地址要转换,哪些地址不要转换。而该子网掩码实际上是反转的,叫做反掩码,在第九天会涉及。所有 NAT 地址池都需要一个名字,而在本例中,它简单地叫做“ poolname ”。源列表引用自那个 ACL the source list refers to the ACL , **经译者在 GNS3 上测试,动态 NAT 仍然是一对一的地址转换**。
### NAT Overload/端口地址转换/单向NAT
**NAT Overload/Port Address Translation/One-Way NAT**
IP地址处于紧缺之中在有着成千上万的地址需要路由时将花一大笔钱**静态NAT、动态NAT都无法解决此问题**)。在此情况下,可以使用**NAT overload方案**如图6.6, 该方案又被思科叫做**端口地址转换Port Address Translation, PAT**或**单向NAT**。PAT巧妙地允许将某端口号加到某个IP地址作为与另一个使用该IP地址的转换区分开来的方式。每个IP地址有多达 `65000` 个可用端口号。
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)
*图6.6 -- NAT Overload*
此时,命令`show ip nat translations`给出的表格将会显示下面这样的IP地址及端口号。
此时,命令`show ip nat translations`给出的表格,将会显示下面这样的 IP 地址及端口号。
| 内侧地址 | 外侧NAT地址带有端口号 |
| 内侧地址 | 外侧 NAT 地址(带有端口号) |
| -- | -- |
| `192.168.1.1` | `200.1.1.1:30922` |
| `192.168.2.1` | `200.1.1.2:30975` |
而要配置PAT需要进行如同动态NAT的那些同样配置还要在地址池后面加上关键字 `overload`
而要配置 PAT ,需要进行如同动态 NAT 的那些同样配置,还要在地址池后面加上关键字 `overload`
```console
Router(config)#interface f0/0
@ -259,15 +259,15 @@ Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
这该很容易记住吧!
>Farai指出 -- “以多于一个IP方式使用PAT就是对地址空间的浪费因为路由器会使用第一个IP地址并为每个随后的连接仅增大端口号。这就是为何通常将PAT配置为该接口上的超载(overload)。”
> Farai 指出 -- “以多于一个 IP 方式使用 PAT ,就是对地址空间的浪费,因为路由器会使用第一个 IP 地址,并为每个随后的连接仅增大端口号。这就是为何通常将 PAT 配置为该接口上的超载(overload)。”
## NAT故障排除
## NAT 故障排除
**Troubleshooting NAT**
NAT故障中十次有九次都是由于路由器管理员忘记了把`ip nat outside`或`ip nat inside`命令加到路由器接口上。事实上几乎总是存在这个问题接下来最频繁的错误包括不正确的ACL以及某个拼写错误的地址池名称地址池是区分大小写的
NAT 故障中十次有九次,都是由于路由器管理员忘记了把`ip nat outside`或`ip nat inside`命令加到路由器接口上。事实上,几乎总是存在这个问题!接下来最频繁的错误包括不正确的 ACL ,以及某个拼写错误的地址池名称(地址池是区分大小写的)。
使用命令`debug ip nat [detailed]`可以在路由器上对NAT转换进行调试又可以使用命令`sh ip nat translations`来查看NAT地址池。
使用命令`debug ip nat [detailed]`,可以在路由器上对 NAT 转换进行调试,又可以使用命令`sh ip nat translations`,来查看 NAT 地址池。
## 第六天问题
@ -295,25 +295,25 @@ NAT故障中十次有九次都是由于路由器管理员忘记了把`ip nat
## 第六天的实验
### 静态NAT实验
### 静态 NAT 实验
**Static NAT Lab**
**拓扑图**
![静态NAT实验拓扑图](images/0607.png)
![静态 NAT 实验拓扑图](images/0607.png)
**静态NAT实验拓扑图**
**静态 NAT 实验拓扑图**
**实验目的**
学习如何配置静态NAT。
学习如何配置静态 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 上的一台主机。**通过一个环回接口,可以实现这个目的**。
```console
@ -360,7 +360,7 @@ NAT故障中十次有九次都是由于路由器管理员忘记了把`ip nat
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 的内部接口,哪个是外部接口。
```console
@ -375,7 +375,7 @@ NAT故障中十次有九次都是由于路由器管理员忘记了把`ip nat
RouterA(config)#
```
6. 打开NAT调试如此就可以看到转换的进行。此时再执行另一个扩展`ping`操作(自`L0`接口的并查看NAT表。因为IOS的不同你的输出可能与我的不一样。
6. 打开 NAT 调试,如此就可以看到转换的进行。此时再执行另一个扩展`ping`操作(自`L0`接口的),并查看 NAT 表。因为 IOS 的不同,你的输出可能与我的不一样。
```console
@ -426,7 +426,7 @@ NAT故障中十次有九次都是由于路由器管理员忘记了把`ip nat
RouterA#
```
7. 记住路由器随后很快就会清除该NAT转换为其它IP地址使用这个/这些NAT地址而对其进行清理。
7. 记住,路由器随后很快就会清除该 NAT 转换,为其它 IP 地址使用这个/这些 NAT 地址而对其进行清理。
```console
@ -434,27 +434,27 @@ NAT故障中十次有九次都是由于路由器管理员忘记了把`ip nat
NAT: expiring 172.16.1.1 (10.1.1.1) icmp 7 (7)
```
>译者注: 通过本实验,要注意三个问题:一是**可路由地址可以是外部接口同一网段的地址,也可以不是**;二是**NAT超时问题该参数可以设置**;三是**环回接口的使用, 常用来模拟LAN中的计算机**。
>译者注: 通过本实验,要注意三个问题:一是**可路由地址可以是外部接口同一网段的地址,也可以不是**;二是** NAT 超时问题,该参数可以设置**;三是**环回接口的使用, 常用来模拟 LAN 中的计算机**。
### NAT地址池/动态NAT实验
### NAT 地址池/动态 NAT 实验
**NAT Pool Lab**
**拓扑图**
![NAT地址池/动态NAT实验拓扑图](images/0608.png)
![ NAT 地址池/动态 NAT 实验拓扑图](images/0608.png)
**NAT地址池/动态NAT实验拓扑图**
** NAT 地址池/动态 NAT 实验拓扑图**
**实验目的**
学习如何配置一个NAT地址池动态NAT
学习如何配置一个 NAT 地址池(动态 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. 需要给`RouterA`添加两个IP地址来模拟LAN上的主机。通过两个环回接口可以达到这个目的。这两个IP地址将位处不同子网但都以`10`地址开头。
2. 需要给`RouterA`添加两个 IP 地址来模拟 LAN 上的主机。通过两个环回接口,可以达到这个目的。这两个 IP 地址将位处不同子网,但都以`10`地址开头。
```console
@ -503,7 +503,7 @@ NAT故障中十次有九次都是由于路由器管理员忘记了把`ip nat
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 就不会工作。
```console
@ -525,9 +525,9 @@ NAT故障中十次有九次都是由于路由器管理员忘记了把`ip nat
**命令`ip nat pool`创建出地址池。需要给地址池一个自己选择的名称。而命令`netmask`告诉路由器应用到地址池上的网络掩码**
**命令`source list`告诉路由器查看的ACL。该条ACL告诉路由器哪些网络将与NAT地址池进行匹配和转换**。
**命令`source list`告诉路由器查看的 ACL 。该条 ACL 告诉路由器哪些网络将与 NAT 地址池进行匹配和转换**。
6. 打开NAT调试如此才可以看到转换的发生。接着执行扩展`ping`(自`L0`和`L1`发出的并查看NAT表。因为IOS平台的不同你的输出可能和下面的不一样。将会看到NAT地址池中的两个地址正在用到。
6. 打开 NAT 调试,如此才可以看到转换的发生。接着执行扩展`ping`(自`L0`和`L1`发出的),并查看 NAT 表。因为 IOS 平台的不同,你的输出可能和下面的不一样。将会看到 NAT 地址池中的两个地址正在用到。
```console
@ -613,17 +613,17 @@ NAT故障中十次有九次都是由于路由器管理员忘记了把`ip nat
RouterA#
```
### NAT Overload实验
### NAT Overload 实验
**NAT Overload Lab**
重复先前的实验。这次,在引用地址池时,将`overload`命令加到该配置行的后面。这会指示路由器使用PAT。去掉`Loopback1`。**请注意正如Farai指出的那样在真实世界中地址池通常只会有一个地址否则在外部接口上会超载**Please note that as Farai says, in the real world, your pool will usually have only one address or you will overload your outside interface
重复先前的实验。这次,在引用地址池时,将`overload`命令加到该配置行的后面。这会指示路由器使用 PAT 。去掉`Loopback1`。**请注意,正如 Farai 指出的那样,在真实世界中,地址池通常只会有一个地址,否则在外部接口上会超载**Please note that as Farai says, in the real world, your pool will usually have only one address or you will overload your outside interface )。
```console
RouterA(config)#ip nat inside source list 1 pool 60days overload
```
我已经为方便而使用思科Packet Tracer完成了上面的实验所以你通常会碰到与我的输出所不一致的输出。下面是一个PAT实验的示例输出。从中可以看出路由器给每个转换都加上了一个端口号。不幸的是在NAT地址池实验中会看到相似的编号这是一个PAT的混淆之处。
我已经为方便而使用思科Packet Tracer ,完成了上面的实验,所以你通常会碰到与我的输出所不一致的输出。下面是一个 PAT 实验的示例输出。从中可以看出,路由器给每个转换都加上了一个端口号。不幸的是,在 NAT 地址池实验中,会看到相似的编号,这是一个 PAT 的混淆之处。
```console
RouterA#show ip nat tran

View File

@ -1,4 +1,4 @@
# 第7天 互联网协议版本6
# 第 7 天 互联网协议版本6
__Internet Protocol version 6, IPv6__
@ -19,11 +19,11 @@ ___
## 第七天任务
- 阅读下面的课文理论部分
- 阅读ICND1记诵指南
- 阅读 ICND1 记诵指南
IPv6已经开发了很多年且已在全世界网络中投入使用与IPv4共同运行。许多网络工程师在面对不得不学习一种新的分址方式时表现出了他们的恐惧笔者也曾听他们中的许多人说希望在IPv6成为一项必备技能之前能够退休。
IPv6已经开发了很多年且已在全世界网络中投入使用 IPv4 共同运行)。许多网络工程师在面对不得不学习一种新的分址方式时,表现出了他们的恐惧,笔者也曾听他们中的许多人说希望在 IPv6 成为一项必备技能之前能够退休。
恐惧是站不住脚的是没有有事实依据的。IPv6是一种对用户友好格式一旦对其熟悉了就会发现其是IPv4的改良而你可能会优先选用IPv6。**CCNA考试中IPv6占了很大部分**; 为此,需要**掌握其工作原理**,及**如何配置IPv6地址****掌握其有关标准**,并**应用IPv6来满足网络的各项需求**。
恐惧是站不住脚的,是没有有事实依据的。 IPv6 是一种对用户友好格式,一旦对其熟悉了,就会发现其是 IPv4 的改良,而你可能会优先选用 IPv6 。**CCNA考试中 IPv6 占了很大部分**; 为此,需要**掌握其工作原理**,及**如何配置 IPv6 地址****掌握其有关标准**,并**应用 IPv6 来满足网络的各项需求**。
今天将会学到下面这些知识点。
@ -32,16 +32,16 @@ IPv6已经开发了很多年且已在全世界网络中投入使用与IPv4
- 应用IPv6
- IPv6子网划分
本模块对应了以下CCNA大纲要求。
本模块对应了以下 CCNA 大纲要求。
- 拿出恰当的IPv6分址方案以满足某个LAN/WAN环境的分址要求
+ 正确描述IPv6的各种地址
- 拿出恰当的 IPv6 分址方案以满足某个LAN/WAN环境的分址要求
+ 正确描述 IPv6 的各种地址
- 全球单播地址, Global Unicast addresses
- 多播地址, Multicast addresses
- 本地链路地址, Link-Link addresses
- 本地唯一地址Unique-Local addresses
- 扩展唯一识别符Extended Unified Identifier 64, EUI-64
- 自动配置地址autoconfiguration
- 自动配置地址( autoconfiguration
## IPv6历史
@ -51,23 +51,23 @@ IPv6已经开发了很多年且已在全世界网络中投入使用与IPv4
**Fit for Purpose?**
在Tim Berners-Lee爵士于`1989`年发明WWW时他无法预测到该技术对世界的巨大影响。个人计算机曾经贵得高攀不起此外除非能够负担得起昂贵的WAN连接费用否则就没有方便的长距离通信方法。那时也没有大家共同遵循的通信模型。
在Tim Berners-Lee爵士于`1989`年发明 WWW 时,他无法预测到该技术对世界的巨大影响。个人计算机曾经贵得高攀不起,此外,除非能够负担得起昂贵的 WAN 连接费用,否则就没有方便的长距离通信方法。那时也没有大家共同遵循的通信模型。
那时某些事需要一些变化以IP这种新型分址标准的的形式变革发生了。业界从犯下的大量失误中终有收获并在对商业需求的回应下IETF早在`1998`年就发布了众多IPv6标准中最早的一些标准。
那时,某些事需要一些变化,以 IP 这种新型分址标准的的形式,变革发生了。业界从犯下的大量失误中终有收获,并在对商业需求的回应下, IETF 早在`1998`年就发布了众多 IPv6 标准中最早的一些标准。
并不会有一个日期能够整个地从IPv4转变为IPv6而是网络将会逐渐地变为同时运行IPv4和IPv6, 并最终IPv4会滚粗。当下全部互联网流量的近`1%`运行在IPv6上来源Yves Poppe, IPv6 -- A 2012 Report Card
并不会有一个日期,能够整个地从 IPv4 转变为 IPv6 ;而是网络将会逐渐地变为同时运行 IPv4 和IPv6, 并最终 IPv4 会滚粗。当下,全部互联网流量的近`1%`运行在 IPv6 来源Yves Poppe, IPv6 -- A 2012 Report Card
### 为何要迁移
**Why Migrate?**
笔者已经指出在IPv4发明时互联网不是由普罗大众所使用的也没有使用的必要。那时还没有网站没有电子商务没有移动网络没有社交媒体。就算买得起PC拿来也干不了什么事。现在的情况是几乎所有人都在线上了。我们使用互联网来完成日常工作很多业务都依赖互联网而存在。很快我们又会使用移动装置来管理我们的汽车及家庭安防来打开咖啡机设置空调设定电视录制爱看的电视剧等等。
笔者已经指出,在 IPv4 发明时,互联网不是由普罗大众所使用的,也没有使用的必要。那时还没有网站,没有电子商务,没有移动网络,没有社交媒体。就算买得起 PC ,拿来也干不了什么事。现在的情况是几乎所有人都在线上了。我们使用互联网来完成日常工作,很多业务都依赖互联网而存在。很快我们又会使用移动装置来管理我们的汽车及家庭安防,来打开咖啡机,设置空调,设定电视录制爱看的电视剧等等。
这些事情已经在发生当中不光在欧洲和美国在那些有着数十亿人口的快速发展中国家比如印度和中国都在发生着。IPv4就是不能胜任了就算勉强可以也没有足够的地址来满足需求。
这些事情已经在发生当中,不光在欧洲和美国,在那些有着数十亿人口的快速发展中国家,比如印度和中国,都在发生着。 IPv4 就是不能胜任了,就算勉强可以,也没有足够的地址来满足需求。
下面是迁移到IPv6所能带来的一些好处。
下面是迁移到 IPv6 所能带来的一些好处。
- 简化了的IPv6数据包头部
- 简化了的 IPv6 数据包头部
- 更大的地址空间
- IPv6层次化的分址方法
- IPv6的扩展性扩充性
@ -76,7 +76,7 @@ IPv6已经开发了很多年且已在全世界网络中投入使用与IPv4
- 集成移动能力
- 集成了安全增强
我喜欢从其**数据包层的探究来分析IPv6, 同时也会去探究IPv6中可用的许多种类型的包头部**,但限于篇幅,同时考试中也不会考到这两点,所以就不包含这两方面的内容了。而着重在为考试和成为一名思科工程师,所需要掌握的内容上。
我喜欢从其**数据包层的探究来分析IPv6, 同时也会去探究 IPv6 中可用的许多种类型的包头部**,但限于篇幅,同时考试中也不会考到这两点,所以就不包含这两方面的内容了。而着重在为考试和成为一名思科工程师,所需要掌握的内容上。
### 十六进制计数
@ -100,7 +100,7 @@ IPv6已经开发了很多年且已在全世界网络中投入使用与IPv4
| `2` -- 二进制 | `8` | `4` | `2` | `1` |
| `16` -- 十六进制 | `4096` | `256` | `16` | `1` |
可以看出每一位都从其右边的那位继承了数值。十进制基数是`10`乘`1`。二进制是`1`, 同时`1`乘了计数系统的`2`。如对三种计数系统的最后一个十六进制数位进行比较就会发现将十六进制作为IPv6分址首选格式的原因了。
可以看出每一位都从其右边的那位继承了数值。十进制基数是`10`乘`1`。二进制是`1`, 同时`1`乘了计数系统的`2`。如对三种计数系统的最后一个十六进制数位进行比较,就会发现将十六进制作为 IPv6 分址首选格式的原因了。
| 十进制 | 二进制 | 十六进制 |
| -- | -- | -- |
@ -121,9 +121,9 @@ IPv6已经开发了很多年且已在全世界网络中投入使用与IPv4
| `14` | `1110` | `E` |
| `15` | `1111` | `F` |
为提供足够的地址来满足我们在今后许多年的需求IPv6已被设计成可以提供数以百亿亿的地址。为做到这点计数范围从`32`位二进制数,扩展到`128`位。每`4`位可用一个十六进制数位表示(这可从上面的图表看出)。逻辑上推断就是`2`个十六进制位给出的是`8`位二进制数,也就是一个字节。
为提供足够的地址来满足我们在今后许多年的需求, IPv6 已被设计成可以提供数以百亿亿的地址。为做到这点,计数范围从`32`位二进制数,扩展到`128`位。每`4`位可用一个十六进制数位表示(这可从上面的图表看出)。逻辑上推断就是`2`个十六进制位给出的是`8`位二进制数,也就是一个字节。
一个IPv6地址有`128`位长,又被分为`8`组的`16`位,在以完整格式写出时,用冒号将每组分开。每`4`位十六进制数的范围是`0000`到`FFFF`其中F是十六进制计数方法中最高的数。
一个 IPv6 地址有`128`位长,又被分为`8`组的`16`位,在以完整格式写出时,用冒号将每组分开。每`4`位十六进制数的范围是`0000`到`FFFF`,其中 F 是十六进制计数方法中最高的数。
| 第`8`组 | 第`7`组 | 第`6`组 | 第`5`组 | 第`4`组 | 第`3`组 | 第`2`组 | 第`1`组 |
| -- | -- | -- | -- | -- | -- | -- | -- |
@ -135,39 +135,39 @@ IPv6已经开发了很多年且已在全世界网络中投入使用与IPv4
**IPv6 Addressing**
我们已经知道IPv6用到`128`位的地址。因为**此种地址格式不同于我们所熟悉的IPv4地址格式在初次见到时通常会犯迷糊**。但是,一旦掌握了,那么就知道其逻辑和结构都十分简单。**这些`128`位的IPv6地址使用了十六进制数值**(也就是说,`0`到`9`以及字母`A`到`F`)。**而在IPv4中子网掩码既可以用CIDR表示法表示**(比如`/16`或`/32`, **也可以用点分十进制表示法表示**dotted-decimal notation, 比如`255.255.0.0`或`255.255.255.255`, 但**在IPv6中子网掩码只用CIDR表示法表示**因为IPv6地址的长度很长。全球范围内的`128`位IPv6地址由下面`3`部分组成。
我们已经知道, IPv6 用到`128`位的地址。因为**此种地址格式不同于我们所熟悉的 IPv4 地址格式,在初次见到时通常会犯迷糊**。但是,一旦掌握了,那么就知道其逻辑和结构都十分简单。**这些`128`位的 IPv6 地址,使用了十六进制数值**(也就是说,`0`到`9`以及字母`A`到`F`)。**而在 IPv4 中,子网掩码既可以用 CIDR 表示法表示**(比如`/16`或`/32`, **也可以用点分十进制表示法表示**dotted-decimal notation, 比如`255.255.0.0`或`255.255.255.255`, 但**在 IPv6 中,子网掩码只用 CIDR 表示法表示**,因为 IPv6 地址的长度很长。全球范围内的`128`位 IPv6 地址,由下面`3`部分组成。
- 由服务商分配的前缀the provider-assigned prefix
- 站点前缀the site prefix
- 接口或主机IDthe interface or host ID
- 接口或主机 ID the interface or host ID
所谓服务商分配的前缀,也被称作**全球地址空间**(the global address space),是一个**48位**的前缀,又被分为下面的`3`部分。
- `16`位保留的IPv6全球前缀the 16-bit reserved IPv6 global prefix
- `16`位保留的 IPv6 全球前缀the 16-bit reserved IPv6 global prefix
- `16`位服务商持有的前缀the 16-bit provider-owned prefix
- `16`位服务商分配给其客户的前缀the 16-bit provider-assigned prefix
**IPv6全球前缀用于表示IPv6全球地址空间**the IPv6 global address space。**所有IPv6全球互联网地址都位于从`2000::/16`到`3FFF::/16`的范围**。而`16`位**服务商持有的IPv6前缀是IANA分配给服务商且归其所有的**。ISP持有前缀处于`0000::/32`到`FFFF::/32`范围。
**IPv6全球前缀用于表示 IPv6 全球地址空间**the IPv6 global address space。**所有 IPv6 全球互联网地址,都位于从`2000::/16`到`3FFF::/16`的范围**。而`16`位**服务商持有的 IPv6 前缀,是 IANA 分配给服务商,且归其所有的**。 ISP 持有前缀,处于`0000::/32`到`FFFF::/32`范围。
**接下来的`16`位表示由实际服务提供商从其分到前缀地址空间中再分配给某个组织的IPv6前缀**。该前缀处于`0000::/48`到`FFFF::/48`范围。于是,前`48`位就共同构成了IPv6地址第一部分 -- 服务提供商分配的前缀如下图7.1所示。
**接下来的`16`位,表示由实际服务提供商从其分到前缀地址空间中,再分配给某个组织的 IPv6 前缀**。该前缀处于`0000::/48`到`FFFF::/48`范围。于是,前`48`位就共同构成了 IPv6 地址第一部分 -- 服务提供商分配的前缀如下图7.1所示。
![`48`位服务提供商分配的IPv6前缀](images/0701.png)
![`48`位服务提供商分配的 IPv6 前缀](images/0701.png)
*图7.1 -- `48`位服务提供商分配的IPv6前缀*
*图7.1 -- `48`位服务提供商分配的 IPv6 前缀*
在`48`位服务商分配的前缀之后,紧接着的`16`位就是**站点前缀**。站点前缀的子网掩码长度是`/64`, 该子网掩码已经包括了之前的`48`位服务商分配的前缀。**此前缀长度允许在每个站点前缀中有`2`的`64`次幂个地址**。图7.2演示了该`16`位站点前缀。
![`16`位的IPv6站点前缀](images/0702.png)
![`16`位的 IPv6 站点前缀](images/0702.png)
*图7.2 -- `16`位的IPv6站点前缀*
*图7.2 -- `16`位的 IPv6 站点前缀*
而在站点前缀之后,接下来的`64`位就用于接口或主机的分址了。**IPv6地址的接口或主机ID部分表示了某个IPv6子网上的某台网络设备或主机**。至于确定接口或主机地址的不同方式在今天的课程稍后会详细讲到。图7.3说明了IPv6的这些前缀是如何分配的。
而在站点前缀之后,接下来的`64`位就用于接口或主机的分址了。**IPv6地址的接口或主机 ID 部分,表示了某个 IPv6 子网上的某台网络设备或主机**。至于确定接口或主机地址的不同方式在今天的课程稍后会详细讲到。图7.3说明了 IPv6 的这些前缀是如何分配的。
![IPv6前缀的分配](images/0703.png)
*图7.3 -- IPv6前缀的分配*
参考图7.3, 客户一旦收到由ISP提供的`/48`前缀就可以该前缀范围内对站点前缀和主机或接口地址进行自由分配了。基于可用的地址空间全部容量任何单一机构客户只需一个的服务商分配前缀机构网络上的所有设备就保证可以分配到一个唯一IPv6全球地址。因此IPv6绝对不需要NAT这样的技术。
参考图7.3, 客户一旦收到由 ISP 提供的`/48`前缀,就可以该前缀范围内,对站点前缀和主机或接口地址进行自由分配了。基于可用的地址空间全部容量,任何单一机构客户,只需一个的服务商分配前缀,机构网络上的所有设备就保证可以分配到一个唯一 IPv6 全球地址。因此, IPv6 绝对不需要 NAT 这样的技术。
### IPv6地址表示法
@ -177,23 +177,23 @@ IPv6地址可像下面这三种方式进行表示。
- 首选的或者说完整地址表示/形式
- 压缩的表示法
- 带有一个嵌入了IPv4地址的IPv6地址
- 带有一个嵌入了 IPv4 地址的 IPv6 地址
尽管在以文本格式表示`128`位IPv6地址时**首选形式或表示法是最常用的方式****熟悉其它两种IPv6地址表示法**也很重要。下面会对这三种方式进行说明。
尽管在以文本格式表示`128`位 IPv6 地址时,**首选形式或表示法是最常用的方式****熟悉其它两种 IPv6 地址表示法**也很重要。下面会对这三种方式进行说明。
### 首选形式
**The Prefered Form**
**IPv6地址的首选表示法**(the prefered representation for an IPv6 address),有着最长的格式,又被称作**IPv6地址的完整形式**(the complete form of an IPv6 address)。此格式表示法使用`32`个十六进制字符以构成一个IPv6地址。通过将某地址写作共八组的十六进制字段用冒号将这`8`个字段分开(比如,`3FFF:1234:ABCD:5678:020C:CEFE:FEA7:F3A0`)。
**IPv6地址的首选表示法**(the prefered representation for an IPv6 address),有着最长的格式,又被称作**IPv6地址的完整形式**(the complete form of an IPv6 address)。此格式表示法使用`32`个十六进制字符,以构成一个 IPv6 地址。通过将某地址写作共八组的十六进制字段,用冒号将这`8`个字段分开(比如,`3FFF:1234:ABCD:5678:020C:CEFE:FEA7:F3A0`)。
每个`16`位字段由4个十六进制字符表示那么每个字符就表示了`4`位。每个`16`位十六进制字段,可以是`0x0000`和`0xFFFF`之间的值,但就如同今天后面讲到的那样,**第一组的一些数值已被保留,那么所有可能的数值都不被使用**as will be described later in this module, different values have been reserved for use in the first `16` bits, so all possible values are not used。在书写IPv6地址时**十六进制字符不区分大小写**。也就是说,`2001:ABCD:0000`和`2001:abcd:0000`是完全一样的。IPv6地址表示法的完整形式在下图7.4中有演示。
每个`16`位字段,由 4 个十六进制字符表示,那么每个字符就表示了`4`位。每个`16`位十六进制字段,可以是`0x0000`和`0xFFFF`之间的值,但就如同今天后面讲到的那样,**第一组的一些数值已被保留,那么所有可能的数值都不被使用**as will be described later in this module, different values have been reserved for use in the first `16` bits, so all possible values are not used。在书写 IPv6 地址时,**十六进制字符不区分大小写**。也就是说,`2001:ABCD:0000`和`2001:abcd:0000`是完全一样的。 IPv6 地址表示法的完整形式在下图7.4中有演示。
![IPv6地址表示法的首选形式](images/0704.png)
*图7.4 -- IPv6地址表示法的首选形式*
下面的这些IPv6地址是完整形式下的有效IPv6地址实例。
下面的这些 IPv6 地址,是完整形式下的有效 IPv6 地址实例。
- `0000:0000:0000:0000:0000:0000:0000:0001`
- `2001:0000:0000:1234:0000:5678:af23:bcd5`
@ -205,13 +205,13 @@ IPv6地址可像下面这三种方式进行表示。
**Compressed Representation**
压缩的表示法允许以两种压缩方式之一对IPv6地址进行压缩。第一种压缩方式允许使用**一对**冒号(`::`, 对**一个有效IPv6地址中的那些由`0s`构成的连续`16`位字段的连续的`0`值或者IPv6地址中前面的`0s`**,进行压缩。在使用这种方式时,**务必要记住双冒号在一个IPv6地址中只能使用一次**。
压缩的表示法,允许以两种压缩方式之一,对 IPv6 地址进行压缩。第一种压缩方式,允许使用**一对**冒号(`::`, 对**一个有效 IPv6 地址中的那些由`0s`构成的连续`16`位字段的连续的`0`值,或者 IPv6 地址中前面的`0s`**,进行压缩。在使用这种方式时,**务必要记住,双冒号在一个 IPv6 地址中,只能使用一次**。
在用到压缩格式时,各个节点及各台路由器,负责去对双冒号两侧的位数进行计数,以判断出该双冒号究竟表示了多少个`0s`。表7.1显示了那些IPv6地址的首选形式及其压缩表示法。
在用到压缩格式时,各个节点及各台路由器,负责去对双冒号两侧的位数进行计数,以判断出该双冒号究竟表示了多少个`0s`。表7.1显示了那些 IPv6 地址的首选形式及其压缩表示法。
*表7.1 -- 首选和压缩形式下的完整IPv6地址*
*表7.1 -- 首选和压缩形式下的完整 IPv6 地址*
| 完整IPv6地址表示法 | 压缩的IPv6地址表示法 |
| 完整 IPv6 地址表示法 | 压缩的 IPv6 地址表示法 |
| -- | -- |
| `0000:0000:0000:0000:0000:0000:0000:0001` | `::0001` |
| `2001:0000:0000:1234:0000:5678:af23:bcd5` | `2001::1234:0:5678:af23:bcd5` |
@ -221,13 +221,13 @@ IPv6地址可像下面这三种方式进行表示。
| `0000:0000:0000:0000:0000:0000:172.16.255.1` | `::172.16.255.1` |
| `0000:0000:0000:0000:0000:0000:0000:0000` | `::` |
跟前面指出的那样在单个的IPv6地址中双冒号不能多于一次地使用。比如说如要对这个完整IPv6地址`2001:0000:0000:1234:0000:0000:af23:bcd5`以压缩形式表示,那么你就只能使用双冒号一次,就算在该地址中有两组连续的`0`字符串。那么,在尝试将该地址压缩成`2001::1234::af23:bcd5`就被看成是非法的但是此IPv6地址既可以压缩成`2001::1234:0:0:af23:bcd5`, 也可以压缩成`2001:0:0:1234::af23:bcd5`, 取决于自己喜好。
跟前面指出的那样,在单个的 IPv6 地址中,双冒号不能多于一次地使用。比如说,如要对这个完整 IPv6 地址`2001:0000:0000:1234:0000:0000:af23:bcd5`以压缩形式表示,那么你就只能使用双冒号一次,就算在该地址中有两组连续的`0`字符串。那么,在尝试将该地址压缩成`2001::1234::af23:bcd5`,就被看成是非法的;但是此 IPv6 地址既可以压缩成`2001::1234:0:0:af23:bcd5`, 也可以压缩成`2001:0:0:1234::af23:bcd5`, 取决于自己喜好。
第二种IPv6压缩地址表示法对于**单个的`16`位字段,及前导`0s`可从该IPv6地址中省略成单个的`0`**。在使用该方法时,如某个`16`位字段都是`0`, 那么就必须用一个`0`来表示此字段。在这种情况下,并非所有的`0`都能省略。表7.2中展示了首选形式的IPv6地址以及它们怎样通过第二种IPv6压缩形式表示法进行压缩。
第二种 IPv6 压缩地址表示法,对于**单个的`16`位字段,及前导`0s`,可从该 IPv6 地址中省略成单个的`0`**。在使用该方法时,如某个`16`位字段都是`0`, 那么就必须用一个`0`来表示此字段。在这种情况下,并非所有的`0`都能省略。表7.2中展示了首选形式的 IPv6 地址,以及它们怎样通过第二种 IPv6 压缩形式表示法进行压缩。
*表7.2 -- 以替代的压缩形式表示的完整IPv6地址*
*表7.2 -- 以替代的压缩形式表示的完整 IPv6 地址*
| 完整IPv6地址表示法 | 压缩IPv6地址表示法 |
| 完整 IPv6 地址表示法 | 压缩 IPv6 地址表示法 |
| -- | -- |
| `0000:0123:0abc:0000:04b0:0678:f000:0001` | `::123:abc:0:4b0:678:f000:1` |
| `2001:0000:0000:1234:0000:5678:af23:bcd5` | `2001::1234:0:5678:af23:bcd5` |
@ -237,30 +237,30 @@ IPv6地址可像下面这三种方式进行表示。
| `0000:0000:0000:0000:0000:0000:172.16.255.1` | `::172.16.255.1` |
| `0000:0000:0000:0000:0000:0000:0000:0000` | `::` |
这里就有了两种以压缩形式表示完整IPv6地址的方法要记住**两种方法之间并不互相排斥**。也就是说在表示一个IPv6地址时可以同时使用这两种方法。当某个完整IPv6地址既包含了连续`0s`字符串,又在其它字段中有前导`0s`时这经常会用到。表7.3展示了一些既包含了连续`0s`字符串,又有前导`0s`的一些IPv6地址的完整形式以及如何将这些地址表示成压缩形式。
这里就有了两种以压缩形式表示完整 IPv6 地址的方法,要记住,**两种方法之间并不互相排斥**。也就是说,在表示一个 IPv6 地址时,可以同时使用这两种方法。当某个完整 IPv6 地址既包含了连续`0s`字符串,又在其它字段中有前导`0s`时这经常会用到。表7.3展示了一些既包含了连续`0s`字符串,又有前导`0s`的一些 IPv6 地址的完整形式,以及如何将这些地址表示成压缩形式。
*表7.3 -- 使用了两种压缩格式方法的完整IPv6地址*
*表7.3 -- 使用了两种压缩格式方法的完整 IPv6 地址*
| 完整IPv6地址表示法 | 压缩IPv6地址表示法 |
| 完整 IPv6 地址表示法 | 压缩 IPv6 地址表示法 |
| -- | -- |
| `0000:0000:0000:0000:1a2b:000c:f123:4567` | `::1a2b:c:f123:4567` |
| `FEC0:0004:AB10:00CD:1234:0000:0000:6789` | `FEC0:4:AB10:CD:1234::6789` |
| `3FFF:0c00:0000:1010:1A2B:0000:0000:DE0F` | `3FFF:c00:0:1010:1A2B::DE0F` |
| `2001:0000:0000:1234:0000:5678:af23:00d5` | `2001::1234:0:5678:af23:d5` |
### 带有一个嵌入的IPv4地址的IPv6地址
### 带有一个嵌入的 IPv4 地址的 IPv6 地址
**IPv6 Addresses with an Embedded IPv4 Address**
这是**第三种IPv6地址表示法用于在IPv6地址内部使用一个IPv4地址**。尽管这也是有效的IPv6地址但请记住这种方法是不赞成的做法同时也在考虑废弃这种方法因为该方法仅适用于从IPv4到IPv6的过渡。
这是**第三种 IPv6 地址表示法,用于在 IPv6 地址内部使用一个 IPv4 地址**。尽管这也是有效的 IPv6 地址,但请记住这种方法是不赞成的做法,同时也在考虑废弃这种方法,因为该方法仅适用于从 IPv4 IPv6 的过渡。
## IPv6地址的不同类型
**The Different IPv6 Address Types**
**IPv4支持4中不同类别的地址分别是任意播Anycast、广播(Broadcast)、多播(Multicast)及单播(Unicast)地址**。尽管在本教程之前的模块中并未用到任意播一词, 但要记住,**任意播地址并非特殊类型的地址**。相反,**一个任意播地址简单地就是一个分配给多个接口的IP地址**。常见的使用了任意播的技术包括IP多播应用(IP Multicast implementations),以及`6to4`中继应用(`6to4` relay implementation)。
**IPv4支持 4 中不同类别的地址,分别是任意播( Anycast )、广播(Broadcast)、多播(Multicast)及单播(Unicast)地址**。尽管在本教程之前的模块中并未用到任意播一词, 但要记住,**任意播地址并非特殊类型的地址**。相反,**一个任意播地址简单地就是一个分配给多个接口的 IP 地址**。常见的使用了任意播的技术包括 IP 多播应用(IP Multicast implementations),以及`6to4`中继应用(`6to4` relay implementation)。
>**注意:** `6to4`是一种IPv4迁移到IPv6的过渡机制。对于CCNA考试来说只需知道有这么个东西就行了。
>**注意:** `6to4`是一种 IPv4 迁移到 IPv6 的过渡机制。对于 CCNA 考试来说,只需知道有这么个东西就行了。
在任意播寻址方式下,**设备使用从路由协议度量值上看离它们最近的那个公共地址**(the common address)。假如该主要地址不可达时就会使用下一个最近的地址with Anycast adressing, devices use the common address that is closest to them based on routing protocol metric. The next closest address is then used in the event that the primary address is no longer reachable。此概念在下图7.5中进行了演示。
@ -268,13 +268,13 @@ IPv6地址可像下面这三种方式进行表示。
*图7.5 -- 理解任意播寻址方式*
在图7.5中,`R1`和`R2`都有一个配置了公共地址`15.1.1.254/32`的环回接口`Loopback 254`。该前缀此时会经由EIGRP进行通告。默认情况下`R1`和`R2`都会经由它们各自的相应环回接口,优先选择`15.1.1.254/32`前缀,因为该前缀是一个直接连接的子网。因此,两台路由器上所使用的公共地址绝不会发生冲突。
在图7.5中,`R1`和`R2`都有一个配置了公共地址`15.1.1.254/32`的环回接口`Loopback 254`。该前缀此时会经由 EIGRP 进行通告。默认情况下,`R1`和`R2`都会经由它们各自的相应环回接口,优先选择`15.1.1.254/32`前缀,因为该前缀是一个直接连接的子网。因此,两台路由器上所使用的公共地址绝不会发生冲突。
假定是在一般EIGRP度量值计算下则`R3`和`R5`都会优先选择`R1`通告的那个任意播地址the Anycast address, 这是由于其有着较小的内部网关协议Interior Gateway Protocol, IGP度量值(due to the lower IGP metric)。同样`R4`和`R6`则会优先选择R3通告的那个任意播地址也是由于其有着较小的IGP度量值。要是`R1`或`R3`中的某台失效,网络中的路由器就会使用由剩下的那台路由器通告的任意播地址了。某个组织在应用任意播分址时,既可以使用`RFC 1918`中定义的地址空间中的某个单播地址(私有地址),也可以使用其公网地址块中的某个单播地址。
假定是在一般 EIGRP 度量值计算下,则`R3`和`R5`都会优先选择`R1`通告的那个任意播地址the Anycast address, 这是由于其有着较小的内部网关协议Interior Gateway Protocol, IGP度量值(due to the lower IGP metric)。同样`R4`和`R6`则会优先选择 R3 通告的那个任意播地址,也是由于其有着较小的 IGP 度量值。要是`R1`或`R3`中的某台失效,网络中的路由器就会使用由剩下的那台路由器通告的任意播地址了。某个组织在应用任意播分址时,既可以使用`RFC 1918`中定义的地址空间中的某个单播地址(私有地址),也可以使用其公网地址块中的某个单播地址。
> **注意:** 当前的CCNA考试并不要求你采用任何的任意播分址或解决方案。但熟悉此概念是必要的。在完成路由章节的学习后你将更为明白。*译者注:*关于任意播,可以参看[wikipedia.org/wiki/Anycast](https://en.wikipedia.org/wiki/Anycast),简单地说,任意播是一种冗余方法,可用来做负载均衡、加快访问速度。
> **注意:** 当前的 CCNA 考试并不要求你采用任何的任意播分址或解决方案。但熟悉此概念是必要的。在完成路由章节的学习后,你将更为明白。*译者注:*关于任意播,可以参看[wikipedia.org/wiki/Anycast](https://en.wikipedia.org/wiki/Anycast),简单地说,任意播是一种冗余方法,可用来做负载均衡、加快访问速度。
在CCNA层次IPv4的广播、多播及单播地址都无需更为详尽地阐述本课程及本模块都不会对它们进行更为详细的说明。与IPv4支持这四种类型的地址相比IPv6废除了广播地址同时取而代之的仅支持以下类型的地址。
CCNA 层次, IPv4 的广播、多播及单播地址都无需更为详尽地阐述,本课程及本模块都不会对它们进行更为详细的说明。与 IPv4 支持这四种类型的地址相比, IPv6 废除了广播地址,同时取而代之的仅支持以下类型的地址。
- 本地链路地址Link-Local addresses
- 站点本地地址Site-Local addresses
@ -288,41 +288,41 @@ IPv6地址可像下面这三种方式进行表示。
**Link-Local Addresses**
**IPv6本地链路地址只能用在本地链路上**(也就是一个设备间所共享的网段),**是在某个接口上开启了IPv6时自动分配给接口的**。这些地址分配自本地链路前缀the Link-Local prefix**`FE80::/10`**。记住`FE80::/10`等价于`FE80:0:0:0:0:0:0:0/10`, 又可以表示为`FE80:0000:0000:0000:0000:0000:0000:0000/10`。为了构成该地址,从第`11`到`64`位被设置为`0`, 同时接口的`EUI-64`(Extended Unique Identifier 6464位扩展唯一标识给追加到本地链路地址上去作为下一顺位的`64`位the lower-order `64` bits。**EUI-64是由IEEE分配给接口产商的`24`位ID(Organization Unified Identifier, OUI),以及产商分配给其产品的`40`位值构成**。本模块稍后会更为详细地说明`EUI-64`分址。图7.6演示了本地链路地址的格式。
**IPv6本地链路地址只能用在本地链路上**(也就是一个设备间所共享的网段),**是在某个接口上开启了 IPv6 时,自动分配给接口的**。这些地址分配自本地链路前缀the Link-Local prefix**`FE80::/10`**。记住`FE80::/10`等价于`FE80:0:0:0:0:0:0:0/10`, 又可以表示为`FE80:0000:0000:0000:0000:0000:0000:0000/10`。为了构成该地址,从第`11`到`64`位被设置为`0`, 同时接口的`EUI-64`(Extended Unique Identifier 64 64 位扩展唯一标识)给追加到本地链路地址上去,作为下一顺位的`64`位the lower-order `64` bits。**EUI-64是由 IEEE 分配给接口产商的`24`位ID(Organization Unified Identifier, OUI),以及产商分配给其产品的`40`位值构成**。本模块稍后会更为详细地说明`EUI-64`分址。图7.6演示了本地链路地址的格式。
![IPv6本地链路分址](images/0706.png)
*图7.6 -- IPv6本地链路分址*
**本地链路地址是唯一的,一旦分配给了某个接口,就不再改变**。这就是说某个接口在分配了一个公网IPv6地址后比如`2001:1000::1/64`就算该公网IPv6前缀发生改变(变成`2001:2000::1/64`)本地链路地址也是不会改变的。这允许主机或路由器在IPv6全球互联网地址改变时对其邻居始终保持可达。而**IPv6路由器是不会转发那些以本地链路地址作为源或目的地址的数据包到其它IPv6路由器的**。
**本地链路地址是唯一的,一旦分配给了某个接口,就不再改变**。这就是说,某个接口在分配了一个公网 IPv6 地址后(比如,`2001:1000::1/64`),就算该公网 IPv6 前缀发生改变(变成`2001:2000::1/64`),本地链路地址也是不会改变的。这允许主机或路由器在 IPv6 全球互联网地址改变时,对其邻居始终保持可达。而**IPv6路由器是不会转发那些以本地链路地址作为源或目的地址的数据包到其它 IPv6 路由器的**。
### 站点本地地址
**Site-Local Addresses**
站点本地地址是**那些仅在某个站点内部使用的地址**。与本地链路地址不同,必须**在网络设备上手动为其配置站点本地地址**。这些地址就是在IPv6中与RFC 1918所定义的私有IPv4地址等价的地址对于那些没有可全球路由IPv6地址空间的组织可以使用这些地址。在IPv6互联网上这些地址是不可路由的。
站点本地地址是**那些仅在某个站点内部使用的地址**。与本地链路地址不同,必须**在网络设备上手动为其配置站点本地地址**。这些地址就是在 IPv6 与RFC 1918所定义的私有 IPv4 地址等价的地址,对于那些没有可全球路由 IPv6 地址空间的组织,可以使用这些地址。在 IPv6 互联网上,这些地址是不可路由的。
尽管在IPv6上进行NAT是可能的但绝不建议这么做。理由就是有着大得多的IPv6地址hence, the reason for the much larger IPv6 addresses。站点本地地址是由`FEC0::/10`前缀、该前缀之后的54位子网ID以及同样的为本地链路地址所用到的EUI-64格式的接口ID组成。与本地链路地址中设置为0的54位相比站点本地地址中的54位被用于构建不同的IPv6前缀最多2的54次幂个。下图7.7演示了站点本地地址的格式。
尽管在 IPv6 上进行 NAT 是可能的,但绝不建议这么做。理由就是有着大得多的 IPv6 地址hence, the reason for the much larger IPv6 addresses。站点本地地址是由`FEC0::/10`前缀、该前缀之后的 54 位子网 ID 以及同样的为本地链路地址所用到的EUI-64格式的接口 ID 组成。与本地链路地址中设置为 0 54 位相比,站点本地地址中的 54 位,被用于构建不同的 IPv6 前缀(最多 2 54 次幂个。下图7.7演示了站点本地地址的格式。
![IPv6站点本地分址](images/0707.png)
*图7.7 -- IPv6站点本地分址*
尽管在本章节中有对IPv6站点本地地址进行说明同时在思科IOS软件中仍有对其的支持但要知道**这些地址已被RFC 3879废弃站点本地地址Deprecating Site Local Addresses所废弃**。与此同时,**RFC 4193(唯一本地IPv6单播地址Unique Local IPv6 Unicast Addresses又阐述本地唯一地址Unique-Local addresses, ULAs**, 本地唯一地址提供了站点本地地址的功能它们在IPv6全球互联网上也是不可路由的仅能在某个站点内部路由。
尽管在本章节中有对 IPv6 站点本地地址进行说明,同时在思科 IOS 软件中仍有对其的支持,但要知道**这些地址已被RFC 3879废弃站点本地地址Deprecating Site Local Addresses所废弃**。与此同时,**RFC 4193(唯一本地 IPv6 单播地址Unique Local IPv6 Unicast Addresses又阐述本地唯一地址Unique-Local addresses, ULAs**, 本地唯一地址提供了站点本地地址的功能,它们在 IPv6 全球互联网上也是不可路由的,仅能在某个站点内部路由。
本地唯一地址分配自`FC00::/7`这个IPv6地址块该地址块又被划分成两个`/8`的地址块分别作为分配组和随机组the assigned and random groups。那么这两组就分别是`FC00::/8`和`FD00::/8`了。`FC00::/8`这个地址块是由一个分配机构an allocation authority管理其使用到的`/48s`,同时`FD00::/8`地址块则是通过在其后追加上随机生成的`40`位字符串,得到的一个有效`/48`地址块的。
本地唯一地址分配自`FC00::/7`这个 IPv6 地址块,该地址块又被划分成两个`/8`的地址块分别作为分配组和随机组the assigned and random groups。那么这两组就分别是`FC00::/8`和`FD00::/8`了。`FC00::/8`这个地址块是由一个分配机构an allocation authority管理其使用到的`/48s`,同时`FD00::/8`地址块则是通过在其后追加上随机生成的`40`位字符串,得到的一个有效`/48`地址块的。
### 可聚合全球单播地址
**Aggregatable Global Unicast Addresses**
**可聚合全球单播地址就是那些用于一般IPv6流量传输、IPv6互联网的IPv6地址了**。这些地址与IPv4中用到的公网地址相似。而从网络分址角度看每个IPv6全球单播地址都**是由三个主要部分构成的**:自服务商处收到的前缀(`48`位长)、站点前缀(`16`位长),以及主机部分(`64`位长。这就构成了IPv6中所用到的`128`位地址了。
**可聚合全球单播地址,就是那些用于一般 IPv6 流量传输、 IPv6 互联网的 IPv6 地址了**。这些地址与 IPv4 中用到的公网地址相似。而从网络分址角度看,每个 IPv6 全球单播地址都**是由三个主要部分构成的**:自服务商处收到的前缀(`48`位长)、站点前缀(`16`位长),以及主机部分(`64`位长)。这就构成了 IPv6 中所用到的`128`位地址了。
如同本模块前面提到的服务商分配的前缀是由IPv6服务提供商分配给作为其客户的某家组织的。默认情况下这些前缀用到`/48`的前缀长度。此外这些前缀又是从该服务提供商所拥有的IPv6地址空间中分配的也就是`/32`前缀长度。每家服务提供商都将有着其自己的IPv6地址空间同时由一家服务提供商分配的IPv6前缀不能在另一家的网络上使用。
如同本模块前面提到的,服务商分配的前缀,是由 IPv6 服务提供商分配给作为其客户的某家组织的。默认情况下,这些前缀用到`/48`的前缀长度。此外,这些前缀又是从该服务提供商所拥有的 IPv6 地址空间中分配的(也就是`/32`前缀长度)。每家服务提供商都将有着其自己的 IPv6 地址空间,同时由一家服务提供商分配的 IPv6 前缀,不能在另一家的网络上使用。
而在某个站点内部,管理员此时就能通过用于子网划分的第`49`到`64`位,将服务提供商分配的`48`位前缀,划分成`64`位的站点前缀,从而可以得到`65535`个不同的可在其网络中使用的子网。IPv6地址的主机部分表示该IPv6子网上的某台网络设备或主机。而这又是通过IPv6地址的低`64`位表示的this is represented by the low-order 64 bits of the IPv6 address
而在某个站点内部,管理员此时就能通过用于子网划分的第`49`到`64`位,将服务提供商分配的`48`位前缀,划分成`64`位的站点前缀,从而可以得到`65535`个不同的,可在其网络中使用的子网。 IPv6 地址的主机部分表示该 IPv6 子网上的某台网络设备或主机。而这又是通过 IPv6 地址的低`64`位表示的this is represented by the low-order 64 bits of the IPv6 address
IPv6的可聚合全球单播地址是由互联网号码分配局the Internet Assigned Numbers Authority, IANA分配的这些地址处于IPv6前缀`2000::/3`中。此前缀允许的可聚合全球单播地址范围是从`2000`到`3FFF`如下表7.4所示。
IPv6的可聚合全球单播地址是由互联网号码分配局the Internet Assigned Numbers Authority, IANA分配的这些地址处于 IPv6 前缀`2000::/3`中。此前缀允许的可聚合全球单播地址范围是从`2000`到`3FFF`如下表7.4所示。
*表7.4 -- IPv6可聚合全球单播地址*
@ -334,33 +334,33 @@ IPv6的可聚合全球单播地址是由互联网号码分配局the Intern
在本模块编写时,`2000::/3`IPv6地址块中仅分配使用了`3`个子网。这三个子网如下表7.5所示。
*表7.5 -- 由IANA所分配的IPv6可聚合全球单播地址*
*表7.5 -- 由 IANA 所分配的 IPv6 可聚合全球单播地址*
| IPv6全球前缀 | 二进制表示法 | 说明 |
| -- | -- | -- |
| `2001::/16` | `0010 0000 0000 0001` | 全球IPv6互联网(单播) |
| `2001::/16` | `0010 0000 0000 0001` | 全球 IPv6 互联网(单播) |
| `2002::/16` | `0010 0000 0000 0000` | `6to4`迁移前缀 |
| `3FFE::/16` | `0010 1111 1111 1110` | `6bone`前缀 |
> **注意:** 6to4迁移地址和6bone前缀将在本课程的后面说明。
> **注意:** 6to4迁移地址和 6bone 前缀将在本课程的后面说明。
在IPv6全球可聚合单播地址范围保留了一个叫做**ORCHID**`RFC 4843`中定义的覆盖可路由加密散列标识、Overlay Routable Cryptographic Hash Identifiers defined in RFC 4843特别的实验范围。ORCHID是用于加密散列标识的不可路由IPv6地址。这些地址使用IPv6前缀`2001:10::/28`。关于ORCHID地址的细节是超出当前CCNA考试要求范围的本模块或本课程都不会包含。
IPv6 全球可聚合单播地址范围,保留了一个叫做**ORCHID**`RFC 4843`中定义的覆盖可路由加密散列标识、Overlay Routable Cryptographic Hash Identifiers defined in RFC 4843特别的实验范围。 ORCHID 是用于加密散列标识的不可路由 IPv6 地址。这些地址使用 IPv6 前缀`2001:10::/28`。关于 ORCHID 地址的细节,是超出当前 CCNA 考试要求范围的,本模块或本课程都不会包含。
### 多播地址
**Multicast Addresses**
IPv6中用到的多播地址是从`FF00::/8`这个IPv6前缀中得到的。IPv6中的多播和IPv4中的多播运行的方式是不一样的。**IPv6中重度使用到IP多播**并用IP多播替换了一些诸如地址解析协议Address Resolution Protocol, ARP这样的IPv4协议。此外IPv6中还用多播来完成前缀通告及其重编号prefix advertisements and renumbering, 以及重复地址侦测Duplicate Address Detection, DAD等。本模块后面会对这些概念进行说明。
IPv6中用到的多播地址是从`FF00::/8`这个 IPv6 前缀中得到的。 IPv6 中的多播和 IPv4 中的多播,运行的方式是不一样的。**IPv6中重度使用到 IP 多播**,并用 IP 多播替换了一些诸如地址解析协议Address Resolution Protocol, ARP这样的 IPv4 协议。此外, IPv6 中还用多播来完成前缀通告及其重编号prefix advertisements and renumbering, 以及重复地址侦测Duplicate Address Detection, DAD等。本模块后面会对这些概念进行说明。
**IPv6中的多播数据包**不是通过使用TTL值来将其限制在本地网段上。代之以**使用多播地址内部的范围字段the Scope filed定义出其范围**。网段上的IPv6节点都侦听着多播包甚至也会发出多播包来交换信息。这样,IPv6网段上所有节点都知道在其同一网段上所有其它邻居节点了。下图7.8中演示了IPv6网络中用到的多播地址格式。
**IPv6中的多播数据包**,不是通过使用 TTL 值来将其限制在本地网段上。代之以**使用多播地址内部的范围字段the Scope filed定义出其范围**。网段上的 IPv6 节点,都侦听着多播包,甚至也会发出多播包来交换信息。这样,IPv6网段上所有节点都知道在其同一网段上所有其它邻居节点了。下图7.8中演示了 IPv6 网络中用到的多播地址格式。
![IPv6多播分址](images/0708.png)
*图7.8 -- IPv6多播分址*
如同图7.8中所演示的那样IPv6多播地址格式与其它之前学到的IPv6地址略有不同。IPv6多播地址的前`8`位表示多播前缀`FF::/8`。IPv6多播地址的标志字段the Flag field用于指明多播地址类型 -- 是永久的还是临时的。
如同图7.8中所演示的那样, IPv6 多播地址格式与其它之前学到的 IPv6 地址略有不同。 IPv6 多播地址的前`8`位表示多播前缀`FF::/8`。 IPv6 多播地址的标志字段the Flag field用于指明多播地址类型 -- 是永久的还是临时的。
**IPv6永久多播地址是由IANA分配的而IPv6临时地址则可用于多播预部署的测试**(Permanent IPv6 Multicast addresses are assigned by IANA, while temporary IPv6 Multicast addresses can be used in pre-deployment Multicast testing)。标志字段所包含的值可以是表7.6中所示的两个。
**IPv6永久多播地址是由 IANA 分配的,而 IPv6 临时地址则可用于多播预部署的测试**(Permanent IPv6 Multicast addresses are assigned by IANA, while temporary IPv6 Multicast addresses can be used in pre-deployment Multicast testing)。标志字段所包含的值可以是表7.6中所示的两个。
*表7.6 -- IPv6永久及临时多播地址*
@ -369,7 +369,7 @@ IPv6中用到的多播地址是从`FF00::/8`这个IPv6前缀中得到的。IP
| 永久 | `0000` | `0` |
| 临时 | `0001` | `1` |
多播地址中接下来的4位表示**多播范围**。在IPv6多播分址中该字段是一个**用于限制多播数据包发往网络其它区域的_强制_字段**this field is a mandatory field that restricts Multicast packets from being sent to other areas in the network。该字段本质上提供了与IPv4中所用到的TTL字段一样的功能。但是**在IPv6中范围的类型有好几种**下表7.7中列出了这些类型。
多播地址中接下来的 4 位表示**多播范围**。在 IPv6 多播分址中,该字段是一个**用于限制多播数据包发往网络其它区域的_强制_字段**this field is a mandatory field that restricts Multicast packets from being sent to other areas in the network。该字段本质上提供了与 IPv4 中所用到的 TTL 字段一样的功能。但是,**在 IPv6 中,范围的类型有好几种**下表7.7中列出了这些类型。
*表7.7 -- IPv6多播地址范围的类型*
@ -383,9 +383,9 @@ IPv6中用到的多播地址是从`FF00::/8`这个IPv6前缀中得到的。IP
| 组织范围Organization | `1000` | `8` |
| 全球范围Global | `1110` | `E` |
在这些IPv6多播前缀中又**保留了一些地址**。这些保留地址称作多播指定地址Multicast Assigned addresses, 如下表7.8中所示。
在这些 IPv6 多播前缀中,又**保留了一些地址**。这些保留地址称作多播指定地址Multicast Assigned addresses, 如下表7.8中所示。
*表7.8 -- 保留的IPv6多播地址*
*表7.8 -- 保留的 IPv6 多播地址*
| 地址 | 范围 | 说明 |
| -- | -- | -- |
@ -395,15 +395,15 @@ IPv6中用到的多播地址是从`FF00::/8`这个IPv6前缀中得到的。IP
| `FF02::2` | 本地链路 | 所有在本地链路范围内的路由器 |
| `FF05::2` | 站点 | 所有在本地站点范围内的路由器 |
除了这些地址外对路由器接口和网络主机上配置的每个单播和任意播地址都自动启用了一个节点询问多播地址a Solicited-Node Multicast address。此地址有着一个本地链路范围就是说该地址绝不会超出本地网段之外this address has a Link-Local scope, which means that it will never traverse farther than the local network segment。**节点询问多播地址用于以下两个目的取代IPv4的ARP和DAD**。
除了这些地址外对路由器接口和网络主机上配置的每个单播和任意播地址都自动启用了一个节点询问多播地址a Solicited-Node Multicast address。此地址有着一个本地链路范围就是说该地址绝不会超出本地网段之外this address has a Link-Local scope, which means that it will never traverse farther than the local network segment。**节点询问多播地址用于以下两个目的:取代 IPv4 ARP 和DAD**。
由于IPv6不会用到ARP那么节点询问多播地址就被网络主机和路由器用于获悉邻居设备的数据链路地址the Data Link address。这样就可以实现IPv6数据包向帧的转换并将帧发往IPv6主机和路由器了。DAD是IPv6邻居发现协议Neighbor Discovery Protocol, NDP的一部分, 在本模块的稍后会详细说明这个协议。DAD就是在设备在采用自动配置方法时将某个IPv6地址配置为其自己的地址之前检查该地址是否在本地网段上已被使用的方法。本质上DAD提供与IPv4中用到的无故ARPGratuitous ARP相似的功能。这些**节点询问多播地址**, 是由IPv6前缀`FF02::1:FF00:0000/104`定义出来的。它们的构成为前缀`FF02::1:FF00:0000/104`, 与单播或任意播地址低位序的`24`位结合而成。图7.9演示了这些节点询问多播地址的格式。
由于 IPv6 不会用到 ARP 那么节点询问多播地址就被网络主机和路由器用于获悉邻居设备的数据链路地址the Data Link address。这样就可以实现 IPv6 数据包向帧的转换,并将帧发往 IPv6 主机和路由器了。 DAD IPv6 邻居发现协议Neighbor Discovery Protocol, NDP的一部分, 在本模块的稍后会详细说明这个协议。 DAD 就是在设备在采用自动配置方法时,将某个 IPv6 地址配置为其自己的地址之前,检查该地址是否在本地网段上已被使用的方法。本质上, DAD 提供与 IPv4 中用到的无故 ARP Gratuitous ARP相似的功能。这些**节点询问多播地址**, 是由 IPv6 前缀`FF02::1:FF00:0000/104`定义出来的。它们的构成为前缀`FF02::1:FF00:0000/104`, 与单播或任意播地址低位序的`24`位结合而成。图7.9演示了这些节点询问多播地址的格式。
![IPv6节点询问多播地址](images/0709.png)
*图7.9 -- IPv6节点询问多播地址*
而作为与IPv4到二层以太网的多播映射的一个类似方案**IPv6提供了一种独特的方法来将三层IPv6多播地址映射到二层多播地址**。IPv6中的多播映射是通过在某多播地址的后`32`位加上一个`16`位前缀`33:33`这个前缀就是IPv6网络中定义的多播以太网前缀the defined Multicast Ethernet prefix for IPv6 Networks。其在下图7.10中,演示了所有位于本地接口范围前缀`FF02::2`上的路由器的以太网映射多播地址。
而作为与 IPv4 到二层以太网的多播映射的一个类似方案,**IPv6提供了一种独特的方法来将三层 IPv6 多播地址,映射到二层多播地址**。 IPv6 中的多播映射是通过在某多播地址的后`32`位加上一个`16`位前缀`33:33`,这个前缀就是 IPv6 网络中定义的多播以太网前缀the defined Multicast Ethernet prefix for IPv6 Networks。其在下图7.10中,演示了所有位于本地接口范围前缀`FF02::2`上的路由器的以太网映射多播地址。
![IPv6多播地址](images/0710.png)
@ -413,25 +413,25 @@ IPv6中用到的多播地址是从`FF00::/8`这个IPv6前缀中得到的。IP
**Anycast Addresses**
本章节的早前引入了任意播其可被简单地说成是一对最近的通信one-to-nearest communication, 这是因为基于路由协议度量值的那个最近的公共地址the nearest common address总是会为本地设备所优先选用。**在IPv6中并无为任意播特别分配的地址范围**,因为**任意播地址使用的是全球单播地址、站点本地地址,甚或本地链路地址**。尽管如此,仍然保留一个作为特殊用途的任意播地址。该特别地址被称为**子网路由器任意播地址**(the Subnet-Router Anycast address),是由前面的该子网`64`位单播前缀,及将后`64`位全部设置为`0`(比如`2001:1a2b:1111:d7e5::`)构成的。**任意播地址是绝对不能作为某个IPv6数据包的源地址的**。它们典型地用于诸如移动IPv6(Mobile IPv6等的协议中任意播地址的用途超出CCNA考试范围。
本章节的早前引入了任意播其可被简单地说成是一对最近的通信one-to-nearest communication, 这是因为基于路由协议度量值的那个最近的公共地址the nearest common address总是会为本地设备所优先选用。**在 IPv6 中,并无为任意播特别分配的地址范围**,因为**任意播地址使用的是全球单播地址、站点本地地址,甚或本地链路地址**。尽管如此,仍然保留一个作为特殊用途的任意播地址。该特别地址被称为**子网路由器任意播地址**(the Subnet-Router Anycast address),是由前面的该子网`64`位单播前缀,及将后`64`位全部设置为`0`(比如`2001:1a2b:1111:d7e5::`)构成的。**任意播地址是绝对不能作为某个 IPv6 数据包的源地址的**。它们典型地用于诸如移动IPv6(Mobile IPv6等的协议中任意播地址的用途超出 CCNA 考试范围。
### 环回地址
**Loopback Address**
IPv6中的环回地址用法和IPv4中的一样。与IPv4中用到的环回地址`127.0.0.1`相比每台设备也都有一个IPv6环回地址且该地址有设备自身使用。IPv6环回地址用的是前缀`::1`, 用首选地址格式表示为`0000:0000:0000:0000:0000:0000:0000:0001`。也就是说,在环回地址中,除了最后一位总是`1`外其它所有位都设置为0。当设备开启IPv6时总是会自动分配上这些地址且这些地址绝不会发生变化。
IPv6中的环回地址用法和 IPv4 中的一样。与 IPv4 中用到的环回地址`127.0.0.1`相比,每台设备也都有一个 IPv6 环回地址,且该地址有设备自身使用。 IPv6 环回地址用的是前缀`::1`, 用首选地址格式表示为`0000:0000:0000:0000:0000:0000:0000:0001`。也就是说,在环回地址中,除了最后一位总是`1`外,其它所有位都设置为 0 。当设备开启 IPv6 时,总是会自动分配上这些地址,且这些地址绝不会发生变化。
### 未指明地址
**Unspecified Addresses**
在IPv6分址里未指明地址就是那些没有指派到任何接口上的单播地址。这些地址表明设备缺少一个IPv6地址同时这些地址还用于某些诸如IPv6 DHCP和DAD等的用途。未指明地址是以IPv6地址中的全0值表示的可以使用前缀`::`进行书写。在首选格式下,这些地址表示为`0000:0000:0000:0000:0000:0000:0000:0000`。
IPv6 分址里,未指明地址就是那些没有指派到任何接口上的单播地址。这些地址表明设备缺少一个 IPv6 地址同时这些地址还用于某些诸如IPv6 DHCP和 DAD 等的用途。未指明地址是以 IPv6 地址中的全 0 值表示的,可以使用前缀`::`进行书写。在首选格式下,这些地址表示为`0000:0000:0000:0000:0000:0000:0000:0000`。
## 一些IPv6的协议和机制
## 一些 IPv6 的协议和机制
**IPv6 Protocols and Mechanisms**
尽管互联网协议版本`6`与版本`4`是相似的但在具体运作上前者与后者相比仍然有着显著的不同。本节对以下的一些IPv6协议和机制进行了说明。
尽管互联网协议版本`6`与版本`4`是相似的,但在具体运作上,前者与后者相比仍然有着显著的不同。本节对以下的一些 IPv6 协议和机制进行了说明。
- IPv6的ICMP
- IPv6邻居发现协议the IPv6 Neighbor Discovery Protocol, NDP
@ -442,13 +442,13 @@ IPv6中的环回地址用法和IPv4中的一样。与IPv4中用到的环回
**ICMP for IPv6**
ICMP用于将有关发往预期目的主机的IP数据的错误和其他信息汇报给源主机。在`RFC 2463`中,作为`58`号协议定义的ICMPv6支持ICMPv4的各种报文还包含了ICMPv6的一些额外报文。**ICMPv6作为一个如同TCP一样的属较高级别的协议意味着在IPv6数据包中ICMPv6是放在所有尽可能的扩展头部之后的**。下图7.11演示了ICMPv6数据包中所包含的字段。
ICMP用于将有关发往预期目的主机的 IP 数据的错误和其他信息,汇报给源主机。在`RFC 2463`中,作为`58`号协议定义的 ICMPv6 ,支持 ICMPv4 的各种报文,还包含了 ICMPv6 的一些额外报文。**ICMPv6作为一个如同 TCP 一样的,属较高级别的协议,意味着在 IPv6 数据包中, ICMPv6 是放在所有尽可能的扩展头部之后的**。下图7.11演示了 ICMPv6 数据包中所包含的字段。
![ICMPv6数据包头部](images/0711.png)
*图7.11 -- ICMPv6数据包头部*
在ICMPv6数据包头部其`8`位**类型字段**the 8-bit Type field**用于表明或区分ICMPv6报文类型**。该字段用于提供错误报文和信息性报文。表7.9列出并说明了一些可在此字段发现的常见值。
ICMPv6 数据包头部,其`8`位**类型字段**the 8-bit Type field**用于表明或区分 ICMPv6 报文类型**。该字段用于提供错误报文和信息性报文。表7.9列出并说明了一些可在此字段发现的常见值。
*表7.9 -- ICMPv6报文类型*
@ -462,7 +462,7 @@ ICMP用于将有关发往预期目的主机的IP数据的错误和其他信息
> **注意:** ICMPv4也是使用的这些报文类型。
紧接着类型字段的`8`位**代码字段**the 8-bit Code field**提供了有关发出的报文细节信息**。表7.10演示了该字段的常用值也是ICMPv4所共用的。
紧接着类型字段的`8`位**代码字段**the 8-bit Code field**提供了有关发出的报文细节信息**。表7.10演示了该字段的常用值,也是 ICMPv4 所共用的。
*表7.10 -- ICMPv6代码*
@ -473,26 +473,26 @@ ICMP用于将有关发往预期目的主机的IP数据的错误和其他信息
| `8` | Echo |
| `11` | 发生了超时 |
在代码字段后面的`16`位**校验和字段**the 16-bit Checksum field包含一个用于检测ICMPv6中数据错误的运算值。ICMPv6数据包的最后就是报文或数据二选一的字段the Message or Data field is an optional, 它是一个可变长度字段,包含了由类型及代码字段指明的报文类型特定数据。在用到报文或数据字段时,该字段提供了发送给目的主机的信息。
在代码字段后面的`16`位**校验和字段**the 16-bit Checksum field包含一个用于检测 ICMPv6 中数据错误的运算值。 ICMPv6 数据包的最后就是报文或数据二选一的字段the Message or Data field is an optional, 它是一个可变长度字段,包含了由类型及代码字段指明的报文类型特定数据。在用到报文或数据字段时,该字段提供了发送给目的主机的信息。
**ICMPv6是IPv6的一个核心部件**。在IPv6中ICMPv6有以下用途。
**ICMPv6是 IPv6 的一个核心部件**。在 IPv6 中, ICMPv6 有以下用途。
- 重复地址检测Duplicate Address Detection, DAD
- ARP的替代the replacement of ARP
- IPv6无状态自动配置, IPv6 stateless autoconfiguration
- IPv6前缀重新编号, IPv6 prefix renumbering
- 路径MTU发现Path MTU Discovery, PMTUD
- 路径 MTU 发现Path MTU Discovery, PMTUD
> **注意:** 在上述用途中DAD和无状态自动配置会在本章的稍后进行说明。PMTUD是超出当前CCNA考试要求范围的在本模块及本教程中不会对其进行任何细节上的说明。
> **注意:** 在上述用途中, DAD 和无状态自动配置会在本章的稍后进行说明。 PMTUD 是超出当前 CCNA 考试要求范围的,在本模块及本教程中不会对其进行任何细节上的说明。
**IPv6邻居发现协议**
**The IPv6 Neighbor Discovery Protocol, NDP**
**IPv6邻居发现协议带来IPv6的即插即用特性**。它是在`RFC 2461`中定义的是IPv6的一个必不可少的组成部分。**NDP运行在链路层**,负责**发现链路上的其它节点**、**确定其它节点的链路层地址**、**发现可用的路由器**,以及**维护有关到其它邻居节点路径的可达性信息**。**NDP实现了IPv6的类似于IPv4的ARP**(这正是其取代的功能)、**ICMP路由器发现**(ICMP Router Discovery)以及**路由器重定向协议Router Redirect Protocols等功能**。尽管如此要记住NDP提供了比起IPv4中用到的诸多机制都更为了不起的功能。在与ICMPv6配合使用时NDP可以完成以下任务。
**IPv6邻居发现协议带来 IPv6 的即插即用特性**。它是在`RFC 2461`中定义的,是 IPv6 的一个必不可少的组成部分。**NDP运行在链路层**,负责**发现链路上的其它节点**、**确定其它节点的链路层地址**、**发现可用的路由器**,以及**维护有关到其它邻居节点路径的可达性信息**。**NDP实现了 IPv6 的类似于 IPv4 的ARP**(这正是其取代的功能)、**ICMP路由器发现**(ICMP Router Discovery)以及**路由器重定向协议Router Redirect Protocols等功能**。尽管如此,要记住 NDP 提供了比起 IPv4 中用到的诸多机制,都更为了不起的功能。在与 ICMPv6 配合使用时, NDP 可以完成以下任务。
- 动态邻居和路由器发现dynamic neighbor and router discovery
- 取代ARPthe replacement of ARP
- 取代 ARP the replacement of ARP
- IPv6无状态自动配置IPv6 stateless autoreconfiguration
- 路由器重定向router redirection
- 主机参数发现host parameter discovery
@ -503,7 +503,7 @@ ICMP用于将有关发往预期目的主机的IP数据的错误和其他信息
> **注意:** 并不要求对上面列出的每个优势进行细节上的探究。
邻居发现协议又定义了五种ICMPv6数据包类型在下表7.11中有列出和说明。
邻居发现协议又定义了五种 ICMPv6 数据包类型在下表7.11中有列出和说明。
*表7.11 -- ICMPv6邻居发现报文类型*
@ -515,31 +515,31 @@ ICMP用于将有关发往预期目的主机的IP数据的错误和其他信息
| `136` | 用于邻居通告报文used for Neighbor Advertisement(NA) messages |
| `137` | 用于路由器重定向报文, used for Router Redirect messages |
**路由器询问报文**Router Solicition messages由主机在其接口开启IPv6时所发出。这些报文用于请求本地网段上的路由器立即生成RA报文而不要等到下一个计划的RA时间间隔才生成RA报文。下图7.2演示了一条在线路上捕获到的RS报文。
**路由器询问报文**Router Solicition messages由主机在其接口开启 IPv6 时所发出。这些报文用于请求本地网段上的路由器立即生成 RA 报文,而不要等到下一个计划的 RA 时间间隔才生成 RA 报文。下图7.2演示了一条在线路上捕获到的 RS 报文。
![IPv6路由器询问报文](images/0712.png)
*图7.12 -- IPv6路由器询问报文*
路由器收到该RS报文后便使用RA报文通告其存在RA报文通常包含了本地链路的前缀信息及所有诸如建议跳数限制等额外配置。RA中包含的信息在下图7.13中进行了演示。
路由器收到该 RS 报文后,便使用 RA 报文通告其存在, RA 报文通常包含了本地链路的前缀信息,及所有诸如建议跳数限制等额外配置。 RA 中包含的信息在下图7.13中进行了演示。
![IPv6路由器通告报文](images/0713.png)
*图7.13 -- IPv6路由器通告报文*
这里重申一点,**RS和RA报文都是路由器到主机(route-to-host)或主机到路由器(host-to-router)的信息交换**, 如下图所示。
这里重申一点,**RS和 RA 报文,都是路由器到主机(route-to-host)或主机到路由器(host-to-router)的信息交换**, 如下图所示。
![IPv6的RS和RA报文](images/0714.png)
![IPv6的 RS RA 报文](images/0714.png)
*图7.14 -- IPv6的RS和RA报文*
*图7.14 -- IPv6的 RS RA 报文*
IPv6的**邻居询问报文**(Neighbor Solicition messages)则是本地网段上的IPv6路由器所发出的多播报文用于确定某个邻居的数据链路地址或是用于检查某个邻居是否仍然可达因而NS报文取代的是ARP的功能。这些报文也用于重复地址检测(DAD)目的。尽管对NS报文的深入探究超出了CCNA考试要求的范围下面的图7.15仍然演示了一个在线路上捕获到的IPv6邻居询问报文数据包。
IPv6的**邻居询问报文**(Neighbor Solicition messages),则是本地网段上的 IPv6 路由器所发出的多播报文,用于确定某个邻居的数据链路地址,或是用于检查某个邻居是否仍然可达(因而 NS 报文取代的是 ARP 的功能)。这些报文也用于重复地址检测(DAD)目的。尽管对 NS 报文的深入探究超出了 CCNA 考试要求的范围下面的图7.15仍然演示了一个在线路上捕获到的 IPv6 邻居询问报文数据包。
![IPv6邻居询问报文](images/0715.png)
*图7.15 -- IPv6邻居询问报文*
而**邻居通告报文**Neighbor Advertisement messages通常也是由本地网段上的路由器发出用于对收到的NS报文进行回应。此外**在一个IPv6前缀改变时路由器也会发出一条无询问的NS报文**以此来告知本地网络网段上的其它设备发生了这个变化。在NA报文上对NA报文中的格式或包含的字段的细节探究也是超出CCNA考试要求范围之外的。图7.16和图7.17演示了一条在线路上捕获的邻居通告报文,**邻居通告报文也是通过IPv6多播发出的**。
而**邻居通告报文**Neighbor Advertisement messages通常也是由本地网段上的路由器发出用于对收到的 NS 报文进行回应。此外,**在一个 IPv6 前缀改变时,路由器也会发出一条无询问的 NS 报文**,以此来告知本地网络网段上的其它设备,发生了这个变化。在 NA 报文上,对 NA 报文中的格式或包含的字段的细节探究,也是超出 CCNA 考试要求范围之外的。图7.16和图7.17演示了一条在线路上捕获的邻居通告报文,**邻居通告报文也是通过 IPv6 多播发出的**。
![IPv6邻居通告报文](images/0716.png)
@ -549,28 +549,28 @@ IPv6的**邻居询问报文**(Neighbor Solicition messages),则是本地网段
*图7.17 -- IPv6邻居通告报文*
最后,**路由器重定向**router redirect**使用报文类型为137的ICMPv6重定向报文**ICMPv6 Redirect messages路由器重定向用于告知网络主机网络上存在一台路由器该路由器有着前往预计目的主机的更优路径。ICMPv6的路由器重定向与ICMPv4的工作方式一样而ICMPv4的路由器重定向就是用来对当前IPv4网络中的流量进行重定向的。
最后,**路由器重定向**router redirect**使用报文类型为 137 ICMPv6 重定向报文**ICMPv6 Redirect messages路由器重定向用于告知网络主机网络上存在一台路由器该路由器有着前往预计目的主机的更优路径。 ICMPv6 的路由器重定向与 ICMPv4 的工作方式一样,而 ICMPv4 的路由器重定向就是用来对当前 IPv4 网络中的流量进行重定向的。
### IPv6的有状态自动配置
**IPv6 Stateful Autoconfiguration**
如同本模块先前指出的那样有状态自动配置允许网络主机从某台网络服务器比如通过DHCP上收到其地址信息。IPv4和IPv6都支持这种方式。在IPv6网络中使用DHCPv6来为IPv6主机提供有状态及无状态自动配置服务。**在IPv6的部署中当某台IPv6主机收到来自本地网段上的路由器RA报文后该主机就会检查这些数据包以判定是否可以使用DHCPv6**。RA报文通过将那些`M`(受管理的,`Managed`)或`O`(其它方式,`Other`)位设置为`1`的方式提供是否可以使用DHCPv6的信息。
如同本模块先前指出的那样,有状态自动配置允许网络主机从某台网络服务器(比如通过 DHCP )上收到其地址信息。 IPv4 IPv6 都支持这种方式。在 IPv6 网络中,使用 DHCPv6 来为 IPv6 主机提供有状态(及无状态)自动配置服务。**在 IPv6 的部署中,当某台 IPv6 主机收到来自本地网段上的路由器 RA 报文后该主机就会检查这些数据包以判定是否可以使用DHCPv6**。 RA 报文通过将那些`M`(受管理的,`Managed`)或`O`(其它方式,`Other`)位设置为`1`的方式,提供是否可以使用 DHCPv6 的信息。
在DHCP下客户端设定为从DHCP服务器取得有关信息。而在DHCPv6下客户端却并不知道从哪里得到这些信息因为既可以从SLAAC也可以从有状态的DHCPv6, 抑或从结合了SLAAC及DHCPv6两种的方式取得。
DHCP 下,客户端设定为从 DHCP 服务器取得有关信息。而在 DHCPv6 下,客户端却并不知道从哪里得到这些信息,因为既可以从 SLAAC 也可以从有状态的DHCPv6, 抑或从结合了 SLAAC DHCPv6 两种的方式取得。
RA报文中的M位指的是受管理的地址配置标志位the Managed Address Configuration Flag bit。在此位设置了时也就是说该位的值为`1`时), 它指示IPv6主机要取得一个由DHCPv6服务器所提供有状态的地址并忽略之后的`O`位。而路由器通告报文中的`O`位指的是其它有状态配置标志位the Other Stateful Configuration Flag bit。当该位设置了也就是说该位的值为`1`指示IPv6主机要使用DHCPv6来取得更多的设置项比如DNS及WINS服务器等。
RA报文中的 M 指的是受管理的地址配置标志位the Managed Address Configuration Flag bit。在此位设置了时也就是说该位的值为`1`时), 它指示 IPv6 主机要取得一个由 DHCPv6 服务器所提供有状态的地址,并忽略之后的`O`位。而路由器通告报文中的`O`位指的是其它有状态配置标志位the Other Stateful Configuration Flag bit。当该位设置了也就是说该位的值为`1`)后,指示 IPv6 主机要使用 DHCPv6 ,来取得更多的设置项,比如 DNS WINS 服务器等。
如某台主机未曾配置一个IPv6地址它就可以采用下面的三种方法之一来获得一个IPv6地址及诸如DNS服务器地址等的其他网络设置。
如某台主机未曾配置一个 IPv6 地址,它就可以采用下面的三种方法之一,来获得一个 IPv6 地址,及诸如 DNS 服务器地址等的其他网络设置。
- SLAAC -- 无状态自动配置StateLess Address AutoConfiguration`M`和`O`位设置为`0`。也就是没有DHCPv6信息。主机从一条RA收到所有必要信息。
- 有状态DHCPv6 -- `M`标志位设置为`1`, 告诉主机使用DHCPv6取得所有地址和网络信息。
- 无状态DHCPv6 -- `M`标志位设置为`0`, `O`标志位设置为`1`, 意味着主机将采用SLAAC来得到地址从一条RA而同时从DNS服务器取得其它信息。
- SLAAC -- 无状态自动配置StateLess Address AutoConfiguration`M`和`O`位设置为`0`。也就是没有 DHCPv6 信息。主机从一条 RA 收到所有必要信息。
- 有状态DHCPv6 -- `M`标志位设置为`1`, 告诉主机使用 DHCPv6 取得所有地址和网络信息。
- 无状态DHCPv6 -- `M`标志位设置为`0`, `O`标志位设置为`1`, 意味着主机将采用 SLAAC 来得到地址(从一条 RA ),而同时从 DNS 服务器取得其它信息。
尽管SLAAC能力是IPv6的一项优势有状态自动配置仍然有着许多好处包括以下这些。
尽管 SLAAC 能力是 IPv6 的一项优势,有状态自动配置仍然有着许多好处,包括以下这些。
- 相较SLAAC所提供的那些项目有状态自动配置有着更大的控制权
- 在SLAAC网络上同样可以使用有状态自动配置
- 相较 SLAAC 所提供的那些项目,有状态自动配置有着更大的控制权
- 在 SLAAC 网络上,同样可以使用有状态自动配置
- 在缺少路由器的情形下,仍然可以为网络主机提供分址
- 通过分配新的前缀给主机,而用来对网络重新编号
- 可用于将全部子网发布给用户侧设备can be used to issue entire subnets to customer premise equipment稍后会有说明
@ -579,9 +579,9 @@ RA报文中的M位指的是受管理的地址配置标志位the Managed Ad
**IPv6 Stateless Address Autoconfiguration, SLAAC**
IPv6容许设备为自己配置一个IP地址以便进行主机到主机的通信。有状态自动配置需要一台服务器来分配地址信息对于IPv6来说就要用到DHCPv6。有状态就是说信息交换的细节在服务器或路由器上是有保存的那么无状态就说的是没有服务器来保存这些细节了。DHCPv6既可以是有状态的也可以是无状态的。
IPv6容许设备为自己配置一个 IP 地址,以便进行主机到主机的通信。有状态自动配置需要一台服务器来分配地址信息,对于 IPv6 来说,就要用到 DHCPv6 。有状态就是说,信息交换的细节在服务器(或路由器)上是有保存的,那么无状态就说的是没有服务器来保存这些细节了。 DHCPv6 既可以是有状态的,也可以是无状态的。
在IPv6中SLAAC允许主机依据本地网络网段上的路由器发出的前缀通告自己配置其单播IPv6地址。所需的其它信息比如DNS服务器地址等则可从DHCPv6服务器获取。IPv6中SLAAC用到的三种机制如下所示。
IPv6 中, SLAAC 允许主机依据本地网络网段上的路由器发出的前缀通告,自己配置其单播 IPv6 地址。所需的其它信息(比如 DNS 服务器地址等)则可从 DHCPv6 服务器获取。 IPv6 SLAAC 用到的三种机制,如下所示。
- 前缀通告prefix advertisement
- 重复地址检测DAD
@ -591,42 +591,42 @@ IPv6容许设备为自己配置一个IP地址以便进行主机到主机的
**prefix advertisement**
IPv6地址前缀通告用到了ICMPv6 RA报文而ICMPv6 RA是发往链路上的所有主机all-hosts-on-the-local-link带有多播地址`FF02::1`的ICMPv6数据包。根据IPv6的设计仅有路由器才被允许在本地链路上通告前缀。在采行SLAAC后就务必要记住所用到的前缀长度必须是64位比如`2001:1a2b::/64`)。
IPv6地址前缀通告用到了ICMPv6 RA报文而ICMPv6 RA是发往链路上的所有主机all-hosts-on-the-local-link带有多播地址`FF02::1`的 ICMPv6 数据包。根据 IPv6 的设计,仅有路由器才被允许在本地链路上通告前缀。在采行 SLAAC 后,就务必要记住,所用到的前缀长度,必须是 64 位(比如`2001:1a2b::/64`)。
在前缀配置之后SLAAC用到的RA报文还包含了以下信息。
在前缀配置之后, SLAAC 用到的 RA 报文还包含了以下信息。
- IPv6前缀the IPv6 prefix
- 生命期the lifetime
- 默认路由器信息default router information
- 标志和/或选项字段Flags and/or Options fields
就像刚才指出的那样,**IPv6前缀必须是64位**。此外,**本地网段上还可以通告多个的IPv6前缀**。在该网络网段上的主机收到IPv6前缀后就将它们的MAC地址以`EUI-64`格式追加到前缀后面从而自动地配置上他们的IPv6单播地址这在本模块的先前部分已有说明。这样就为该网段上的每台主机都提供了一个唯一的`128`位IPv6地址。
就像刚才指出的那样,**IPv6前缀必须是 64 位**。此外,**本地网段上还可以通告多个的 IPv6 前缀**。在该网络网段上的主机收到 IPv6 前缀后,就将它们的 MAC 地址以`EUI-64`格式,追加到前缀后面,从而自动地配置上他们的 IPv6 单播地址,这在本模块的先前部分已有说明。这样就为该网段上的每台主机,都提供了一个唯一的`128`位 IPv6 地址。
SLAAC RA报文也提供了每个通告前缀的生命期数值给这些节点生命期字段可以是从`0`到无穷的值。节点在收到前缀后,就对该前缀的生命期值进行验证,从而在生命期数值到`0`时停用该前缀。此外,如收到生命期值为无穷的某个特定前缀,网络主机就绝不会停用那个前缀。每个通告前缀又带有两个生命期值:**有效生命期值**及**首选生命期值**the valid and preferred lifetime value
有效生命期值用于确定出该主机地址将保持多长时间的有效期。在该值超时后(也就是说到值为`0`时带有该前缀的主机地址就成为无效地址。而首选生命期值则用于确定经由SLAAC方式配置的某个地址将保持多长时间的有效期。此值必须小于或等于在有效生命期值同时该值通常用于前缀的重编号。
有效生命期值用于确定出该主机地址将保持多长时间的有效期。在该值超时后(也就是说到值为`0`时),带有该前缀的主机地址就成为无效地址。而首选生命期值则用于确定经由 SLAAC 方式配置的某个地址将保持多长时间的有效期。此值必须小于或等于在有效生命期值,同时该值通常用于前缀的重编号。
SLAAC RA的默认路由器提供了其本身IPv6地址的存在情况和生命期。默认情况下用于默认路由器的那个地址是本地链路地址`FE80::/10`。这样做就可以在全球单播地址发生改变时也不会像在IPv4中那样在某个网络被重新编号时导致网络服务中断。
SLAAC RA的默认路由器提供了其本身 IPv6 地址的存在情况和生命期。默认情况下,用于默认路由器的那个地址是本地链路地址(`FE80::/10`)。这样做就可以在全球单播地址发生改变时,也不会像在 IPv4 中那样,在某个网络被重新编号时,导致网络服务中断。
最后一些标志和选项字段可被用作指示网络主机采行SLAAC或有状态自动配置。这些字段在图7.13中的RA线路捕获中有包含。
最后,一些标志和选项字段可被用作指示网络主机采行 SLAAC 或有状态自动配置。这些字段在图7.13中的 RA 线路捕获中有包含。
**重复地址检测**
**Duplicated Address Detection, DAD**
重复地址检测DAD是一种用在SLAAC中在某网段上主机启动时用到的NDP机制。DAD要求某台网络主机启动期间在永久地配置它自己的IPv6地址之前先要确保没有别的网络主机已经使用了它打算使用的那个地址。
重复地址检测( DAD )是一种用在 SLAAC 中,在某网段上主机启动时,用到的 NDP 机制。 DAD 要求某台网络主机启动期间,在永久地配置它自己的 IPv6 地址之前,先要确保没有别的网络主机已经使用了它打算使用的那个地址。
DAD通过使用邻居询问`135`类型的ICMPv6及节点询问多播地址Solicited-Node Multicast addresses来完成这个验证。主机使用一个未指明IPv6地址an unspecified IPv6 address, 也就是地址`::`作为报文数据包的源地址并将其打算使用的那个IPv6单播地址作为目的地址在本地网段上发送一个邻居询问ICMPv6报文数据包。如有其它主机使用着该地址那么主机就不会自动将此地址配置为自己的地址而如没有其他设备使用这个地址则该主机就自动配置并开始使用这个IPv6地址了。
DAD通过使用邻居询问`135`类型的 ICMPv6 及节点询问多播地址Solicited-Node Multicast addresses来完成这个验证。主机使用一个未指明 IPv6 地址an unspecified IPv6 address, 也就是地址`::`)作为报文数据包的源地址,并将其打算使用的那个 IPv6 单播地址,作为目的地址,在本地网段上发送一个邻居询问 ICMPv6 报文数据包。如有其它主机使用着该地址,那么主机就不会自动将此地址配置为自己的地址;而如没有其他设备使用这个地址,则该主机就自动配置并开始使用这个 IPv6 地址了。
**前缀重编号**
**prefix renumbering**
最后前缀重编号prefix renumbering机制允许IPv6网络从一个前缀变为另一个时进行前缀透明重编号。与IPv4中同样的全球IP地址可由多个服务提供商进行通告不同IPv6地址空间的严格聚合阻止了服务提供商对不属于其组织的前缀进行通告Unlike in IPv4, where the same global IP address can be advertised by multiple providers, the strict aggregation of the IPv6 address space prevents providers from advertising prefixes that do not belong to their organization
最后前缀重编号prefix renumbering机制允许 IPv6 网络从一个前缀变为另一个时,进行前缀透明重编号。与 IPv4 中同样的全球 IP 地址可由多个服务提供商进行通告不同, IPv6 地址空间的严格聚合阻止了服务提供商对不属于其组织的前缀进行通告Unlike in IPv4, where the same global IP address can be advertised by multiple providers, the strict aggregation of the IPv6 address space prevents providers from advertising prefixes that do not belong to their organization
在网络发生从一家IPv6服务提供商迁移至另一家时IPv6前缀重编号机制就提供了一种自一个前缀往另一前缀平滑和透明的过渡。前缀重编号使用与在前缀通告中同样的ICMPv6报文和多播地址。而前缀重编号可经由运用RA报文中包含的时间参数完成。
在网络发生从一家 IPv6 服务提供商迁移至另一家时, IPv6 前缀重编号机制,就提供了一种自一个前缀往另一前缀平滑和透明的过渡。前缀重编号使用与在前缀通告中同样的 ICMPv6 报文和多播地址。而前缀重编号可经由运用 RA 报文中包含的时间参数完成。
在思科IOS软件中路由器可配置为通告带有被减少到接近0的有效和首选生命期当前前缀这就令到这些前缀能够更快地成为无效前缀。此时再将这些路由器配置为在本地网段上通告新前缀。这样做将允许旧前缀和新前缀在同一网段上并存。
在思科 IOS 软件中,路由器可配置为通告带有被减少到接近 0 的有效和首选生命期当前前缀,这就令到这些前缀能够更快地成为无效前缀。此时再将这些路由器配置为在本地网段上通告新前缀。这样做将允许旧前缀和新前缀在同一网段上并存。
迁移期间,本地网段上的主机用着两个单播地址:一个来自旧的前缀,一个来自新的前缀。那些使用旧前缀的当前连接仍被处理着;但所有自主机发出的新连接,则都使用新前缀。在旧前缀超时后,就只使用新前缀了。
@ -638,15 +638,15 @@ DAD通过使用邻居询问`135`类型的ICMPv6及节点询问多播地址
- 创建地址池名称和其它参数, create the pool name and other parameters
- 在某个借口上开启它, enable it on an interface
- 修改RA设置modify Router Advertisement settings
- 修改 RA 设置modify Router Advertisement settings
一个身份关联是分配给客户端的一些地址an Identity Association is a collection of addresses assigned to the client。使用到DHCPv6的每个借口都必须要有至少一个的身份关联IA。这里不会有CCNA考试的配置示例。
一个身份关联是分配给客户端的一些地址an Identity Association is a collection of addresses assigned to the client。使用到 DHCPv6 的每个借口都必须要有至少一个的身份关联( IA )。这里不会有 CCNA 考试的配置示例。
### 在思科IOS软件中开启IPv6路由
### 在思科 IOS 软件中开启 IPv6 路由
现在你对IPv6基础知识有了扎实掌握本模块剩下的部分将会专注于思科IOS软件中IPv6的配置了。默认下思科IOS软件中的IPv6路由功能是关闭的。那么就必须通过使用__`ipv6 unicast-routing`这个全局配置命令__来开启IPv6路由功能。
现在,你对 IPv6 基础知识有了扎实掌握,本模块剩下的部分将会专注于思科 IOS 软件中 IPv6 的配置了。默认下,思科 IOS 软件中的 IPv6 路由功能是关闭的。那么就必须通过使用__`ipv6 unicast-routing`这个全局配置命令__来开启 IPv6 路由功能。
在全局开启IPv6路由之后接口配置命令`ipv6 address [ipv6-address/prefix-length | prefix-name sub-bits/prefix-length | anycast | autoconfig <default> | dhcp | eui-64 | link-local]`就可以用于配置接口的IPv6分址了。关键字`[ipv6-address/prefix-length]`用于指定分配给该接口的IPv6前缀和前缀长度。下面的配置演示了如何为一个路由器接口配置子网`3FFF:1234:ABCD:5678::/64`上的第一个地址。
在全局开启 IPv6 路由之后,接口配置命令`ipv6 address [ipv6-address/prefix-length | prefix-name sub-bits/prefix-length | anycast | autoconfig <default> | dhcp | eui-64 | link-local]`就可以用于配置接口的 IPv6 分址了。关键字`[ipv6-address/prefix-length]`用于指定分配给该接口的 IPv6 前缀和前缀长度。下面的配置演示了如何为一个路由器接口配置子网`3FFF:1234:ABCD:5678::/64`上的第一个地址。
```console
R1(config)#ipv6 unicast-routing
@ -655,7 +655,7 @@ R1(config-if)#ipv6 address 3FFF:1234:ABCD:5678::/64
R1(config-if)#exit
```
按照此配置,`show ipv6 interface [name]`命令就可用于验证配置的IPv6地址子网即`3FFF:1234:ABCD:5678::/64`, 如下面的输出所示。
按照此配置,`show ipv6 interface [name]`命令就可用于验证配置的 IPv6 地址子网(即`3FFF:1234:ABCD:5678::/64`, 如下面的输出所示。
```console
R1#show ipv6 interface FastEthernet0/0
@ -672,7 +672,7 @@ FastEthernet0/0 is up, line protocol is up
[Truncated Output]
```
就如在本模块早先指出的那样IPv6允许在同一接口上配置多个前缀。而如过在同一借口上配置了多个前缀`show ipv6 interface [name] prefix`命令就可以用来查看所有分配的前缀以及它们各自的有效和首选生命期数值。下面的输出显示了在一个配置了多个IPv6前缀的路由器接口上该命令所打印出的信息。
就如在本模块早先指出的那样, IPv6 允许在同一接口上配置多个前缀。而如过在同一借口上配置了多个前缀,`show ipv6 interface [name] prefix`命令,就可以用来查看所有分配的前缀,以及它们各自的有效和首选生命期数值。下面的输出显示了在一个配置了多个 IPv6 前缀的路由器接口上,该命令所打印出的信息。
```console
R1#show ipv6 interface FastEthernet0/0 prefix
@ -687,13 +687,13 @@ AD 3FFF:1234:ABCD:7890::/64 [LA] Valid lifetime 2592000, preferred lifetime 6048
AD 3FFF:1234:ABCD:9012::/64 [LA] Valid lifetime 2592000, preferred lifetime 604800
```
> **注意:** 和早前指出的一样有效和首选生命期数值可自默认值进行修改以实现在应用前缀重编号时的平滑过渡。但此配置是超出CCNA范围的所以本教程不会对其进行演示。
> **注意:** 和早前指出的一样,有效和首选生命期数值可自默认值进行修改,以实现在应用前缀重编号时的平滑过渡。但此配置是超出 CCNA 范围的,所以本教程不会对其进行演示。
跟着接口配置命令`ipv6 prefix`的使用之后,关键字`[prefix-name sub-bits/prefix-length]`用于配置一个通用前缀a general prefix通用前缀指定要配置到该接口上的子网的那些前导位。这个配置也是超出当前CCNA考试要求的本模块不会对其进行演示。
跟着接口配置命令`ipv6 prefix`的使用之后,关键字`[prefix-name sub-bits/prefix-length]`用于配置一个通用前缀a general prefix通用前缀指定要配置到该接口上的子网的那些前导位。这个配置也是超出当前 CCNA 考试要求的,本模块不会对其进行演示。
关键字`[anycast]`用于配置一个IPv6任意播地址。和先前指出的那样任意播分址允许将同一个**公共地址**the same common address分配到多个路由器接口。主机使用从路由协议度量值上看离它们最近的任意播地址。任意播配置超出CCNA考试要求范围不会在本模块进行演示。
关键字`[anycast]`用于配置一个 IPv6 任意播地址。和先前指出的那样,任意播分址允许将同一个**公共地址**the same common address分配到多个路由器接口。主机使用从路由协议度量值上看离它们最近的任意播地址。任意播配置超出 CCNA 考试要求范围,不会在本模块进行演示。
`[autoconfig <default>]`关键字开启SLAAC。如用到该关键字路由器将动态学习链路上的前缀之后将`EUI-64`地址加到所有学习到的前缀上。`[default]`关键字是一个允许安装一条默认路由的可选关键字the `<default>` keyword is an optional keyword that allows a default route to be installed。下面的配置样例演示了如何在某个路由器接口上开启无状态自动配置同时额外地允许安装上默认路由。
`[autoconfig <default>]`关键字开启 SLAAC 。如用到该关键字,路由器将动态学习链路上的前缀,之后将`EUI-64`地址加到所有学习到的前缀上。`[default]`关键字是一个允许安装一条默认路由的可选关键字the `<default>` keyword is an optional keyword that allows a default route to be installed。下面的配置样例演示了如何在某个路由器接口上开启无状态自动配置同时额外地允许安装上默认路由。
```console
R2(config)#ipv6 unicast-routing
@ -702,7 +702,7 @@ R2(config-if)#ipv6 address autoconfig default
R2(config-if)#exit
```
按照这个配置,路由器`R2`将会监听`FastEthernet0/0`接口所在本地网段上的RA报文。该路由器将会对每个学习到的前缀动态地配置一个`EUI-64`地址并接着安装上指向该RA通告路由器本地链路地址的默认路由。使用`show ipv6 interface [name]`命令,即可对动态地址配置进行验证,如下面的输出所示。
按照这个配置,路由器`R2`将会监听`FastEthernet0/0`接口所在本地网段上的 RA 报文。该路由器将会对每个学习到的前缀,动态地配置一个`EUI-64`地址,并接着安装上指向该 RA 通告路由器本地链路地址的默认路由。使用`show ipv6 interface [name]`命令,即可对动态地址配置进行验证,如下面的输出所示。
```console
R2#show ipv6 interface FastEthernet0/0
@ -728,7 +728,7 @@ FastEthernet0/0 is up, line protocol is up
[Truncated Output]
```
在上面的输出中注意到尽管接口上没有配置显式的IPv6地址还是动态地为经由侦听RA报文所发现的子网配置了一个`EUI-64`地址。每个这些前缀的计时器都继承自通告RA报文的那台路由器。为了进一步验证无状态自动配置可以使用`show ipv6 route`命令,来验证到首选通告路由器本地链路地址的默认路由,如下面所演示的那样。
在上面的输出中,注意到尽管接口上没有配置显式的 IPv6 地址,还是动态地为经由侦听 RA 报文所发现的子网,配置了一个`EUI-64`地址。每个这些前缀的计时器,都继承自通告 RA 报文的那台路由器。为了进一步验证无状态自动配置,可以使用`show ipv6 route`命令,来验证到首选通告路由器本地链路地址的默认路由,如下面所演示的那样。
```console
R2#show ipv6 route ::/0
@ -742,23 +742,23 @@ S ::/0 [1/0]
via FE80::20C:CEFF:FEA7:F3A0, FastEthernet0/0
```
在命令`ipv6 address`之后,关键字`[dhcp]`用于配置该路由器接口使用有状态自动配置也就是DHPCv6来请求该接口的分址配置。在此配置下有着一个额外的关键字`[rapid-commit]`, 同样可以追加到此命令之后以开启地址分配及其它配置信息的二报文交换快速方式the two-message exchange method
在命令`ipv6 address`之后,关键字`[dhcp]`用于配置该路由器接口使用有状态自动配置(也就是 DHPCv6 ),来请求该接口的分址配置。在此配置下,有着一个额外的关键字,`[rapid-commit]`, 同样可以追加到此命令之后以开启地址分配及其它配置信息的二报文交换快速方式the two-message exchange method
再回到讨论主题,在`ipv6 address`命令下,关键字`[eui-64]`用于为某个接口配置一个IPv6地址并在地址的低`64`位使用一个`EUI-64`地址而在该接口上开启IPv6处理。默认情况下**本地链路、站点本地以及IPv6 SLAAC**都用到`EUI-64`格式来构造其各自的IPv6地址。`EUI-64`分址**将`48`位MAC地址扩展到一个`64`位地址**。通过两步实现该扩展,这两步将在下一段进行说明。**该过程就叫作SLAAC**。
再回到讨论主题,在`ipv6 address`命令下,关键字`[eui-64]`用于为某个接口配置一个 IPv6 地址,并在地址的低`64`位使用一个`EUI-64`地址而在该接口上开启 IPv6 处理。默认情况下,**本地链路、站点本地以及IPv6 SLAAC**都用到`EUI-64`格式来构造其各自的 IPv6 地址。`EUI-64`分址**将`48`位 MAC 地址扩展到一个`64`位地址**。通过两步实现该扩展,这两步将在下一段进行说明。**该过程就叫作SLAAC**。
构造`EUI-64`地址的**第一步,将值`FFFE`插入到MAC地址中间**,就将`12`个十六进制字符的`48`位MAC地址扩展到`16`个十六进制字符的`64`位了。下图7.18演示了`48`位MAC地址到`64`位EUI地址的转换。
构造`EUI-64`地址的**第一步,将值`FFFE`插入到 MAC 地址中间**,就将`12`个十六进制字符的`48`位 MAC 地址扩展到`16`个十六进制字符的`64`位了。下图7.18演示了`48`位 MAC 地址到`64`位 EUI 地址的转换。
![创建`EUI-64`地址](images/0718.png)
*图7.18 -- 创建`EUI-64`地址*
`EUI-64`分址的下一步,涉及`64`位的第`7`位设置。**此第`7`位用于区分该MAC地址是否是唯一的**。如该位设置为`1`, 就表明该MAC地址是一个全球受管理MAC地址a globally managed MAC address-- 也就是说该MAC地址是有某厂商分配的。如该位设置为`0`, 就表明该MAC地址是本地分配的--就意味着该MAC地址有可能是由管理员添加的。为更进一步搞清楚此声明MAC地址实例`02:1F:3C:59:D6:3B`就被认为是一个全球分配的MAC地址a globally-assigned MAC address, 而MAC地址`00:1F:3C:59:D6:3B`则被看作是一个本地地址。下图7.19有演示。
`EUI-64`分址的下一步,涉及`64`位的第`7`位设置。**此第`7`位用于区分该 MAC 地址是否是唯一的**。如该位设置为`1`, 就表明该 MAC 地址是一个全球受管理 MAC 地址a globally managed MAC address-- 也就是说该 MAC 地址是有某厂商分配的。如该位设置为`0`, 就表明该 MAC 地址是本地分配的--就意味着该 MAC 地址有可能是由管理员添加的。为更进一步搞清楚此声明, MAC 地址实例`02:1F:3C:59:D6:3B`就被认为是一个全球分配的 MAC 地址a globally-assigned MAC address, 而 MAC 地址`00:1F:3C:59:D6:3B`则被看作是一个本地地址。下图7.19有演示。
![确定本地及全球MAC地址](images/0719.png)
![确定本地及全球 MAC 地址](images/0719.png)
*图7.19 -- 确定本地及全球MAC地址*
*图7.19 -- 确定本地及全球 MAC 地址*
按照这样的配置,命令`show ipv6 interface`就可用于验证验证分配到接口`FastEthernet0/0`上的IPv6接口ID 如下面的输出所示。
按照这样的配置,命令`show ipv6 interface`就可用于验证验证分配到接口`FastEthernet0/0`上的 IPv6 接口 ID 如下面的输出所示。
```console
R2#show ipv6 interface FastEthernet0/0
@ -775,7 +775,7 @@ FastEthernet0/0 is up, line protocol is up
[Truncated Output]
```
要验证该`EUI-64`地址的构造过程,同样可以通过使用`show interface`命令查看指定接口的MAC地址的方式来检查该完整的IPv6地址。
要验证该`EUI-64`地址的构造过程,同样可以通过使用`show interface`命令,查看指定接口的 MAC 地址的方式,来检查该完整的 IPv6 地址。
```console
R2#show interface FastEthernet0/0
@ -784,9 +784,9 @@ FastEthernet0/0 is up, line protocol is up
Internet address is 10.0.1.1/30
```
从上面的输出可以看出,该`EUI-64`地址实际上是有效的且是基于该接口的MAC地址。此外该地址是全球地址因为那个第七位是开启的也就是改为包含的是一个非零值
从上面的输出可以看出,该`EUI-64`地址实际上是有效的,且是基于该接口的 MAC 地址。此外,该地址是全球地址,因为那个第七位是开启的(也就是改为包含的是一个非零值)。
最后的`[link-local]`关键字用于分配给接口一个本地链路地址。一定要记住在默认情况下对于动态地创建出一个本地链路地址来说接口上并不是非得要启用一个IPv6前缀。而是当在某个接口下执行了接口配置命令`ipv6 enable`时,就会以`EUI-64`分址方式,自动创建出那个接口的一个本地链路地址。
最后的`[link-local]`关键字用于分配给接口一个本地链路地址。一定要记住在默认情况下,对于动态地创建出一个本地链路地址来说,接口上并不是非得要启用一个 IPv6 前缀。而是当在某个接口下执行了接口配置命令`ipv6 enable`时,就会以`EUI-64`分址方式,自动创建出那个接口的一个本地链路地址。
而如果要手动配置一个本地链路地址,就必须分配一个本地链路地址块`FE80::/10`中的地址。下面的配置实例,演示了如何在某接口上配置一个本地链路地址。
@ -814,28 +814,28 @@ FastEthernet0/0 is up, line protocol is up
[Truncated Output]
```
> **注意:** 在进行手动配置本地链路地址时如思科IOS软件侦测到另一主机正在使用一个它的IPv6地址控制台上就会打印出一条错误消息同时该命令将被拒绝。所以在手动配置本地链路地址时要小心仔细。
> **注意:** 在进行手动配置本地链路地址时,如思科 IOS 软件侦测到另一主机正在使用一个它的 IPv6 地址,控制台上就会打印出一条错误消息,同时该命令将被拒绝。所以在手动配置本地链路地址时,要小心仔细。
### IPv6子网划分
**Subnetting with IPv6**
如你已经学到的IPv6地址分配给机构的是一个前缀。而IPv6地址的主机部分总是`64`位的`EUI-64`, 同时**标准的**前缀通常又是`48`位或`/48`。那么剩下的`16`位,就可由网络管理员自主用于子网划分了。
如你已经学到的, IPv6 地址分配给机构的是一个前缀。而 IPv6 地址的主机部分总是`64`位的`EUI-64`, 同时**标准的**前缀通常又是`48`位或`/48`。那么剩下的`16`位,就可由网络管理员自主用于子网划分了。
在考虑网络分址时因为同样的规则对IPv4和IPv6都是适用的那就是**每个网段只能有一个网络**。不能分离地址而将一部分主机位用在这个网络,另一部分主机位用在其它网络。
在考虑网络分址时,因为同样的规则对 IPv4 IPv6 都是适用的,那就是**每个网段只能有一个网络**。不能分离地址而将一部分主机位用在这个网络,另一部分主机位用在其它网络。
如你看着下面图表中的分址,就能更清楚这个情况。
| 全球路由前缀 | 子网ID | 接口ID |
| `48`位或`/48` | `16`位(`65535`个可能的子网) | `64`位 |
绝不用担心会用完每个子网的主机位,因为每个子网有超过`2`的`64`次幂的主机。任何组织要用完这些子网都是不大可能的而就算发生了这种情况也可以轻易地从ISP那里要一个前缀。
绝不用担心会用完每个子网的主机位,因为每个子网有超过`2`的`64`次幂的主机。任何组织要用完这些子网都是不大可能的,而就算发生了这种情况,也可以轻易地从 ISP 那里要一个前缀。
比如我们说分得了全球路由前缀the global routing prefix`0:123:abc/48`。该地址占用了一个完整IPv6地址的三个区段而每个区段或4位16进制字符quartet则是`16`位,那么到目前为止就用了`48`位。主机部分则需要`64`位,留下`16`位用于子网的分配。
比如我们说分得了全球路由前缀the global routing prefix`0:123:abc/48`。该地址占用了一个完整 IPv6 地址的三个区段,而每个区段或 4 16 进制字符( quartet )则是`16`位,那么到目前为止就用了`48`位。主机部分则需要`64`位,留下`16`位用于子网的分配。
可以简单的从零(子网零也是合法的)开始以十六进制数下去。对于主机来说,也可以这样做,除非比如说想要将头几个地址留给网段上的服务器。
用一个更简单的前缀来打比方吧 -- `2001:123:abc/48`。第一个子网就是全零当然每个子网上的第一台主机也可以是全零这也是合法的只要不保留IPv6中的全`0s`和全`1s`地址)。又会将全零主机表示为缩写形式的`::`。那么这里就有开头的几个子网及主机地址。
用一个更简单的前缀来打比方吧 -- `2001:123:abc/48`。第一个子网就是全零,当然,每个子网上的第一台主机也可以是全零,这也是合法的(只要不保留 IPv6 中的全`0s`和全`1s`地址)。又会将全零主机表示为缩写形式的`::`。那么这里就有开头的几个子网及主机地址。
| 全球前缀 | 子网 | 第一个地址 |
| -- | -- | -- |
@ -864,17 +864,17 @@ FastEthernet0/0 is up, line protocol is up
| `2001:123:abc` | `0016` | `::` |
| `2001:123:abc` | `0017` | `::` |
我肯定你已经注意到这与IPv4分址规则有所不同不同之处就在与**可以使用全零子网,同时子网的第一个地址总是全零**。请看看下面这个简单的网络拓扑,可以照这种方式进行子网分配。
我肯定你已经注意到这与 IPv4 分址规则有所不同,不同之处就在与**可以使用全零子网,同时子网的第一个地址总是全零**。请看看下面这个简单的网络拓扑,可以照这种方式进行子网分配。
![IPv6子网分配](images/0720.png)
*图7.20 -- IPv6子网分配*
就是那么容易吗如回忆一下IPv4子网划分章节要完成子网划分以及算出有多少主机多少子网并记住要排除一些地址简直就是一场噩梦。**IPv6子网划分就容易得多**。你分配到的不一定是一个`48`位前缀,可能是一个用于家庭网络的`/56`或更小的前缀但原则是一样的。也可以自位界限以外进行子网划分但这是很少见的且如果思科要你用考试中的很段时间完成那么深的细节也是不公平的You can also subnet off the bit boundary, but this would be most unusual and unfair of Cisco to expect you to go into that amount of detail in the short amount of time you have in the exam。还好的是考试不是要你考不过但谁又知道呢Hopefully, the exam won't be a mean attempt to catch you out, but you never know。为以防万一这里给出一个有着`/56`前缀长度的地址示例。
就是那么容易吗?如回忆一下 IPv4 子网划分章节,要完成子网划分,以及算出有多少主机多少子网并记住要排除一些地址,简直就是一场噩梦。**IPv6子网划分就容易得多**。你分配到的不一定是一个`48`位前缀,可能是一个用于家庭网络的`/56`或更小的前缀但原则是一样的。也可以自位界限以外进行子网划分但这是很少见的且如果思科要你用考试中的很段时间完成那么深的细节也是不公平的You can also subnet off the bit boundary, but this would be most unusual and unfair of Cisco to expect you to go into that amount of detail in the short amount of time you have in the exam。还好的是考试不是要你考不过但谁又知道呢Hopefully, the exam won't be a mean attempt to catch you out, but you never know。为以防万一这里给出一个有着`/56`前缀长度的地址示例。
`2001:123:abc:8bbc:1221:cc32:8bcc:4231/56`
该前缀是`56`位,转换一下就是`14`个十六进制数位(`14x4=56`, 那么就知道了该前缀将带到一个`4`位字节quartet的中间。**这里有个坑**。在前缀终止前,必须要将该`4`位字节的第`3`和`4`位置为零。
该前缀是`56`位,转换一下就是`14`个十六进制数位(`14x4=56`, 那么就知道了该前缀将带到一个`4`位字节( quartet )的中间。**这里有个坑**。在前缀终止前,必须要将该`4`位字节的第`3`和`4`位置为零。
`2001:123:abc:8b00:0000:0000:0000:0000/56`
@ -888,28 +888,28 @@ FastEthernet0/0 is up, line protocol is up
那么上面这个缩写就是非法的了。
也可以从主机部分借用位来用于子网划分但绝没有理由这么做同时这么做也会破坏采行发明IPv6而带来的可资利用的那些众多特性的能力包括SLAACYou can steal bits from the host portion to use for subnets, but there should never be a reason to and it would break the ability to use many of the features IPv6 was invented to utilise, including stateless autoconfiguration
也可以从主机部分借用位来用于子网划分,但绝没有理由这么做,同时这么做也会破坏采行发明 IPv6 而带来的可资利用的那些众多特性的能力,包括 SLAAC You can steal bits from the host portion to use for subnets, but there should never be a reason to and it would break the ability to use many of the features IPv6 was invented to utilise, including stateless autoconfiguration
## IPv6和IPv4的比较
## IPv6和 IPv4 的比较
**IPv6 Compared to IPv4**
一名网络工程师应有一幅IPv6比起IPv4所带来众多优势的图景。看着IPv6的增强可以总结出下面这些优势。
一名网络工程师应有一幅 IPv6 比起 IPv4 所带来众多优势的图景。看着 IPv6 的增强,可以总结出下面这些优势。
- IPv6有着一个扩展的地址空间从`32`位扩展到了`128`位, IPv6 has an expanded address space, from 32 bits to 128bits
- IPv6使用十六进制表示法而不是IPv4中的点分十进制表示法, IPv6 uses hexadecimal notation instead of dotted-decimal notation(as in IPv4)
- 因为采用了扩充的地址空间IPv6地址是全球唯一地址从而消除了NAT的使用需求, IPv6 addresses are globally unique due to the extended address space, eliminating the need for NAT
- IPv6使用十六进制表示法而不是 IPv4 中的点分十进制表示法, IPv6 uses hexadecimal notation instead of dotted-decimal notation(as in IPv4)
- 因为采用了扩充的地址空间, IPv6 地址是全球唯一地址,从而消除了 NAT 的使用需求, IPv6 addresses are globally unique due to the extended address space, eliminating the need for NAT
- IPv6有着一个固定的头部长度`40`字节),允许厂商在交换效率上进行提升, IPv6 has a fixed header length(40 bytes), allowing vendors to improve switching efficiency
- IPv6通过在IPv6头部和传输层之间放入扩展头部而实现对一些增强选项这可以提供新特性的支持, IPv6 supports enhanced options(that offer new features)by placing extension headers between the IPv6 header and the Transport Layer header
- IPv6具备地址自动配置的能力提供无需DHCP服务器的IP地址动态分配, IPv6 offers address autoconfiguration, providing for dynamic assignment of IP addresses even without a DHCP server
- IPv6通过在 IPv6 头部和传输层之间放入扩展头部,而实现对一些增强选项(这可以提供新特性)的支持, IPv6 supports enhanced options(that offer new features)by placing extension headers between the IPv6 header and the Transport Layer header
- IPv6具备地址自动配置的能力提供无需 DHCP 服务器的 IP 地址动态分配, IPv6 offers address autoconfiguration, providing for dynamic assignment of IP addresses even without a DHCP server
- IPv6具备对流量打标签的支持, IPv6 offers support for labeling traffic flows
- IPv6有着内建的安全功能包括经由`IPSec`实现的认证和隐私保护功能等, IPv6 has security capabilities built in, including authentication and privacy via IPSec
- IPv6具备在往目的主机发送数据包之前的路径MTU发现功能从而消除碎片的需求, IPv6 offers MTU path discovery before sending packets to a destination, eliminating the need for fragmentation
- IPv6具备在往目的主机发送数据包之前的路径 MTU 发现功能,从而消除碎片的需求, IPv6 offers MTU path discovery before sending packets to a destination, eliminating the need for fragmentation
- IPv6支持站点多处分布IPv6 supports site multi-homing
- IPv6使用ND邻居发现Neighbor Discovery协议取代ARPIPv6 uses the ND protocol instead of ARP
- IPv6使用AAAA DNS记录取代IPv4中的A记录, IPv6 uses AAAA DNS records instead of A records (as in IPv4)
- IPv6使用站点本地分址取代IPv4中的`RFC 1918` IPv6 uses Site-Local addressing instead of RFC 1918(as in IPv4)
- IPv4和IPv6使用不同的路由协议, IPv4 and IPv6 use different routing protocols
- IPv6使用 ND 邻居发现Neighbor Discovery协议取代 ARP IPv6 uses the ND protocol instead of ARP
- IPv6使用AAAA DNS记录取代 IPv4 中的 A 记录, IPv6 uses AAAA DNS records instead of A records (as in IPv4)
- IPv6使用站点本地分址取代 IPv4 中的`RFC 1918` IPv6 uses Site-Local addressing instead of RFC 1918(as in IPv4)
- IPv4和 IPv6 使用不同的路由协议, IPv4 and IPv6 use different routing protocols
- IPv6提供了任意播分址, IPv6 provides for Anycast addressing
## 第七天的问题
@ -944,18 +944,18 @@ FastEthernet0/0 is up, line protocol is up
**IPv6 概念实验**
在一对直接连接的思科路由器上对在本模块中提到的IPv6概念和命令进行测试。
在一对直接连接的思科路由器上,对在本模块中提到的 IPv6 概念和命令,进行测试。
- 在两台路由器上都开启IPv6全球单播路由
+ 在每个连接的接口上手动配置一个IPv6地址比如下面这样。
- 在路由器R1的连接接口上配置`2001:100::1/64`
- 在路由器R2的连接接口上配置`2001:100::2/64`
- 在两台路由器上都开启 IPv6 全球单播路由
+ 在每个连接的接口上手动配置一个 IPv6 地址,比如下面这样。
- 在路由器 R1 的连接接口上配置`2001:100::1/64`
- 在路由器 R2 的连接接口上配置`2001:100::2/64`
- 使用命令`show ipv6 interface`和`show ipv6 interface prefix`对配置进行验证
- 测试直接`ping`的连通性
- 使用IPv6无状态自动配置`ipv6 address autoconfig default`)进行重新测试
- 使用`EUI-64`地址IPv6地址`2001::/64` `EUI-64`)进行重新测试
- 使用 IPv6 无状态自动配置(`ipv6 address autoconfig default`)进行重新测试
- 使用`EUI-64`地址( IPv6 地址`2001::/64` `EUI-64`)进行重新测试
- 硬编码一个借口本地链路地址: `ipv6 address fe80:1234:adcd:1::3 link-local`
- 查看IPv6路由表
- 查看 IPv6 路由表
### 十六进制转换及子网划分练习

View File

@ -19,7 +19,7 @@ ___
## 第 8 天任务
- 阅读下面的理论课文
- 阅读ICND1记诵手册
- 阅读 ICND1 记诵手册
如同在前一课程模块中所学到的那样,通过从 IPv4 迁移到 IPv6 ,就能收到数不清的好处。回顾一下,这些优势包括:
@ -39,11 +39,11 @@ ___
- 集成了安全增强Integrated enhanced security
此课程模块对应了一下CCNA大纲要求
此课程模块对应了一下 CCNA 大纲要求:
- 掌握 IPv6 与 IPv4 共同运作比如双栈部署时所需的技术要求Describe the technological requirements for running IPv6 in conjunction with IPv4, such as dual-stack implementation
在有关 IPv6 的第 7 天课程中,专门着重于一个纯 IPv6 环境,并掌握了 IPv6 运作原理,还学习了如何配置不同路由协议,来支持 IPv6 的路由且在思科IOS软件中进行了验证。尽管对 IPv6 本身的扎实掌握是重要的,但现实情形在于 IPv4 仍是当前所使用的占主导地位的互联网协议。因此,在考虑完全迁移到纯 IPv6 环境时,对如何将两种不同协议栈共同运作,是必要的。
在有关 IPv6 的第 7 天课程中,专门着重于一个纯 IPv6 环境,并掌握了 IPv6 运作原理,还学习了如何配置不同路由协议,来支持 IPv6 的路由,且在思科 IOS 软件中进行了验证。尽管对 IPv6 本身的扎实掌握是重要的,但现实情形在于 IPv4 仍是当前所使用的占主导地位的互联网协议。因此,在考虑完全迁移到纯 IPv6 环境时,对如何将两种不同协议栈共同运作,是必要的。
尽管迁移到 IPv6 环境将提供到前面提到的那些优势当下的情况在于并非所有可寻址的设备都支持IPv6, 那么为了那些运行不同协议栈的网络设备,使用上同一网络设施,就要求在同一网络中 IPv6 与 IPv4 共存。 IPv4 与 IPv6 的集成与共存策略,可被分为以下三个大的类别:
@ -53,7 +53,7 @@ ___
- 协议转换Protocol translation
在网际网络设备和主机同时用到两种协议栈(也就是 IPv4 和 IPv6 )时,就要求采用双栈部署策略。双栈部署令到主机能够同时使用 IPv4 或 IPv6 与其它主机建立端到端的IP会话Dual-stack implementation is required when internetwork devices and hosts use both protocol stacks(i.e., IPv4 and IPv6). Dual-stack implementation allows the hosts to use either IPv4 or IPv6 to establish end-to-end IP sessions with other hosts
在网际网络设备和主机同时用到两种协议栈(也就是 IPv4 和 IPv6 )时,就要求采用双栈部署策略。双栈部署令到主机能够同时使用 IPv4 或 IPv6 与其它主机建立端到端的 IP 会话Dual-stack implementation is required when internetwork devices and hosts use both protocol stacks(i.e., IPv4 and IPv6). Dual-stack implementation allows the hosts to use either IPv4 or IPv6 to establish end-to-end IP sessions with other hosts
> **注意:** 双栈部署并不是说那些仅支持 IPv4 或仅支持 IPv6 的主机,具备与其它主机通信的能力。要实现此特性,就需要其它的协议与机制。双栈仅指主机(或设施)能够同时支持 IPv4 协议栈**及**IPv6协议栈。
@ -61,9 +61,9 @@ ___
> **注意:** 在运用隧道技术时,为将 IPv6 数据包经由 IPv4 设施进行隧道化传输节点或互联网络的设备必须支持双栈with tunnelling, nodes or internetwork devices must support dual-stack in order to tunnel IPv6 packets over the IPv4 infrastructure
最后,在某些情况下,有可能出现某些仅 IPv4 的环境,需要与仅 IPv6 的环境进行通信,以及反过来的情况。那么在此种情形下,双栈技术或隧道技术部署都不能用到,因此就必须启用 IPv4 与 IPv6 之间的协议转换。尽管此中方案也是支持的但对于集成Ipv4与 IPv6 网络时其是最不可选的while supported, this is the least desirable method of integrating IPv4 and IPv6 networks。不过因为此方案仍被支持那么掌握如何实现此种方案仍是重要的。
最后,在某些情况下,有可能出现某些仅 IPv4 的环境,需要与仅 IPv6 的环境进行通信,以及反过来的情况。那么在此种情形下,双栈技术或隧道技术部署都不能用到,因此就必须启用 IPv4 与 IPv6 之间的协议转换。尽管此中方案也是支持的,但对于集成 Ipv4 与 IPv6 网络时其是最不可选的while supported, this is the least desirable method of integrating IPv4 and IPv6 networks。不过因为此方案仍被支持那么掌握如何实现此种方案仍是重要的。
这个课程模块的剩余部分,将详细地介绍集成 IPv4 与 IPv6 网络的**双栈部署**与**隧道技术**。包括特定于思科IOS软件的一些配置示例。
这个课程模块的剩余部分,将详细地介绍集成 IPv4 与 IPv6 网络的**双栈部署**与**隧道技术**。包括特定于思科 IOS 软件的一些配置示例。
## IPv4与 IPv6 的双栈部署
@ -71,11 +71,11 @@ ___
- 第一种方法需要用户手动配置。如用户知道目的 IPv6 主机的 IPv6 地址,就可以用此 IPv6 地址,自其双栈主机手动建立一此 IPv6 会话。尽管此方式可以良好运作,但要记住多台主机的 IPv4 及 IPv6 地址,会十分繁琐。
- 那么第二种方式就需要使用某种命名服务比如DNS。使用此种方法就要同时使用 IPv4 和 IPv6 地址来配置完全合格的域名Full Qualified Domain Names, FQDNs比如[www.howtonetwork.com](http://www.howtonetwork.com)。FQDN是由一个 IPv4 协议栈的`A`记录an `A` record for the IPv4 protocol stack, 以及一个 IPv6 协议栈的`AAAA`记录表示的这样的FQDN就令到DNS服务器既可使用IPv4, 又可使用 IPv6 进行查询了。
- 那么第二种方式就需要使用某种命名服务,比如 DNS 。使用此种方法,就要同时使用 IPv4 和 IPv6 地址来配置完全合格的域名Full Qualified Domain Names, FQDNs比如[www.howtonetwork.com](http://www.howtonetwork.com)。 FQDN 是由一个 IPv4 协议栈的`A`记录an `A` record for the IPv4 protocol stack, 以及一个 IPv6 协议栈的`AAAA`记录表示的,这样的 FQDN 就令到 DNS 服务器既可使用IPv4, 又可使用 IPv6 进行查询了。
### 在思科IOS路由器中部署双栈支持
### 在思科 IOS 路由器中部署双栈支持
尽管对那些不同厂商的具备双栈部署支持的不同类型主机的不同配置方式的讨论是超出CCNA考试要求范围的。但作为一名未来的网络工程师掌握如何在思科IOS软件下部署各种双栈方案是强制性的imperative to understand how to implement dual-stack solutions in Cisco IOS software。在思科IOS路由器中双栈运作的启用通过简单地在路由器接口上配置好 IPv4 及 IPv6 即可。
尽管对那些不同厂商的具备双栈部署支持的不同类型主机的不同配置方式的讨论,是超出 CCNA 考试要求范围的。但作为一名未来的网络工程师,掌握如何在思科 IOS 软件下部署各种双栈方案是强制性的imperative to understand how to implement dual-stack solutions in Cisco IOS software。在思科 IOS 路由器中,双栈运作的启用,通过简单地在路由器接口上配置好 IPv4 及 IPv6 即可。
通过在接口配置命令`ip address [address] [mask]`后添加`[secondary]`关键字,就可以为接口指定多个的 IPv4 地址。对于 IPv6 来说,是不需要`[secondary]`关键字的,因为使用第`7`天课程中所介绍的接口配置命令`ipv6 address`,就可以为每个接口配置多个前缀。下面的配置示例,演示了如何在单一的路由器接口上配置多个 IPv4 地址和 IPv6 地址及前缀:
@ -92,7 +92,7 @@ R3(config-if)#ipv6 enable
R3(config-if)#exit
```
> **注意:** 尽管在思科IOS软件中 IPv4 路由默认是开启的,但 IPv6 路由却是默认关闭的,所以必须显式地开启。
> **注意:** 尽管在思科 IOS 软件中 IPv4 路由默认是开启的,但 IPv6 路由却是默认关闭的,所以必须显式地开启。
依据这些 IPv4 与 IPv6 地址的配置,就可以通过简单地对查看路由器配置,来验证这些配置,如下面的输出所示:
@ -112,7 +112,7 @@ ipv6 enable
end
```
而要查看具体的 IPv4 及 IPv6 接口参数只需使用思科IOS软件的`show ip interface [name]`或`show ipv6 interface [name]`命令即可。下面是`Fastethernet0/0`接口上`show ip interface`的输出:
而要查看具体的 IPv4 及 IPv6 接口参数,只需使用思科 IOS 软件的`show ip interface [name]`或`show ipv6 interface [name]`命令即可。下面是`Fastethernet0/0`接口上`show ip interface`的输出:
```console
R3#show ip interface FastEthernet0/0 | section address
@ -143,9 +143,9 @@ R3#show ipv6 interface FastEthernet0/0 | section address
Hosts use stateless autoconfig for addresses.
```
### 思科IOS软件中配置静态 IPv4 及 IPv6 主机地址
### 思科 IOS 软件中配置静态 IPv4 及 IPv6 主机地址
思科IOS软件通过使用全局配置命令`ip host [name] [v4-address]`及`ipv6 host [name] [v6-address]`, 而提供了对相应的静态 IPv4 与 IPv6 主机地址配置的支持。下面的示例演示了在思科IOS软件中如何配置静态 IPv4 及 IPv6 的主机名字与地址:
思科 IOS 软件通过使用全局配置命令`ip host [name] [v4-address]`及`ipv6 host [name] [v6-address]`, 而提供了对相应的静态 IPv4 与 IPv6 主机地址配置的支持。下面的示例演示了在思科 IOS 软件中,如何配置静态 IPv4 及 IPv6 的主机名字与地址:
```console
R1(config)#ip host TEST-HOST 10.0.0.3
@ -164,7 +164,7 @@ TEST-HOST None (perm, OK) 0 IP 10.0.0.3
TEST-HOST None (perm, OK) 0 IPv6 3FFF:1234:ABCD:1::3
```
在同一主机同时配置一个 IPv4 及 IPv6 地址时思科IOS软件将使用 IPv6 地址。如有使用DNS那么在主机同时配置了 IPv6 及IPv4 DNS服务器时该双栈主机将先搜寻`AAAA` IPv6 )记录,并(在查询不到时)回滚到`A`记录( IPv4 If DNS is used, the dual-stack host will first search `AAAA`(IPv6) records and then fall back to the `A` records(IPv4) when configured with both IPv6 and IPv4 DNS servers。可想下面这样通过执行一次简单的到先前配置的静态主机`TEST-HOST`的`ping`操作,对此默认行为进行验证:
在同一主机同时配置一个 IPv4 及 IPv6 地址时,思科 IOS 软件将使用 IPv6 地址。如有使用 DNS ,那么在主机同时配置了 IPv6 及IPv4 DNS服务器时该双栈主机将先搜寻`AAAA` IPv6 )记录,并(在查询不到时)回滚到`A`记录( IPv4 If DNS is used, the dual-stack host will first search `AAAA`(IPv6) records and then fall back to the `A` records(IPv4) when configured with both IPv6 and IPv4 DNS servers。可想下面这样通过执行一次简单的到先前配置的静态主机`TEST-HOST`的`ping`操作,对此默认行为进行验证:
```console
R1#ping test-host repeat 10
@ -174,9 +174,9 @@ Sending 10, 100-byte ICMP Echos to 3FFF:1234:ABCD:1::3, timeout is 2 seconds:
Success rate is 100 percent (10/10), round-trip min/avg/max = 0/1/4 ms
```
### 在思科IOS软件中配置 IPv4 及 IPv6 的DNS服务器
### 在思科 IOS 软件中配置 IPv4 及 IPv6 的 DNS 服务器
思科IOS软件中 IPv4 与IPv6 DNS服务器的配置都依然是使用全局配置命令`ip name-server [address]`。不过这条命令现在已修改为允许将一个 IPv4 或 IPv6 地址指定为DNS服务器的IP地址。下面的示例演示了如何将路由器配置为同时使用一台 IPv4 及IPv6 DNS服务器
思科 IOS 软件中 IPv4 与IPv6 DNS服务器的配置都依然是使用全局配置命令`ip name-server [address]`。不过这条命令现在已修改为允许将一个 IPv4 或 IPv6 地址,指定为 DNS 服务器的 IP 地址。下面的示例演示了如何将路由器配置为同时使用一台 IPv4 及IPv6 DNS服务器
```console
R1(config)#ip name-server ?
@ -192,7 +192,7 @@ R1(config)#ip name-server 192.168.1.2
**Tunnelling IPv6 Datagrams across IPv4 Networks**
通道技术,也就是集成 IPv4 与 IPv6 网络的第二种方法,是将 IPv6 数据包进行封装并通过 IPv4 网络发送的。为了对本小节中即将说到的几种不同隧道机制进行支持思科IOS的边缘路由器Cisco IOS edge routers必须具有双栈部署译者注要配置 IPv4 和 IPv6 地址, 并开启 IPv6 路由),以令到 IPv6 数据包能够以 IPv4 数据包方式进行封装且在终端路由器the terminating router处被解封装。需要注意的是中途的那些路由器intermediate routers是无需运行 IPv6 的。也就是说,这些路由器只需简单的仅 IPv4 路由器。下图8.1演示了一个典型的隧道技术部署:
通道技术,也就是集成 IPv4 与 IPv6 网络的第二种方法,是将 IPv6 数据包进行封装并通过 IPv4 网络发送的。为了对本小节中即将说到的几种不同隧道机制进行支持,思科 IOS 的边缘路由器Cisco IOS edge routers必须具有双栈部署译者注要配置 IPv4 和 IPv6 地址, 并开启 IPv6 路由),以令到 IPv6 数据包能够以 IPv4 数据包方式进行封装且在终端路由器the terminating router处被解封装。需要注意的是中途的那些路由器intermediate routers是无需运行 IPv6 的。也就是说,这些路由器只需简单的仅 IPv4 路由器。下图8.1演示了一个典型的隧道技术部署:
![经由 IPv4 网络进行 IPv6 数据包的隧道传输](images/0801.png)
*图 8.1 -- 经由 IPv4 网络进行 IPv6 数据包的隧道传输*
@ -201,7 +201,7 @@ R1(config)#ip name-server 192.168.1.2
1. IPv6 `Host 1`将那些以IPv6 `Host 2`为目的的 IPv6 数据包,发送到其默认网关,也就是路由器`R4`。这些数据包是原生的、在数据包头部包含了 IPv6 源地址及目的地址的 IPv6 数据包。
2. `R4`是一台双栈路由器。其LAN接口已开启了IPv6, 同时其WAN接口已开启了 IPv4 。R4有着一个配置在其WAN接口和`R1`的WAN接口`R1`也是一台双栈路由器, 之间的隧道。在收到 IPv6 数据包后,`R4`就将它们以 IPv4 数据包格式进行封装,并转发给`R2`。这些数据包的目的地址被设置为`R1`, 同时该路由器(`R4`)将 IPv4 头的值设置为41, 以表明 IPv6 数据包是以 IPv4 数据包形式封装的。
2. `R4`是一台双栈路由器。其 LAN 接口已开启了IPv6, 同时其 WAN 接口已开启了 IPv4 。 R4 有着一个配置在其 WAN 接口和`R1`的 WAN 接口,`R1`也是一台双栈路由器, 之间的隧道。在收到 IPv6 数据包后,`R4`就将它们以 IPv4 数据包格式进行封装,并转发给`R2`。这些数据包的目的地址被设置为`R1`, 同时该路由器(`R4`)将 IPv4 头的值设置为41, 以表明 IPv6 数据包是以 IPv4 数据包形式封装的。
3. `R2`收到这些 IPv4 数据包,并简单地运用 IPv4 头部中的目的地址,将它们路由或转发到其最终目的地。
@ -209,7 +209,7 @@ R1(config)#ip name-server 192.168.1.2
5. 最终路由器`R1`,也是该隧道的出口,接收到这些原生的 IPv4 数据包并将其解封装,从而仅剩下 IPv6 数据包。于是该路由器就该这些 IPv6 数据包转发给`Host 2`。
封装与解封装过程对这两台主机以及隧道两端the tunnel endpoints之间的中间那些路由器来说是透明的。在以 IPv4 数据包进行 IPv6 数据包的隧道传输上有着多种方式参见后面。因为超出了CCNA考试要求这里不会涉及任何具体配置。
封装与解封装过程对这两台主机以及隧道两端the tunnel endpoints之间的中间那些路由器来说是透明的。在以 IPv4 数据包进行 IPv6 数据包的隧道传输上,有着多种方式(参见后面)。因为超出了 CCNA 考试要求,这里不会涉及任何具体配置。
下面列出了一些其它的隧道方式。思科可能会期望你知道有着这些方式,但不会出有关这些方式如何运作的题目。
@ -262,7 +262,7 @@ R1(config)#ip name-server 192.168.1.2
- 在设备之间通过这些主机名字,进行`ping`操作
- 在两台路由器上配置 IPv4 及 IPv6 的DNS服务器
- 在两台路由器上配置 IPv4 及 IPv6 的 DNS 服务器
### IPv4 - IPv6 隧道技术实验

View File

@ -1,4 +1,4 @@
# 第9天 访问控制清单
# 第 9 天 访问控制清单
**Access Control Lists**
@ -20,25 +20,25 @@ ___
- 阅读今天的课文
- 完成今天的实验
- 阅读ICND1记诵指南
- 在[subnetting.org](http://www.subnetting.org)上花15分钟
- 阅读 ICND1 记诵指南
- 在[subnetting.org](http://www.subnetting.org)上花 15 分钟
和子网划分及VLSM一样访问控制清单access control lists, ACL对于新CCNA学员来说也是一大难点one of the bugbear subjects。有关ACL的问题包括学习相关的IOS配置命令、理解ACL规则包括隐式的`deny all`规则),以及掌握端口号及协议类型。
和子网划分及 VLSM 一样访问控制清单access control lists, ACL对于新 CCNA 学员来说也是一大难点one of the bugbear subjects。有关 ACL 的问题包括,学习相关的 IOS 配置命令、理解 ACL 规则(包括隐式的`deny all`规则),以及掌握端口号及协议类型。
与其它CCNA科目一样应该在学习过程中一次完成一个小部分在路由器上使用所见到的每个命令并完成许多实验。
与其它 CCNA 科目一样,应该在学习过程中一次完成一个小部分,在路由器上使用所见到的每个命令,并完成许多实验。
今天你将学到以下内容。
- ACL基础
- 标准ACLs扩展ACLs 以及命名ACLs
- 标准 ACLs ,扩展 ACLs 以及命名ACLs
- ACL 规则
- 反掩码wildcard masks
- ACL的配置
- ACLs 故障排除
本课程对应了以下CCNA大纲要求。
本课程对应了以下 CCNA 大纲要求。
+ 描述ACLs的类型、特性及应用
+ 描述 ACLs 的类型、特性及应用
- 标准ACLs, standard
- 序列号, sequence numbers
- ACLs的编辑, editing
@ -54,23 +54,23 @@ ___
**ACLs用于过滤那些通过路由器的流量**。没有那个网络是会让任何流量都进入或流出该网络的。
**在流量过滤的同时ACLs 还可用于对NAT地址池的引用及对调试命令进行过滤filter your debugging commands, 以及对路由地图进行过滤这是超出CCNA大纲要求的**。
**在流量过滤的同时ACLs 还可用于对 NAT 地址池的引用及对调试命令进行过滤filter your debugging commands, 以及对路由地图进行过滤(这是超出 CCNA 大纲要求的)**。
依据所配置的ACL类型可实现基于源网络/IP地址的过滤、基于目的网络/IP地址的过滤、基于协议或基于端口号的过滤。可在路由器的任何接口包括Telnet端口上应用ACLs。
依据所配置的 ACL 类型,可实现基于源网络/IP地址的过滤、基于目的网络/IP地址的过滤、基于协议或基于端口号的过滤。可在路由器的任何接口包括 Telnet 端口,上应用 ACLs
下面是3中主要的ACLs类型。
下面是 3 中主要的 ACLs 类型。
- 标准的编号ACLs
- 扩展的编号ACLs
- 标准或扩展的命名ACLs
**标准的编号ACLs是可以应用到路由器上的最为基本的ACL形式**。它们是最易于配置的,因此其可用的过滤有着最大的限制。**它们仅能依据源IP地址或源网络进行过滤**。识别标准ACL的方法就是看配置行的前导数字标准ACLs的该数字为`1`到`99`。
**标准的编号 ACLs 是可以应用到路由器上的最为基本的 ACL 形式**。它们是最易于配置的,因此其可用的过滤有着最大的限制。**它们仅能依据源 IP 地址或源网络进行过滤**。识别标准 ACL 的方法就是看配置行的前导数字;标准 ACLs 的该数字为`1`到`99`。
**扩展的编号ACLs可以有多得多的粒度, 但配置和故障排除起来会更难应付。**它们可以对某个目的或源IP地址或网络、某种协议类型以及某个端口号进行过滤they can filter a destination or source IP address or network, a protocol type, and a port number。可用于配置扩展ACLs的编号为`100`到`199`(包含`100`和`199`)。
**扩展的编号 ACLs 可以有多得多的粒度, 但配置和故障排除起来会更难应付。**它们可以对某个目的或源 IP 地址或网络、某种协议类型以及某个端口号进行过滤they can filter a destination or source IP address or network, a protocol type, and a port number。可用于配置扩展 ACLs 的编号为`100`到`199`(包含`100`和`199`)。
**命名ACLs允许给某过滤清单一个名称而不是编号**。这就令到在路由器配置中更易于区别这些ACLs了。命名ACLs可以是标准及扩展ACLs; 在该ACLs的初始化配置行处可以选择其作为标准ACL还是扩展ACL。
**命名 ACLs 允许给某过滤清单一个名称,而不是编号**。这就令到在路由器配置中更易于区别这些 ACLs 了。命名 ACLs 可以是标准及扩展ACLs; 在该 ACLs 的初始化配置行处,可以选择其作为标准 ACL 还是扩展 ACL
为在CCNA考试中取得成功并成为一名思科工程师你需要理解以下内容。
为在 CCNA 考试中取得成功,并成为一名思科工程师,你需要理解以下内容。
- 端口号port numbers
- ACL规则ACL rules
@ -78,7 +78,7 @@ ___
## 端口号Port Numbers
如要通过CCNA考试以及要在实际网络上工作就必须要记住这些常见的端口号。在客户盯着你做事时去查一下常见端口号是不可能的。这里有些你会碰到且需掌握的一些最常见的端口号。
如要通过 CCNA 考试,以及要在实际网络上工作,就必须要记住这些常见的端口号。在客户盯着你做事时,去查一下常见端口号是不可能的。这里有些你会碰到且需掌握的一些最常见的端口号。
<table>
<tr><th>端口</th><th>服务</th><th>端口</th><th>服务</th></tr>
@ -87,7 +87,7 @@ ___
<tr><td>`22`</td><td>SSH</td><td>`119`</td><td>NNTP</td></tr>
<tr><td>`23`</td><td>Telnet</td><td>`123`</td><td>NTP</td></tr>
<tr><td>`25`</td><td>SMTP</td><td>`161/162`</td><td>SNMP</td></tr>
<tr><td>`53`</td><td>DNS</td><td>`443`</td><td>HTTPS(带有SSL的HTTP)</td></tr>
<tr><td>`53`</td><td>DNS</td><td>`443`</td><td>HTTPS(带有 SSL 的HTTP)</td></tr>
<tr><td>`69`</td><td>TFTP</td><td></td><td></td></tr>
</table>
@ -99,7 +99,7 @@ ___
**Use only one ACL per interface per direction**
这么做是很明智的。在同一接口上有多条ACLs去做不同的事情大概不是你想要的。简单地配置一条ACL来完成需要完成的事情而不是将过滤器分散到两条或多条的清单中。本应将“每个协议per protocol”加入到此规则中因为这里是可以包含IPX的访问控制清单的不过在现代网络中IP已成为唯一的协议了。
这么做是很明智的。在同一接口上,有多条 ACLs 去做不同的事情,大概不是你想要的。简单地配置一条 ACL 来完成需要完成的事情而不是将过滤器分散到两条或多条的清单中。本应将“每个协议per protocol”加入到此规则中因为这里是可以包含 IPX 的访问控制清单的,不过在现代网络中, IP 已成为唯一的协议了。
![接口上的一个方向仅做一条ACL](images/0901.png)
@ -109,7 +109,7 @@ ___
**the lines are processed top-down**
某些工程师在他们的ACL未如预期那样运行时感到迷惑。路由器会看看ACL的顶行在发现匹配后就会停在那里且不再对其它行进行检查了。为此需要将**最明确的(最小的)那些条目放在ACL的顶部**you need to put the most specific entries at the top of the ACL。比如在利用ACL来阻挡主机`172.16.1.1`时的做法。
某些工程师在他们的 ACL 未如预期那样运行时感到迷惑。路由器会看看 ACL 的顶行,在发现匹配后,就会停在那里且不再对其它行进行检查了。为此,需要将**最明确的(最小的)那些条目放在 ACL 的顶部**you need to put the most specific entries at the top of the ACL。比如在利用 ACL 来阻挡主机`172.16.1.1`时的做法。
<table>
<tr><td>`Permit 10.0.0.0`</td><td></td><td>没有匹配的</td></tr>
@ -119,13 +119,13 @@ ___
<tr><td>`Deny 172.16.1.1`</td><td></td><td>不会处理了</td></tr>
</table>
在本例中,应该将`Deny 172.16.1.1`这行放到顶部或至少应在语句statement`Permit 172.16.0.0`之前。
在本例中,应该将`Deny 172.16.1.1`这行,放到顶部,或至少应在语句( statement `Permit 172.16.0.0`之前。
### ACL规则三 -- 在每条ACL的底部都有一句隐式的“deny all”
### ACL规则三 -- 在每条 ACL 的底部都有一句隐式的“deny all”
**There is an implicit "deny all" at the bottom of every ACL**
这条规则另很多工程师为难。在每条ACL的底部有着一条看不见的命令。该命令设置为拒绝尚未匹配的所有流量。而阻止此命令起作用的唯一方法就是在底部手动配置一条`permit all`命令。在取得来自IP地址`172.20.1.1`的某个进入的数据包时的做法。
这条规则另很多工程师为难。在每条 ACL 的底部,有着一条看不见的命令。该命令设置为拒绝尚未匹配的所有流量。而阻止此命令起作用的唯一方法,就是在底部手动配置一条`permit all`命令。在取得来自 IP 地址`172.20.1.1`的某个进入的数据包时的做法。
<table>
<tr><td>`Permit 10.0.0.0`</td><td>无匹配项</td></tr>
@ -141,26 +141,26 @@ ___
**The router can't filter self-generated traffic.**
这在某个实际网络上于部署ACL前进行测试时会造成混乱。路由器不会过滤其自身产生的流量。在图9.2中有演示。
这在某个实际网络上于部署 ACL 前进行测试时会造成混乱。路由器不会过滤其自身产生的流量。在图9.2中有演示。
![对自身流量的ACL测试](images/0902.png)
![对自身流量的 ACL 测试](images/0902.png)
*图9.2 -- 对自身流量的ACL测试*
*图9.2 -- 对自身流量的 ACL 测试*
### ACL规则五 -- 不能对运行中的ACL进行编辑
### ACL规则五 -- 不能对运行中的 ACL 进行编辑
**You can't edit a live ACL.**
实际上,在`IOS 12.4`之前的版本中只能对命名ACL进行编辑, 而不能对标准ACL或扩展ACLs两种进行编辑。这曾是ACL架构的一个局限this was a limitation of ACL architecture。在`IOS 12.4`之前如想要编辑标准ACL或扩展ACL就必须按照以下步骤进行这里使用`list 99`作为例子)。
实际上,在`IOS 12.4`之前的版本中,只能对命名 ACL 进行编辑, 而不能对标准 ACL 或扩展 ACLs 两种进行编辑。这曾是 ACL 架构的一个局限this was a limitation of ACL architecture。在`IOS 12.4`之前,如想要编辑标准 ACL 或扩展 ACL ,就必须按照以下步骤进行(这里使用`list 99`作为例子)。
1. 使用命令`no ip access-group 99 in`在接口上停用ACL流量stop ACL traffic on the interface with the `no ip access-group 99 in` command
2. 将该条ACL复制粘贴到文本编辑器并在那里编辑好。
3. 进入到ACL模式将新的ACL粘贴上去。
4. 再次将该ACL应用到接口。
1. 使用命令`no ip access-group 99 in`,在接口上停用 ACL 流量stop ACL traffic on the interface with the `no ip access-group 99 in` command
2. 将该条 ACL 复制粘贴到文本编辑器,并在那里编辑好。
3. 进入到 ACL 模式,将新的 ACL 粘贴上去。
4. 再次将该 ACL 应用到接口。
在实际的路由器上,执行下面的这些命令。
在接口上已创建并应用的ACL。
在接口上已创建并应用的 ACL
```console
Router>en
@ -180,7 +180,7 @@ Router(config-if)#no ip access-group 1 in
Router(config-if)#^Z
```
查看那些ACLs。将其复制并粘贴到文本编辑器并进行修改。
查看那些 ACLs 。将其复制并粘贴到文本编辑器,并进行修改。
```console
Router#show run ← or show ip access lists
@ -196,7 +196,7 @@ access-list 1 permit host 172.16.1.1
access-list 1 permit host 172.16.2.2
```
下面是正被粘贴到路由器配置中的那些行。要先删除早先的ACL再粘贴进新版本。
下面是正被粘贴到路由器配置中的那些行。要先删除早先的 ACL ,再粘贴进新版本。
```console
Router#conf t
@ -218,13 +218,13 @@ Router(config)#int FastEthernet0/0
Router(config-if)#ip access-group 1 in ← reapply to the interface
```
如使用的是Packet Tracer, 那么这些命可能不会工作。同时,请一定在某台路由器上尝试这些命令,因为它们是考试考点。**记住在编辑ACL前要先在接口上关闭它此时它就不再是活动的了以避免一些奇怪或是不可预期的行为发生**。而在`IOS 12.4`及以后的版本中如何来编辑ACLs会在后面演示。
如使用的是Packet Tracer, 那么这些命可能不会工作。同时,请一定在某台路由器上尝试这些命令,因为它们是考试考点。**记住在编辑 ACL 前要先在接口上关闭它(此时它就不再是活动的了),以避免一些奇怪或是不可预期的行为发生**。而在`IOS 12.4`及以后的版本中,如何来编辑 ACLs ,会在后面演示。
### ACL规则六 -- 在接口上关闭ACL
**Disable the ACL on the interface.**
在打算短时间对ACL进行测试或是撤销ACL时许多工程师都会将其完全删除掉。这是不必要的。如你要停止ACL运行只需简单地将其从所应用到的接口上移除即可。
在打算短时间对 ACL 进行测试或是撤销 ACL 时,许多工程师都会将其完全删除掉。这是不必要的。如你要停止 ACL 运行,只需简单地将其从所应用到的接口上移除即可。
```console
Router(config)#int FastEthernet0/0
@ -236,7 +236,7 @@ Router(config-if)#^Z
**You can reuse the same ACL.**
这是我在实际网络中经常见到的。整个网络通常都有着同样的ACL策略。与其配置多条ACLs只需简单地引用同一ACL然后在所需要的那些接口上应用该ACL即可。图9.3演示了此概念。
这是我在实际网络中经常见到的。整个网络通常都有着同样的 ACL 策略。与其配置多条 ACLs ,只需简单地引用同一 ACL ,然后在所需要的那些接口上应用该 ACL 即可。图9.3演示了此概念。
![ACL的重用](images/0903.png)
@ -244,25 +244,25 @@ Router(config-if)#^Z
### ACL规则八 -- ACL应保持简短
ACLs的基本规则就是保持简短且只专注于做一件事情。许多新手的思科工程师将其ACL延伸到数行那么长最后经深思熟虑后就可以紧缩到少数几行的配置。前面提到的将那些最为特定的最小的行放在ACL的顶部。这是好的做法从而可以节约路由器CPU的执行周期。
ACLs的基本规则就是保持简短且只专注于做一件事情。许多新手的思科工程师将其 ACL 延伸到数行那么长,最后,经深思熟虑后,就可以紧缩到少数几行的配置。前面提到的将那些最为特定的(最小的)行放在 ACL 的顶部。这是好的做法,从而可以节约路由器 CPU 的执行周期。
优良的ACL配置技能来自于知识和操练。
优良的 ACL 配置技能,来自于知识和操练。
### ACL规则九 -- 尽可能将ACL放在接近源的地方
### ACL规则九 -- 尽可能将 ACL 放在接近源的地方
思科文档建议将扩展ACL尽量放在离源近的地方而将标准ACL尽量放在离目的近的地方因为这可以避免不必要的开销又能放行那些合法流量。
思科文档建议将扩展 ACL 尽量放在离源近的地方,而将标准 ACL 尽量放在离目的近的地方,因为这可以避免不必要的开销,又能放行那些合法流量。
![ACL尽量放在离源近的地方](images/0904.png)
![ ACL 尽量放在离源近的地方](images/0904.png)
*图9.4 -- 将ACL尽量放在离源近的地方*
*图9.4 -- 将 ACL 尽量放在离源近的地方*
>Farai 指出 -- “思科官方建议是扩展ACL尽量离源近而标准ACL尽量离目的近”。
>Farai 指出 -- “思科官方建议是扩展 ACL 尽量离源近,而标准 ACL 尽量离目的近”。
## 反掩码
**Wildcard Masks**
**因为在ACLs及某些路由协议的配置中反掩码是命令行的组成部分所有有必要学习反掩码**。之所有存在反掩码是因为需要有某种方式来告诉路由器我们要去匹配IP地址或网络地址的哪些部分。
**因为在 ACLs 及某些路由协议的配置中,反掩码是命令行的组成部分,所有有必要学习反掩码**。之所有存在反掩码,是因为需要有某种方式来告诉路由器,我们要去匹配 IP 地址或网络地址的哪些部分。
匹配实在二进制层面完成的,却可以采用与子网掩码相同的表示法,来容易地配置反掩码。一个二进制`1`告诉路由器忽略对应的位,`0`则是要匹配的位。
@ -286,7 +286,7 @@ CCNA考试中反掩码计算的一种简易方法就是把一个数与子网
<tr><th>相加之和</th><td>`255`</td><td>`255`</td><td>`255`</td><td>`255`</td></tr>
</table>
在想要ACL与匹配某个子网或是整个网络时就需要输入一个反掩码。比如要匹配`172.20.1.0 255.255.224.0`, 就需要输入下面的命令。
在想要 ACL 与匹配某个子网或是整个网络时,就需要输入一个反掩码。比如,要匹配`172.20.1.0 255.255.224.0`, 就需要输入下面的命令。
`Router(config)#access-list 1 permit 172.20.1.0 0.0.31.255`
@ -294,9 +294,9 @@ CCNA考试中反掩码计算的一种简易方法就是把一个数与子网
`Router(config)#access-list 1 permit 192.200.1.0 0.0.0.63`
在OSPF中应用网络语句时也要当心(be careful when applying network statements with OSPF),那位那也要用到反掩码。
OSPF 中应用网络语句时也要当心(be careful when applying network statements with OSPF),那位那也要用到反掩码。
在有着一个仅有两位主机位的网络时也要当心因为需要输入一条ACL来匹配这些主机位。比如要匹配子网`192.168.1.0 255.255.255.252`, 或`/30`的话,需要输入下面的命令。
在有着一个仅有两位主机位的网络时,也要当心,因为需要输入一条 ACL 来匹配这些主机位。比如,要匹配子网`192.168.1.0 255.255.255.252`, 或`/30`的话,需要输入下面的命令。
`Router(config)#access-list 1 permit 192.168.1.0 0.0.0.3`
@ -304,27 +304,27 @@ CCNA考试中反掩码计算的一种简易方法就是把一个数与子网
`Router(config)#access-list 1 permit 192.168.1.4 0.0.0.3`
请阅读子网划分和VLSM部分的课文以更好地掌握此概念。
请阅读子网划分和 VLSM 部分的课文,以更好地掌握此概念。
## 访问控制清单的配置
**Configuring Access Control Lists**
熟能生巧对于任何技能都是适用的。如同前面提到的你应该在路由器上输入这里给出的每个例子完成尽可能多的实验并构建出自己的实例。在考试和现实世界中你都需要精准快速的设计ACL。
熟能生巧,对于任何技能都是适用的。如同前面提到的,你应该在路由器上输入这里给出的每个例子,完成尽可能多的实验,并构建出自己的实例。在考试和现实世界中,你都需要精准快速的设计 ACL
接下来的章节中出现的标准和扩展ACLs都是编号ACLs。它们是配置ACLs的经典方法。命名ACLs是配置ACLs的另一种方式将在其后的部分出现。
接下来的章节中出现的标准和扩展 ACLs 都是编号 ACLs 。它们是配置 ACLs 的经典方法。命名 ACLs 是配置 ACLs 的另一种方式,将在其后的部分出现。
### 标准ACLs
**Standard ACLs**
标准的编号ACLs是最易于配置的所以拿它来作为开端是最好的。**标准ACLs只能实现依据源网络或源IP地址的过滤**。
标准的编号 ACLs 是最易于配置的,所以拿它来作为开端是最好的。**标准 ACLs 只能实现依据源网络或源 IP 地址的过滤**。
![带有源和目的地址的进入数据包](images/0905.png)
*图9.5 -- 带有源和目的地址的进入数据包*
在上面的图9.5中进入的数据包有着一个源和目的地址但标准ACL只会查看源地址。该ACL会放行会拒绝该源地址参见图9.6)。
在上面的图9.5中,进入的数据包有着一个源和目的地址,但标准 ACL 只会查看源地址。该 ACL 会放行会拒绝该源地址参见图9.6)。
![有着多台/个主机网络的网络](images/0906.png)
@ -337,15 +337,15 @@ Router(config)#access-list 1 permit host 192.168.1.1
Router(config)#access-list 1 permit 10.1.0.0 0.0.255.255
```
此ACL应在服务器侧的路由器上应用。又记得在清单的底部有一条隐式的`deny all`,所以其它流量都会给阻止掉。
ACL 应在服务器侧的路由器上应用。又记得在清单的底部有一条隐式的`deny all`,所以其它流量都会给阻止掉。
### 扩展ACLs
**Extended ACLs**
**扩展的编号ACLs中可以构建出细得多的粒度**。而正是由于有了细得多的粒度令到扩展的编号ACLs变得诡异起来。藉由扩展的编号ACLs可以对源或目的网络地址、端口、协议及服务进行过滤。
**扩展的编号 ACLs 中可以构建出细得多的粒度**。而正是由于有了细得多的粒度,令到扩展的编号 ACLs 变得诡异起来。藉由扩展的编号 ACLs ,可以对源或目的网络地址、端口、协议及服务进行过滤。
一般来说你可以看看扩展的ACLs配置语法就像下面这样。
一般来说,你可以看看扩展的 ACLs 配置语法,就像下面这样。
```console
access list# permit/deny [service/protocol] [source network/IP] [destination network/IP] [port#]
@ -364,7 +364,7 @@ access-list 100 permit icmp any any
*图9.7 -- 阻止服务器访问实例*
可为上面的网络配置一条ACL以e-mail、web和文件服务器为例可以像下面这样应用在服务器侧的
可为上面的网络配置一条 ACL 以e-mail、 web 和文件服务器为例,可以像下面这样(应用在服务器侧的)。
```console
access-list 100 permit tcp host 172.16.1.1 host 172.20.1.1 eq smtp
@ -372,7 +372,7 @@ access-list 100 permit tcp 10.1.0.0 0.0.255.255 host 172.30.1.1 eq ftp
access-list 100 permit tcp host 192.168.1.1 host 172.40.1.1 eq www
```
而如有不同要求就也可以像下面这条ACL。
而如有不同要求,就也可以像下面这条 ACL
```console
access-list 101 deny icmp any 172.20.0.0 0.0.255.255
@ -383,17 +383,17 @@ access-list 101 deny tcp 10.1.0.0 0.0.255.255 host 172.30.1.1 eq telnet
`access-list 102 permit tcp any host 172.30.1.1 eq ftp established`
关键字`[established]`告诉路由器仅放行在网络内部的主机所发起的流量。三次握手标志ACK或RST位将表明这点the three-way handshake flags, ACK or RST bit, will indicate this
关键字`[established]`告诉路由器仅放行在网络内部的主机所发起的流量。三次握手标志( ACK RST 将表明这点the three-way handshake flags, ACK or RST bit, will indicate this
### 命名ACLs
**Named ACLs**
与编号ACLs不同命名ACLs可由其描述性名称容易地区分而这在一些大型的配置中尤其有用。引入命名ACLs就是为增加灵活性及ACLs的易于管理的。命名ACLs可以看着是配置增强的提升因为它并未对ACLs结构进行修改仅改变了引用ACL的方式而已
与编号 ACLs 不同,命名 ACLs 可由其描述性名称容易地区分,而这在一些大型的配置中尤其有用。引入命名 ACLs 就是为增加灵活性及 ACLs 的易于管理的。命名 ACLs 可以看着是配置增强的提升,因为它并未对 ACLs 结构进行修改(仅改变了引用 ACL 的方式而已)。
其语法跟编号ACLs是相似的主要的不同就是使用名称而不是编号来区分ACLs。和编号ACLs一样可以配置标准的或扩展的命名ACLs。
其语法跟编号 ACLs 是相似的,主要的不同就是使用名称而不是编号来区分 ACLs 。和编号 ACLs 一样,可以配置标准的或扩展的命名 ACLs
在配置命名ACLs时的另一不同之处就是必须一直使用命令`ip access-list`这与编号ACLs可以只使用简单的`access-list`命令,是不一样的。
在配置命名 ACLs 时的另一不同之处,就是必须一直使用命令`ip access-list`,这与编号 ACLs 可以只使用简单的`access-list`命令,是不一样的。
```console
Router(config)#access-list ?
@ -421,9 +421,9 @@ R1(config)#ip access-list extended ?
WORD Access-list name
```
命名ACLs在语法上与其它类型的ACLs也就是标准和扩展的编号ACLs有着轻微的不同。同时也**可以编辑活动的命名ACLs**, 这是一个有用的特性。只需简单地告诉路由器要配置一条命名ACL 而不管它是标准的还是扩展的。在较新的IOS版本上也可以编辑编号ACLs所以请检查所用的平台。
命名 ACLs 在语法上与其它类型的 ACLs (也就是标准和扩展的编号 ACLs )有着轻微的不同。同时也**可以编辑活动的命名ACLs**, 这是一个有用的特性。只需简单地告诉路由器要配置一条命名 ACL 而不管它是标准的还是扩展的。在较新的 IOS 版本上,也可以编辑编号 ACLs ,所以请检查所用的平台。
在使用`ip access-list`命令常见一条命名ACL时思科IOS会将你带入ACL配置模式在那里就可以输入或是移除ACL条目了就是那些拒绝或放行的访问条件。图9.8展示了一条命名ACL的实例以及相应的输出。
在使用`ip access-list`命令常见一条命名 ACL 时,思科 IOS 会将你带入 ACL 配置模式,在那里就可以输入或是移除 ACL 条目了就是那些拒绝或放行的访问条件。图9.8展示了一条命名 ACL 的实例,以及相应的输出。
![命名ACL](images/0908.png)
@ -446,7 +446,7 @@ Router(config-ext-nacl)#deny tcp any any eq 80
Router(config-ext-nacl)#permit ip any any
```
命名ACL的验证可通过下面的命令完成。
命名 ACL 的验证,可通过下面的命令完成。
- `show ip access-list`: 显示设备上所创建的所有ACLs
- `show ip access-list <acl_name>`: 显示某条特定的命名ACL
@ -460,17 +460,17 @@ Standard IP access list test
10 permit 172.16.1.1
```
要知道如何来增加或是删除某条命令ACL中的条目请参考下面的“ACL序号ACL Sequence Numbers”小节。
要知道如何来增加或是删除某条命令 ACL 中的条目,请参考下面的“ ACL 序号ACL Sequence Numbers”小节。
### 应用ACLs
**Applying ACLs**
**为让ACLs发挥效果就必须将ACL应用到路由器的某个接口或端口上**。之所以这样讲是因为我曾见到许多的新手思科工程师在敲入了ACL后就想为什么它不工作或者他们配置了ACL却将错误的ACL编号或命名应用到相应的接口上。
**为让 ACLs 发挥效果,就必须将 ACL 应用到路由器的某个接口或端口上**。之所以这样讲,是因为我曾见到许多的新手思科工程师在敲入了 ACL 后,就想为什么它不工作!或者他们配置了 ACL ,却将错误的 ACL 编号或命名应用到相应的接口上。
**如要应用在某条线路上,就必须使用`access-class`命令来指定它**,而**如果是应用在某个接口上,就要用`ip access-group`命令**。思科这么做的原因,我也不知道。
这里有应用ACLs到端口或接口上的三个实例。
这里有应用 ACLs 到端口或接口上的三个实例。
接口上的应用。
@ -497,7 +497,7 @@ Router(config-if)#ip access-group BlockWEB in
**ACL Sequence Numbers**
自`12.4`往后你会发现思科IOS给每个ACL条目添加了序号。那么现在就可以创建一条访问控制清单并在其后从它里面一处一行了。
自`12.4`往后,你会发现思科 IOS 给每个 ACL 条目添加了序号。那么现在就可以创建一条访问控制清单,并在其后从它里面一处一行了。
```console
Router(config)#ip access-list standard test
@ -518,11 +518,11 @@ Standard IP access list test
注意到**在路由器运行配置中,序号并不会显示出来**。要查看它们,必须执行一个`show [ip] access-list`命令。
## 加入一个ACL行
## 加入一个 ACL
**Add an ACL Line**
**要加入一个新的ACL行只需简单地输入新的序号并接着输入该ACL语句**。下面的例子展示如何往现有的ACL中加入行`15`。
**要加入一个新的 ACL 行,只需简单地输入新的序号并接着输入该 ACL 语句**。下面的例子展示如何往现有的 ACL 中加入行`15`。
```console
Router#conf t
@ -541,11 +541,11 @@ Standard IP access list test
Router(config-std-nacl)#
```
### 移除一个ACL行
### 移除一个 ACL
**Remove an ACL Line**
要移除某个ACL行只需简单地敲入`no <seq_number>`命令即可,就如同下面的例子中行`20`被删除掉了。
要移除某个 ACL 行,只需简单地敲入`no <seq_number>`命令即可,就如同下面的例子中行`20`被删除掉了。
```console
Router#conf t
@ -562,11 +562,11 @@ Standard IP access list test30 permit 10.1.1.1
Router(config-std-nacl)#
```
### 为某条ACL重新编号
### 为某条 ACL 重新编号
**Resequence an ACL**
要对某条ACL重新编号使用`ip access-list resequence <acl_name> <starting_seq_number> <step_to_increment>`命令。该命令的行为可由下面的例子进行检验。
要对某条 ACL 重新编号,使用`ip access-list resequence <acl_name> <starting_seq_number> <step_to_increment>`命令。该命令的行为可由下面的例子进行检验。
```console
Router(config)#ip access-list resequence test 100 20
@ -578,13 +578,13 @@ Standard IP access list test
Router(config-std-nacl)#
```
命令`resequence`则会创建新的序号,自`100`开始,每个新行增加`20`。译者注在更新的IOS版本中此命令可指定开始序号及步进序号。
命令`resequence`则会创建新的序号,自`100`开始,每个新行增加`20`。译者注:在更新的 IOS 版本中,此命令可指定开始序号及步进序号。
### ACL日志
**ACL Logging**
默认情况下通过那些为某个接口的数据包所匹配上的ACL条目会创建出一个不断增大的计数器该计数器可使用`show ip access-list`命令进行查看,如下面的例子所示。
默认情况下,通过那些为某个接口的数据包所匹配上的 ACL 条目,会创建出一个不断增大的计数器,该计数器可使用`show ip access-list`命令进行查看,如下面的例子所示。
```console
Router#show ip access-lists
@ -593,7 +593,7 @@ Extended IP access list test
20 permit ip any any (56 matches)
```
而如果需要更详细的有关那些为ACL条目所匹配的流量信息可以给相关的ACL条目配置`log`或`log-input`参数。
而如果需要更详细的有关那些为 ACL 条目所匹配的流量信息,可以给相关的 ACL 条目配置`log`或`log-input`参数。
```console
Router(config)#ip access-list extended test
@ -605,11 +605,11 @@ Extended IP access list test
20 permit ip any any (83 matches)
```
在上面的配置样例中配置了test ACL的10号条目的ACL日志。在某个数据包与那个条目匹配时该ACL计数器就会增加与此同时路由器也会生成一条包含了该特定ACL匹配的详细日志记录。
在上面的配置样例中配置了test ACL的 10 号条目的 ACL 日志。在某个数据包与那个条目匹配时,该 ACL 计数器就会增加,与此同时路由器也会生成一条包含了该特定 ACL 匹配的详细日志记录。
`%SEC-6-IPACCESSLOGP: list test denied tcp 10.10.10.2(24667) -> 10.10.10.1(80), 1 packet`
而如果你仍需要更多有关该事件transaction的细节就要用`log-input`参数替代`log`参数了,就像下面这样。
而如果你仍需要更多有关该事件( transaction )的细节,就要用`log-input`参数替代`log`参数了,就像下面这样。
```console
Router(config)#ip access-list extended test
@ -621,23 +621,23 @@ Extended IP access list test
20 permit ip any any (125 matches)
```
这时当有该特定ACL条目匹配时路由器就会生成一条更为详细的日志消息当中包含了进入的接口以及源MAC地址。
这时,当有该特定 ACL 条目匹配时,路由器就会生成一条更为详细的日志消息,当中包含了进入的接口以及源 MAC 地址。
```console
%SEC-6-IPACCESSLOGP: list test denied tcp 10.10.10.2(14013) (FastEthernet0/0 00aa.aabb.ccdd) -> 10.10.10.1(80), 1 packet
```
**ACL日志在查看到底那些数据包被丢弃或放行的故障排除中会是非常有用的**, 但在现实世界情形中此内容超出CCNA考试范围不得提的是包含`[log]`或`[log-input]`关键字的ACL条目是为路由器进行线程交换的, 与之相反,现代路由器中, 默认都是经由CEF交换的ACL entries that contain `[log]` or `[log-input]` keyword are process-switched by the router, as opposed to being CEF-switched, which is the default in modern routers。这需要更多的路由器CPU周期因而导致在有大量与被记录的ACL条目匹配时出现问题。
**ACL日志在查看到底那些数据包被丢弃或放行的故障排除中会是非常有用的**, 但在现实世界情形中(此内容超出 CCNA 考试范围)不得提的是:包含`[log]`或`[log-input]`关键字的 ACL 条目是为路由器进行线程交换的, 与之相反,现代路由器中, 默认都是经由 CEF 交换的ACL entries that contain `[log]` or `[log-input]` keyword are process-switched by the router, as opposed to being CEF-switched, which is the default in modern routers。这需要更多的路由器 CPU 周期,因而导致在有大量与被记录的 ACL 条目匹配时,出现问题。
### 使用ACLs来限制Telnet和SSH访问
### 使用 ACLs 来限制 Telnet SSH 访问
**Using ACLs to Limit Telnet and SSH Access**
除了在接口级别过滤流量外ACLs可与其他设备特性配合使用包括过滤VTY线路上的流量。在前面的课程中我们曾学过如何利用`line vty`命令配置Telnet和SSH以实现对某台设备的访问比如路由器或交换机
除了在接口级别过滤流量外, ACLs 可与其他设备特性配合使用,包括过滤 VTY 线路上的流量。在前面的课程中,我们曾学过如何利用`line vty`命令,配置 Telnet SSH 以实现对某台设备的访问(比如路由器或交换机)。
有时我们可能不想接受到设备或自设备发出的所有Telnet/SSH连接。而为实现此操作就必须定义一条ACL以指定在VTY线路上所允许或拒绝的流量类型。该ACL可以是编号ACL或命名ACL。通过命令`access-class <acl> | [in|out]`, 将该ACL加入到想要的VTY线路上。
有时我们可能不想接受到设备或自设备发出的所有Telnet/SSH连接。而为实现此操作就必须定义一条 ACL ,以指定在 VTY 线路上所允许或拒绝的流量类型。该 ACL 可以是编号 ACL 或命名 ACL 。通过命令`access-class <acl> | [in|out]`, 将该 ACL 加入到想要的 VTY 线路上。
下面的例子定义了一条允许来自主机`10.10.10.1`的Telnet流量该ACL随后被应用到VTY线路的进入方向。
下面的例子定义了一条允许来自主机`10.10.10.1`的 Telnet 流量,该 ACL 随后被应用到 VTY 线路的进入方向。
```console
Router(config)#ip access-list extended VTY_ACCESS
@ -663,21 +663,21 @@ access-class VTY_ACCESS in
**Trubleshooting and Verifying ACLs**
相信有了对配置命令和规则的深入理解在访问控制清单上就不会有问题了。在ACL不工作的时候首先要通过ping操作检查有没有基本的IP连通性问题。接着看看有没有应用该ACL看看在ACL中有没有什么文字错误以及你是否需要允许任何IP流量通过记住那个隐式的`deny all`条目。而一些在ACL故障排除过程中最重要的检查点包括下面这些。
相信有了对配置命令和规则的深入理解,在访问控制清单上就不会有问题了。在 ACL 不工作的时候,首先要通过 ping 操作,检查有没有基本的 IP 连通性问题。接着看看有没有应用该 ACL ,看看在 ACL 中有没有什么文字错误,以及你是否需要允许任何 IP 流量通过(记住那个隐式的`deny all`条目)。而一些在 ACL 故障排除过程中最重要的检查点包括下面这些。
- 查看ACL统计信息
- 查看 ACL 统计信息
- 检查所允许的网络
- 检查应用ACL的接口及方向
- 检查应用 ACL 的接口及方向
### 查看ACL统计信息
### 查看 ACL 统计信息
在成功配置一条ACL并将其应用到某个接口上之后某种可以验证该ACL正确行为的手段非常重要尤其是某个ACL条目被使用到的次数。基于匹配次数就可以对过滤策略进行调整或者对ACLs进行增强以实现整体安全性的提升。而根据需求的不同可以在全局层面或者单个接口上从`IOS 12.4`开始查看ACL统计信息。
在成功配置一条 ACL 并将其应用到某个接口上之后,某种可以验证该 ACL 正确行为的手段非常重要,尤其是某个 ACL 条目被使用到的次数。基于匹配次数,就可以对过滤策略进行调整,或者对 ACLs 进行增强,以实现整体安全性的提升。而根据需求的不同,可以在全局层面或者单个接口上(从`IOS 12.4`开始)查看 ACL 统计信息。
**ACL全局统计信息**
**Global ACL Statistics**
可使用命令`show ip access-list` 或 `show access-list`命令, 查看ACL全局统计信息这两个命令又可以仅查看某个特定编号ACL或命名ACL的全局统计信息。
可使用命令`show ip access-list` 或 `show access-list`命令, 查看 ACL 全局统计信息,这两个命令又可以仅查看某个特定编号 ACL 或命名 ACL 的全局统计信息。
```console
Router#show ip access-lists
@ -686,13 +686,13 @@ Extended IP access list test
20 permit ip any any (56 matches)
```
在将某同一ACL重用到不同接口上时这种方式并不会提供到十分特定的信息因为它给出的是整体统计信息。
在将某同一 ACL 重用到不同接口上时,这种方式并不会提供到十分特定的信息,因为它给出的是整体统计信息。
**单个接口上的ACL统计信息**
**单个接口上的 ACL 统计信息**
**Per Interface ACL Statistics**
在想要查看单个接口上的ACL匹配情况不管是进还是出方向时可以使用命令`show ip access-list interface <interface_name> [in|out]`,如下面所示。
在想要查看单个接口上的 ACL 匹配情况,不管是进还是出方向时,可以使用命令`show ip access-list interface <interface_name> [in|out]`,如下面所示。
```console
Router#show ip access-list interface FastEthernet0/1 in
@ -701,19 +701,19 @@ Extended IP access list 100 in
30 permit ip host 10.10.10.2 any (31 matches)
```
如未有指定方向则应用到该特定接口上的任何进或出方向的ACL都将显示出来。此特性也叫做“ACL可管理能力ACL Manageability自`IOS 12.4`开始可用。
如未有指定方向,则应用到该特定接口上的任何进或出方向的 ACL 都将显示出来。此特性也叫做“ ACL 可管理能力ACL Manageability自`IOS 12.4`开始可用。
### 检查那些放行的网络
**Verifying the Permitted Networks**
有的时候特别实在那些必须配置很多ACLs的大型网络中在配置ACL条目是就会犯下一些书写错误而这就会导致不同接口上有错误的流量被阻止。为了检查那些正确的ACL条目也就是permit及deny语句可以照前面章节中讲到的那样使用`show run | section access-list`或者`show ip access-list`命令。
有的时候,特别实在那些必须配置很多 ACLs 的大型网络中,在配置 ACL 条目是就会犯下一些书写错误,而这就会导致不同接口上有错误的流量被阻止。为了检查那些正确的 ACL 条目(也就是 permit deny 语句),可以照前面章节中讲到的那样,使用`show run | section access-list`或者`show ip access-list`命令。
### 检查ACL的接口和方向
### 检查 ACL 的接口和方向
**Verifying the ACL Interface and Direction**
在将某条ACL应用到某个接口上时一个常见的错误就是将其应用到了错误的方向也就是本应在进方向的却应用到了出方向或者本应在出方向的却应用到了进方向。这会导致功能上和安全方面的很多问题。于是在ACL故障排除上的最先几步之一就是检查ACL应用到正确的接口及正确的方向。
在将某条 ACL 应用到某个接口上时,一个常见的错误就是将其应用到了错误的方向,也就是本应在进方向的,却应用到了出方向,或者本应在出方向的,却应用到了进方向。这会导致功能上和安全方面的很多问题。于是在 ACL 故障排除上的最先几步之一,就是检查 ACL 应用到正确的接口及正确的方向。
为此,可以使用多种命令,包括`show run`及`show ip access-list interface <interface> | [in|out]`命令。
@ -737,19 +737,19 @@ Extended IP access list 100 in
## 第九天的实验
### 标准ACL实验
### 标准 ACL 实验
**Standard ACL Lab**
**拓扑图**
![标准ACL实验拓扑图](images/0909.png)
![标准 ACL 实验拓扑图](images/0909.png)
标准ACL实验拓扑图
标准 ACL 实验拓扑图
**实验目的**
学习如何配置一条标准ACL。
学习如何配置一条标准 ACL
**实验步骤**
@ -761,7 +761,7 @@ Extended IP access list 100 in
RouterB(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0
```
2. 在路由器A上配置一条标准ACL放行`192.168.1.0/10`网络。默认情况下,其它所有网络都将被阻止。
2. 在路由器 A 上配置一条标准 ACL ,放行`192.168.1.0/10`网络。默认情况下,其它所有网络都将被阻止。
```console
@ -773,7 +773,7 @@ Extended IP access list 100 in
RouterA#
```
3. 从路由器`B`上测试该条ACL默认将使用`10.0.0.1`地址。
3. 从路由器`B`上测试该条 ACL ,默认将使用`10.0.0.1`地址。
```console
@ -784,7 +784,7 @@ Extended IP access list 100 in
Success rate is 0 percent (0/5)
```
4. 以源地址`192.168.1.1`来做另一个ping测试这将没有问题。
4. 以源地址`192.168.1.1`来做另一个 ping 测试,这将没有问题。
```console
@ -808,17 +808,17 @@ Extended IP access list 100 in
Success rate is 100 percent (5/5), round-trip min/avg/max = 31/31/32 ms
```
### 扩展ACL实验
### 扩展 ACL 实验
**拓扑图**
![扩展ACL实验的拓扑图](images/0910.png)
![扩展 ACL 实验的拓扑图](images/0910.png)
扩展ACl实验的拓扑图
扩展 ACl 实验的拓扑图
**实验目的**
学习如何配置一条扩展ACL。
学习如何配置一条扩展 ACL
**实验步骤**
@ -829,7 +829,7 @@ Extended IP access list 100 in
RouterB(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0
```
2. 在路由器`A`上配置一条扩展ACL。仅允许往环回接口上发起Telnet流量。
2. 在路由器`A`上配置一条扩展 ACL 。仅允许往环回接口上发起 Telnet 流量。
```console
@ -843,13 +843,13 @@ Extended IP access list 100 in
RouterA#
```
上面的那条ACL编号为`100`, 这就告诉路由器它是一条扩展ACL。所要允许的是TCP。该条ACL允许来自任何网络的目的地址为`172.20.1.1`的Telnet端口端口号为`23`。在执行`show run`命令时,就会看到,路由器实际上会将端口号替换为其对应的名称,就像下面演示的这样。
上面的那条 ACL 编号为`100`, 这就告诉路由器,它是一条扩展 ACL 。所要允许的是 TCP 。该条 ACL 允许来自任何网络的,目的地址为`172.20.1.1`的 Telnet 端口,端口号为`23`。在执行`show run`命令时,就会看到,路由器实际上会将端口号替换为其对应的名称,就像下面演示的这样。
```console
access-list 100 permit tcp any host 172.20.1.1 eq telnet
```
3. 现在从路由器B上做一个Telnet测试。首先往路由器`A`的串行接口上Telnet将会被阻止。接着测试环回接口。
3. 现在,从路由器 B 上做一个 Telnet 测试。首先往路由器`A`的串行接口上 Telnet ,将会被阻止。接着测试环回接口。
```console
@ -863,19 +863,19 @@ Extended IP access list 100 in
RouterA> ←Hit Control+Shift+6 together and then let go and press the X key to quit.
```
> **注意:** 我们会在其它实验中涉及ACLs但你真的需要完全地掌握这些内容。为此要尝试其它的TCP端口比如`80`、`25`等等。另外要试试那些UDP端口比如`53`。如没有将一台PC接上路由器则是无法对这些其它端口进行测试的。
> **注意:** 我们会在其它实验中涉及 ACLs ,但你真的需要完全地掌握这些内容。为此,要尝试其它的 TCP 端口,比如`80`、`25`等等。另外,要试试那些 UDP 端口,比如`53`。如没有将一台 PC 接上路由器,则是无法对这些其它端口进行测试的。
## 命名ACL实验
## 命名 ACL 实验
**拓扑图**
![命名ACL实验拓扑图](images/0911.png)
![命名 ACL 实验拓扑图](images/0911.png)
命名ACL实验拓扑图
命名 ACL 实验拓扑图
**实验目的**
学习如何配置一条命名ACL。
学习如何配置一条命名 ACL
**实验步骤**
@ -887,7 +887,7 @@ Extended IP access list 100 in
RouterB(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0
```
2. 在路由器`B`上加入一条扩展的命名ACL。只放行主机`172.20.1.1`,阻止其它任何主机或网络。
2. 在路由器`B`上加入一条扩展的命名 ACL 。只放行主机`172.20.1.1`,阻止其它任何主机或网络。
```console
@ -899,7 +899,7 @@ Extended IP access list 100 in
RouterB(config-if)#
```
3. 现在分别从路由器`A`的串行接口和换回接口发出`ping`来测试该条ACL。
3. 现在分别从路由器`A`的串行接口和换回接口发出`ping`来测试该条 ACL
```console
@ -929,21 +929,21 @@ Extended IP access list 100 in
Success rate is 100 percent (5/5), round-trip min/avg/max = 31/34/47 ms
```
> **注意:** 你需要搞清楚各种服务以及各种服务所用到的端口。否则要配置ACL就会非常棘手。本条ACL相当简单因此可以仅用一行完成。在有着路由协议运行时需要放行它们。
> **注意:** 你需要搞清楚各种服务,以及各种服务所用到的端口。否则,要配置 ACL 就会非常棘手。本条 ACL 相当简单,因此可以仅用一行完成。在有着路由协议运行时,需要放行它们。
要放行RIP就要像这样指定。
要放行 RIP ,就要像这样指定。
```console
access-list 101 permit udp any any eq rip
```
要放行OSPF要像这样指定。
要放行 OSPF ,要像这样指定。
```console
access-list 101 permit ospf any any
```
要放行EIGRP要像这样指定。
要放行 EIGRP ,要像这样指定。
```console
access-list 101 permit eigrp any any

View File

@ -1,4 +1,4 @@
# 第10天 路由的一些概念
# 第 10 天 路由的一些概念
**Routing Concepts**
@ -16,13 +16,13 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第10天的任务
## 第 10 天的任务
- 阅读今天的课文
- 回顾昨天的课文
- 完成今天的实验
- 阅读ICND1记诵指南
- 在网站[subnetting.org](http://subnetting.org/)上花15分钟
- 阅读 ICND1 记诵指南
- 在网站[subnetting.org](http://subnetting.org/)上花 15 分钟
ICND1考试要求你对**基本路由**basic routing及**数据包流经某个网络的过程**(packet flow accross a network),有所掌握。我们也会**对各种路由协议背后的技术有所了解**(take a look at the technology behind routing protocols)。
@ -32,7 +32,7 @@ ICND1考试要求你对**基本路由**basic routing及**数据包流经
- 各种有类和无类协议classful and classless protocols
- 路由协议的分类routing protocol classes
本模块对应了CCNA大纲要求的以下方面。
本模块对应了 CCNA 大纲要求的以下方面。
+ 描述基本路由的一些概念
- CEF
@ -50,13 +50,13 @@ ICND1考试要求你对**基本路由**basic routing及**数据包流经
路由协议的角色,一是**动态地学习其它网络**,二是**与其它设备交换路由信息**,三就是**连接上内部和/或外部网络**。
务必要清楚,路由协议**不会**跨越网络发送数据包。它们是用来确定路由的最佳路径their role is to determaine the best path for routing。受路由的那些协议routed protocols才真正发出数据而一个最常见的受路由协议实例就是IP。
务必要清楚,路由协议**不会**跨越网络发送数据包。它们是用来确定路由的最佳路径their role is to determaine the best path for routing。受路由的那些协议routed protocols才真正发出数据而一个最常见的受路由协议实例就是 IP
不同路由协议采用不同方式来确定到某个网络或网络节点的最优路径。一些类型的路由协议在静态环境或者说几乎没有变化的环境中运行最好但却在这些环境发生变化后需要很长时间进行收敛converge。另一些协议则能够对网络中发生的变化迅速反应而能快速地进行收敛。
不同路由协议采用不同方式来确定到某个网络或网络节点的最优路径。一些类型的路由协议,在静态环境或者说几乎没有变化的环境中运行最好,但却在这些环境发生变化后,需要很长时间进行收敛( converge )。另一些协议,则能够对网络中发生的变化迅速反应而能快速地进行收敛。
当网络中所有路由器有着同样的视图view并对那些最优路由达成一致时就实现了网络收敛network convergence。在要很长时间才能实现收敛时将会发生远端网络之间间歇性的丢包及连通性丢失。除了这些问题之外慢速的收敛还会导致网络路由循环network routing loops及完全的网络中断outright network outages。**所用到的路由协议算法确定了收敛情况**。
当网络中所有路由器有着同样的视图( view 并对那些最优路由达成一致时就实现了网络收敛network convergence。在要很长时间才能实现收敛时将会发生远端网络之间间歇性的丢包及连通性丢失。除了这些问题之外慢速的收敛还会导致网络路由循环network routing loops及完全的网络中断outright network outages。**所用到的路由协议算法确定了收敛情况**。
因为这些路由协议有着不同特征而在其各自的伸缩性scalability和性能上有所不同。一些路由协议适合于小型网络而其它协议则既可用于小型、中型网络又可在大型网络中使用。
因为这些路由协议有着不同特征,而在其各自的伸缩性( scalability )和性能上有所不同。一些路由协议适合于小型网络,而其它协议则既可用于小型、中型网络,又可在大型网络中使用。
### 包转发
@ -87,33 +87,33 @@ ICND1考试要求你对**基本路由**basic routing及**数据包流经
**交换过程the switching process** 允许路由器通过一个接口接收数据包,并从另一接口发出。同时路由器也会以外出链路的适当数据链路帧方式,对数据包进行封装。
可能会要求你对自一个网络接收,并以另一个网络为目的地的数据包所发生的事情进行解释。首先,路由器通过移除二层帧的头部和尾部,实现三层数据包的解封装; 接着路由器查看该IP数据包的目的IP地址以找出路由表中的最佳路径; 最后,路由器将该三层数据包封装为一个新的二层帧,并将该帧从离开接口转发出去,那么**封装方式就可能从以太网变为HDLC**。此过程在下图10.4中进行了演示。
可能会要求你对自一个网络接收,并以另一个网络为目的地的数据包所发生的事情进行解释。首先,路由器通过移除二层帧的头部和尾部,实现三层数据包的解封装; 接着,路由器查看该 IP 数据包的目的 IP 地址,以找出路由表中的最佳路径; 最后,路由器将该三层数据包封装为一个新的二层帧,并将该帧从离开接口转发出去,那么**封装方式就可能从以太网变为HDLC**。此过程在下图10.4中进行了演示。
![某数据包的三层地址](images/1004.png)
*图10.4 -- 某数据包的三层地址*
记住在一个较早的模块中曾提到当数据包往其最终目的漫游时源和目的IP地址绝不会变化。而MAC地址则会改变以允许在那些中间设备之间进行传输。这在下图10.5中有演示。
记住在一个较早的模块中曾提到,当数据包往其最终目的漫游时,源和目的 IP 地址绝不会变化。而 MAC 地址则会改变以允许在那些中间设备之间进行传输。这在下图10.5中有演示。
![二层地址改变](images/1005.png)
*图10.5 -- 二层地址改变*
图10.6展示了一个从主机`X`离开,前往主机`Y`的数据包。注意其下一跳MAC地址属于路由器`A`采用了代理ARP但其IP地址则是属于主机`Y`。在帧到达路由器`B`时以太网头部和尾部将换成WAN协议的头部和尾部这里可以假定为HDLC的头部和尾部。
图10.6展示了一个从主机`X`离开,前往主机`Y`的数据包。注意其下一跳 MAC 地址属于路由器`A`(采用了代理 ARP );但其 IP 地址则是属于主机`Y`。在帧到达路由器`B`时,以太网头部和尾部将换成 WAN 协议的头部和尾部,这里可以假定为 HDLC 的头部和尾部。
![离开主机X的数据包](images/1006.png)
![离开主机 X 的数据包](images/1006.png)
*图10.6 -- 离开主机X的数据包*
*图10.6 -- 离开主机 X 的数据包*
图10.7展示了离开路由器`A`前往路由器`B`的同样数据包。这里有着一次路由查找,接着数据包就被从接口`E1` **交换出去**(there is a route lookup and then the packet is switched out of interface `E1`)。类型`800`(`Type 800`表明该数据包是一个IPv4数据包。
图10.7展示了离开路由器`A`前往路由器`B`的同样数据包。这里有着一次路由查找,接着数据包就被从接口`E1` **交换出去**(there is a route lookup and then the packet is switched out of interface `E1`)。类型`800`(`Type 800`)表明该数据包是一个 IPv4 数据包。
![离开路由器A的数据包](images/1007.png)
![离开路由器 A 的数据包](images/1007.png)
*图10.7 -- 离开路由器A的数据包*
*图10.7 -- 离开路由器 A 的数据包*
图10.8展示了该帧最终到达路由器`C`并被转发给主机`Y`。
![离开路由器C的数据包](images/1008.png)
![离开路由器 C 的数据包](images/1008.png)
*图10.8 -- 离开路由器`C`的数据包*
@ -137,9 +137,9 @@ ICND1考试要求你对**基本路由**basic routing及**数据包流经
**IP Addressing and Address Summarisation**
一个IP地址是分作两部分的。第一部分指明了网络地址而第二部分指明的是主机地址。在设计某个网络时就会用到某种IP分址方案来将网络中的主机及设备进行唯一区分。该IP分址方案应是层次化的且应建立在传统的逻辑层次化模型上。这样做就能实现该分址方案于网络中提供出一些指定点位在这些点位完成有效的路由汇总。
一个 IP 地址是分作两部分的。第一部分指明了网络地址,而第二部分指明的是主机地址。在设计某个网络时,就会用到某种 IP 分址方案,来将网络中的主机及设备进行唯一区分。该 IP 分址方案应是层次化的,且应建立在传统的逻辑层次化模型上。这样做就能实现该分址方案于网络中提供出一些指定点位,在这些点位完成有效的路由汇总。
汇总summarisation减少路由器所必须处理信息的数量以此就可以实现网络的快速收敛。汇总还通过隐藏掉网络中某些区域的详细拓扑信息从而令到因网络发生改变而受影响区域的大小受限。此概念在下图10.9中进行了演示。
汇总( summarisation 减少路由器所必须处理信息的数量以此就可以实现网络的快速收敛。汇总还通过隐藏掉网络中某些区域的详细拓扑信息从而令到因网络发生改变而受影响区域的大小受限。此概念在下图10.9中进行了演示。
![采用思科设计模型的路由汇总](images/1009.png)
@ -153,16 +153,16 @@ ICND1考试要求你对**基本路由**basic routing及**数据包流经
管理距离用于决定一个路由信息來源对另一个的可靠性administrative distance is used to determine the reliability of one source of routing information from another。一些路由信息来源被认为相较其它源更为可靠那么当自两种或更多不同路由协议得出两种或更多到同一目的的路径时管理距离就可用于决定到某个目的网络或网络节点的最优或首选路径。
在思科IOS软件中**所有路由信息来源都分配了一个默认管理距离值**。该默认值是一个`0`到`255`之间的整数,其中值`0`分配给最可靠的路由信息来源,值`255`分配给最不可靠的来源。任何分配了管理距离值`255`的路由,都被认为是不受信任的,且不会被放入到路由表中。
在思科 IOS 软件中,**所有路由信息来源都分配了一个默认管理距离值**。该默认值是一个`0`到`255`之间的整数,其中值`0`分配给最可靠的路由信息来源,值`255`分配给最不可靠的来源。任何分配了管理距离值`255`的路由,都被认为是不受信任的,且不会被放入到路由表中。
**管理距离是一个仅影响本地路由器的本地有意义值**。该值不会在路由域中传播this value is not propagated throughout the routing domain。因此对一台路由器上某个或某些路由来源默认管理距离的修改仅影响那台路由器对路由信息来源的选用。表10.1展示了思科IOS软件中所用到的默认管理值考试要求掌握这些值
**管理距离是一个仅影响本地路由器的本地有意义值**。该值不会在路由域中传播this value is not propagated throughout the routing domain。因此对一台路由器上某个或某些路由来源默认管理距离的修改仅影响那台路由器对路由信息来源的选用。表10.1展示了思科 IOS 软件中所用到的默认管理值(考试要求掌握这些值)。
**表10.1 -- 路由器管理距离**
**Router Administrative Distances(ADs)**
<table>
<tr><th>路由来源</th><th>管理距离AD</th></tr>
<tr><th>路由来源</th><th>管理距离( AD </th></tr>
<tr><td>连接的接口Connected Interfaces</td><td>`0`</td></tr>
<tr><td>静态路由Static Routes</td><td>`1`</td></tr>
<tr><td>增强内部网关路由协议汇总路由Enhanced Interior Gateway Routing Protocol(EIGRP) Summary Routes</td><td>`5`</td></tr>
@ -182,7 +182,7 @@ ICND1考试要求你对**基本路由**basic routing及**数据包流经
```console
R1#show ip protocols
Routing Protocol is “isis”
Routing Protocol is “ isis
Invalid after 0 seconds, hold down 0, flushed after 0
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
@ -217,9 +217,9 @@ Distance: (default is 115 )
带宽一词,指的是在给定时间内,从一点往另一点可以传输数据的数量。一些路由算法会用到带宽来决定何种链路类型较其它类型更为首选。比如,某种路由协议会首选`GigabitEthernet`而不是`FastEthernet`, 因为前者比起后者有着提升了的容量。
在思科IOS软件中接口配置命令**`bandwidth`可用于修改某个接口的默认带宽值,从而有效地操纵某种路由协议选择一个接口而不是另一个**。比如,在用接口配置命令`bandwidth 1000000`将`FastEthernet`接口进行配置后,那么`FastEthernet`和`GigabitEthernet`二者在路由协议看起来就具有了相同的传输容量,而会分配到同样的度量值。其中一条链路仍然是`FastEthernet`链路,而另一条是`GigabitEthernet`的事实,与路由协议不相关。
在思科 IOS 软件中,接口配置命令**`bandwidth`可用于修改某个接口的默认带宽值,从而有效地操纵某种路由协议选择一个接口而不是另一个**。比如,在用接口配置命令`bandwidth 1000000`将`FastEthernet`接口进行配置后,那么`FastEthernet`和`GigabitEthernet`二者在路由协议看起来就具有了相同的传输容量,而会分配到同样的度量值。其中一条链路仍然是`FastEthernet`链路,而另一条是`GigabitEthernet`的事实,与路由协议不相关。
从一名网络管理员的角度看,重要的是理解**`bandwidth`命令不会影响接口的物理容量**(因此该命令又是被成为是一个道具命令(a cosmetic command))。也就是说,在`FastEthernet`接口上配置了更高的带宽,并不意味着其就具备了支持`GigabitEthernet`速率的能力。**开放路径优先OSPF和增强内部网关路由协议EIGRP都在度量值计算中用到了带宽变量**。
从一名网络管理员的角度看,重要的是理解**`bandwidth`命令不会影响接口的物理容量**(因此该命令又是被成为是一个道具命令(a cosmetic command))。也就是说,在`FastEthernet`接口上配置了更高的带宽,并不意味着其就具备了支持`GigabitEthernet`速率的能力。**开放路径优先( OSPF )和增强内部网关路由协议( EIGRP )都在度量值计算中用到了带宽变量**。
### 成本
@ -231,9 +231,9 @@ Distance: (default is 115 )
**Delay**
延迟的类型有多种所有的延迟又影响不同类型的流量。一般意义上的延迟是指将一个数据包通过互联网络从其源处移到目的处所需要的时间长度。在思科IOS软件中接口延迟值以微秒`us`)计算的。
延迟的类型有多种,所有的延迟又影响不同类型的流量。一般意义上的延迟,是指将一个数据包通过互联网络,从其源处移到目的处所需要的时间长度。在思科 IOS 软件中,接口延迟值以微秒(`us`)计算的。
通过接口配置命令`delay`来配置接口的延迟值。在配置接口延迟值时,重要的是记住**这样做并不会影响到流量**(又是一个道具命令)。比如,配置了一个`5000`的延迟值,并不意味着从该接口发出的流量将有一个额外的`5000us`延迟。下表10.2展示了思科IOS软件中常见接口的默认延迟值。
通过接口配置命令`delay`来配置接口的延迟值。在配置接口延迟值时,重要的是记住**这样做并不会影响到流量**(又是一个道具命令)。比如,配置了一个`5000`的延迟值,并不意味着从该接口发出的流量将有一个额外的`5000us`延迟。下表10.2展示了思科 IOS 软件中常见接口的默认延迟值。
<table>
<tr><th>接口类型</th><th>延迟(`us`</th></tr>
@ -243,25 +243,25 @@ Distance: (default is 115 )
<tr><td>`T1`串行线路</td><td>`20000`</td></tr>
</table>
**EIGRP将接口延迟数值用作其度量值计算的部分**。手动修改接口延迟值会造成EIGRP度量值的重新计算。
**EIGRP将接口延迟数值用作其度量值计算的部分**。手动修改接口延迟值会造成 EIGRP 度量值的重新计算。
**负载**
**Load**
负载对不同的人来说有不同的意思。例如在一般计算术语中负载是指某项计算资源譬如CPU当前的使用量。而在此处负载是指某个特定路由器接口使用的比例load, as it applies in this context, refers to the degree of use for a particular router interface。接口上的负载是一个`255`的分数。比如,一个`255/255`的负载就表明该接口已完全饱和,而一个`128/255`的负载则表明该接口是`50%`饱和的。默认情况下,负载是按`5`分钟平均值计算的(真实世界中常使用**接口配置命令`load-interval 30`**将其修改为一个最小的`30s`)。**接口负载值可用于EIGRP中的度量值计算**。
负载对不同的人来说有不同的意思。例如,在一般计算术语中,负载是指某项计算资源,譬如 CPU 当前的使用量。而在此处负载是指某个特定路由器接口使用的比例load, as it applies in this context, refers to the degree of use for a particular router interface。接口上的负载是一个`255`的分数。比如,一个`255/255`的负载就表明该接口已完全饱和,而一个`128/255`的负载则表明该接口是`50%`饱和的。默认情况下,负载是按`5`分钟平均值计算的(真实世界中常使用**接口配置命令`load-interval 30`**将其修改为一个最小的`30s`)。**接口负载值可用于 EIGRP 中的度量值计算**。
**路径长度**
**Path Length**
路径长度度量值是自本地路由器到目的网络所经过路径的总长度。不同路由算法在表示该值时有着不同的形式。比如路由信息协议Routing Information Protocol, RIP对在本地路由器和目的网络之间的**路由器**进行计数跳数hops 并使用该跳数作为度量值而边界网关协议Border Gateway Protocol, BGP则对在本地路由器和目的网络之间**所经过的自治系统**进行计数,并使用该自治系统数来选择最优路径。
路径长度度量值是自本地路由器到目的网络所经过路径的总长度。不同路由算法在表示该值时有着不同的形式。比如路由信息协议Routing Information Protocol, RIP对在本地路由器和目的网络之间的**路由器**进行计数(跳数, hops 并使用该跳数作为度量值而边界网关协议Border Gateway Protocol, BGP则对在本地路由器和目的网络之间**所经过的自治系统**进行计数,并使用该自治系统数来选择最优路径。
**可靠性**
**Reliability**
和负载一样可靠性一词也是依据其所在上下文的不同有着不同的意义。在这里除非另有说明总是可以假定可靠性是指网络链路或接口的可靠性、可信任性。在思科IOS软件中某条链路或某个接口的可靠性表示为一个`255`的分数。比如,一个`255/255`的可靠性值表明接口是`100%`可靠的。与接口负载类似,某接口的默认可靠性是以过去`5`分钟平均值进行计算的。
和负载一样,可靠性一词,也是依据其所在上下文的不同,有着不同的意义。在这里,除非另有说明,总是可以假定可靠性是指网络链路或接口的可靠性、可信任性。在思科 IOS 软件中,某条链路或某个接口的可靠性表示为一个`255`的分数。比如,一个`255/255`的可靠性值表明接口是`100%`可靠的。与接口负载类似,某接口的默认可靠性是以过去`5`分钟平均值进行计算的。
### 前缀匹配
@ -282,7 +282,7 @@ Distance: (default is 115 )
<tr><td>`0.0.0.0/0`</td><td>第五</td><tr>
</table>
> **注意:** 尽管在表10.3中默认路由是位列路由选择顺序最后的,但要记住一条默认路由并非总是出现在路由表中的。如路由表中没有默认路由,同时也没有到地址`1.1.1.1`的路由条目那么路由器就会简单地丢弃到那个目的地的数据包。大多数情况下路由器会发给源主机一条ICMP消息告知其目的主机不可达。而一条默认路由就是用于将目的网络未在路由表中显式列出的数据包导向默认路由。
> **注意:** 尽管在表10.3中默认路由是位列路由选择顺序最后的,但要记住一条默认路由并非总是出现在路由表中的。如路由表中没有默认路由,同时也没有到地址`1.1.1.1`的路由条目,那么路由器就会简单地丢弃到那个目的地的数据包。大多数情况下,路由器会发给源主机一条 ICMP 消息,告知其目的主机不可达。而一条默认路由就是用于将目的网络未在路由表中显式列出的数据包,导向默认路由。
### IP路由表的建立
@ -300,9 +300,9 @@ Distance: (default is 115 )
- 如新路由的度量值更低,就替换既有路由;或
- 新旧路由的度量值一样时,将两条路由用作负载均衡
默认情况下建立路由信息库,当路由器在决定哪些路由要放入路由表时,总会选用有着最低管理距离值的路由协议。比如,某台路由器收到经由**外部的EIGRP**、OSPF及内部BGP给出的`10.0.0.0/8`前缀时OSPF的路由将被放入到路由表中。而在那条路由被移除或是不再收到时外部EIGRP路由将被放入路由表中。最后如果OSPF和外部EIGRP路由都不再出现时内部BGP路由就被用到。
默认情况下建立路由信息库,当路由器在决定哪些路由要放入路由表时,总会选用有着最低管理距离值的路由协议。比如,某台路由器收到经由**外部的EIGRP**、 OSPF 及内部 BGP 给出的`10.0.0.0/8`前缀时, OSPF 的路由将被放入到路由表中。而在那条路由被移除,或是不再收到时,外部 EIGRP 路由将被放入路由表中。最后如果 OSPF 和外部 EIGRP 路由都不再出现时,内部 BGP 路由就被用到。
一旦路由已放入到路由表,默认情况下比起那些较不具体的路由,最为具体或有着最长匹配前缀的路由总是优先选用的。这在下面的实例中进行了演示,该实例展示了包含有`80.0.0.0/8`、`80.1.0.0/16`及`80.1.1.0/24`前缀路由条目的一个路由表。这三条路由前缀分别通过EIGRP、OSPF及RIP路由协议接收到。
一旦路由已放入到路由表,默认情况下比起那些较不具体的路由,最为具体或有着最长匹配前缀的路由总是优先选用的。这在下面的实例中进行了演示,该实例展示了包含有`80.0.0.0/8`、`80.1.0.0/16`及`80.1.1.0/24`前缀路由条目的一个路由表。这三条路由前缀分别通过 EIGRP OSPF RIP 路由协议接收到。
```console
R1#show ip route
@ -319,16 +319,16 @@ D 80.0.0.0/8 [90/281600] via 10.1.1.2, 00:02:02, Ethernet0/0.1
O E2 80.1.0.0/16 [110/20] via 10.1.1.2, 00:00:14, Ethernet0/0.1
```
从上面的输出看出,第一条路由是`80.1.1.0/24`。该路由是经由RIP学习到的因此有着默认的管理距离值120。第二条路由是`80.0.0.0/8`。该路由是经由**内部的EIGRP**学习到的因此有着默认管理距离值90。第三条路由是`80.1.0.0/16`。该路由是通过OSPF学习到的且是一条有着管理距离110的**外部的OSPF**路由。
从上面的输出看出,第一条路由是`80.1.1.0/24`。该路由是经由 RIP 学习到的,因此有着默认的管理距离值 120 。第二条路由是`80.0.0.0/8`。该路由是经由**内部的EIGRP**学习到的,因此有着默认管理距离值 90 。第三条路由是`80.1.0.0/16`。该路由是通过 OSPF 学习到的,且是一条有着管理距离 110 的**外部的OSPF**路由。
> **注意:** 因为这些路由协议度量值各不相同,在有着来自不同协议的路由安装到路由表时,这些**度量值是在决定要使用的最佳路由时的非要素**。下面的部分将说明思科IOS软件是如何来建立路由表的。
> **注意:** 因为这些路由协议度量值各不相同,在有着来自不同协议的路由安装到路由表时,这些**度量值是在决定要使用的最佳路由时的非要素**。下面的部分将说明思科 IOS 软件是如何来建立路由表的。
基于该路由表的内容,如路由器收到一个目的为`80.1.1.1`的数据包就会使用那条RIP路由因为这是最为具体的条目尽管EIGRP和OSPF都有着更好的管理距离值而是更为优先的路由来源。`show ip route 80.1.1.1`命令可用于检验这点。
基于该路由表的内容,如路由器收到一个目的为`80.1.1.1`的数据包,就会使用那条 RIP 路由,因为这是最为具体的条目,尽管 EIGRP OSPF 都有着更好的管理距离值而是更为优先的路由来源。`show ip route 80.1.1.1`命令可用于检验这点。
```console
R1#show ip route 80.1.1.1
Routing entry for 80.1.1.0/24
Known via “rip”, distance 120, metric 1
Known via “ rip ”, distance 120, metric 1
Redistributing via rip
Last update from 10.1.1.2 on Ethernet0/0.1, 00:00:15 ago
Routing Descriptor Blocks:
@ -340,7 +340,7 @@ Routing entry for 80.1.1.0/24
**Classful and Classless Protocols**
有类协议无法使用VLSM也就是RIPv1和IGRP它们都已不在CCNA大纲中了。这是因为它们不会去识别除了默认网络掩码外的其它任何东西。
有类协议无法使用 VLSM (也就是 RIPv1 IGRP ,它们都已不在 CCNA 大纲中了)。这是因为它们不会去识别除了默认网络掩码外的其它任何东西。
```console
Router#debug ip rip
@ -349,7 +349,7 @@ RIP protocol debugging is on
192.168.1.1
```
有类协议用到VLSM也就是RIPv2和EIGRP
有类协议用到 VLSM (也就是 RIPv2 EIGRP )。
```console
Router#debug ip rip
@ -373,15 +373,15 @@ RIP protocol debugging is on
*图10.10 -- 限制不必要的对等数据交换*
被动接口的一个用例实例就是用于防止路由协议数据自分布层对等传送peerings到接入层就如同上面的图10.10所示。当留有三层跨越这些性质不同的接入层交换机的对等传输时也就是在跨越交换机区块的不同交换机上有着多台主机就只会增加内存负载、路由协议更新开销及更多的复杂性。同样如发生了某条链路故障流量会经由一台邻居接入交换机传输而到达另一个VLAN成员处by having Layer 3 switches across the different Access Layer switches(i.e., having multiple hosts on different switches across switch blocks) you are basically adding memory load, routing protocol update overhead, and more complexity. Also, if there is a link failure, the traffic may transit through a neighbouring Access Layer switch to get to another VLAN member
被动接口的一个用例实例就是用于防止路由协议数据自分布层对等传送( peerings 到接入层就如同上面的图10.10所示。当留有三层跨越这些性质不同的接入层交换机的对等传输时(也就是在跨越交换机区块的不同交换机上有着多台主机),就只会增加内存负载、路由协议更新开销及更多的复杂性。同样,如发生了某条链路故障,流量会经由一台邻居接入交换机传输,而到达另一个 VLAN 成员处by having Layer 3 switches across the different Access Layer switches(i.e., having multiple hosts on different switches across switch blocks) you are basically adding memory load, routing protocol update overhead, and more complexity. Also, if there is a link failure, the traffic may transit through a neighbouring Access Layer switch to get to another VLAN member
也就是说你想要消除不必要的路由对等邻接unnecessary routing peering adjacencies,那么就要将那些面向二层交换机的端口配置为被动接口以此来抑制路由更新通告suppress routing updates advertisements。如某台分布层交换机在这些接口之一上一条都没有接收到来自一台潜在对等设备的路由更新其就不必去处理这些更新也就不会通过那个设备形成邻居邻接关系。达成此配置的命令通常就是路由进程配置模式the Routing Process Configuration mode中的`passive-interface [interface number]`命令。要获得更多有关思科设计模型the Cisco design model的信息请阅读一份CCDA手册。
也就是说你想要消除不必要的路由对等邻接unnecessary routing peering adjacencies,那么就要将那些面向二层交换机的端口配置为被动接口以此来抑制路由更新通告suppress routing updates advertisements。如某台分布层交换机在这些接口之一上一条都没有接收到来自一台潜在对等设备的路由更新其就不必去处理这些更新也就不会通过那个设备形成邻居邻接关系。达成此配置的命令通常就是路由进程配置模式the Routing Process Configuration mode中的`passive-interface [interface number]`命令。要获得更多有关思科设计模型the Cisco design model的信息请阅读一份 CCDA 手册。
## 路由协议分类
**Routing Protocol Classes**
路由协议有两大分类 -- **距离矢量**和**链路状态**(Distance Vector and Link State)。距离矢量路由协议在决定通过网络的最优路径一条或多条传统上使用一个一维矢量a one-dimensional vector而链路状态路由协议在决定通过网络的最优路径一条或多条使用最短路径优先the Shortest Path First, SPF。在深入探究路由协议的这两种类别的具体细节之前我们先看看不同矢量以及难以搞懂的SPF算法。
路由协议有两大分类 -- **距离矢量**和**链路状态**(Distance Vector and Link State)。距离矢量路由协议在决定通过网络的最优路径一条或多条传统上使用一个一维矢量a one-dimensional vector而链路状态路由协议在决定通过网络的最优路径一条或多条使用最短路径优先the Shortest Path First, SPF。在深入探究路由协议的这两种类别的具体细节之前我们先看看不同矢量以及难以搞懂的 SPF 算法。
### 理解矢量
@ -401,7 +401,7 @@ RIP protocol debugging is on
**The Shortest Path First Algorithms**
最短路径优先算法通过路由器创建出到某个区域或网络骨干中的所有主机的最短路径树该路由器处于树的根部并由该路由器完成树的生成计算。为让SPF算法以正确的方式工作区域中的所有路由器都要有同样的数据库信息。在OSPF中数据库信息同步是通过数据库交换过程实现的the SPF algorithm creates a shortest-path tree to all hosts in an area or in the network backbone with the router that is performint the calculation at the root of that tree. In order for the SPF algorithm to work in the correct manner, all routers in the area should have the same database information. In OSPF, this is performed via the database exchange process
最短路径优先算法通过路由器创建出到某个区域或网络骨干中的所有主机的最短路径树,该路由器处于树的根部,并由该路由器完成树的生成计算。为让 SPF 算法以正确的方式工作,区域中的所有路由器都要有同样的数据库信息。在 OSPF 数据库信息同步是通过数据库交换过程实现的the SPF algorithm creates a shortest-path tree to all hosts in an area or in the network backbone with the router that is performint the calculation at the root of that tree. In order for the SPF algorithm to work in the correct manner, all routers in the area should have the same database information. In OSPF, this is performed via the database exchange process
### 距离矢量路由协议
@ -414,7 +414,7 @@ RIP protocol debugging is on
- 反向投毒poison reverse
- 保持计数器hold-down timers
对计数到无穷的运用如某个目的网络远于路由协议所允许的最大跳数该网络就认为其是不可达的。该网络的路由条目因此就不会安装到IP路由表中。
对计数到无穷的运用,如某个目的网络远于路由协议所允许的最大跳数,该网络就认为其是不可达的。该网络的路由条目因此就不会安装到 IP 路由表中。
水平分割特征指明路由信息再不能从其接收到的接口再发送出去。这样做就可以阻止路由信息再通告给学习到它的源路由器。尽管此特征是一种了不起的防止环回机制,但也有显著的不利之处,特别是在辐射状网络中。
@ -424,7 +424,7 @@ RIP protocol debugging is on
在保持期间路由器压制住该网络并阻止通告出无效信息during the hold-down period, the router suppresses the network and prevents advertising false information。就算路由器收到来自网络可达的其它路由器它们可能没有收到网络宕掉的触发更新的信息也不会将数据包路由到该不可达网络。此机制设计用于阻止黑洞流量the router also does not route to the unreachable network, even if it receives information from another router(that may not have recieved the triggered update)that the network is reachable. This mechanism is designed to prevent black-holing traffic
两个最常见的距离矢量协议,就是**RIP**和**IGRP**。**EIGRP是一个高级距离矢量协议**距离矢量和链路状态两方面的特性在EIGRP中都有用到也就是说它是一个**混合协议(hybrid protocol)**)。
两个最常见的距离矢量协议,就是**RIP**和**IGRP**。**EIGRP是一个高级距离矢量协议**,距离矢量和链路状态两方面的特性在 EIGRP 中都有用到(也就是说,它是一个**混合协议(hybrid protocol)**)。
### 链路状态路由协议
@ -434,7 +434,7 @@ RIP protocol debugging is on
由于网络中的路由器都有着网络的同样视图,用于在网络间转发数据包的路径就是最优的,且路由环回的可能性得以消除。因此,诸如水平分割和路由投毒这样的技巧对链路状态协议就不适用了,因为它们是用于距离矢量路由协议的。
链路状态路由协议通过发送链路状态通告Link State Advertisement或者说链路状态数据包Link State Packets给位于同一区域内其它路由器的方式运作。这些数据包包含了有关链路所连接的接口、链路度量值及链路其它变量的信息。随着路由器对这些信息的积累它们就运行SPF算法并计算出到各台路由器及目的网络的最短最佳路径。使用接收到的链路状态信息路由器建立其链路状态数据库the Link State Database, LSDB。在相邻两台路由器的LSDBs同步了时就说它们形成了邻接关系。
链路状态路由协议通过发送链路状态通告Link State Advertisement或者说链路状态数据包Link State Packets给位于同一区域内其它路由器的方式运作。这些数据包包含了有关链路所连接的接口、链路度量值及链路其它变量的信息。随着路由器对这些信息的积累它们就运行 SPF 算法并计算出到各台路由器及目的网络的最短最佳路径。使用接收到的链路状态信息路由器建立其链路状态数据库the Link State Database, LSDB。在相邻两台路由器的 LSDBs 同步了时,就说它们形成了邻接关系。
与发送给其邻居的是它们的完整路由表的距离矢量路由协议不同链路状态路由协议在探测到网络拓扑发生改变时发送的是增量更新这点令到链路状态路由协议在较大型的网络中效率更高。使用增量更新也令到链路状态路由协议对网络变化的响应更为迅速因此比起距离矢量路由协议有着更短的收敛时间。表10.4列出了不同的内部网关协议及其所属类别。
@ -444,7 +444,7 @@ RIP protocol debugging is on
<tr><th>协议名称</th><th>有类/无类</th><th>协议类别</th></tr>
<tr><td>RIP(版本1)</td><td>有类</td><td>距离矢量</td></tr>
<tr><td>IGRP</td><td>有类</td><td>距离矢量</td></tr>
<tr><td>RIP版本2</td><td>无类</td><td>距离矢量</td></tr>
<tr><td>RIP版本 2 </td><td>无类</td><td>距离矢量</td></tr>
<tr><td>EIGRP</td><td>无类</td><td>高级距离矢量</td></tr>
<tr><td>IS-IS</td><td>无类</td><td>链路状态</td></tr>
<tr><td>OSPF</td><td>无类</td><td>链路状态</td></tr>
@ -466,7 +466,7 @@ RIP protocol debugging is on
**Optimal Routing**
所有路由协议的主要目标之一就是选择通过网络从源子网或主机到目的子网或主机的最优路径。最优路由依据就是这些路由协议所使用的度量值。一种协议所认为的最优路由并不一定也是从另一协议角度看的最优路由。比如RIP可能认为一条仅有两跳长的路径是到某个目的网络的最优路径尽管这些链路都是`64Kbps`而诸如OSPF和EIGRP那样的先进协议则会到相同目的的最优路径是经过了`4`台路由器却有着`10Gbps`速率的链路。
所有路由协议的主要目标之一,就是选择通过网络从源子网或主机到目的子网或主机的最优路径。最优路由依据就是这些路由协议所使用的度量值。一种协议所认为的最优路由,并不一定也是从另一协议角度看的最优路由。比如, RIP 可能认为一条仅有两跳长的路径是到某个目的网络的最优路径,尽管这些链路都是`64Kbps`,而诸如 OSPF EIGRP 那样的先进协议则会到相同目的的最优路径是经过了`4`台路由器却有着`10Gbps`速率的链路。
### 稳定性
@ -478,7 +478,7 @@ RIP protocol debugging is on
**Ease of Use**
路由算法被设计得尽可能简单。除了要提供对复杂互联网络部署的支持能力路由协议还应考虑运行其算法所需的计算资源问题。一些路由算法比起其它算法需要更多的硬件和软件资源比如CPU和内存来运行但它们却能够提供比其它替代的简单算法更多的功能。
路由算法被设计得尽可能简单。除了要提供对复杂互联网络部署的支持能力,路由协议还应考虑运行其算法所需的计算资源问题。一些路由算法比起其它算法需要更多的硬件和软件资源(比如 CPU 和内存)来运行;但它们却能够提供比其它替代的简单算法更多的功能。
### 灵活性
@ -499,10 +499,10 @@ RIP protocol debugging is on
距离矢量路由协议因其过于简单的“依据传言的路由”方法而容易造成大问题it is a known fact that Distance Vector routing protocols are prone to major problems as a result of their simplistic "routing by rumor" approach。距离矢量和链路中台协议采用不同方法来防止路由故障。有下面这些最为重要的机制。
- **无效计数器**invalidation timers: 在很长时间内都没有收到一些路由的更新时,这些计数器被用于将这些路由标记为不可达。
- **跳数限制**, hop count limit: 当一些路由的跳数比预先定义的跳数限制还多时此参数就将这些路由标记为不可达。RIP的跳数限制是15, 而大型网络通常不会使用RIP。不可达路由不会作为最佳路由安装到路由表中。跳数限制防止网络中的环回更新就想IP头部的TTL字段一样。
- **触发的更新**, triggered updates此特性允许有重要更新时对更新计数器进行旁路、忽视。比如在有一个重要的路由更新必须要在网络中宣传是就可以忽略RIP的`30`秒计数器。
- **跳数限制**, hop count limit: 当一些路由的跳数,比预先定义的跳数限制还多时,此参数就将这些路由标记为不可达。 RIP 的跳数限制是15, 而大型网络通常不会使用 RIP 。不可达路由不会作为最佳路由安装到路由表中。跳数限制防止网络中的环回更新,就想 IP 头部的 TTL 字段一样。
- **触发的更新**, triggered updates此特性允许有重要更新时对更新计数器进行旁路、忽视。比如在有一个重要的路由更新必须要在网络中宣传是就可以忽略 RIP 的`30`秒计数器。
- **保持计数器**, hold-down timers: 如某条特定路由的度量值持续变差,那条路由的更新就会在一个延迟时期内不被接受了。
- **异步的更新**, asynchronous updates异步更新代表另一种防止网络上的路由器在同一时间其全部路由信息被冲掉的安全机制。在前面提到OSPF每30分钟执行一次异步更新。异步更新机制为每台设备生成一个小的延时因此这些设备不会准确地在同一时间信息全被冲掉。这样做可以改进带宽的使用以及处理能力。
- **异步的更新**, asynchronous updates异步更新代表另一种防止网络上的路由器在同一时间其全部路由信息被冲掉的安全机制。在前面提到 OSPF 30 分钟执行一次异步更新。异步更新机制为每台设备生成一个小的延时,因此这些设备不会准确地在同一时间信息全被冲掉。这样做可以改进带宽的使用以及处理能力。
- **路由投毒**, route poisoning: 此特性防止路由器通过已为无效的路由发送数据。距离矢量协议使用这个特性表明某条路由不再可达。路由投毒是通过将该路由的度量值设置为最大值完成的。
- **水平分割**, split horizon水平分割防止路由更新再从收到的接口上发送出去因为在那个区域中的路由器应该已经知道了那条特定路由了。
- **反向投毒**, poison reverse: 该机制是因被投毒路由而造成的水平分割的一个例外。
@ -511,55 +511,55 @@ RIP protocol debugging is on
**Topology-Based(CEF, Cisco Express Forwarding) Switching**
将某数据包预期的目的地址与IP路由表进行匹配需要使用一些路由器的CPU运算周期。企业路由器可能有着数十万的路由条目并能对同样数量的数据包与这些条目进行匹配。在尝试以尽可能高的效率来完成这个过程中思科构建出了各种不同的交换方法various switching methods。第一种叫做进程交换process switching, 而它用到路由查找及已分级的最佳匹配方法uses the route lookup and best match already outlined。此方式又在快速交换fast switching之上进行了改进。路由器生成的最近转发数据包IP地址清单连同IP地址匹配下的数据链路层地址会被复制下来。作为对快速转发的改进思科快速转发Cisco Express Forwarding, CEF技术得以构建。当下思科路由器的所有型号默认运行的都是CEF。
将某数据包预期的目的地址与 IP 路由表进行匹配,需要使用一些路由器的 CPU 运算周期。企业路由器可能有着数十万的路由条目并能对同样数量的数据包与这些条目进行匹配。在尝试以尽可能高的效率来完成这个过程中思科构建出了各种不同的交换方法various switching methods。第一种叫做进程交换process switching, 而它用到路由查找及已分级的最佳匹配方法uses the route lookup and best match already outlined。此方式又在快速交换fast switching之上进行了改进。路由器生成的最近转发数据包 IP 地址清单,连同 IP 地址匹配下的数据链路层地址会被复制下来。作为对快速转发的改进思科快速转发Cisco Express Forwarding, CEF技术得以构建。当下思科路由器的所有型号默认运行的都是 CEF
## 思科快速转发
**Cisco Express Forwarding(CEF)**
CEF运行于数据面the data plane, 是一种拓扑驱动的专有交换机制a topology-driven proprietary switching mechanism, 创建出捆绑到路由表也就是控制面the control plane的转发表。开发CEF是为消除因基于数据流交换中用到的进程交换的首个数据包查找方法出现的性能问题CEF was developed to eliminate the performance penalty experencied due to the first-packet process-switched lookup method used by flow-based switching。CEF通过允许为基于硬件的三层路由引擎用到的路由缓存在接收到某个传输流的任何数据包之前将所有三层交换所需的必要信息包含到硬件当中。照惯例保存在路由缓存中的信息现在是保存在CEF交换的两个数据结构中。这两个数据结构提供了高效率包转发的优化查找它们分别成为FIBForwarding Information Base, 转发信息库)和邻居表。
CEF运行于数据面the data plane, 是一种拓扑驱动的专有交换机制a topology-driven proprietary switching mechanism, 创建出捆绑到路由表也就是控制面the control plane的转发表。开发 CEF 是为消除因基于数据流交换中用到的进程交换的首个数据包查找方法出现的性能问题CEF was developed to eliminate the performance penalty experencied due to the first-packet process-switched lookup method used by flow-based switching CEF 通过允许为基于硬件的三层路由引擎用到的路由缓存,在接收到某个传输流的任何数据包之前,将所有三层交换所需的必要信息,包含到硬件当中。照惯例保存在路由缓存中的信息,现在是保存在 CEF 交换的两个数据结构中。这两个数据结构提供了高效率包转发的优化查找,它们分别成为 FIB Forwarding Information Base, 转发信息库)和邻居表。
> **注意:** 重要的是记住就算有了CEF在路由表发生变化时CEF转发表同样会更新。在新的CEF条目创建过程中数据包会在一个较慢的交换路径中使用比如进程交换的方式进行交换。所有当前的思科路由器型号及当前的IOS都使用CEF。
> **注意:** 重要的是记住就算有了 CEF ,在路由表发生变化时, CEF 转发表同样会更新。在新的 CEF 条目创建过程中,数据包会在一个较慢的交换路径中,使用比如进程交换的方式,进行交换。所有当前的思科路由器型号及当前的 IOS 都使用 CEF
### 转发信息库
**Forwarding Information Base(FIB)**
CEF使用一个FIB来做出基于IP目的地址前缀的交换决定CEF uses a FIB to make IP destination prefix-based switching decisions。FIB在概念上与路由表或信息库是相似的。FIB维护着包含在IP路由表中的转发信息的一个镜像。也就是说FIB包含了来自路由表中的所有IP前缀。
CEF使用一个 FIB 来做出基于 IP 目的地址前缀的交换决定CEF uses a FIB to make IP destination prefix-based switching decisions FIB 在概念上与路由表或信息库是相似的。 FIB 维护着包含在 IP 路由表中的转发信息的一个镜像。也就是说, FIB 包含了来自路由表中的所有 IP 前缀。
当网络中的路由或拓扑发生改变是IP路由表就会被更新同时这些变化在FIB中也会反映出来。FIB维护着建立在IP路由表中信息上的下一跳地址信息。因为在FIB条目和路由表条目之间有着一一对应关系FIB就包含了所有已知路由并消除了在诸如快速交换方式和最优交换optimum switching方式中于交换路径switching paths有关的路由缓存维护需求。
当网络中的路由或拓扑发生改变是, IP 路由表就会被更新,同时这些变化在 FIB 中也会反映出来。 FIB 维护着建立在 IP 路由表中信息上的下一跳地址信息。因为在 FIB 条目和路由表条目之间有着一一对应关系, FIB 就包含了所有已知路由并消除了在诸如快速交换方式和最优交换optimum switching方式中于交换路径switching paths有关的路由缓存维护需求。
此外因为FIB查找表中包含了所有存在于路由表中的已知路由FIB就消除了路由缓存维护以及快速交换和进程交换的转发场景。这样做令到CEF比典型的demand-caching方案要更为高效地交换流量。
此外,因为 FIB 查找表中包含了所有存在于路由表中的已知路由, FIB 就消除了路由缓存维护,以及快速交换和进程交换的转发场景。这样做令到 CEF 比典型的demand-caching方案要更为高效地交换流量。
### 邻接表
**The Adjacency Table**
创建邻接关系表来包含所有直连的下一跳。邻接节点就是只有一跳的节点也就是直接连接的。在发现邻接关系后就生成了该邻接关系表。一旦某个邻居成为邻接关系将用于到达那个邻居的一个叫作MAC字串或MAC重写a MAC string or a MAC rewrite的数据链路层头部就被创建出来并存入到邻接表中。在以太网段上头部信息依次包含了目的MAC地址、源MAC地址以及以太网类型EtherType
创建邻接关系表来包含所有直连的下一跳。邻接节点就是只有一跳的节点(也就是直接连接的)。在发现邻接关系后,就生成了该邻接关系表。一旦某个邻居成为邻接关系,将用于到达那个邻居的一个叫作 MAC 字串或 MAC 重写a MAC string or a MAC rewrite的数据链路层头部就被创建出来并存入到邻接表中。在以太网段上头部信息依次包含了目的 MAC 地址、源 MAC 地址以及以太网类型( EtherType )。
而一旦某条路由得到解析就会指向到一个邻接的下一跳。如在邻接表中找到了某个邻接那么一个指向该适当邻接的指针就在FIB条目中进行缓存as soon as a route is resolved, it points to an adjacent next hop. If an adjacency is found in the adjacency table, a pointer to the appropriate adjacency is cached in the FIB element。而如果存在到某个同样目的网络的多条路径则指向每条邻接的所有指针就会被加入到load-sharing结构体中这样做可以实现负载均衡。当多条前缀加入到FIB时那些需要例外处理的前缀会以特别邻接关系进行缓存。
而一旦某条路由得到解析,就会指向到一个邻接的下一跳。如在邻接表中找到了某个邻接,那么一个指向该适当邻接的指针就在 FIB 条目中进行缓存as soon as a route is resolved, it points to an adjacent next hop. If an adjacency is found in the adjacency table, a pointer to the appropriate adjacency is cached in the FIB element。而如果存在到某个同样目的网络的多条路径则指向每条邻接的所有指针就会被加入到load-sharing结构体中这样做可以实现负载均衡。当多条前缀加入到 FIB 时,那些需要例外处理的前缀,会以特别邻接关系进行缓存。
### 加速的及分布式CEF
**Accelerated and Distributed CEF**
默认下所有基于CEF技术的思科Catalyst交换机都使用**一个中心化三层交换引擎**(a central Layer 3 switching engine)在那里由单独的处理器对交换机中所有端口上接收到的流量做出全部的三层交换决定。尽管思科Catalyst交换机中用到的三层交换引擎提供了高性能但在某些网络中即便使用单独的三层交换引擎来完成所有三层交换仍然不能提供足够的性能。为解决这个问题思科`Catalyst 6500`系列交换机允许通过使用特别的转发硬件对CEF进行优化to address this issue, Cisco Catalyst 6500 series switches allow for CEF optimisation through the use of specialised forwarding hardware。CEF优化有两种实现方式加速的CEF或分布式CEF。
默认下,所有基于 CEF 技术的思科 Catalyst 交换机都使用**一个中心化三层交换引擎**(a central Layer 3 switching engine),在那里由单独的处理器对交换机中所有端口上接收到的流量,做出全部的三层交换决定。尽管思科 Catalyst 交换机中用到的三层交换引擎提供了高性能,但在某些网络中,即便使用单独的三层交换引擎来完成所有三层交换,仍然不能提供足够的性能。为解决这个问题,思科`Catalyst 6500`系列交换机允许通过使用特别的转发硬件对 CEF 进行优化to address this issue, Cisco Catalyst 6500 series switches allow for CEF optimisation through the use of specialised forwarding hardware CEF 优化有两种实现方式,加速的 CEF 或分布式 CEF
加速的CEF允许让FIB的一个部分分布到`Catalyst 6500`交换机中的具备此功能的线路卡模块上去Accelerated CEF allows a portion of the FIB to be distributed to capable line card modules in the Catalyst 6500 switch。这样做令到转发决定在本地线路卡上使用本地存储的缩小的CEF表做出。假如有FIB条目在缓存中没有找到就会向三层交换引擎发出需要更多FIB信息的请求。
加速的 CEF 允许让 FIB 的一个部分分布到`Catalyst 6500`交换机中的具备此功能的线路卡模块上去Accelerated CEF allows a portion of the FIB to be distributed to capable line card modules in the Catalyst 6500 switch。这样做令到转发决定在本地线路卡上使用本地存储的缩小的 CEF 表做出。假如有 FIB 条目在缓存中没有找到,就会向三层交换引擎发出需要更多 FIB 信息的请求。
分布式CEF指的是使用分布在安装于机架上的多块线路卡上的多个CEF表。在应用dCEF时三层交换引擎MSFC维护着路由表并生成FIBFIB将被所有线路卡动态完整下载令到多个三层数据面multiple Layer 3 data plane同时运行。
分布式 CEF 指的是使用分布在安装于机架上的多块线路卡上的多个 CEF 表。在应用 dCEF 时,三层交换引擎( MSFC )维护着路由表并生成 FIB FIB 将被所有线路卡动态完整下载令到多个三层数据面multiple Layer 3 data plane同时运行。
总体上说dCEF和aCEF都是用到多个三层交换引擎的技术这样就实现了多个三层交换操作同时并行运作从而提升整体系统性能。CEF技术提供以下好处。
总体上说, dCEF aCEF 都是用到多个三层交换引擎的技术,这样就实现了多个三层交换操作同时并行运作,从而提升整体系统性能。 CEF 技术提供以下好处。
- 性能改善improved performance -- 比起快速交换路由缓存技术CEF是较少CPU-密集的CEF is less CPU-intensive than fast-switching route caching。那么就有更多的CPU处理能力用在譬如QoS和加密等的三层业务上。
- 伸缩性, scalability -- 当dCEF模式开启时CEF在诸如Catalyst 6500系列交换机等的高端平台的所有线路卡上提供了全部的交换能力。
- 性能改善improved performance -- 比起快速交换路由缓存技术, CEF 是较少CPU-密集的CEF is less CPU-intensive than fast-switching route caching。那么就有更多的 CPU 处理能力用在譬如 QoS 和加密等的三层业务上。
- 伸缩性, scalability -- 当 dCEF 模式开启时, CEF 在诸如Catalyst 6500系列交换机等的高端平台的所有线路卡上提供了全部的交换能力。
- 迅速恢复的能力, resilience -- CEF提供了大型动态网络中无例可循水平的数据交换一致性和稳定性。在动态网络中快速交换缓存条目由于路由变化而频繁地过期和作废。这些变动能够引起流量经由使用路由表的进程交换而不是使用路由缓存的快速交换CEF offers **an unprecedented level of switching consistency and stability** in large dynamic networks. In dynamic networks, fast-switching cache entries are frequently invalidated due to routing changes. These changes can cause traffic to be process-switched using the routing table rather than fast-switched using the route cache
### CEF的配置
**Configuring Cisco Express Forwarding**
开启CEF只需简单的一条命令那就是全局配置命令`ip cef [distributed]`。关键字`[distributed]`仅适用于像是`Catalyst 6500`系列、支持`dCEF`的高端交换机。下面的输出展示了如何在一台诸如`Catalyst 3750`系列交换机的低端平台上配置CEF。
开启 CEF 只需简单的一条命令,那就是全局配置命令`ip cef [distributed]`。关键字`[distributed]`仅适用于像是`Catalyst 6500`系列、支持`dCEF`的高端交换机。下面的输出展示了如何在一台诸如`Catalyst 3750`系列交换机的低端平台上配置 CEF
```console
VTP-Server-1(config)#ip cef
@ -573,7 +573,7 @@ VTP-Server-1(config)#ip cef distributed
VTP-Server-1(config)#exit
```
> **注意:** 并没有用于配置或开启aCEF的显式命令。
> **注意:** 并没有用于配置或开启 aCEF 的显式命令。
## 路由问题的故障排除
@ -593,11 +593,11 @@ VTP-Server-1(config)#exit
动态路由协议的采行,令到排错过程更为容易,因为可以检查由路由器发出和接收到的路由更新。而对路由更新的检查,可以通过抓包或内部的设备机制完成,同时将帮助我们看到路由表是在何时、如何生成的。有着一张拓扑图及其它列出了每个前缀在网络中所处位置的文档,将更好地帮助你对路由更新的理解,进而缩短排错的过程。在这样的一个排错过程中,一般的主张就是依网络的设计,决定某个特定数据包将会采取的路径,并调查一下到底这个数据包在该路径的何处,偏离了该路径。
要对网络设备进行监控有着不同工具。而这些工具都用到同样的网络管理协议那就是简单网络管理协议Simple Network Management Protocol, SNMP, 该协议设计从某台管理工作站对网络设备发起不同参数的查询ICND2涵盖了SNMP。除了检查标准的“健康度”参数比如CPU、内存、磁盘空间等等SNMP还会查询路由器的下面这些参数。
要对网络设备进行监控有着不同工具。而这些工具都用到同样的网络管理协议那就是简单网络管理协议Simple Network Management Protocol, SNMP, 该协议设计从某台管理工作站对网络设备发起不同参数的查询( ICND2 涵盖了 SNMP )。除了检查标准的“健康度”参数(比如 CPU 、内存、磁盘空间等等)外, SNMP 还会查询路由器的下面这些参数。
- 接口上数据包计数
- 使用到的带宽及通过量
- 设备接口上的CRC及其他类型的错误
- 设备接口上的 CRC 及其他类型的错误
- 路由表信息
其它可以用到工具就是标准的用于验证端到端连通性的`ping`和`traceroute`了。它们亦能展示一些可能有助于确定出网络中发生故障的点位的相关输出。
@ -696,12 +696,12 @@ Router#show ip bgp ?
在检查了有关前缀在路由表中确有出现后,就应对这些前缀的属性值(译者注:其路由跳数及各条路由的度量值、下一跳等信息)及路径选择方式进行仔细分析。这些分析包括下面这些。
- 检查通告了该前缀的所有路由协议(还要包括静态路由)
- 对AD进行比较和修改以令到优先选择某种指定的路由协议而不是默认正确的
- 对 AD 进行比较和修改,以令到优先选择某种指定的路由协议,而不是默认正确的
- 检查并调整这些协议的度量值
通过对网络中某台路由器的恰当配置,并在配置过程中对每一步都做好文档,以及对网络中两点自荐路径的持续监测,就能够对网络中流量是如何准确地流经那些设备,有扎实掌握。
## 第10天问题
## 第 10 天问题
1. What is a routing protocol?
2. `_____` is used to determine the reliability of one source of routing information from
@ -719,7 +719,7 @@ control plane).
10. Link State routing protocols are those that use distance or hop count as its primary
metric for determining the best forwarding path. True or false?
## 第10天问题答案
## 第 10 天问题答案
1. A protocol that allows a router to learn dynamically how to reach other networks.
2. Administrative distance.
@ -732,16 +732,16 @@ metric for determining the best forwarding path. True or false?
9. FIB.
10. False.
## 第10天的实验
## 第 10 天的实验
### 路由概念实验
采用两台直连的路由器并测试本模块中提到的那些基本命令。RIP已不在CCNA考试中了但其对于一个简单的实验来说是十分简单易用的。
采用两台直连的路由器,并测试本模块中提到的那些基本命令。 RIP 已不在 CCNA 考试中了,但其对于一个简单的实验来说,是十分简单易用的。
- 给直连接口分配一个IPv4地址10.10.10.1/24及10.10.10.2/24
- 给直连接口分配一个 IPv4 地址10.10.10.1/24及10.10.10.2/24
- 用`ping`测试直连的连通性
- 在两台路由器上都配置一个环回接口并从两个不同范围为其分配上地址11.11.11.1/32及12.12.12.2/32
- 配置标准RIP并通告所有本地网络
- 配置标准 RIP 并通告所有本地网络
```console
R1:
@ -759,6 +759,6 @@ network 10.10.10.0
network 12.12.12.0
```
- 自R1向R2的环回接口进行`ping`操作,以测试连通性
- 执行一条`show ip route`命令来检查经由RIP收到了那些路由
- 执行一条`show ip protocols`命令来检查有配置了RIP且RIP在设备上是允许着的
- 自 R1 R2 的环回接口进行`ping`操作,以测试连通性
- 执行一条`show ip route`命令,来检查经由 RIP 收到了那些路由
- 执行一条`show ip protocols`命令,来检查有配置了 RIP RIP 在设备上是允许着的

View File

@ -1,4 +1,4 @@
# 第11天 静态路由
# 第 11 天 静态路由
**Static Routing**
@ -17,24 +17,24 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第11天任务
## 第 11 天任务
- 阅读今天的课文
- 复习昨天的课文
- 完成今天的实验
- 阅读ICND1记诵指南
- 阅读 ICND1 记诵指南
- 在[subnetting.org](http://subnetting.org/)上用`15`分钟
选择作一名网络管理员,就是要在网络中用到动态路由协议或坚持使用静态路由,所谓静态路由,就是手动将网络的所有路由,加入到所有路由器上去。
经常会有人问我原作者哪个路由协议是”最好的“。是没有一种方式适合于每个网络的因为就算某家特定机构的网络需求也会随时间变化。配置静态路由需要时间和精力但可以省下一些网络带宽和CPU运算周期。如要加入一条新路由就必须在所有路由器上进行手动添加。此外如有某台路由器宕掉静态路由就没有办法处理这个事情所以还会往宕掉的网络发送流量有关可靠静态路由的部分不再CCNA大纲的范围之内
经常会有人问我(原作者)哪个路由协议是”最好的“。是没有一种方式适合于每个网络的,因为就算某家特定机构的网络需求,也会随时间变化。配置静态路由需要时间和精力,但可以省下一些网络带宽和 CPU 运算周期。如要加入一条新路由,就必须在所有路由器上进行手动添加。此外,如有某台路由器宕掉,静态路由就没有办法处理这个事情,所以还会往宕掉的网络发送流量(有关可靠静态路由的部分,不再 CCNA 大纲的范围之内)。
今天要学到下面这些。
- 静态路由的配置
- 静态路由排错
本模块对应了以下CCNA大纲要求。
本模块对应了以下 CCNA 大纲要求。
- 按照给出的特定路由要求,配置并验证一条静态或默认路由的路由配置
+ 区分不同路由方式及各种路由协议
@ -67,7 +67,7 @@ ___
Router(config)#ip route 192.168.1.0 255.255.255.0 172.16.1.2
```
对静态路由需要指定在前往目的地址的路途上路由器需要去往的下一跳IP地址或者也可以指定一个出去的接口。通常不需要知道下一跳地址因为那就是ISP或者IP地址会随时变化见下图11.2)。如果是这样,就要使用出去的接口。
对静态路由,需要指定在前往目的地址的路途上,路由器需要去往的下一跳 IP 地址,或者也可以指定一个出去的接口。通常不需要知道下一跳地址,因为那就是 ISP ,或者 IP 地址会随时变化见下图11.2)。如果是这样,就要使用出去的接口。
![不总是知道下一跳地址的情形](images/1102.png)
@ -86,15 +86,15 @@ Router(config)#ip route 0.0.0.0 0.0.0.0 s0/0
上面的路由实际上就是一条默认路由a default route。默认路由用于引导那些未在路由表中显式列出的目的网络的数据包。
### 静态IPv6路由的配置
### 静态 IPv6 路由的配置
**Configuring Static IPv6 Routes**
静态IPv6路由的配置与静态IPv4路由的配置遵循同样的逻辑。在思科IOS软件中全局配置命令`ipv6 route [ipv6-prefix/prefix-length] [next-hop-address | interface] [distance <1-254> | multicast | tag | unicast]`用于配置静态IPv6路由。当中的一些关键字是熟悉的因为它们也适用于IPv4静态路由而`[multicast]`关键字则是IPv6所独有的用于配置一条IPv6静态多播路由(an IPv6 static Multicast route)。如用到此关键字该路由就不会进到单薄路由表the Unicast routing table同时也绝不会用于转发单播流量。为确保该路由绝不会安装到单播路由信息库the Unicast RIB, 思科IOS软件将该条路由**(静态多播路由)的管理距离设置为`255`**。
静态 IPv6 路由的配置,与静态 IPv4 路由的配置遵循同样的逻辑。在思科 IOS 软件中,全局配置命令`ipv6 route [ipv6-prefix/prefix-length] [next-hop-address | interface] [distance <1-254> | multicast | tag | unicast]`用于配置静态 IPv6 路由。当中的一些关键字是熟悉的,因为它们也适用于 IPv4 静态路由,而`[multicast]`关键字则是 IPv6 所独有的,用于配置一条 IPv6 静态多播路由(an IPv6 static Multicast route)。如用到此关键字该路由就不会进到单薄路由表the Unicast routing table同时也绝不会用于转发单播流量。为确保该路由绝不会安装到单播路由信息库the Unicast RIB, 思科 IOS 软件将该条路由**(静态多播路由)的管理距离设置为`255`**。
相反,`[unicast]`关键字则是用于配置一条IPv6静态单播路由。如用到此关键字该条路由就绝不会进入到多播路由表the Multicast routing table, 并仅被用于转发单播流量。而**既没用到`[multicast]`关键字,也没用到`[unicast]`关键字时,默认情况下,该条路由机会用于单播数据包的转发,也会用于多播数据包的转发**。
相反,`[unicast]`关键字则是用于配置一条 IPv6 静态单播路由。如用到此关键字该条路由就绝不会进入到多播路由表the Multicast routing table, 并仅被用于转发单播流量。而**既没用到`[multicast]`关键字,也没用到`[unicast]`关键字时,默认情况下,该条路由机会用于单播数据包的转发,也会用于多播数据包的转发**。
以下的配置示例,演示了如何来配置`3`条静态IPv6路由。第一条路由到子网`3FFF:1234:ABCD:0001::/64`, 会将流量从`FastEthernet0/0`转发出去。此路由仅用于单播流量的转发。第二条路由,到子网`3FFF:1234:ABCD:0002::/64`, 会将到那个子网的数据包从`Serial0/0`使用下一跳路由器的数据链路层地址作为IPv6的下一跳地址转发出去。本条路由仅会用于多播流量。最后同样配置了一条指向`Serial0/1`作为出口接口的默认路由。此默认路由将会通过`Serial0/1`, 使用下一跳路由器的本地链路地址作为IPv6下一跳地址转发那些到未知IPv6目的地址的数据包。这些路由如下面所示。
以下的配置示例,演示了如何来配置`3`条静态 IPv6 路由。第一条路由,到子网`3FFF:1234:ABCD:0001::/64`, 会将流量从`FastEthernet0/0`转发出去。此路由仅用于单播流量的转发。第二条路由,到子网`3FFF:1234:ABCD:0002::/64`, 会将到那个子网的数据包从`Serial0/0`,使用下一跳路由器的数据链路层地址,作为 IPv6 的下一跳地址转发出去。本条路由仅会用于多播流量。最后,同样配置了一条指向`Serial0/1`作为出口接口的默认路由。此默认路由将会通过`Serial0/1`, 使用下一跳路由器的本地链路地址作为 IPv6 下一跳地址,转发那些到未知 IPv6 目的地址的数据包。这些路由如下面所示。
```console
R1(config)#ipv6 route 3FFF:1234:ABCD:0001::/64 Fa0/0 unicast
@ -135,9 +135,9 @@ Code: * - installed in RIB
排错总会涉及到某个配置问题(如果不是接口宕掉的话)。如流量没有到达目的地,就可以使用命令`traceroute`测试该路由。
> **注意** -- 今天内容很少所以请前往第12天吧因为那将是个非常充实的主题。
> **注意** -- 今天内容很少,所以请前往第 12 天吧,因为那将是个非常充实的主题。
## 第11天问题
## 第 11 天问题
1. Name the three parameters needed to configure a static route.
2. What is the command used to configure a static route?
@ -145,7 +145,7 @@ Code: * - installed in RIB
4. What is the command used to configure an IPv6 static route?
5. What is the command used to view IPv6 static routes?
## 第11天答案
## 第 11 天答案
1. Network address, subnet mask (prefix length), and next-hop address or exit interface.
2. The `ip route` command.
@ -153,7 +153,7 @@ Code: * - installed in RIB
4. The `ipv6 route` command.
5. The `show ipv6 route static` command.
## 第11天实验
## 第 11 天实验
### 静态路由实验
@ -169,7 +169,7 @@ Code: * - installed in RIB
**实验步骤**
1. 按照上面的拓扑图分配IP地址。`Router A`可以是`192.168.1.1/30`, `Router B`可以是`.2`。
1. 按照上面的拓扑图分配 IP 地址。`Router A`可以是`192.168.1.1/30`, `Router B`可以是`.2`。
2. 通过串行链路进行`ping`操作,以确保该链路是工作的。
@ -203,7 +203,7 @@ Code: * - installed in RIB
RouterA#
RouterA#show ip route 10.1.1.1
Routing entry for 10.0.0.0/10
Known via “static”, distance 1, metric 0 (connected)
Known via “ static ”, distance 1, metric 0 (connected)
Routing Descriptor Blocks:
* directly connected, via Serial0/1/0
Route metric is 0, traffic share count is 1
@ -222,7 +222,7 @@ Code: * - installed in RIB
!!!!!
RouterB#show ip route 172.16.1.1
Routing entry for 172.16.1.0/24
Known via “static”, distance 1, metric 0
Known via “ static ”, distance 1, metric 0
Routing Descriptor Blocks:
* 192.168.1.1
Route metric is 0, traffic share count is 1

View File

@ -1,4 +1,4 @@
# 第12天 OSPF基础知识
# 第 12 天 OSPF基础知识
**OSPF Basics**
@ -21,7 +21,7 @@ ___
- 阅读今天的理论课文
- 复习昨天的理论课文
先前版本的CCNA考试只要求对OSPF有基本了解。**现今版本要求对`OSPFv2`、`v3`及多区域OSPF都要有更为深入的掌握**。OSPF考点在ICND1和ICND2中都有ICND2中增加了难度。
先前版本的 CCNA 考试只要求对 OSPF 有基本了解。**现今版本要求对`OSPFv2`、`v3`及多区域 OSPF 都要有更为深入的掌握**。 OSPF 考点在 ICND1 ICND2 中都有, ICND2 中增加了难度。
今天将会学到下面这些内容。
@ -29,107 +29,107 @@ ___
- OSPF组网类型OSPF network types
- OSPF的配置Configuring OSPF
本模块对应了以下CCNA大纲要求
本模块对应了以下 CCNA 大纲要求:
+ OSPF单区域的配置和验证
- 单区域的好处, benefit of single area
- OSPFv2的配置, configure OSPFv2
- 路由器IDrouter ID
- 路由器 ID router ID
- 被动接口passive interface
## 开放最短路径优先
**Open Shortest Path First**
开放最短路径优先,是**一个开放标准的链路状态路由协议**an open-standard Link State routing protocol。所有链路状态路由协议都是对链路状态进行通告。当链路状态路由器开始在某条网络链路上运作时逻辑网络的相关信息就被添加到路由器的**本地**链路状态数据库(Link State Database, LSDB)中。该本地路由器此时在其运作链路上,发出`Hello`数据包,以确定出是否有其它链路状态路由器也在其各自接口上运行着链路状态路由协议。**OSPF直接运行在IP协议上使用IP下编号为`89`号的协议**。
开放最短路径优先,是**一个开放标准的链路状态路由协议**an open-standard Link State routing protocol。所有链路状态路由协议都是对链路状态进行通告。当链路状态路由器开始在某条网络链路上运作时逻辑网络的相关信息就被添加到路由器的**本地**链路状态数据库(Link State Database, LSDB)中。该本地路由器此时在其运作链路上,发出`Hello`数据包,以确定出是否有其它链路状态路由器也在其各自接口上运行着链路状态路由协议。**OSPF直接运行在 IP 协议上,使用 IP 下编号为`89`号的协议**。
## OSPF概述及基础知识
**OSPF Overview and Fundamentals**
人们为OSPF撰写了多个请求评议Requests for Comments, RFCs)。在本小节将通过一些OSPF有关的最常见的几个RFCs来了解一下OSPF的历史。OSPF工作组成立于`1987`年自成立以后该工作组发布了为数众多的RFCs。下面列出了OSPF有关的一些最常见的RFCs。
人们为 OSPF 撰写了多个请求评议Requests for Comments, RFCs)。在本小节,将通过一些 OSPF 有关的最常见的几个 RFCs ,来了解一下 OSPF 的历史。 OSPF 工作组成立于`1987`年,自成立以后,该工作组发布了为数众多的 RFCs 。下面列出了 OSPF 有关的一些最常见的 RFCs
- `RFC 1131` -- OSPF规格OSPF Specification
- `RFC 1584` -- OSPF的多播扩展, Multicast Extensions to OSPF
- `RFC 1587` -- OSPF的NSSA选项the OSPF NSSA Option
- `RFC 1587` -- OSPF的 NSSA 选项the OSPF NSSA Option
- `RFC 1850` -- OSPF版本`2`的管理信息库OSPF Version 2 Management Informaiton Base
- `RFC 2328` -- OSPF版本`2`
- `RFC 2740` -- OSPF版本`3`
`RFC 1131`对OSPF的第一次迭代the first iteration of OSPF进行了说明, 而应用在明确该协议是否工作的早期测试中。
`RFC 1131` OSPF 的第一次迭代the first iteration of OSPF进行了说明, 而应用在明确该协议是否工作的早期测试中。
`RFC 1584`为OSPF提供了对IP多播流量的支持扩展。这通常被称为多播OSPFMulticast OSPF, MOSPF。但该标准不常用到而最重要的是思科不支持该标准。
`RFC 1584` OSPF 提供了对 IP 多播流量的支持扩展。这通常被称为多播 OSPF Multicast OSPF, MOSPF。但该标准不常用到而最重要的是思科不支持该标准。
`RFC 1587` 对一种OSPF的次末梢区域Not-So-Stubby Area, NSSA的运作方式进行了说明。NSSA允许通过一台自治系统边界路由器an Autonomous System Boundary Router, ASBR, 采用一条NSSA的外部LSA, 实现外部路由知识的注入the injection of external routing knowledge。在本模块的稍后会对不同的NSSAs进行说明。
`RFC 1587` 对一种 OSPF 的次末梢区域Not-So-Stubby Area, NSSA的运作方式进行了说明。 NSSA 允许通过一台自治系统边界路由器an Autonomous System Boundary Router, ASBR, 采用一条 NSSA 的外部LSA, 实现外部路由知识的注入the injection of external routing knowledge。在本模块的稍后会对不同的 NSSAs 进行说明。
`RFC 1850`实现了使用简单网络管理协议Simple Network Management Protocol, SNMP对OSPF的网络管理。在网络管理系统中SNMP用于监测接入网络设备中需要留心的一些情况。本标准的应用超出了CCNA考试要求范围不会在本书中进行说明。
`RFC 1850`实现了使用简单网络管理协议Simple Network Management Protocol, SNMP OSPF 的网络管理。在网络管理系统中, SNMP 用于监测接入网络设备中需要留心的一些情况。本标准的应用超出了 CCNA 考试要求范围,不会在本书中进行说明。
`RFC 2328`详细陈述了OSPF版本`2`的最新更新而OSPF版本`2`正是现今在用的默认版本。OSPF版本`2`最初是在`RFC 1247`中进行说明的该RFC解决了OSPF版本`1`初次发布中发现的一系列问题并对该协议进行了修正实现了未来修改不致产生出向后兼容问题。正因为如此OSPF版本`2`与版本`1`是不兼容的。
`RFC 2328`详细陈述了 OSPF 版本`2`的最新更新,而 OSPF 版本`2`正是现今在用的默认版本。 OSPF 版本`2`最初是在`RFC 1247`中进行说明的,该 RFC 解决了 OSPF 版本`1`初次发布中发现的一系列问题,并对该协议进行了修正,实现了未来修改不致产生出向后兼容问题。正因为如此, OSPF 版本`2`与版本`1`是不兼容的。
最后,`RFC 2740`说明了为支持IPv6而对OSPF做出的修改也就是版本`3`。应假定本模块中所有对OSPF一词的使用都是指的OSPF版本`2`。
最后,`RFC 2740`说明了为支持 IPv6 而对 OSPF 做出的修改(也就是版本`3`)。应假定本模块中所有对 OSPF 一词的使用,都是指的 OSPF 版本`2`。
### 链路状态基础
**Link State Fundamentals**
当对某条特定链路(也就是接口开启链路状态路由协议时与那个网络有关的信息就被加入到本地LSDB中。该本地路由器此时就往其运作的各链路上发送`Hello`数据包,以确定有否其它**链路状态路由器**也在接口上运行着。**`Hello`数据包用于邻居发现,并在邻居路由器之间维护邻接关系**。本模块稍后部分会详细说明这些消息。
当对某条特定链路(也就是接口)开启链路状态路由协议时,与那个网络有关的信息就被加入到本地 LSDB 中。该本地路由器此时就往其运作的各链路上发送`Hello`数据包,以确定有否其它**链路状态路由器**也在接口上运行着。**`Hello`数据包用于邻居发现,并在邻居路由器之间维护邻接关系**。本模块稍后部分会详细说明这些消息。
在找到一台邻居路由器后, 假定两台路由器在同一子网且位于同一区域同时诸如认证方法及计时器等其它参数都是一致的identical那么本地路由器就尝试建立一个邻接关系adjacency。此邻接关系令到两台路由器将**摘要的LSDB信息**通告给对方。这种信息交换,交换的并非真实的详细数据库信息,而是数据的摘要。
在找到一台邻居路由器后, 假定两台路由器在同一子网且位于同一区域,同时诸如认证方法及计时器等其它参数都是一致的( identical ),那么本地路由器就尝试建立一个邻接关系( adjacency )。此邻接关系令到两台路由器将**摘要的 LSDB 信息**通告给对方。这种信息交换,交换的并非真实的详细数据库信息,而是数据的摘要。
各台路由器参照其本地LSDB对收到的摘要信息做出评估以确保其有着最新信息。如邻接关系的一侧认识到它需要一个更新路由器就从邻接路由器请求新信息。而来自邻居路由器的更新就包含了LSDB中的具体数据。此交换过程持续到两台路由器都拥有同样的LSDB。OSPF用到不同类型的报文以交换数据库信息从而确保所有路由器都有着网络的统一视图。这些不同的数据包类型将在本模块稍后进行详细说明。
各台路由器参照其本地 LSDB ,对收到的摘要信息做出评估,以确保其有着最新信息。如邻接关系的一侧认识到它需要一个更新,路由器就从邻接路由器请求新信息。而来自邻居路由器的更新就包含了 LSDB 中的具体数据。此交换过程持续到两台路由器都拥有同样的 LSDB OSPF 用到不同类型的报文,以交换数据库信息,从而确保所有路由器都有着网络的统一视图。这些不同的数据包类型将在本模块稍后进行详细说明。
紧接着数据库的交换SPF算法就运行起来创建出到某个区域或网络主干中所有主机的最短路径树, SPF算法将执行运算的路由器作为该树的根Following the database exchange, the SPF algorithm runs and creates a shortest path tree to all hosts in an area or in the network backbone, with the router that is performing the calculation at the root of that tree。在第10天中对SPF算法进行了简要介绍。
紧接着数据库的交换, SPF 算法就运行起来,创建出到某个区域或网络主干中所有主机的最短路径树, SPF算法将执行运算的路由器作为该树的根Following the database exchange, the SPF algorithm runs and creates a shortest path tree to all hosts in an area or in the network backbone, with the router that is performing the calculation at the root of that tree。在第 10 天中,对 SPF 算法进行了简要介绍。
### OSPF基础
**OSPF Fundamentals**
与EIGRP能够支持多个网络层协议不同OSPF只能支持IP也就是IPv4和IPv6。和EIGRP相同的是OSPF支持VLSM、认证及在诸如以太网这样的多路访问Multi-Access networks网络上于发送和接收更新时利用IP多播技术IP Multicast
EIGRP 能够支持多个网络层协议不同, OSPF 只能支持 IP ,也就是 IPv4 IPv6 。和 EIGRP 相同的是, OSPF 支持 VLSM 、认证及在诸如以太网这样的多路访问Multi-Access networks网络上于发送和接收更新时利用 IP 多播技术IP Multicast
OSPF是一种层次化的路由协议将网络以逻辑方式分为称作区域的众多子域。这种逻辑分段方法用于限制链路状态通告在OSPF域中扩散的范围OSPF is a hierarchical routing protocol that logically divides the network into subdomains referred to as areas. This logical segmentation is used to limit the scope of Link State Advertisements(LSAs) flooding throughout the OSPF domain。LSAs是由运行OSPF的路由器发出的特殊类型数据包。在区域内和区域间用到不同类型的LSAs。通过限制一些类型的LSAs在区域间传播OSPF的层次化实现有效地减少了OSPF网络中路由协议流量的数量。
OSPF是一种层次化的路由协议将网络以逻辑方式分为称作区域的众多子域。这种逻辑分段方法用于限制链路状态通告在 OSPF 域中扩散的范围OSPF is a hierarchical routing protocol that logically divides the network into subdomains referred to as areas. This logical segmentation is used to limit the scope of Link State Advertisements(LSAs) flooding throughout the OSPF domain LSAs 是由运行 OSPF 的路由器发出的特殊类型数据包。在区域内和区域间用到不同类型的 LSAs 。通过限制一些类型的 LSAs 在区域间传播, OSPF 的层次化实现有效地减少了 OSPF 网络中路由协议流量的数量。
> **注意:** OSPF的这些LSAs会在第39天详细说明。
> **注意:** OSPF的这些 LSAs 会在第 39 天详细说明。
在多区域OSPF网络中必须指定一个区域作为**骨干区域**, 或者叫`Area 0`。**OSPF骨干**就是此OSPF网络的**逻辑中心**。**其它非骨干区域都必须物理连接到骨干**。但因为在非骨干区域和骨干区域之间有着一条物理连接并非总是可能或可行的所以OSPF标准允许使用到骨干的虚拟连接。这些虚拟连接也就是常说的虚拟链路但此概念是不包括在当前的CCNA大纲中的In a multi-area OSPF network, one area must be designated as **the backbone area**, or `Area 0`. The OSPF backbone is **the logical centre** of the OSPF network. All other non-backbone areas must be connected physically to the backbone. However, because it is not always possible or feasible to have a physical connection between a non-backbone area and the backbone, the OSPF standart allows the use of virtual connections to the backbone. These virtual connections are known as virtual links, but this concept is not included in the current CCNA syllabus
在多区域 OSPF 网络中,必须指定一个区域作为**骨干区域**, 或者叫`Area 0`。**OSPF骨干**就是此 OSPF 网络的**逻辑中心**。**其它非骨干区域都必须物理连接到骨干**。但因为在非骨干区域和骨干区域之间有着一条物理连接,并非总是可能或可行的,所以 OSPF 标准允许使用到骨干的虚拟连接。这些虚拟连接也就是常说的虚拟链路,但此概念是不包括在当前的 CCNA 大纲中的In a multi-area OSPF network, one area must be designated as **the backbone area**, or `Area 0`. The OSPF backbone is **the logical centre** of the OSPF network. All other non-backbone areas must be connected physically to the backbone. However, because it is not always possible or feasible to have a physical connection between a non-backbone area and the backbone, the OSPF standart allows the use of virtual connections to the backbone. These virtual connections are known as virtual links, but this concept is not included in the current CCNA syllabus
位处各区域中的路由器,都存储着其所在区域的详细拓扑信息。而在各区域中,一台或多台的路由器,又被作为**区域边界路由器**Area Border Routers, ABRs区域边界路由器通过在不同区域之间通告汇总路由信息而促进区域间的路由facilitate inter-area routing by advertising summarised routing informaiton between the differenct areas。本功能实现OSPF网络中的以下几个目标。
位处各区域中的路由器,都存储着其所在区域的详细拓扑信息。而在各区域中,一台或多台的路由器,又被作为**区域边界路由器**Area Border Routers, ABRs区域边界路由器通过在不同区域之间通告汇总路由信息而促进区域间的路由facilitate inter-area routing by advertising summarised routing informaiton between the differenct areas。本功能实现 OSPF 网络中的以下几个目标。
- 在OSPF域层面减小LSAs的扩散范围, Reduces the scope of LSAs flooding throughout the OSPF domain
- 在 OSPF 域层面减小 LSAs 的扩散范围, Reduces the scope of LSAs flooding throughout the OSPF domain
- 在区域之间隐藏详细拓扑信息, Hides detailed topology informaiton between areas
- OSPF域中端到端连通性的实现, Allows for end-to-end connectivity within the OSPF domain
- 在OSPF域内部创建逻辑边界, Creates logical boundaries within the OSPF domain
- 在 OSPF 域内部创建逻辑边界, Creates logical boundaries within the OSPF domain
> **注意:** 尽管ICND1大纲仅涉及到单区域OSPFsingle-area OSPF, 但为把大部分理论纳入讨论背景有必要说一下多区域OSPFmulti-area OSPF
> **注意:** 尽管 ICND1 大纲仅涉及到单区域 OSPF single-area OSPF, 但为把大部分理论纳入讨论背景,有必要说一下多区域 OSPF multi-area OSPF
OSPF骨干区域从ABRs接收到汇总路由信息。该路由信息被散布到OSPF网络中的所有其它非骨干区域。在网络拓扑发生变化时变化信息就被散布到整个的OSPF域令到所有区域中的所有路由器都有着网络的统一视图The OSPF backbone area receives summarised routing informaiton from the ABRs. The routing informaiton is disseminated to all other non-backbone areas within the OSPF network. When a change to the network topology occurs, this informaiton is disseminated throughout the entire OSPF domain, allowing all routers in all areas to have a consistent view of the network。下图12.1演示的网络拓扑就是一个多区域OSPF部署的示例。
OSPF骨干区域从 ABRs 接收到汇总路由信息。该路由信息被散布到 OSPF 网络中的所有其它非骨干区域。在网络拓扑发生变化时,变化信息就被散布到整个的 OSPF 令到所有区域中的所有路由器都有着网络的统一视图The OSPF backbone area receives summarised routing informaiton from the ABRs. The routing informaiton is disseminated to all other non-backbone areas within the OSPF network. When a change to the network topology occurs, this informaiton is disseminated throughout the entire OSPF domain, allowing all routers in all areas to have a consistent view of the network。下图12.1演示的网络拓扑,就是一个多区域 OSPF 部署的示例。
![一个多区域OSPF网络](images/1201.png)
![一个多区域 OSPF 网络](images/1201.png)
*图12.1 -- 一个多区域OSPF网络*
*图12.1 -- 一个多区域 OSPF 网络*
图12.1演示了一个基本的多区域OSPF网络。`1`、`2`号区域连接到`0`号区域也就是OSPF骨干上。`1`号区域中,路由器`R1`、`R2`和`R3`交换着区域内intra-area路由信息并维护着那个区域的详细拓扑。`R3`作为ABR生成一条区域间汇总路由an inter-area summary route, 并将该路由通告给OSPF骨干。
图12.1演示了一个基本的多区域 OSPF 网络。`1`、`2`号区域连接到`0`号区域,也就是 OSPF 骨干上。`1`号区域中,路由器`R1`、`R2`和`R3`交换着区域内intra-area路由信息并维护着那个区域的详细拓扑。`R3`作为 ABR 生成一条区域间汇总路由an inter-area summary route, 并将该路由通告给 OSPF 骨干。
`R4`,也就是`2`号区域的ABR从`0`号区域接收到`R3`通告出的汇总信息,并将其扩散到其**邻接区域**。这样做就令到`R5`和`R6`知悉位处其本地区域外、但仍在OSPF域内的那些路由了。同样概念也适用于`2`号区域内的路由信息(`R4`, the ABR for Area 2, receives the summary informaiton from Area 0 and floods it into its **adjacent area**. This allows routers `R5` and `R6` to know of the routes that reside outside of their local area but within the OSPF domain. The same concept would also be applicable to the routing informaiton within Area 2
`R4`,也就是`2`号区域的 ABR ,从`0`号区域接收到`R3`通告出的汇总信息,并将其扩散到其**邻接区域**。这样做就令到`R5`和`R6`知悉位处其本地区域外、但仍在 OSPF 域内的那些路由了。同样概念也适用于`2`号区域内的路由信息(`R4`, the ABR for Area 2, receives the summary informaiton from Area 0 and floods it into its **adjacent area**. This allows routers `R5` and `R6` to know of the routes that reside outside of their local area but within the OSPF domain. The same concept would also be applicable to the routing informaiton within Area 2
总的来讲ABRs都维护着所有其各自连接区域的LSDB信息。而各个区域中的所有路由器都有着属于其特定区域的详细拓扑信息。这些路由器交换着区域内的路由信息。ABRs则将所连接区域的汇总信息通告给其它OSPF区域以实现域内各子域区域间的路由In summation, the ABRs maintain LSDB informaiton for all the areas in which they are connected. All routers within each area have detailed topology informaiton pertaining to that specific area. These routers exchange intra-area routing informaiton. The ABRs advertise summary informaiton from each of their connected areas to other OSPF areas, allowing inter-area routing within the domain
总的来讲, ABRs 都维护着所有其各自连接区域的 LSDB 信息。而各个区域中的所有路由器,都有着属于其特定区域的详细拓扑信息。这些路由器交换着区域内的路由信息。 ABRs 则将所连接区域的汇总信息通告给其它 OSPF 区域以实现域内各子域区域间的路由In summation, the ABRs maintain LSDB informaiton for all the areas in which they are connected. All routers within each area have detailed topology informaiton pertaining to that specific area. These routers exchange intra-area routing informaiton. The ABRs advertise summary informaiton from each of their connected areas to other OSPF areas, allowing inter-area routing within the domain
> **注意:** 本书后面会详细说明OSPF ABRs及其它OSPF路由器类型。
> **注意:** 本书后面会详细说明OSPF ABRs及其它 OSPF 路由器类型。
### 组网类型
**Network Types**
对不同传输介质OSPF采用不同默认组网类型有下面这些:
对不同传输介质, OSPF 采用不同默认组网类型,有下面这些:
- 非广播组网在多点非广播多路复用传输介质上也就是FR和ATM, 默认采用此种组网类型, Non-Broadcastdefault on Multipoint Non-Broadcast Multi-Access(FR and ATM)
- 点对点组网在HDLC、PPP、FR及ATM的P2P子接口以及ISDN介质上默认采用此种组网类型 Point-to-Pointdefault on HDLC, PPP, P2P subinterface on FR and ATM, and ISDN
- 非广播组网(在多点非广播多路复用传输介质上,也就是 FR 和ATM, 默认采用此种组网类型, Non-Broadcastdefault on Multipoint Non-Broadcast Multi-Access(FR and ATM)
- 点对点组网(在 HDLC PPP FR ATM P2P 子接口,以及 ISDN 介质上,默认采用此种组网类型, Point-to-Pointdefault on HDLC, PPP, P2P subinterface on FR and ATM, and ISDN
- 广播组网(在以太网和令牌环介质上,默认采用此种组网类型, Broadcastdefault on Ethernet and Token Ring
- 点对多点组网Point-to-Multipoint
- 环回组网(默认在环回接口上采用此种组网类型, Loopbackdefault on Loopback interfaces
**非广播网络**是指那些没有原生的广播或多播流量支持的网络类型。非广播类型网络的最常见实例就是帧中继网络。非广播类型网络**需要额外配置,以实现广播和多播支持**。在这种网络上OSPF选举出一台指定路由器(a Designate Router, DR), 及/或一台备用指定路由器a Backup Designated Router, BDR。在本书后面会对这两台路由器进行说明。
**非广播网络**是指那些没有原生的广播或多播流量支持的网络类型。非广播类型网络的最常见实例就是帧中继网络。非广播类型网络**需要额外配置,以实现广播和多播支持**。在这种网络上, OSPF 选举出一台指定路由器(a Designate Router, DR), 及/或一台备用指定路由器a Backup Designated Router, BDR。在本书后面会对这两台路由器进行说明。
思科IOS软件中非广播类型网络上开启了OSPF的路由器默认每`30`秒发出`Hello`数据包。若`4`个`Hello`间隔,也就是`120`秒中都没有收到`Hello`数据包,那么该邻居路由器就被认为是“死了”。下面的输出演示了在一个帧中继串行接口上`show ip ospf interface`命令的输出。
思科 IOS 软件中,非广播类型网络上开启了 OSPF 的路由器,默认每`30`秒发出`Hello`数据包。若`4`个`Hello`间隔,也就是`120`秒中都没有收到`Hello`数据包,那么该邻居路由器就被认为是“死了”。下面的输出演示了在一个帧中继串行接口上`show ip ospf interface`命令的输出。
```console
R2#show ip ospf interface Serial0/0
@ -152,7 +152,7 @@ Serial0/0 is up, line protocol is up
Suppress Hello for 0 neighbor(s)
```
一条点对点连接, 简单来说就是一条两个端点之间的连接。P2P连接的实例包括采用HDLC及PPP封装的物理WAN接口以及FR和ATM的点对点子接口。**OSPF点对点组网类型中不会选举出DR和BDR**。在P2P类型网络上OSPF每`10`秒发出`Hello`数据包。在这些网络上,”死亡“间隔是`Hello`间隔的`4`倍,也就是`40`秒A Point-to-Point(P2P) connection is simply a connection between two endpoints only. Examples of P2P connections include physical WAN interfaces using HDLC and PPP encapsulation, and Frame Relay(FR) and Asynchronous Transfer Mode(ATM) Point-to-Point subinterfaces. No DR or BDR is elected on OSPF Point-to-Point network types. By default, OSPF sends Hello packets out every 10 seconds on P2P network types. The "dead" interval on these network types is four times the Hello interval, which is 40 seconds。下面的输出演示了在一条P2P链路上的`show ip ospf interface`命令的输出。
一条点对点连接, 简单来说就是一条两个端点之间的连接。 P2P 连接的实例,包括采用 HDLC PPP 封装的物理 WAN 接口,以及 FR ATM 的点对点子接口。**OSPF点对点组网类型中不会选举出 DR 和BDR**。在 P2P 类型网络上, OSPF 每`10`秒发出`Hello`数据包。在这些网络上,”死亡“间隔是`Hello`间隔的`4`倍,也就是`40`秒A Point-to-Point(P2P) connection is simply a connection between two endpoints only. Examples of P2P connections include physical WAN interfaces using HDLC and PPP encapsulation, and Frame Relay(FR) and Asynchronous Transfer Mode(ATM) Point-to-Point subinterfaces. No DR or BDR is elected on OSPF Point-to-Point network types. By default, OSPF sends Hello packets out every 10 seconds on P2P network types. The "dead" interval on these network types is four times the Hello interval, which is 40 seconds。下面的输出演示了在一条 P2P 链路上的`show ip ospf interface`命令的输出。
```console
R2#show ip ospf interface Serial0/0
@ -173,7 +173,7 @@ Serial0/0 is up, line protocol is up
Suppress Hello for 0 neighbor(s)
```
广播类型网络是指那些原生支持广播和多播流量的网络最常见例子就是以太网。就如同在非广播网络中一样OSPF也会在广播网络上选举一台DR及/或BDR。默认情况下OSPF每隔`10`秒发出`Hello`数据包,而如在`4`倍Hello间隔中没有收到`Hello`数据包,就宣告邻居”死亡“。下面的输出演示了在一个`FastEthernet`接口上`show ip ospf interface`命令的输出。
广播类型网络,是指那些原生支持广播和多播流量的网络,最常见例子就是以太网。就如同在非广播网络中一样, OSPF 也会在广播网络上选举一台 DR 及/或 BDR 。默认情况下, OSPF 每隔`10`秒发出`Hello`数据包,而如在`4`倍 Hello 间隔中没有收到`Hello`数据包,就宣告邻居”死亡“。下面的输出演示了在一个`FastEthernet`接口上`show ip ospf interface`命令的输出。
```console
R2#show ip ospf interface FastEthernet0/0
@ -196,11 +196,11 @@ FastEthernet0/0 is up, line protocol is up
Suppress Hello for 0 neighbor(s)
```
点对多点是**一种非默认OSPF组网类型**。也就是说,此种组网类型必须使用接口配置命令`ip ospf network point-to-point-multicast [non-broadcast]`手动进行配置。默认情况下该命令默认应用于一个广播型点对多点类型网络的。此默认组网类型允许OSPF采用多播数据包来动态地发现其邻居路由器。此外在**广播型点对多点网络**类型上不进行DR/BDR选举Point-to-Multipoint is **a non-default OSPF network type**. In other words, this network type must be configured manually using the `ip ospf network point-to-multipoint [non-broadcast]` interface configuration command. By default, this command defaults to **a Broadcast Point-to-Multipoint network** type. This default network type allows OSPF to use Multicast packets to discover its neighbour routers. In addition, there is no DR/BDR election held on Broadcast Point-to-Multipoint network types
点对多点是**一种非默认 OSPF 组网类型**。也就是说,此种组网类型必须使用接口配置命令`ip ospf network point-to-point-multicast [non-broadcast]`手动进行配置。默认情况下,该命令默认应用于一个广播型点对多点类型网络的。此默认组网类型允许 OSPF 采用多播数据包来动态地发现其邻居路由器。此外在**广播型点对多点网络**类型上不进行DR/BDR选举Point-to-Multipoint is **a non-default OSPF network type**. In other words, this network type must be configured manually using the `ip ospf network point-to-multipoint [non-broadcast]` interface configuration command. By default, this command defaults to **a Broadcast Point-to-Multipoint network** type. This default network type allows OSPF to use Multicast packets to discover its neighbour routers. In addition, there is no DR/BDR election held on Broadcast Point-to-Multipoint network types
关键字`[non-broadcast]`将点对多点网络配置为**非广播点对多点网络**。这样做就要求**静态的OSPF邻居配置**因为此时OSPF不会使用多播来动态地发现其邻居路由器。此外这种网络类型不要求为指定网段进行DR及/或BDR选举。此种组网的主要用途即允许分配邻居开销到邻居路由器而非使用指定给接口的开销作为那些自所有邻居处收到的路由的开销The `[non-broadcast]` keyword configures the Point-to-Multipoint network type as **a Non-Broadcast Point-to-Multipoint network**. This requires **static OSPF neighbour configuration**, as OSPF will not use Multicast to discover dynamically its neighbour routers. Additionally, this network type does not require the election of a DR and/or a BDR router for the designated segment. The primary use of this network type is to allow neighbor costs to be assigned to neighbors instead of using the interface-assigned cost for routes received from all neighbors
关键字`[non-broadcast]`将点对多点网络配置为**非广播点对多点网络**。这样做就要求**静态的 OSPF 邻居配置**,因为此时 OSPF 不会使用多播来动态地发现其邻居路由器。此外,这种网络类型不要求为指定网段进行 DR 及/或 BDR 选举。此种组网的主要用途即允许分配邻居开销到邻居路由器而非使用指定给接口的开销作为那些自所有邻居处收到的路由的开销The `[non-broadcast]` keyword configures the Point-to-Multipoint network type as **a Non-Broadcast Point-to-Multipoint network**. This requires **static OSPF neighbour configuration**, as OSPF will not use Multicast to discover dynamically its neighbour routers. Additionally, this network type does not require the election of a DR and/or a BDR router for the designated segment. The primary use of this network type is to allow neighbor costs to be assigned to neighbors instead of using the interface-assigned cost for routes received from all neighbors
点对多点组网类型,典型地用于**部分全通辐射状非广播多路访问网络**。不过此种组网类型也可指定给诸如广播多路访问网络比如以太网等的其它类型网络The Point-to-Multipoint network type is typically used in **partial-mesh hub-and-spoke Non-Broadcast Multi-Access(NBMA)** networks. However, this network type can also be specified for other networks, such as Broadcast Multi-Access networks(e.g., Ethernet)。默认情况下在点对多点网络上OSPF每`30`秒发出一个`Hello`数据包。默认死亡间隔是`Hello`间隔的`4`倍,也就是`120`秒。
点对多点组网类型,典型地用于**部分全通辐射状非广播多路访问网络**。不过此种组网类型也可指定给诸如广播多路访问网络比如以太网等的其它类型网络The Point-to-Multipoint network type is typically used in **partial-mesh hub-and-spoke Non-Broadcast Multi-Access(NBMA)** networks. However, this network type can also be specified for other networks, such as Broadcast Multi-Access networks(e.g., Ethernet))。默认情况下,在点对多点网络上, OSPF 每`30`秒发出一个`Hello`数据包。默认死亡间隔是`Hello`间隔的`4`倍,也就是`120`秒。
下面的输出演示了在一个经手动配置为点对多点网络的帧中继串行接口上的`show ip ospf interface`命令的输出。
@ -223,9 +223,9 @@ Serial0/0 is up, line protocol is up
Suppress Hello for 0 neighbor(s)
```
OSPF要求链路上两台路由器组网类型一致一致的意思是两台路由器要么都进行选举要么都不进行选举的主要原因在于计时器的数值。就像上面各个输出中演示的那样不同组网类型采用了不同`Hello`数据包发送及死亡计时器间隔。为成功建立一个OSPF邻接关系在两台路由器上这些数值必须匹配。
OSPF要求链路上两台路由器组网类型一致一致的意思是两台路由器要么都进行选举要么都不进行选举的主要原因在于计时器的数值。就像上面各个输出中演示的那样不同组网类型采用了不同`Hello`数据包发送及死亡计时器间隔。为成功建立一个 OSPF 邻接关系,在两台路由器上这些数值必须匹配。
思科IOS软件允许通过使用接口配置命令`ip ospf hello-interval <1-65535>`及`ip ospf dead-interval [<1-65535>|minimal]`对默认OSPF `Hello`数据包及死亡计时器进行修改。`ip ospf hell0-interval <1-65535>`命令用于指定`Hello`间隔的秒数。在执行该命令后,软件会自动将死亡间隔配置为所配置的`Hello`包间隔的`4`倍。比如,假定某台路由器做了如下配置。
思科 IOS 软件允许通过使用接口配置命令`ip ospf hello-interval <1-65535>`及`ip ospf dead-interval [<1-65535>|minimal]`对默认OSPF `Hello`数据包及死亡计时器进行修改。`ip ospf hell0-interval <1-65535>`命令用于指定`Hello`间隔的秒数。在执行该命令后,软件会自动将死亡间隔配置为所配置的`Hello`包间隔的`4`倍。比如,假定某台路由器做了如下配置。
```console
R2(config)#interface Serial0/0
@ -233,7 +233,7 @@ R2(config-if)#ip ospf hello-interval 1
R2(config-if)#exit
```
通过在上面的`R2`上将`Hello`数据包间隔设置为`1`, 思科IOS软件就会自动的将默认死亡计时器调整为`Hello`间隔的`4`倍,就是`4`秒。下面的输出对此进行了演示。
通过在上面的`R2`上将`Hello`数据包间隔设置为`1`, 思科 IOS 软件就会自动的将默认死亡计时器调整为`Hello`间隔的`4`倍,就是`4`秒。下面的输出对此进行了演示。
```console
R2#show ip ospf interface Serial0/0
@ -252,20 +252,20 @@ Serial0/0 is up, line protocol is up
**OSPF Configuration**
本节对OSPF配置基础进行说明。
本节对 OSPF 配置基础进行说明。
### 在思科IOS软件中开启OSPF
### 在思科 IOS 软件中开启OSPF
**Enabling OSPF in Cisco IOS Software**
在思科IOS软件中通过使用全局配置命令`router ospf [process id]`开启OSPF。**关键字`[process id]`是本地有效的**(locally sinificant)邻接关系的建立无需网络中所有路由器的进程号一致。运用本地有效的进程号允许在同一台路由器上配置多个OSPF实例。
在思科 IOS 软件中,通过使用全局配置命令`router ospf [process id]`开启 OSPF 。**关键字`[process id]`是本地有效的**(locally sinificant),邻接关系的建立无需网络中所有路由器的进程号一致。运用本地有效的进程号,允许在同一台路由器上配置多个 OSPF 实例。
OSPF进程号是一个`1`与`65535`之间的整数。每个OSPF进程都维护着其独立链路状态数据库LSDB但是所有路由都放进的是同一IP路由表。也就是说对配置在路由器上的各个单独OSPF进程并没有各自唯一的IP路由表。
OSPF进程号是一个`1`与`65535`之间的整数。每个 OSPF 进程都维护着其独立链路状态数据库( LSDB );但是,所有路由都放进的是同一 IP 路由表。也就是说,对配置在路由器上的各个单独 OSPF 进程,并没有各自唯一的 IP 路由表。
在思科IOS软件早期版本中如路由器上没有至少一个的接口配置了有效IP地址且处于`up/up`状态就无法开启OSPF。此限制在当前版本思科IOS软件中去除了。假如路由器没有接口配置了有效IP地址且处于`up/up`状态那么思科IOS将创建出一个接近数据库a Proximity Database, PDB并允许创建出进程。但是要记住除非选定路由器ID该进程就是非活动的进程而**路由器ID的选定**,可通过下面两种方式完成。
在思科 IOS 软件早期版本中,如路由器上没有至少一个的接口配置了有效 IP 地址且处于`up/up`状态,就无法开启 OSPF 。此限制在当前版本思科 IOS 软件中去除了。假如路由器没有接口配置了有效 IP 地址且处于`up/up`状态,那么思科 IOS 将创建出一个接近数据库a Proximity Database, PDB并允许创建出进程。但是要记住除非选定路由器 ID ,该进程就是非活动的进程,而**路由器 ID 的选定**,可通过下面两种方式完成。
- 在某个接口上配置一个有效IP地址并将该接口开启
- 使用命令`router-id`为该路由器手动配置一个ID见下
- 在某个接口上配置一个有效 IP 地址,并将该接口开启
- 使用命令`router-id`为该路由器手动配置一个 ID (见下)
作为一个例子,看看下面的所有接口都关闭的路由器。
@ -277,14 +277,14 @@ Serial0/0 unassigned YES NVRAM administratively down down
Serial0/1 unassigned YES unset administratively down down
```
接着,使用全局配置命令`router ospf [process id]`在该路由器上开启了OSPF 如下面输出所示。
接着,使用全局配置命令`router ospf [process id]`在该路由器上开启了 OSPF 如下面输出所示。
```console
R3(config)#router ospf 1
R3(config-router)#exit
```
基于此配置思科IOS软件分配给该进程一个默认`0.0.0.0`的路由器ID如下面`show ip protocols`命令的输出所示。
基于此配置,思科 IOS 软件分配给该进程一个默认`0.0.0.0`的路由器 ID ,如下面`show ip protocols`命令的输出所示。
```console
R3#show ip protocols
@ -301,29 +301,29 @@ Reference bandwidth unit is 100 mbps
Distance: (default is 110)
```
但是,命令`show ip ospf [process id]`揭示出该进程实际上并不是活动的且表明需要配置一个路由器ID 其输出如下面所示。
但是,命令`show ip ospf [process id]`揭示出该进程实际上并不是活动的,且表明需要配置一个路由器 ID 其输出如下面所示。
```console
R3#show ip ospf 1
%OSPF: Router process 1 is not running, please configure a router-id
```
### 开启接口或网络的OSPF路由
### 开启接口或网络的 OSPF 路由
**Enabling OSPF Routing for Interfaces or Networks**
在开启OSPF后就可以执行两个操作来为路由器上一个或更多的网络或接口开启OSPF路由。这两个操作如下。
在开启 OSPF 后,就可以执行两个操作,来为路由器上一个或更多的网络或接口开启 OSPF 路由。这两个操作如下。
- 使用路由器配置命令(router configuration command)`[network] [wildcard] area [area id]`
- 使用接口配置命令`ip ospf [process id] area [area id]`
与EIGRP不同OSPF强制使用反掩码且必须配置反掩码; 但与在EIGRP中的情况一样反掩码提供了同样的功能也就是匹配指定范围中的接口unlike EIGRP, the wildcard is mandatory in OSPF and must be configured; however, as is the case with EIGRP, it serves the same function in that it matches interfaces within the range specified。比如语句`network 10.0.0.0 0.255.255.255 area 0`,就会对`10.0.0.1/30`、`10.5.5.1/24`, 甚至`10.10.10.1/25`这样的IP地址和子网掩码组合的接口开启OSPF路由。基于该OSPF网络配置这些接口都会被分配到0号区域。
EIGRP 不同, OSPF 强制使用反掩码且必须配置反掩码; 但与在 EIGRP 中的情况一样反掩码提供了同样的功能也就是匹配指定范围中的接口unlike EIGRP, the wildcard is mandatory in OSPF and must be configured; however, as is the case with EIGRP, it serves the same function in that it matches interfaces within the range specified。比如语句`network 10.0.0.0 0.255.255.255 area 0`,就会对`10.0.0.1/30`、`10.5.5.1/24`, 甚至`10.10.10.1/25`这样的 IP 地址和子网掩码组合的接口,开启 OSPF 路由。基于该 OSPF 网络配置,这些接口都会被分配到 0 号区域。
> **注意:** OSPF反掩码可以与传统子网掩码同样格式敲入比如`network 10.0.0.0 255.0.0.0 area 0`。在这种情况下思科IOS软件就会将子网掩码翻转将得到的反掩码输入到运行配置the running configuration。另外要记住**OSPF也支持使用全1s和全0s反掩码来对某个指定接口开启OSPF**。这样的配置在某个特定接口上开启OSPF但路由器通告配置在该接口自身的实际子网掩码this configuration enables OSPF on a paricular interface but the router advertises the actual subnet mask configured on the interface itself
> **注意:** OSPF反掩码可以与传统子网掩码同样格式敲入比如`network 10.0.0.0 255.0.0.0 area 0`。在这种情况下,思科 IOS 软件就会将子网掩码翻转将得到的反掩码输入到运行配置the running configuration。另外要记住**OSPF也支持使用全 1s 和全 0s 反掩码来对某个指定接口开启OSPF**。这样的配置在某个特定接口上开启 OSPF 但路由器通告配置在该接口自身的实际子网掩码this configuration enables OSPF on a paricular interface but the router advertises the actual subnet mask configured on the interface itself
在执行了`network [network] [wildcast] area [area id]`命令后,路由器就在与指定网络和反掩码组合匹配的那些接口上发出`Hello`数据包来尝试发现邻居路由器。接着在OSPF数据库交换期间将连接子网通告给一台或更多的邻居路由器最终它们将所有子网信息都被加入到这些OSPF路由器的OSPF链路状态数据库OSPF LSDB中。
在执行了`network [network] [wildcast] area [area id]`命令后,路由器就在与指定网络和反掩码组合匹配的那些接口上发出`Hello`数据包,来尝试发现邻居路由器。接着在 OSPF 数据库交换期间,将连接子网通告给一台或更多的邻居路由器,最终,它们将所有子网信息都被加入到这些 OSPF 路由器的 OSPF 链路状态数据库OSPF LSDB中。
在命令`network [network] [wildcard] area [area id]`之后路由器又对最具体条目做出匹配以决定将接口要分配给的区域。作为实例想想下面这些OSPF网络语句。
在命令`network [network] [wildcard] area [area id]`之后,路由器又对最具体条目做出匹配,以决定将接口要分配给的区域。作为实例,想想下面这些 OSPF 网络语句。
- 第一条网络配置语句:`network 10.0.0.0 0.255.255.255 area 0`
- 第二条:`network 10.1.0.0 0.0.255.255 area 1`
@ -342,7 +342,7 @@ R3#show ip ospf 1
<tr><td>`Loopback 4`</td><td>`10.2.0.1/32`</td></tr>
</table>
就像前面指出的那样,在执行了`network [network] [wildcard] area [area id]`命令后,路由器匹配最具体的网络条目(最小的网络),来决定该接口应分配到的区域。对于在路由器上的网络配置语句及已配置的接口,命令`show ip ospf interface brief`会显示出这些接口都分配给了以下OSPF区域。
就像前面指出的那样,在执行了`network [network] [wildcard] area [area id]`命令后,路由器匹配最具体的网络条目(最小的网络),来决定该接口应分配到的区域。对于在路由器上的网络配置语句及已配置的接口,命令`show ip ospf interface brief`会显示出这些接口都分配给了以下 OSPF 区域。
```console
R1#show ip ospf interface brief
@ -356,27 +356,27 @@ Lo3 1 3 10.1.1.1/32 1 LOOP 0/0
> **注意:** 在运行配置the running configuration无需考虑网络语句敲入顺序路由器的`show running-config`输出中最具体的网络条目,始终列在前面。
**接口配置命令`ip ospf [process id] area [area id]`**令到无需使用**路由器配置命令`network [network] [wildcard] area [area id]`**。该命令对某个指定接口开启OSPF路由同时将该接口分配给指定OSPF区域。这两个命令完成同样的基本功能且可互换使用。
**接口配置命令`ip ospf [process id] area [area id]`**令到无需使用**路由器配置命令`network [network] [wildcard] area [area id]`**。该命令对某个指定接口开启 OSPF 路由,同时将该接口分配给指定 OSPF 区域。这两个命令完成同样的基本功能,且可互换使用。
此外比如有两台路由器是背靠背连接connected back-to-back一台使用接口配置命令`ip ospf [process id] area [area id]`进行了配置,而其邻居路由器使用路由器配置命令`network [network] [wildcard] area [area id]`进行了配置假设两个区域IDs相同那么两台路由器将成功建立OSPF邻接关系。
此外比如有两台路由器是背靠背连接connected back-to-back一台使用接口配置命令`ip ospf [process id] area [area id]`进行了配置,而其邻居路由器使用路由器配置命令`network [network] [wildcard] area [area id]`进行了配置,假设两个区域 IDs 相同,那么两台路由器将成功建立 OSPF 邻接关系。
### OSPF区域
**OSPF Areas**
**OSPF区域号既可以配置为一个`0`到`4294967295`之间的整数,也可使用点分十进制表示法**也就是采用IP地址格式。与OSPF进程号不同**为建立邻接关系OSPF区域号必须匹配**。最常见OSPF区域配置类型为使用一个整数来指定OSPF区域。确保对支持的两种区域配置方式都要熟悉。
**OSPF区域号既可以配置为一个`0`到`4294967295`之间的整数,也可使用点分十进制表示法**(也就是采用 IP 地址格式)。与 OSPF 进程号不同,**为建立邻接关系, OSPF 区域号必须匹配**。最常见 OSPF 区域配置类型为使用一个整数来指定 OSPF 区域。确保对支持的两种区域配置方式都要熟悉。
### OSPF路由器ID
**OSPF Router ID**
为令到OSPF在某个网络上运行起来所有路由器都必须有个唯一身份编号a unique identifying number且在OSPF环境下要用到路由器ID。
为令到 OSPF 在某个网络上运行起来所有路由器都必须有个唯一身份编号a unique identifying number且在 OSPF 环境下要用到路由器 ID
在决定OSPF路由器ID时思科IOS选用所配置环回接口中最高的IP地址。如未曾配置环回接口软件就会使用所有配置的物理接口中最高的IP地址来作为0SPF路由器ID。思科IOS软件同样允许管理员使用**路由器配置命令`router-id [address]`**, 来手动指定路由器ID。
在决定 OSPF 路由器 ID 时,思科 IOS 选用所配置环回接口中最高的 IP 地址。如未曾配置环回接口,软件就会使用所有配置的物理接口中最高的 IP 地址,来作为 0SPF 路由器 ID 。思科 IOS 软件同样允许管理员使用**路由器配置命令`router-id [address]`**, 来手动指定路由器 ID
环回接口极为有用,特别是在测试当中,因为它们无需硬件且是逻辑的,因此绝不会宕掉。
在下面的路由器上,给`Loopback0`配置了IP地址`1.1.1.1/32`, 给`F0/0`配置了`2.2.2.2/24`。接着在路由器上给所有接口配置了OSPF。
在下面的路由器上,给`Loopback0`配置了 IP 地址`1.1.1.1/32`, 给`F0/0`配置了`2.2.2.2/24`。接着在路由器上给所有接口配置了 OSPF
```console
Router(config-if)#router ospf 1
@ -400,7 +400,7 @@ Routing Protocol is “ospf 1”
```
但又想要将路由器ID硬编码hard code为`10.10.10.1`。那么可通过再配置一个使用该IP地址的环回接口或简单地将这个IP地址加在OSPF路由器ID处。**为令到改变生效必须重启路由器或在路由器上清除该IP OSPF进程**(清除现有数据库)。
但又想要将路由器 ID 硬编码hard code为`10.10.10.1`。那么可通过再配置一个使用该 IP 地址的环回接口,或简单地将这个 IP 地址加在 OSPF 路由器 ID 处。**为令到改变生效必须重启路由器或在路由器上清除该IP OSPF进程**(清除现有数据库)。
```console
Router#conf t
@ -429,15 +429,15 @@ Routing Protocol is “ospf 1”
Distance: (default is 110)
```
到第`39`天,**DR和BDR选举时就将看到这个路由器ID有着特别的重要性**。
到第`39`天,**DR和 BDR 选举时,就将看到这个路由器 ID 有着特别的重要性**。
### OSPF被动接口
**OSPF Passive Interfaces**
被动接口可被描述成在其上没有路由更新发出的接口。在思科IOS软件中通过使用**路由器配置命令`passive-interface [name]`**, 将某接口配置为被动接口。如路由器上有多个接口需要配置为被动接口,就应使用**`passive-interface default`这个路由器配置命令**。此命令将路由器上那些位处所配置网络范围内的所有接口,都配置为被动模式。而那些需要允许在其上形成邻接关系或邻居关系的接口,就应使用路由器配置命令`no passive-interface [name]`对其进行配置。
被动接口可被描述成在其上没有路由更新发出的接口。在思科 IOS 软件中,通过使用**路由器配置命令`passive-interface [name]`**, 将某接口配置为被动接口。如路由器上有多个接口需要配置为被动接口,就应使用**`passive-interface default`这个路由器配置命令**。此命令将路由器上那些位处所配置网络范围内的所有接口,都配置为被动模式。而那些需要允许在其上形成邻接关系或邻居关系的接口,就应使用路由器配置命令`no passive-interface [name]`对其进行配置。
被动接口配置在OSPF和EIGRP中的工作方式是一样的也就是一旦某接口被标记为被动接口经由该接口形成的所有邻居关系都会被拆除同时 **再也不会通过该接口发送或接收`Hello`数据包了**。不过,根据路由器上所配置的网络配置语句,该接口仍然会继续受通告。
被动接口配置在 OSPF EIGRP 中的工作方式是一样的,也就是一旦某接口被标记为被动接口,经由该接口形成的所有邻居关系都会被拆除,同时 **再也不会通过该接口发送或接收`Hello`数据包了**。不过,根据路由器上所配置的网络配置语句,该接口仍然会继续受通告。
```console
Router(config)#router ospf 10
@ -453,7 +453,7 @@ FastEthernet0/0 is up, line protocol is up
No Hellos (Passive interface)
```
## 第12天问题
## 第 12 天问题
1. What protocol does OSPF use?
2. How does OSPF determine whether other Link State routers are operating on the interfaces as well?
@ -466,7 +466,7 @@ FastEthernet0/0 is up, line protocol is up
9. What command can you use to assign an interface to OSPF Area 2 (interface level command)?
10. `_______` can be described as interfaces over which no routing updates are sent.
##第12天答案
##第 12 天答案
1. IP number 89.
2. By sending Hello packets.
@ -479,16 +479,16 @@ FastEthernet0/0 is up, line protocol is up
9. The `ip ospf <id> area 2`
10. Passive.
##第12天实验
##第 12 天实验
###OSPF基础实验
沿用第`10`天的实验场景两台直接连接的路由器各自其上的环回接口但取代配置RIP及对物理和环回接口进行通告的是使用OSPF `0`号区域实现but instead of configuring RIP and advertising the physical and Loopback interfaces, do this using OSPF `Area 0`)。
沿用第`10`天的实验场景(两台直接连接的路由器,各自其上的环回接口),但取代配置 RIP 及对物理和环回接口进行通告的是使用OSPF `0`号区域实现but instead of configuring RIP and advertising the physical and Loopback interfaces, do this using OSPF `Area 0`)。
- 分配一个IPv4地址给直接连接的接口`10.10.10.1/24`及`10.10.10.2/24`
- 分配一个 IPv4 地址给直接连接的接口(`10.10.10.1/24`及`10.10.10.2/24`
- 运用`ping`操作,测试直接连通性
- 分别在两台路由器上配置一个环回接口,并自两个不同范围为其分配上地址(`11.11.11.1/32`及`12.12.12.2/32`
- 配置上标准OSPF `1`号进程,并在`0`号区域中通告所有本地网络。同时为两台设备配置一个路由器ID。
- 配置上标准OSPF `1`号进程,并在`0`号区域中通告所有本地网络。同时为两台设备配置一个路由器 ID
**`R1`:**
@ -508,10 +508,10 @@ network 10.10.10.0 0.0.0.255 area 0
network 12.12.12.2 0.0.0.0 area 0
```
- 自`R1`向`R2`的环回接口执行ping操作以测试连通性
- 执行一条`show ip route`命令来验证有通过OSPF接收到路由
- 执行一条`show ip protocols`命令来验证有配置OSPF且在设备上是活动的
- 坚持特定于OSPF的接口参数`show ip ospf interface`及`show ip ospf interface brief`
- 在两台路由器上直接连接接口修改OSPF的Hello包和死亡计时器`ip ospf hello`及`ip ospf dead`
- 自`R1`向`R2`的环回接口执行 ping 操作,以测试连通性
- 执行一条`show ip route`命令,来验证有通过 OSPF 接收到路由
- 执行一条`show ip protocols`命令,来验证有配置 OSPF 且在设备上是活动的
- 坚持特定于 OSPF 的接口参数:`show ip ospf interface`及`show ip ospf interface brief`
- 在两台路由器上(直接连接接口)修改 OSPF Hello 包和死亡计时器:`ip ospf hello`及`ip ospf dead`
- 执行一下`show ip ospf 1`命令,看看路由进程参数
- 重复该实验,但这次使用`ip ospf 1 area 0 interface specific`命令而不是在router OSPF 下的`network`命令,对各个网络进行通告。

View File

@ -1,4 +1,4 @@
# 第13天 OSPF版本3
# 第 13 天 OSPF版本3
__OSPF version 3__
@ -16,7 +16,7 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第13天任务
## 第 13 天任务
- 阅读今天的理论课文
- 回顾昨天的理论课文
@ -25,52 +25,52 @@ ___
- OSPF基础
本模块对应了以下CCNA大纲要求。
本模块对应了以下 CCNA 大纲要求。
- 配置OSPFv3
- 路由器ID
- 被动接口
## OSPF第3版
## OSPF第 3
**OSPF Version 3**
`OSPFv3`定义在`RFC 2740`中,而其功能与`OSPFv2`相同,不过`OSPFv3`显式地是为IPv6路由协议设计OSPFv3 is defined in RFC 2740 and is the counterpart of OSPFv2, but it is designed explicitly for the IPv6 routed protocol。该版本号取自此种OSPF数据包中的版本字段该字段已被更新到数字`3`. `OSPFv3`规格主要是基于`OSPFv2`, 但因为加入对IPv6的支持而包含了一些额外功能增强。
`OSPFv3`定义在`RFC 2740`中,而其功能与`OSPFv2`相同,不过`OSPFv3`显式地是为 IPv6 路由协议设计OSPFv3 is defined in RFC 2740 and is the counterpart of OSPFv2, but it is designed explicitly for the IPv6 routed protocol。该版本号取自此种 OSPF 数据包中的版本字段,该字段已被更新到数字`3`. `OSPFv3`规格主要是基于`OSPFv2`, 但因为加入对 IPv6 的支持,而包含了一些额外功能增强。
`OSPFv2`和`OSPFv3`能在同一台路由器上运行。也就是说同一台物理路由器可同时路由IPv4和IPv6流量因为每个地址家族都有不同的SPF进程这就是说同样SPF算法对`OSPFv2`和`OSPFv3`分别有一个单独实例。`OSPFv2`和`OSPFv3`有以下共同点。
`OSPFv2`和`OSPFv3`能在同一台路由器上运行。也就是说,同一台物理路由器可同时路由 IPv4 IPv6 流量,因为每个地址家族都有不同的 SPF 进程;这就是说,同样 SPF 算法对`OSPFv2`和`OSPFv3`分别有一个单独实例。`OSPFv2`和`OSPFv3`有以下共同点。
- `OSPFv3`继续使用着为`OSPFv2`所用到的那些数据包。包括数据库说明数据包Database Description, DBD, 链路状态请求数据包Link State Requests, LSRs链路状态更新数据包Link State Updates, LSUs, 以及链路状态通告数据包Lins State Advertisements, LSAs
- `OSPSv3`中的动态邻居发现机制及邻接关系形成过程OSPF所经历的从初始、尝试建立邻接关系到邻接关系完整建立的过程仍然和`OSPFv2`中一样
- 在不同通信技术方面,`OSPFv3`仍然保持对RFC的遵循OSPFv3 still remains RFC-compliant on different technologies。比如若在某条PPP链路上开启`OSPFv3`, 那么组网类型仍然被指定为点对点Point-to-Point。同样如在FR上开启`OSPFv3`, 默认组网类型仍然是非广播类型Non-Broadcast。此外在思科IOS软件中默认组网类型仍可通过使用不同的、特定于接口的命令手动进行改变。
- `OSPFv2`和`OSPFv3`使用同样的LSA散布及老化机制the same LSA flooding and aging mechanism.
- 与`OSPFv2`类似,`OSPFv3`的路由器IDrid仍然需要使用一个`32`位的IPv4地址。当在某台运行着双栈dual-stack, 也就是同时有IPv4和IPv6的路由器上开启`OSPFv3`时, 那么与在`OSPFv2`中为思科IOS路由器所用到的同样RID选定过程也用于确定OSPFv3中要用到的路由器ID。但是在一台没有接口运行着IPv4的路由器上开启`OSPFv3`时,就**强制性要求使用路由器配置命令`router-id`来手动配置`OSPFv3`的路由器ID**。
- `OSPFv3`链路ID表明这些链路并非IPv6专用同时这些链路ID跟`OSPFv2`中一样,仍然基于一个`32`位IPv4地址。
- `OSPSv3`中的动态邻居发现机制及邻接关系形成过程( OSPF 所经历的从初始、尝试建立邻接关系到邻接关系完整建立的过程),仍然和`OSPFv2`中一样
- 在不同通信技术方面,`OSPFv3`仍然保持对 RFC 的遵循OSPFv3 still remains RFC-compliant on different technologies。比如若在某条 PPP 链路上开启`OSPFv3`, 那么组网类型仍然被指定为点对点Point-to-Point。同样如在 FR 上开启`OSPFv3`, 默认组网类型仍然是非广播类型Non-Broadcast。此外在思科 IOS 软件中,默认组网类型仍可通过使用不同的、特定于接口的命令,手动进行改变。
- `OSPFv2`和`OSPFv3`使用同样的 LSA 散布及老化机制the same LSA flooding and aging mechanism.
- 与`OSPFv2`类似,`OSPFv3`的路由器 ID rid )仍然需要使用一个`32`位的 IPv4 地址。当在某台运行着双栈dual-stack, 也就是同时有 IPv4 IPv6 )的路由器上开启`OSPFv3`时, 那么与在`OSPFv2`中为思科 IOS 路由器所用到的同样 RID 选定过程,也用于确定 OSPFv3 中要用到的路由器 ID 。但是,在一台没有接口运行着 IPv4 的路由器上开启`OSPFv3`时,就**强制性要求使用路由器配置命令`router-id`来手动配置`OSPFv3`的路由器ID**。
- `OSPFv3`链路 ID 表明,这些链路并非 IPv6 专用,同时这些链路 ID 跟`OSPFv2`中一样,仍然基于一个`32`位 IPv4 地址。
在`OSPFv2`与`OSPFv3`有着这些相同点的同时,重要的是掌握那些你必须熟悉的存在的明显不同点。包括下面这些。
- 以与EIGRP类似的方式`OSPFv3`是在链路上运行的in a manner similar to EIGRP, OSPFv3 runs over a link。这就打消了`OSPFv3`中执行网络声明语句的需求。取而代之的是,**通过使用接口配置命令`ipv6 router ospf [process id] area [area id]`来将该链路配置为某个OSPF进程的组成部分**。但是,与`OSPFv2`类似OSPF进程号仍然是通过在全局配置模式中使用全局配置命令`ipv6 router ospf [process id]`进行指定。
- **`OSPFv3`使用本地链路地址Link-local address来区分`OSPFv3`邻接关系**。与EIGRPv6类似`OSPFv3`路由的下一跳地址将反映邻接的或邻居路由器的本地链路地址。
- `OSPFv3`**引入了两种新的OSPF LSA类型**。分别是**链路LSA**the Link LSA被定义为LSA类型`0x0008`(LSA `Type 0x0008`或LSA Type 8, 以及**区域内前缀LSA**the Intra-Area-Prefix LSA被定义为LSA类型`0x0029`(LSA `Type 0x0029`, 或LSA Type 29。**链路LSA提供了路由器的本地链路地址及加诸路由器上的所有IPv6前缀**。每条链路都有一个链路LSA。可能有多个带有不同**链路状态IDs**的区域内前缀LSAs。因此区域LSA散布范围就既可能是与应用自网络LSA的所经过网络的相关前缀网络也可能是参考自路由器LSA的某台路由器或末梢区域相关前缀There can be multiple Intra-Area-Prefix LSAs with different Link-State IDs. The Area flooding scope can therefore be an associated prefix with the transit network referencing a Network LSA or it can be an associated prefix with a router or Stub referencing a Router LSA
- `OSPFv2`与`OSPFv3`所用到的传输方式是不同的。`OSPFv3`报文是用封装成IPv6数据包发出的。
- `OSPFv3`使用两个标准IPv6多播地址。多播地址`FF02::5`与`OSPFv2`中用到的所有SPF路由器AllSPFRouters地址`224.0.0.5`等价,同时多播地址`FF02::6`就是所有DR路由器AllDRRouters地址且与OSPFv2中用到的`224.0.0.6`组地址等价。这将在ICND2部分讲到
- `OSPFv3`利用到IPv6内建的`IPSec`的能力并将AH和ESP扩展头部用着一种的认证机制而不是想在`OSPFv2`中可配置的为数众多的认证机制OSPFv3 leverages the built-in capabilities of IPSec and uses the AH and ESP extension headers as an authentication mechanism instead of the numerous authentication mechanisms configurable in OSPFv2。因此在`OSPFv3`的OSPF数据包中那些认证和AuType字段就被移除了。
- 最终的最后一个明显区别就是,`OSPFv3` `Hello`数据包现在不包含任何地址信息而是包含了一个接口ID该接口ID是发出`Hello`数据包路由器分配的用于对链路做其接口的唯一区分。此接口ID成为网络LSAthe Network LSA的链路状态IDLink State ID, 判断该路由器是否应成为该链路上的指定路由器This interface ID becomes the Network LSA's Link State ID, should the router become the Designated Router on the link
- 以与 EIGRP 类似的方式,`OSPFv3`是在链路上运行的in a manner similar to EIGRP, OSPFv3 runs over a link。这就打消了`OSPFv3`中执行网络声明语句的需求。取而代之的是,**通过使用接口配置命令`ipv6 router ospf [process id] area [area id]`,来将该链路配置为某个 OSPF 进程的组成部分**。但是,与`OSPFv2`类似, OSPF 进程号仍然是通过在全局配置模式中,使用全局配置命令`ipv6 router ospf [process id]`进行指定。
- **`OSPFv3`使用本地链路地址Link-local address来区分`OSPFv3`邻接关系**。与 EIGRPv6 类似,`OSPFv3`路由的下一跳地址将反映邻接的或邻居路由器的本地链路地址。
- `OSPFv3`**引入了两种新的OSPF LSA类型**。分别是**链路LSA**the Link LSA被定义为 LSA 类型`0x0008`(LSA `Type 0x0008`或LSA Type 8, 以及**区域内前缀LSA**the Intra-Area-Prefix LSA被定义为 LSA 类型`0x0029`(LSA `Type 0x0029`, 或LSA Type 29。**链路 LSA 提供了路由器的本地链路地址,及加诸路由器上的所有 IPv6 前缀**。每条链路都有一个链路 LSA 。可能有多个带有不同**链路状态IDs**的区域内前缀 LSAs 。因此,区域 LSA 散布范围就既可能是与应用自网络 LSA 的所经过网络的相关前缀网络,也可能是参考自路由器 LSA 的某台路由器或末梢区域相关前缀There can be multiple Intra-Area-Prefix LSAs with different Link-State IDs. The Area flooding scope can therefore be an associated prefix with the transit network referencing a Network LSA or it can be an associated prefix with a router or Stub referencing a Router LSA
- `OSPFv2`与`OSPFv3`所用到的传输方式是不同的。`OSPFv3`报文是用(封装成) IPv6 数据包发出的。
- `OSPFv3`使用两个标准 IPv6 多播地址。多播地址`FF02::5`与`OSPFv2`中用到的所有 SPF 路由器( AllSPFRouters )地址`224.0.0.5`等价,同时多播地址`FF02::6`就是所有 DR 路由器( AllDRRouters )地址,且与 OSPFv2 中用到的`224.0.0.6`组地址等价。(这将在 ICND2 部分讲到)。
- `OSPFv3`利用到 IPv6 内建的`IPSec`的能力,并将 AH ESP 扩展头部用着一种的认证机制,而不是想在`OSPFv2`中可配置的为数众多的认证机制OSPFv3 leverages the built-in capabilities of IPSec and uses the AH and ESP extension headers as an authentication mechanism instead of the numerous authentication mechanisms configurable in OSPFv2。因此在`OSPFv3`的 OSPF 数据包中,那些认证和 AuType 字段就被移除了。
- 最终的最后一个明显区别就是,`OSPFv3` `Hello`数据包现在不包含任何地址信息,而是包含了一个接口 ID ,该接口 ID 是发出`Hello`数据包路由器分配的,用于对链路做其接口的唯一区分。此接口 ID 成为网络 LSA the Network LSA的链路状态 ID Link State ID, 判断该路由器是否应成为该链路上的指定路由器This interface ID becomes the Network LSA's Link State ID, should the router become the Designated Router on the link
## 思科IOS软件的OSPFv2和OSPFv3配置差异
## 思科 IOS 软件的 OSPFv2 OSPFv3 配置差异
**Cisco IOS Software OSPFv2 and OSPFv3 Configuration Differences**
在思科IOS软件中配置OSPFv2与OSPFv3时有着一些配置差异。但应注意到这些区别与其它路由协议的IPv4和IPv6版本的差异相比并不那么显著。
在思科 IOS 软件中,配置 OSPFv2 OSPFv3 时有着一些配置差异。但应注意到,这些区别与其它路由协议的 IPv4 IPv6 版本的差异相比,并不那么显著。
在思科IOS软件中通过使用全局配置命令`ipv6 router ospf [process id]`来开启OSPFv6。和OSPFv2中的情况一样OSPF进程ID是对路由器本地有效的并不要求其在邻接路由器上为建立邻接关系保持一致。
在思科 IOS 软件中,通过使用全局配置命令`ipv6 router ospf [process id]`,来开启 OSPFv6 。和 OSPFv2 中的情况一样, OSPF 进程 ID 是对路由器本地有效的,并不要求其在邻接路由器上为建立邻接关系保持一致。
> **译者总结:** 邻居路由器要形成邻接关系要求1. 区域号一致2. 认证一直3. Hello包、死亡间隔时间直一致不要求进程号一致。Hello数据包用于动态邻居发现和形成邻接关系因此Hello数据包包含上述要求的参数不包含不要求的参数。只有形成了邻接关系才能开始发送和接受LSAs。
> **译者总结:** 邻居路由器要形成邻接关系要求1. 区域号一致2. 认证一直3. Hello包、死亡间隔时间直一致不要求进程号一致。 Hello 数据包用于动态邻居发现和形成邻接关系,因此 Hello 数据包包含上述要求的参数,不包含不要求的参数。只有形成了邻接关系,才能开始发送和接受 LSAs
与EIGRPv6将在ICND2中涵盖所要求的一样OSPFv3的路由器ID也必须予以手动指定或配置成一个带有IPv4地址的运行接口比如一个环回接口。与EIGRPv6类似在启用OSPFv3时是没有网络命令的网络宣告network statement。取而代之的是OSPF的启用是基于各个接口的且在同一接口上可开启多个OSPFv3实例similar to EIGRPv6, there are no network commands used when enabling OSPFv3. Instead OSPFv3 is enabled on a per-interface basis and multiple instances may be enabled on the same interface
EIGRPv6 (将在 ICND2 中涵盖)所要求的一样, OSPFv3 的路由器 ID 也必须予以手动指定,或配置成一个带有 IPv4 地址的运行接口(比如一个环回接口)。与 EIGRPv6 类似,在启用 OSPFv3 是没有网络命令的网络宣告network statement。取而代之的是 OSPF 的启用,是基于各个接口的,且在同一接口上可开启多个 OSPFv3 实例similar to EIGRPv6, there are no network commands used when enabling OSPFv3. Instead OSPFv3 is enabled on a per-interface basis and multiple instances may be enabled on the same interface
最后,当**在诸如FR及ATM这样的NBMA网络上配置OSPFv3时是在指定接口下使用接口配置命令`ipv6 ospf neighbor [link local address]`来指定邻居声明语句the neighbor statements。而在OSPFv2中这些语句会是在路由器配置模式中配置的**。
最后,当**在诸如 FR ATM 这样的 NBMA 网络上配置 OSPFv3 时,是在指定接口下,使用接口配置命令`ipv6 ospf neighbor [link local address]`来指定邻居声明语句the neighbor statements。而在 OSPFv2 中,这些语句会是在路由器配置模式中配置的**。
> **注意:** 当在NBMA传输技术上配置OSPFv3时应该使用本地链路地址来创建出静态FR地图声明语句static Frame Relay map statements。这是因为正是使用本地链路地址而不是全球单播地址建立邻接关系。比如为给一个FR部署创建一幅静态FR地图语句并指定一台OSPF邻居路由器就要在该路由器上应用下面的配置在ICND2部分将对FR进行讲解
> **注意:** 当在 NBMA 传输技术上配置 OSPFv3 时,应该使用本地链路地址来创建出静态 FR 地图声明语句static Frame Relay map statements。这是因为正是使用本地链路地址而不是全球单播地址建立邻接关系。比如为给一个 FR 部署创建一幅静态 FR 地图语句并指定一台 OSPF 邻居路由器,就要在该路由器上应用下面的配置(在 ICND2 部分将对 FR 进行讲解)。
```console
R1(config)#ipv6 unicast-routing
@ -83,25 +83,25 @@ R1(config-if)#ipv6 ospf neighbor FE80::205:5EFF:FE6E:5C80
R1(config-if)#exit
```
### 思科IOS软件中OSPFv3的配置和验证
### 思科 IOS 软件中 OSPFv3 的配置和验证
**Configuring and Verifying OSPFv3 in Cisco IOS Software**
接着上一部分上部分强调了OSPFv2和OSPFv3之间配置差异那么这部分就要过一遍那些在思科IOS软件中开启和验证OSPFv3功能及路由的步骤。在思科IOS软件中需要依序采行下面这些步骤来开启OSPFv3路由。
接着上一部分,上部分强调了 OSPFv2 OSPFv3 之间配置差异,那么这部分就要过一遍那些在思科 IOS 软件中开启和验证 OSPFv3 功能及路由的步骤。在思科 IOS 软件中,需要依序采行下面这些步骤,来开启 OSPFv3 路由。
1. 使用全局配置命令`ipv6 unicast-routing`来全局性地开启IPv6路由。在思科IOS软件中IPv6路由默认是关闭的。
2. 使用全局配置命令`ipv6 router ospf [process ID]`, 配置一或多个的OSPFv3进程。
3. 如路由器上没有配置IPv4地址的运行接口就要使用路由器配置命令router configuration command`router-id [IPv4 Address]` 手动配置OSPFv3路由器IDRouter IDRID
4. 在需要的接口上on the desired interfaces使用接口配置命令`ipv6 address`及`ipv6 enable`, 对这些接口开启IPv6。
5. 使用接口配置命令`ipv6 ospf [process ID] area [area ID]`在接口下开启一或更多的OSPFv3进程。
1. 使用全局配置命令`ipv6 unicast-routing`,来全局性地开启 IPv6 路由。在思科 IOS 软件中, IPv6 路由默认是关闭的。
2. 使用全局配置命令`ipv6 router ospf [process ID]`, 配置一或多个的 OSPFv3 进程。
3. 如路由器上没有配置 IPv4 地址的运行接口就要使用路由器配置命令router configuration command`router-id [IPv4 Address]` 手动配置 OSPFv3 路由器 ID Router ID RID )。
4. 在需要的接口上on the desired interfaces使用接口配置命令`ipv6 address`及`ipv6 enable`, 对这些接口开启 IPv6
5. 使用接口配置命令`ipv6 ospf [process ID] area [area ID]`,在接口下开启一或更多的 OSPFv3 进程。
第一个基础多区域OSPFv3配置示例建立在下图13.1所演示的拓扑之上。
第一个基础多区域 OSPFv3 配置示例建立在下图13.1所演示的拓扑之上。
![在思科IOS软件中配置基本多区域OSPFv3](images/1301.png)
![在思科 IOS 软件中配置基本多区域OSPFv3](images/1301.png)
*图13.1 -- 在思科IOS软件中配置基本多区域OSPFv3*
*图13.1 -- 在思科 IOS 软件中配置基本多区域OSPFv3*
依之间所讲到的顺序配置步骤,照下面这样,在路由器`R1`上就会配置上OSPFv3。
依之间所讲到的顺序配置步骤,照下面这样,在路由器`R1`上就会配置上 OSPFv3
```console
R1(config)#ipv6 unicast-routing
@ -115,7 +115,7 @@ R1(config-if)#ipv6 ospf 1 Area 0
R1(config-if)#exit
```
而按照同样顺序的步骤,像下面这样在路由器`R3`上配置好OSPFv3路由。
而按照同样顺序的步骤,像下面这样在路由器`R3`上配置好 OSPFv3 路由。
```console
R3(config)#ipv6 unicast-routing
@ -134,7 +134,7 @@ R3(config-if)#ipv6 ospf 3 Area 1
R3(config-if)#exit
```
依据上述两台路由器上OSPFv3的配置就可以使用命令`show ipv6 ospf neighbor`, 来检查OSPFv3的邻接状态在`R1`上如下所示。
依据上述两台路由器上 OSPFv3 的配置,就可以使用命令`show ipv6 ospf neighbor`, 来检查 OSPFv3 的邻接状态,在`R1`上如下所示。
```console
R1#show ipv6 ospf neighbor
@ -161,9 +161,9 @@ Neighbor 3.3.3.3
Last retransmission scan time is 0 msec, maximum is 0 msec
```
在上面的输出中注意真实的邻居地址是本地链路地址而不是所配置的全球IPv6单播地址。
在上面的输出中,注意真实的邻居地址是本地链路地址,而不是所配置的全球 IPv6 单播地址。
## 第13天问题
## 第 13 天问题
1. Both OSPFv2 and OSPFv3 can run on the same router. True or false?
2. OSPFv2 and OSPFv3 use different LSA flooding and aging mechanisms. True or false?
@ -174,7 +174,7 @@ Neighbor 3.3.3.3
7. Which command would you use to see the OSPFv3 LSDB?
8. A significant difference between OSPFv2 and OSPFv3 is that the OSPFv3 Hello packet now contains no address information at all but includes an interface ID, which the originating router has assigned to uniquely identify its interface to the link. True or false?
## 第13天答案
## 第 13 天答案
1. True.
2. False.
@ -185,16 +185,16 @@ Neighbor 3.3.3.3
7. The `show ipv6 ospf database`
8. True.
## 第13天实验
## 第 13 天实验
### OSPFv3基础实验
重复第`12`天的实验场景两台路由器直连各自又有环回接口但以配置IPv6地址并在设备间使用OSPFv3对这些地址进行通告取代配置IPv4的OSPF。
重复第`12`天的实验场景(两台路由器直连,各自又有环回接口),但以配置 IPv6 地址并在设备间使用 OSPFv3 对这些地址进行通告,取代配置 IPv4 OSPF
- 给直连接口分配上IPv6地址`2001:100::1/64`及`2001:100::2/64`
- 给直连接口分配上 IPv6 地址(`2001:100::1/64`及`2001:100::2/64`
- 用`ping`测试直接连通性
- 在两台路由器上分别配置一个环回接口,并从两个不同范围分配地址(`2002::1/128`及`2002::2/128`
- 配置标准的OSPFv3 `1`号进程并将所有本地网络在`0`号区域进行通告。同时为各设备配置一个路由器ID。
- 配置标准的OSPFv3 `1`号进程并将所有本地网络在`0`号区域进行通告。同时为各设备配置一个路由器 ID
**R1:**
@ -218,9 +218,9 @@ int lo0(或特定接口编号)
ipv6 ospf 1 area 0
```
- 自`R1`向`R2`的IPv6环回接口发出`ping`操作,以测试连通性
- 执行一个`show ipv6 route`命令来验证有通过OSPFv3接收到路由
- 执行一个`show ipv6 protocols`命令来验证有配置OSPFv3且在设备上是活动的
- 执行命令`show ipv6 ospf interface`及`show ipv6 ospf interface brief`检查接口特定于OSPF的那些参数
- 自`R1`向`R2`的 IPv6 环回接口发出`ping`操作,以测试连通性
- 执行一个`show ipv6 route`命令,来验证有通过 OSPFv3 接收到路由
- 执行一个`show ipv6 protocols`命令,来验证有配置 OSPFv3 且在设备上是活动的
- 执行命令`show ipv6 ospf interface`及`show ipv6 ospf interface brief`,检查接口特定于 OSPF 的那些参数
- 在两台路由器上(直连接口)修改`Hello`包和死亡计时器: `ipv6 ospf hello`及`ipv6 ospf dead`
- 执行一下`show ipv6 ospf 1`命令,来查看路由进程参数

View File

@ -1,4 +1,4 @@
# 第14天 DHCP及DNS
# 第 14 天 DHCP及DNS
__DHCP and DNS__
@ -17,17 +17,17 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第14天任务
## 第 14 天任务
- 阅读今天的课文
- 复习昨天的课文
- 完成今天的实验
- 阅读ICND1记诵指南
- 花15分钟在[subnetting.org](http://www.subnetting.org)上
- 阅读 ICND1 记诵指南
- 花 15 分钟在[subnetting.org](http://www.subnetting.org)上
主机使用动态主机配置协议Dynamic Host Configuration Protocol, DHCP紧接着加电启动后收集到包括了IP地址、子网掩码及默认网关等初始配置信息。因为所有主机都需要一个IP地址以在IP网络中进行通信而DHCP就减轻了手动为每台主机配置一个IP地址的管理性负担。
主机使用动态主机配置协议Dynamic Host Configuration Protocol, DHCP紧接着加电启动后收集到包括了 IP 地址、子网掩码及默认网关等初始配置信息。因为所有主机都需要一个 IP 地址,以在 IP 网络中进行通信,而 DHCP 就减轻了手动为每台主机配置一个 IP 地址的管理性负担。
域名系统Domain Name System, DNS将主机名称映射到IP地址使得你可[www.in60days.com](www.in60days.com)输入到web浏览器中而无需输入寄存该站点的服务器IP地址。
域名系统Domain Name System, DNS将主机名称映射到 IP 地址,使得你可[www.in60days.com](www.in60days.com)输入到 web 浏览器中,而无需输入寄存该站点的服务器 IP 地址。
今天将学到以下内容。
@ -38,9 +38,9 @@ ___
- 配置DNS, configuring DNS
- DNS故障排除, troubleshooting DNS issues
本课对应了以下CCNA大纲要求。
本课对应了以下 CCNA 大纲要求。
+ 配置和验证DNSIOS路由器
+ 配置和验证 DNS IOS 路由器)
- 将路由器接口配置为使用DHCP, configure router interfaces to use DHCP
- DHCP选项, DHCP options
- 排除的地址, excluded addresses
@ -54,21 +54,21 @@ ___
**DHCP Operations**
DHCP通过在网络上给主机自动分配IP信息简化了网络管理任务。分配的信息可以包括IP地址、子网掩码及默认网关且通常实在主机启动时。
DHCP通过在网络上给主机自动分配 IP 信息,简化了网络管理任务。分配的信息可以包括 IP 地址、子网掩码及默认网关,且通常实在主机启动时。
在主机第一次启动时如其已被配置为采用DHCP大多数主机都是这样的它就会发出一个询问分配IP信息的广播报文。该广播将为DHCP服务器收听到同时该信息会被中继。
在主机第一次启动时,如其已被配置为采用 DHCP (大多数主机都是这样的),它就会发出一个询问分配 IP 信息的广播报文。该广播将为 DHCP 服务器收听到,同时该信息会被中继。
> Farai指出 -- "这是假定主机和DHCP服务器实在同一子网的情形而如它们不在同一子网就看下面的`ip helper-address`命令。"
> Farai指出 -- "这是假定主机和 DHCP 服务器实在同一子网的情形,而如它们不在同一子网,就看下面的`ip helper-address`命令。"
![主机请求IP配置信息](images/1401.png)
![主机请求 IP 配置信息](images/1401.png)
*图14.1 -- 主机请求IP配置信息*
*图14.1 -- 主机请求 IP 配置信息*
DHCP具体使用UDP端口`67`和`68`来在网络上通信同时尽管在需要时路由器也可实现DHCP功能但通常都会使用具体服务器作为DHCP服务器。在需要时路由器同样可以配置为从DHCP服务器取得其接口IP地址但很少这样做。配置这个特性的命令如下。
DHCP具体使用 UDP 端口`67`和`68`,来在网络上通信,同时,尽管在需要时路由器也可实现 DHCP 功能,但通常都会使用具体服务器作为 DHCP 服务器。在需要时,路由器同样可以配置为从 DHCP 服务器取得其接口 IP 地址,但很少这样做。配置这个特性的命令如下。
`Router(config-if)#ip address dhcp`
客户端的DHCP状态如下
客户端的 DHCP 状态如下:
- 初始化initialising
- 选择selecting
@ -77,28 +77,28 @@ DHCP具体使用UDP端口`67`和`68`,来在网络上通信,同时,尽管
- 更新renewing
- 重绑定rebinding
DHCP服务器可被配置为在一个名为租期的特定时期赋予某台主机一个IP地址。租期可以是几个小时或几天。对于那些不能在网络上分配给主机的IP地址可以也应该予以保留。这些保留的IP地址将是已被路由器接口或服务器所使用的地址。如未能保留这些地址就会看到网络上的重复IP地址告警因为DHCP服务器已将配置给路由器或服务器的地址分配给了主机。
DHCP服务器可被配置为在一个名为租期的特定时期赋予某台主机一个 IP 地址。租期可以是几个小时或几天。对于那些不能在网络上分配给主机的 IP 地址,可以也应该予以保留。这些保留的 IP 地址,将是已被路由器接口或服务器所使用的地址。如未能保留这些地址,就会看到网络上的重复 IP 地址告警,因为 DHCP 服务器已将配置给路由器或服务器的地址,分配给了主机。
下面的图14.2中可以看到完整的DHCP请求和分配过程。
下面的图14.2中,可以看到完整的 DHCP 请求和分配过程。
![DHCP请求和分配过程](images/1402.png)
*图14.2 -- DHCP请求和分配过程*
1. **DHCP发现数据包**DHCP Discover packet当某台设备启动后同时其被配置为通过DHCP取得一个地址时就会发出一个自UDP端口`68`(UDP port `68`, `bootpc`到UDP端口`67`(UDP port `67`, `bootps`的广播数据包。该数据包将到达网络上的所有设备包括任何位处网络上的可能的DHCP服务器。
1. **DHCP发现数据包**DHCP Discover packet当某台设备启动后同时其被配置为通过 DHCP 取得一个地址时,就会发出一个自 UDP 端口`68`(UDP port `68`, `bootpc`)到 UDP 端口`67`(UDP port `67`, `bootps`)的广播数据包。该数据包将到达网络上的所有设备,包括任何位处网络上的可能的 DHCP 服务器。
**DHCP提议数据包**DHCP Offer packet本地网络上的DHCP服务器看到由客户端发出的广播发现报文the broadcasted Discover message就用UDP源端口`bootps 67`及目的端口`bootpc 68`, 同样以广播地址的形式发回一个响应就是DHCP提议数据包。之所以同样以广播地址形式是因为客户端此时仍然没有IP地址而无法接收单播数据包。
**DHCP提议数据包**DHCP Offer packet本地网络上的 DHCP 服务器看到由客户端发出的广播发现报文the broadcasted Discover message就用 UDP 源端口`bootps 67`及目的端口`bootpc 68`, 同样以广播地址的形式,发回一个响应(就是 DHCP 提议数据包)。之所以同样以广播地址形式,是因为客户端此时仍然没有 IP 地址,而无法接收单播数据包。
2. **DHCP请求数据包**DHCP Request packet, 一旦客户端工作站收到由DHCP服务器做出的提议an offer made by the DHCP server它就会发出一个广播用于告知所有DHCP服务器它已接受了来自某台服务器的提议DHCP请求报文到某台特定的DHCP服务器并再度使用UDP源端口`bootpc 68`及目的端口`bootps 67`。**客户端可能会收到来自多台DHCP服务器的提议但它只需单独一个IP地址所以它必需选择一台DHCP服务器**(基于服务器标识),而选择通常都是按照"先到,先服务"原则完成的on a "first-come, first-served" basis
2. **DHCP请求数据包**DHCP Request packet, 一旦客户端工作站收到由 DHCP 服务器做出的提议an offer made by the DHCP server它就会发出一个广播用于告知所有 DHCP 服务器,它已接受了来自某台服务器的提议) DHCP 请求报文到某台特定的 DHCP 服务器,并再度使用 UDP 源端口`bootpc 68`及目的端口`bootps 67`。**客户端可能会收到来自多台 DHCP 服务器的提议,但它只需单独一个 IP 地址,所以它必需选择一台 DHCP 服务器**(基于服务器标识),而选择通常都是按照"先到,先服务"原则完成的on a "first-come, first-served" basis
3. **DHCP确认数据包**DHCP ACK packet, 选中的那台DHCP服务器发出另一个广播报文来确认给那台特定客户端的地址分配再度用到UDP源端口`bootps 67`及目的端口`bootpc 68`。
3. **DHCP确认数据包**DHCP ACK packet, 选中的那台 DHCP 服务器发出另一个广播报文,来确认给那台特定客户端的地址分配,再度用到 UDP 源端口`bootps 67`及目的端口`bootpc 68`。
### DHCP的预订
**DHCP Reservations**
DHCP服务器可被配置为以几种不同方式提供IP地址包括下面这些。
DHCP服务器可被配置为以几种不同方式提供 IP 地址,包括下面这些。
- 动态分配, Dynamic allocation
- 自动分配, Automatic allocation
@ -108,30 +108,30 @@ DHCP服务器可被配置为以几种不同方式提供IP地址包括下面
**Dynamic allocation**
通过DHCP指派地址的一个十分常用方法就是采用动态分配过程在此过程中DHCP服务器配置为有着一个大的IP地址池且根据客户端的请求而为其分配地址池中的一个IP地址。在设备租期超时或设备离开网络时该特定IP地址就被交还给DHCP服务器之后就可被分配给另一客户端。
通过 DHCP 指派地址的一个十分常用方法,就是采用动态分配过程,在此过程中, DHCP 服务器配置为有着一个大的 IP 地址池,且根据客户端的请求,而为其分配地址池中的一个 IP 地址。在设备租期超时或设备离开网络时,该特定 IP 地址就被交还给 DHCP 服务器,之后就可被分配给另一客户端。
**自动分配**
**automatic allocation**
采用DHCP服务器分配IP地址的另一方式叫做自动分配该方式跟动态分配极为相似但采用此种方式DHCP服务器尝试维护一个所有过往分配地址清单而如有某台"旧有"客户端请求一个IP地址该客户端就会分配到一个跟以前一样的IP地址也就是说其曾于此前请求过一个IP地址。自动分配是一种较为低效的分配IP地址方式但如有着一个极大的可用IP地址池这就是一种总能确保某网络中的客户端在每次开机时获得同样IP地址的巧妙方法。
采用 DHCP 服务器分配 IP 地址的另一方式,叫做自动分配,该方式跟动态分配极为相似,但采用此种方式, DHCP 服务器尝试维护一个所有过往分配地址清单,而如有某台"旧有"客户端请求一个 IP 地址,该客户端就会分配到一个跟以前一样的 IP 地址(也就是说,其曾于此前请求过一个 IP 地址)。自动分配是一种较为低效的分配 IP 地址方式,但如有着一个极大的可用 IP 地址池,这就是一种总能确保某网络中的客户端在每次开机时,获得同样 IP 地址的巧妙方法。
**静态分配**
**Static allocation**
DHCP服务器的IP地址静态分配是指定义出一些期望在网络上出现的MAC地址并手动为这些MAC地址都分配上一个唯一IP地址因此就管理性地建立起一张`MAC-to-IP`关联表。这通常在服务器环境中用到因为服务器必须使用可预期的IP地址以可供访问。
DHCP服务器的 IP 地址静态分配,是指定义出一些期望在网络上出现的 MAC 地址,并手动为这些 MAC 地址都分配上一个唯一 IP 地址,因此就管理性地建立起一张`MAC-to-IP`关联表。这通常在服务器环境中用到,因为服务器必须使用可预期的 IP 地址,以可供访问。
### DHCP范围
**DHCP Scopes**
打算配置一台DHCP服务器的网络管理员作为配置过程的一部分也需要配置DHCP范围。范围就是网络某个特殊部分的一组IP地址A scope is a grouping of IP addresses for a particular section of the network。而每个子网通常有着自己的范围。
打算配置一台 DHCP 服务器的网络管理员,作为配置过程的一部分,也需要配置 DHCP 范围。范围就是网络某个特殊部分的一组 IP 地址A scope is a grouping of IP addresses for a particular section of the network。而每个子网通常有着自己的范围。
范围也可以是可供DHCP服务器分配的一个连续地址池a contiguous pool of addresses。大多数DHCP服务器都提供了从地址池中排除一些地址的功能以避免将这些地址动态地分配给客户端。这些排除的地址就通常是那些手动分配给网络中服务器及网络设备的IP地址。
范围也可以是可供 DHCP 服务器分配的一个连续地址池a contiguous pool of addresses。大多数 DHCP 服务器都提供了从地址池中排除一些地址的功能,以避免将这些地址动态地分配给客户端。这些排除的地址,就通常是那些手动分配给网络中服务器(及网络设备)的 IP 地址。
在定义的DHCP范围内部可以配置诸如下面的一些参数。
在定义的 DHCP 范围内部,可以配置诸如下面的一些参数。
- IP地址范围, IP address range
- 子网掩码, subnet mask
@ -140,27 +140,27 @@ DHCP服务器的IP地址静态分配是指定义出一些期望在网络上
- DNS服务器DNS server
- WINS服务器WINS server
依据所使用的DHCP服务器也可以使用不同参数创建出不同的范围而这通常与不同子网有关。
依据所使用的 DHCP 服务器,也可以使用不同参数,创建出不同的范围,而这通常与不同子网有关。
### DHCP租期
**DHCP Leases**
DHCP所提供的主要优势之一就是租借IP地址的能力也就是说1P地址的分配是临时的。通常当客户端离开网络时其所分配到的特定IP地址将变成可用并由DHCP服务器分配给其它设备。
DHCP所提供的主要优势之一就是租借 IP 地址的能力,也就是说 1P 地址的分配是临时的。通常,当客户端离开网络时,其所分配到的特定 IP 地址将变成可用,并由 DHCP 服务器分配给其它设备。
DHCP租期关乎每次DHCP分配限定允许用户使用一个分配到的1P地址多长时间。通常是在DHCP范围内对该参数进行管理性配置。每当有客户端重启后它都必须再次从DHCP服务器请求一个IP地址。而DHCP服务器又通常被配置为给那台特定主机再度分配同样的地址并扩展租期。
DHCP租期关乎每次 DHCP 分配,限定允许用户使用一个分配到的 1P 地址多长时间。通常是在 DHCP 范围内对该参数进行管理性配置。每当有客户端重启后,它都必须再次从 DHCP 服务器请求一个 IP 地址。而 DHCP 服务器又通常被配置为给那台特定主机再度分配同样的地址并扩展租期。
工作站也能手动释放其IP地址比如在以下情况下。
工作站也能手动释放其 IP 地址,比如在以下情况下。
- 设备无限期关机the device is turned off indefinitely
- 设备移至另一子网比如从有线网络移到无线网络the device moves to another subnet(e.g, to a wireless network from a wired network)
租借过程有几个相关的计时器因此可以肯定在所有网络设备上总是会有一个更新过的IP地址。下面是两个重要的DHCP计时器。
租借过程有几个相关的计时器,因此可以肯定在所有网络设备上总是会有一个更新过的 IP 地址。下面是两个重要的 DHCP 计时器。
- **续借(`T1`)计时器**renewal(T1) timer, 默认是租期的一半在工作站取得一个IP地址后此计时器就开始计时当到达租期的`50%`时DHCP客户端将向来源DHCP服务器重申租约。
- **重新绑定(`T2`)计时器**rebinding(T2) timer, 默认是租期的`87.5%`这第二个计时器用在DHCP服务器未有在续借计时器超时后进行回应或确认的情形。该计数器指出如租期已过`7/8`, 那么客户端将尝试找到发出一个DHCP请求另一能够提供DHCP地址的DHCP服务器。
- **续借(`T1`)计时器**renewal(T1) timer, 默认是租期的一半):在工作站取得一个 IP 地址后,此计时器就开始计时,当到达租期的`50%`时, DHCP 客户端将向来源 DHCP 服务器重申租约。
- **重新绑定(`T2`)计时器**rebinding(T2) timer, 默认是租期的`87.5%`):这第二个计时器用在 DHCP 服务器未有在续借计时器超时后,进行回应或确认的情形。该计数器指出,如租期已过`7/8`, 那么客户端将尝试找到(发出一个 DHCP 请求)另一能够提供 DHCP 地址的 DHCP 服务器。
有了租借过程及上述有关计时器就可以肯定总是会及时拥有一个IP地址且连带不会有任何停止时间同时自动地有着一种构建于DHCP过程中的冗余机制。
有了租借过程及上述有关计时器,就可以肯定总是会及时拥有一个 IP 地址,且连带不会有任何停止时间,同时自动地有着一种构建于 DHCP 过程中的冗余机制。
图14.3中展示了`T1`及`T2`计时器与租期的关系。
@ -172,32 +172,32 @@ DHCP租期关乎每次DHCP分配限定允许用户使用一个分配到的1P
**DHCP Options**
在DHCP中有一个特殊字段可用于帮助扩展一些自动配置过程的性能。可在此字段中放入在DHCP RFC中给出的许多不同配置选项。
DHCP 中有一个特殊字段可用于帮助扩展一些自动配置过程的性能。可在此字段中放入在DHCP RFC中给出的许多不同配置选项。
> **注意:** BOOTP选项曾被称作“厂商扩展”。
DHCP提供了`256`选项值,其中仅`254`个是可用的,因为`0`是垫底选项,而`255`是最后选项0 is the pad option and 255 is the end option。许多DHCP选项都是通常所了解的经常使用到的参数包括下面这些。
DHCP提供了`256`选项值,其中仅`254`个是可用的,因为`0`是垫底选项,而`255`是最后选项0 is the pad option and 255 is the end option。许多 DHCP 选项都是通常所了解的经常使用到的参数,包括下面这些。
- 子网掩码subnet mask
- 域名服务器domain name server
- 域名domain name
这些年来已加入一些额外的DHCP选项尤其是VoIP用途的那些选项比如下面这些。
这些年来,已加入一些额外的 DHCP 选项,尤其是 VoIP 用途的那些选项,比如下面这些。
- 选项`129`: 呼叫服务器IP地址
- 选项`135`: 话机相关应用的HTTP代理服务器
- 选项`129`: 呼叫服务器 IP 地址
- 选项`135`: 话机相关应用的 HTTP 代理服务器
所有这些选项都是直接在DHCP服务器上配置但不是所有DHCP服务器都提供了设置DHCP选项的能力。如网络管理员要用到这些特性就应该采用一种企业级别的DHCP服务器。在将小型路由器作为家庭办公环境的DHCP服务器是就可能不会有这些功能上的益处。
所有这些选项都是直接在 DHCP 服务器上配置,但不是所有 DHCP 服务器都提供了设置 DHCP 选项的能力。如网络管理员要用到这些特性,就应该采用一种企业级别的 DHCP 服务器。在将小型路由器作为家庭办公环境的 DHCP 服务器是,就可能不会有这些功能上的益处。
## 配置DHCP
**Configuring DHCP**
### 思科路由器上的DHCP服务器
### 思科路由器上的 DHCP 服务器
**DHCP Servers on Cisco Routers**
第一步就是在路由器上开启DHCP服务。这是通过使用`service dhcp`命令完成的如下面所示as exemplified below
第一步就是在路由器上开启 DHCP 服务。这是通过使用`service dhcp`命令完成的如下面所示as exemplified below
```console
Router#configure terminal
@ -205,7 +205,7 @@ Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#service dhcp
```
下一步就是创建一个DHCP池该DHCP池定义出将分配给客户端的IP地址池。在本例中名为`SUBNET_A`的池将提供来自范围`192.168.1.0/24`的IP地址。
下一步就是创建一个 DHCP 池,该 DHCP 池定义出将分配给客户端的 IP 地址池。在本例中,名为`SUBNET_A`的池将提供来自范围`192.168.1.0/24`的 IP 地址。
```console
Router(config)#ip dhcp pool SUBNET_A
@ -216,21 +216,21 @@ Router(dhcp-config)#domain-name Network+
Router(dhcp-config)#lease 30
```
该DHCP池配置模式the DHCP Pool Configuration mode同时也是配置其它DHCP选项的地方。在上面的配置输出中配置了以下这些参数。
DHCP 池配置模式the DHCP Pool Configuration mode同时也是配置其它 DHCP 选项的地方。在上面的配置输出中,配置了以下这些参数。
- 默认网关:`192.168.1.1`(指派到将该路由器作为DHCP服务器所服务网络中的路由器接口地址)
- 默认网关:`192.168.1.1`(指派到将该路由器作为 DHCP 服务器所服务网络中的路由器接口地址)
- DNS服务器`8.8.8.8`
- 域名:`Network+`
- 租期:`30`天
在需要时,也可以配置一些从`192.168.1.0/24`范围中排除的地址。我们就说要排除路由器接口IP地址`192.168.1.1`)及`192.168.1.250`到`192.168.1.255`地址范围,从该范围就可手动为网络中的服务器分配地址。这是通过下面的配置完成的。
在需要时,也可以配置一些从`192.168.1.0/24`范围中排除的地址。我们就说要排除路由器接口 IP 地址(`192.168.1.1`)及`192.168.1.250`到`192.168.1.255`地址范围,从该范围就可手动为网络中的服务器分配地址。这是通过下面的配置完成的。
```console
Router(config)#ip dhcp excluded-address 192.168.1.1
Router(config)#ip dhcp excluded-address 192.168.1.250 192.168.1.255
```
可使用下面的命令来查看当前由该路由器DHCP服务器所服务的客户端。
可使用下面的命令来查看当前由该路由器 DHCP 服务器所服务的客户端。
```console
Router#show ip dhcp binding
@ -239,28 +239,28 @@ IP address Client-ID/ Lease expiration Type Hardware address/
192.168.1.2 Mar 02 2014 12:07 AM Automatic 0063.6973.636f.2d63
```
在上面的输出中由该DHCP服务器服务的是单独一台客户端同时分到到DHCP范围的第一个非排除IP地址`192.168.1.2`。还可以看到租期超时日期及设备MAC地址。
在上面的输出中,由该 DHCP 服务器服务的是单独一台客户端,同时分到到 DHCP 范围的第一个非排除 IP 地址:`192.168.1.2`。还可以看到租期超时日期及设备 MAC 地址。
### 思科路由器上的DHCP客户端
### 思科路由器上的 DHCP 客户端
**DHCP Clients on Cisco Routers**
除了DHCP服务器功能思科路由器同样允许将其接口配置为DHCP客户端。这就是说接口将使用标准DHCP过程请求到一个地址而在特定子网上的任何服务器都能分配该IP地址。
除了 DHCP 服务器功能,思科路由器同样允许将其接口配置为 DHCP 客户端。这就是说接口将使用标准 DHCP 过程,请求到一个地址,而在特定子网上的任何服务器,都能分配该 IP 地址。
将一个路由器接口配置为DHCP客户端的命令如下。
将一个路由器接口配置为 DHCP 客户端的命令如下。
```console
Router(config)#int FastEthernet0/0
Router(config-if)#ip address dhcp
```
一旦某台DHCP服务器分配了一个IP地址在路由器控制台上就可以看到下面的通知消息该消息包含了地址和掩码
一旦某台 DHCP 服务器分配了一个 IP 地址,在路由器控制台上就可以看到下面的通知消息(该消息包含了地址和掩码)。
```console
*Mar 1 00:29:15.779: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 10.10.10.2, mask 255.255.255.0, hostname Router
```
使用命令`show ip interface brief`就可以观察到该DHCP分配方式。
使用命令`show ip interface brief`,就可以观察到该 DHCP 分配方式。
```console
Router#show ip interface brief
@ -273,13 +273,13 @@ FastEthernet0/1 unassigned YES unset administratively down down
**DHCP Packet Analysis**
为实际掌握在本模块中介绍的这些知识点将生成一些上述示例中涉及到设备的流量捕获。在配置好DHCP服务器及客户端工作站启动起来后就会发生`4`步的DHCP过程可在下面的截屏中观察到。
为实际掌握在本模块中介绍的这些知识点,将生成一些上述示例中涉及到设备的流量捕获。在配置好 DHCP 服务器及客户端工作站启动起来后,就会发生`4`步的 DHCP 过程,可在下面的截屏中观察到。
![DHCP 4步过程](images/1404.png)
*图14.4 -- DHCP 4步过程*
下面可以观察到DHCP发现数据包所包含的部分。
下面可以观察到 DHCP 发现数据包所包含的部分。
![DCHP发现数据包](images/1405.png)
@ -287,31 +287,31 @@ FastEthernet0/1 unassigned YES unset administratively down down
正如你在截屏中看到的该数据包DHCP Discover packet是由客户端发出将其广播到网络上目的地址是`255.255.255.255`。同时还看到其报文类型为“Boot Request`1`)”。
下一个数据包就是DHCP提议数据包DHCP Offer packet如下面所示。
下一个数据包就是 DHCP 提议数据包DHCP Offer packet如下面所示。
![DHCP提议数据包](images/1406.png)
*图14.6 -- DHCP提议数据包*
该数据包是由服务器源IP`192.168.1.1`)发出到广播地址(目的地址:`255.255.255.255`,同时包含了提议的IP地址`192.168.1.2`。同时也可看到报文类型为“Boot Reply(`2`)”。
该数据包是由服务器(源 IP `192.168.1.1`)发出到广播地址(目的地址:`255.255.255.255`,同时包含了提议的 IP 地址(`192.168.1.2`。同时也可看到报文类型为“Boot Reply(`2`)”。
第三个数据包是DHCP请求数据包DHCP Request packet
第三个数据包是 DHCP 请求数据包DHCP Request packet
![DHCP请求数据包](images/1407.png)
*图14.7 -- DHCP请求数据包*
DHCP请求数据包是由客户端发出到广播地址。可以看到报文类型是`Boot Request(1)`。该数据包与最初的DHCP发现数据包类似但包含了一个非常重要的字段就是`50`选项: 被请求的IP地址`192.168.1.2`a very important field, which is Option 50: Requested IP Address(192.168.1.2)。这就是在DHCP提议数据包中由DHCP服务器所提供的同一IP地址而该客户端对其进行了确认和接受。
DHCP请求数据包是由客户端发出到广播地址。可以看到报文类型是`Boot Request(1)`。该数据包与最初的 DHCP 发现数据包类似,但包含了一个非常重要的字段,就是`50`选项: 被请求的 IP 地址(`192.168.1.2`a very important field, which is Option 50: Requested IP Address(192.168.1.2))。这就是在 DHCP 提议数据包中由 DHCP 服务器所提供的同一 IP 地址,而该客户端对其进行了确认和接受。
DHCP分配过程的最后数据包就是由服务器发出的DCHP确认数据包了(the DHCP ACK packet)。
DHCP分配过程的最后数据包就是由服务器发出的 DCHP 确认数据包了(the DHCP ACK packet)。
![DHCP确认选项数据包](images/1408.png)
*图14.8 -- DHCP确认选项数据包*
该数据包发自DHCP服务器并被广播到网络上其同样包含了在上面的截屏中所看到的一些额外字段。
该数据包发自 DHCP 服务器并被广播到网络上;其同样包含了在上面的截屏中所看到的一些额外字段。
- DHCP服务器标识该DHCP服务器的IP地址`192.168.1.1`
- DHCP服务器标识 DHCP 服务器的 IP 地址(`192.168.1.1`
+ 路由器上配置的所有选项。
- 租期:`30`天(以及派生出的早前讨论的过续租时间和重新绑定时间值)
- 子网掩码:`255.255.255.0`
@ -323,11 +323,11 @@ DHCP分配过程的最后数据包就是由服务器发出的DCHP确认数据包
**Troubleshooting DHCP Issues**
跟NAT一样DHCP故障基本上总是因为错误配置造成的开玩笑说就是第8层问题意思是人为疏忽jokingly referred to as Layer 8 issue, meaning somebody messed up
NAT 一样, DHCP 故障基本上总是因为错误配置造成的(开玩笑说就是第 8 层问题意思是人为疏忽jokingly referred to as Layer 8 issue, meaning somebody messed up
命令`service dhcp`默认是开启的,但有些时候其已被网络管理员因为某些原因关闭了。(作者就曾遇到过有管理员在他们的路由器上敲入`no ip routing`命令后因为紧急的路由故障打电话给思科 -- 真的!)
如在另一子网上使用一台服务器来管理DHCP配置就要允许路由器放行DHCP数据包。在地址分配过程中DHCP用到广播报文而路由器是不会转发广播报文的那么就**需要将DHCP服务器的IP地址加入到路由器以令到路由器将该广播报文作为单播数据包进行转发**。**命令`ip helper-address`**就可以实现这点。这是另一个考试喜欢的问题哦。
如在另一子网上使用一台服务器来管理 DHCP 配置,就要允许路由器放行 DHCP 数据包。在地址分配过程中, DHCP 用到广播报文(而路由器是不会转发广播报文的),那么就**需要将 DHCP 服务器的 IP 地址加入到路由器,以令到路由器将该广播报文作为单播数据包进行转发**。**命令`ip helper-address`**就可以实现这点。这是另一个考试喜欢的问题哦。
同样可以使用下面的`debug`命令作为排错过程中的部分。
@ -340,17 +340,17 @@ debug ip dhcp server packet
**DNS Operations**
DNS将主机名映射到IP地址而不是反过来。这就允许你在web浏览器中浏览一个网址而无需输入服务器IP地址。
DNS将主机名映射到 IP 地址(而不是反过来)。这就允许你在 web 浏览器中浏览一个网址,而无需输入服务器 IP 地址。
在主机或路由器想要将一个域名解析到IP地址或反过来将IP地址解析到域名时DNS用到UDP `53`号端口。而在两台DNS服务器之间打算同步或分享它们的数据库时就使用TCP `53`号端口。
在主机或路由器想要将一个域名解析到 IP 地址(或反过来将 IP 地址解析到域名时), DNS 用到UDP `53`号端口。而在两台 DNS 服务器之间打算同步或分享它们的数据库时就使用TCP `53`号端口。
## 配置DNS
**Configuring DNS**
如想要容许路由器找到web上的某台DNS服务器就使用命令`ip name-server 1.1.1.1`,或是服务器相应的地址。
如想要容许路由器找到 web 上的某台 DNS 服务器,就使用命令`ip name-server 1.1.1.1`,或是服务器相应的地址。
也可以将某个主机名设置到路由器上的一个IP地址表中来节省时间或是令到更易于记住要`ping`的或是连接到的哪台设备,如下面的输出所示。
也可以将某个主机名设置到路由器上的一个 IP 地址表中来节省时间,或是令到更易于记住要`ping`的或是连接到的哪台设备,如下面的输出所示。
```console
Router(config)#ip host R2 192.168.1.2
@ -365,14 +365,14 @@ Router#pinging 192.168.1.2
**Troubleshooting DNS Issues**
路由器配置默认将会有一个`ip domain-lookup`命令。如此命令已被关闭则DNS将不工作。某些时候路由器管理员会因避免在输入错误命令时等待路由器执行数秒DNS查询而关闭该命令。可通过下面的命令关闭DNS查询。
路由器配置默认将会有一个`ip domain-lookup`命令。如此命令已被关闭,则 DNS 将不工作。某些时候路由器管理员会因避免在输入错误命令时,等待路由器执行数秒 DNS 查询,而关闭该命令。可通过下面的命令关闭 DNS 查询。
`Router(config)#no ip domain-lookup`
访问控制清单access control lists, ACL常常拦阻DNS那么这是另一个故障原因。使用命令`debug domain`可在路由器上对DNS进行调试。
访问控制清单access control lists, ACL常常拦阻 DNS ,那么这是另一个故障原因。使用命令`debug domain`,可在路由器上对 DNS 进行调试。
## 第14天问题
## 第 14 天问题
1. DHCP simplifies network administrative tasks by automatically assigning `_______` to hosts on a network.
2. DHCP uses UDP ports `_______` and `_______`.
@ -385,7 +385,7 @@ Router#pinging 192.168.1.2
9. If the `_______` `_______`-`_______` command has been disabled on your router, then DNS wont work.
10. Which command will debug DNS packets on your router?
## 第14天问题答案
## 第 14 天问题答案
1. IP information (IP addresses).
2. 67 and 68.
@ -398,28 +398,28 @@ Router#pinging 192.168.1.2
9. `ip domain-lookup`.
10. The `debug domain` command.
## 第14天实验
## 第 14 天实验
### 路由器上的DHCP实验
### 路由器上的 DHCP 实验
**拓扑**
![路由器上的DHCP实验拓扑图](images/1409.png)
![路由器上的 DHCP 实验拓扑图](images/1409.png)
**实验目的**
学习可如何将路由器用作DHCP服务器。
学习可如何将路由器用作 DHCP 服务器。
**实验步骤**
1. 如你使用着家用电脑或笔记本电脑就将网络适配器设置为自动获取IP地址。在Packet Tracer中也可这样设置。让后使用交叉线将PC连接到路由器的以太网端口。
1. 如你使用着家用电脑或笔记本电脑,就将网络适配器设置为自动获取 IP 地址。在Packet Tracer中也可这样设置。让后使用交叉线将 PC 连接到路由器的以太网端口。
![网络适配器设置](images/1410.png)
2. 将IP地址`172.16.1.1 255.255.0.0`加入到路由器接口。如忘记了这个怎么配置,就请看看前面的实验。要确保`no shut`该接口。
2. 将 IP 地址`172.16.1.1 255.255.0.0`加入到路由器接口。如忘记了这个怎么配置,就请看看前面的实验。要确保`no shut`该接口。
3. 配置DHCP地址池。接着为地址配置一个`3`天`3`小时`5`分的租期。最后将`1`到`10`的地址排除在分配给主机的地址之外。假设这些地址已为其它服务器或接口使用。
3. 配置 DHCP 地址池。接着为地址配置一个`3`天`3`小时`5`分的租期。最后将`1`到`10`的地址排除在分配给主机的地址之外。假设这些地址已为其它服务器或接口使用。
```console
@ -432,7 +432,7 @@ Router#pinging 192.168.1.2
Router(config)#
```
4. 执行一个`ipconfig /all`命令查看是否有IP地址分配到PC。如旧地址仍在使用就需要执行一下`ipconfig /renew`命令。
4. 执行一个`ipconfig /all`命令,查看是否有 IP 地址分配到 PC 。如旧地址仍在使用,就需要执行一下`ipconfig /renew`命令。
```console
@ -444,7 +444,7 @@ Router#pinging 192.168.1.2
DNS Servers.....................: 0.0.0.0
```
5. 如想要的话可回到DHCP地址池配置模式DHCP Pool Configuration mode加入一个默认网关及DNS服务器地址它们也将在主机PC上得到设置。
5. 如想要的话,可回到 DHCP 地址池配置模式DHCP Pool Configuration mode加入一个默认网关及 DNS 服务器地址,它们也将在主机 PC 上得到设置。
```console
@ -458,11 +458,11 @@ Router#pinging 192.168.1.2
DNS Server......................: 172.16.1.3
```
### 路由器上的DNS实验
### 路由器上的 DNS 实验
**DNS on a Router lab**
在一台有着某种到互联网连通性的路由器上完成此实验。确保该路由器可以`ping`通比如Google公司的DNS服务器`8.8.8.8`这样的公网IP地址。将该地址配置为一个名字服务器。
在一台有着某种到互联网连通性的路由器上完成此实验。确保该路由器可以`ping`通比如 Google 公司的 DNS 服务器`8.8.8.8`这样的公网 IP 地址。将该地址配置为一个名字服务器。
`ip name-server 8.8.8.8`

View File

@ -1,4 +1,4 @@
# 第15天 一二层排错
# 第 15 天 一二层排错
**Layer 1 and Layer 2 Troubleshooting**
@ -16,26 +16,26 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第15天任务
## 第 15 天任务
- 阅读今天的课文
- 复习昨天的课文
- 完成今天的实验
- 阅读ICND1记诵指南
- 在[subnetting.org](http://www.subnetting.org)花15分钟
- 阅读 ICND1 记诵指南
- 在[subnetting.org](http://www.subnetting.org)花 15 分钟
先前数课中已涵盖ICND1排错的许多要求尤其是关于ACLs及IP分址方面。许多可能的故障都发生在一二层一二层故障及其原因是今天这课的重点。
先前数课中已涵盖 ICND1 排错的许多要求,尤其是关于 ACLs IP 分址方面。许多可能的故障都发生在一二层,一二层故障及其原因,是今天这课的重点。
LAN交换是一种用在局域网中的包交换形式。LAN交换是在数据链路层的硬件中完成的。正因为其是基于硬件的使用到被称为介质访问控制地址Media Access Control addresses, MAC地址的硬件地址。**LAN交换机使用MAC地址来转发帧。**
LAN交换是一种用在局域网中的包交换形式。 LAN 交换是在数据链路层的硬件中完成的。正因为其是基于硬件的使用到被称为介质访问控制地址Media Access Control addresses, MAC地址的硬件地址。**LAN交换机使用 MAC 地址来转发帧。**
今天将学习以下内容。
- 物理层排错
- VLAN、VTP及中继概述
- VLAN、 VTP 及中继概述
- VLANs排错
- 运用`show vlan`命令
本模块对应了下面的CCNA大纲要求。
本模块对应了下面的 CCNA 大纲要求。
+ 一层故障的排错及处理
- 组帧framing
@ -46,29 +46,29 @@ LAN交换是一种用在局域网中的包交换形式。LAN交换是在数据
- 晚发冲突,[late collision](https://en.wikipedia.org/wiki/Late_collision)
- 输入/输出错误Input/Output errors
+ VLAN故障的排错和处理
- 验证VLANs已配置, verify that VLANs are configured
- 验证 VLANs 已配置, verify that VLANs are configured
- 验证端口成员关系是正确的verify that port membership is correct
- 验证配置了IP地址, verify that the IP address is configured
- 验证配置了 IP 地址, verify that the IP address is configured
+ 思科交换机上中继问题的排错和处理
- 验证中继状态是正确的, verify that the trunk states are correct
- 验证封装类型是正确配置的, verify that encapsulation is configured correctly
- 验证那些VLANs是被放行的verify that VLANs are allowed
- 验证那些 VLANs 是被放行的verify that VLANs are allowed
## 物理层上的排错
**Troubleshooting at the Phycical Layer**
思科IOS交换机支持好几个可用于一层或至少怀疑是一层故障排错的命令。但是除了对这些软件命令工具包要熟悉外对可用于链路状态排错或示出错误情形的物理指示器也就是那些LEDs的掌握也是重要的。
思科 IOS 交换机支持好几个可用于一层,或至少怀疑是一层故障排错的命令。但是,除了对这些软件命令工具包要熟悉外,对可用于链路状态排错,或示出错误情形的物理指示器(也就是那些 LEDs )的掌握,也是重要的。
### 使用发光二极管LEDs的链路状态排错
### 使用发光二极管( LEDs )的链路状态排错
**Troubleshooting Link Status Using Light Emitting Diodes(LEDs)**
如可物理接触到交换机那么LEDs就会是一项有用的排错工具。不同类型的思科Catalyst交换机提供了不同的LED能力。掌握这些LEDs的意义是Catalyst交换机链路状态及系统排错所不可或缺的部分。思科Catalyst交换机有一些可用于判断链路状态及其它一些诸如系统状态等变量的前面板LEDs。
如可物理接触到交换机,那么 LEDs 就会是一项有用的排错工具。不同类型的思科 Catalyst 交换机,提供了不同的 LED 能力。掌握这些 LEDs 的意义,是 Catalyst 交换机链路状态及系统排错所不可或缺的部分。思科 Catalyst 交换机有一些可用于判断链路状态及其它一些诸如系统状态等变量的前面板 LEDs
经由Google"Catalyst 2960 Switch Hardware Installation Guide"来查看Catalyst 2960型号交换机的思科文档。该安装和配置手册包含了几百页的注记、建议和技术信息。通读一下该文档是值得的但不要期望从该文档得到CCNA考试大纲的内容CCNA考试大纲内容在这本书才有
经由Google"Catalyst 2960 Switch Hardware Installation Guide"来查看Catalyst 2960型号交换机的思科文档。该安装和配置手册包含了几百页的注记、建议和技术信息。通读一下该文档是值得的但不要期望从该文档得到 CCNA 考试大纲的内容( CCNA 考试大纲内容在这本书才有)。
![思科2960交换机LEDs图片版权归思科系统公司](images/1501.png)
![思科 2960 交换机 LEDs ,图片版权归思科系统公司](images/1501.png)
<table>
<tr>
@ -85,7 +85,7 @@ LAN交换是一种用在局域网中的包交换形式。LAN交换是在数据
</tr>
</table>
*图15.1 -- 思科2960交换机LEDs图片版权归思科系统公司*
*图15.1 -- 思科 2960 交换机 LEDs ,图片版权归思科系统公司*
PoE LED只有在Catalyst 2960交换机型号上才能找到。
@ -93,42 +93,42 @@ PoE LED只有在Catalyst 2960交换机型号上才能找到。
**System LED**
系统LED表明系统通电了的或是未通电且正常发挥功能。
系统 LED 表明系统通电了的(或是未通电)且正常发挥功能。
下表15.1列出了系统LED颜色及其所表明的状态。
下表15.1列出了系统 LED 颜色及其所表明的状态。
*表15.1 -- 系统LED*
<table>
<tr><th>系统LED颜色</th><th>系统状态</th></tr>
<tr><th>系统 LED 颜色</th><th>系统状态</th></tr>
<tr><td>不亮</td><td>系统未通电</td></tr>
<tr><td>绿色</td><td>系统运行正常</td></tr>
<tr><td>琥珀色amber</td><td>系统以通电,但未有正确发挥功能</td></tr>
<tr><td>琥珀色( amber </td><td>系统以通电,但未有正确发挥功能</td></tr>
</table>
**冗余电源LED**
**RPS LED**
冗余电源LED只在那些有着冗余电源的交换机上才有。下表15.2列出了RPS LED的颜色和其意义。
冗余电源 LED 只在那些有着冗余电源的交换机上才有。下表15.2列出了RPS LED的颜色和其意义。
*表15.2 -- 冗余电源LEDs*
<table>
<tr><th>RPS LED颜色</th><th>状态</th></tr>
<tr><td>绿色</td><td>连接了RPS且RPS在需要时就可提供后备电力</td></tr>
<tr><td>绿色闪烁(Blinking Green)</td><td>连接了RPS但因为其正为另一设备提供电力冗余已被分配给一台相邻设备而不可用</td></tr>
<tr><td>琥珀色</td><td>RPS处于待机模式或故障状态in standby mode or in a fault condition。按下RPS上的Standby/Active按钮此时该LED应变成绿色。如未变成绿色则该RPS风扇可能损坏。请联系思科系统公司。</td></tr>
<tr><td>琥珀色闪烁</td><td>交换机内部电源失效且正由RPS给交换机供电冗余电源已分配给该设备</td></tr>
<tr><td>绿色</td><td>连接了 RPS ,且 RPS 在需要时就可提供后备电力</td></tr>
<tr><td>绿色闪烁(Blinking Green)</td><td>连接了 RPS ,但因为其正为另一设备提供电力(冗余已被分配给一台相邻设备)而不可用</td></tr>
<tr><td>琥珀色</td><td>RPS处于待机模式或故障状态in standby mode or in a fault condition。按下 RPS 上的Standby/Active按钮此时该 LED 应变成绿色。如未变成绿色,则该 RPS 风扇可能损坏。请联系思科系统公司。</td></tr>
<tr><td>琥珀色闪烁</td><td>交换机内部电源失效,且正由 RPS 给交换机供电(冗余电源已分配给该设备)</td></tr>
</table>
**端口LEDs及其模式**
**端口 LEDs 及其模式**
**Port LEDs and Modes**
端口LEDs提供了一组端口或单个端口的信息如下表15.3所示。
端口 LEDs 提供了一组端口或单个端口的信息如下表15.3所示。
*表15.3 -- 端口LEDs的模式*
*表15.3 -- 端口 LEDs 的模式*
<table>
<tr><th>所选模式LED</th><th>端口模式</th><th>说明</th></tr>
@ -142,7 +142,7 @@ PoE LED只有在Catalyst 2960交换机型号上才能找到。
<tr><td>8 -- 端口</td><td></td><td>依不同模式有不同含义</td></tr>
</table>
不停按下模式按钮the Mode button可在不同模式之间循环直到需要的模式设置。这会改变端口LED颜色的意义如下表15.4所示。
不停按下模式按钮the Mode button可在不同模式之间循环直到需要的模式设置。这会改变端口 LED 颜色的意义如下表15.4所示。
*表15.4 -- 模式设置*
@ -151,29 +151,29 @@ PoE LED只有在Catalyst 2960交换机型号上才能找到。
<tr><td rowspan=6>状态</td><td>不亮</td><td>未插入网线或管理性关闭</td></tr>
<tr><td>绿色</td><td>有链路且链路无问题</td></tr>
<tr><td>绿色闪烁</td><td>活动的:端口在发送或接收数据</td></tr>
<tr><td>绿色琥珀色交替闪烁</td><td>链路故障link fault出现可影响连通性的错误帧以及过多的冲突、循环冗余校验CRC同时将对以太网的alignment及jabber问题进行检测<a href="pdfs/EthernetErrorDescription.pdf" >以太网错误描述</a>, <a href="pdfs/EthernetErrors.pdf">以太网错误</a></td></tr>
<tr><td>琥珀色</td><td>端口被生成树协议Spanning Tree Protocol, STP阻塞而未转发数据。注意在某端口重新配置后端口LED将保持琥珀色30秒因为STP会检查网络拓扑有没有可能的环回。</td></tr>
<tr><td>琥珀色闪烁</td><td>端口被STP阻塞同时没有发送或接收数据。</td></tr>
<tr><td>绿色琥珀色交替闪烁</td><td>链路故障link fault出现可影响连通性的错误帧以及过多的冲突、循环冗余校验 CRC ),同时将对以太网的 alignment jabber 问题进行检测(<a href="pdfs/EthernetErrorDescription.pdf" >以太网错误描述</a>, <a href="pdfs/EthernetErrors.pdf">以太网错误</a></td></tr>
<tr><td>琥珀色</td><td>端口被生成树协议Spanning Tree Protocol, STP阻塞而未转发数据。注意在某端口重新配置后端口 LED 将保持琥珀色 30 秒,因为 STP 会检查网络拓扑有没有可能的环回。</td></tr>
<tr><td>琥珀色闪烁</td><td>端口被 STP 阻塞同时没有发送或接收数据。</td></tr>
<tr><td rowspan=2>双工</td><td>不亮</td><td>端口以半双工方式运行。</td></tr>
<tr><td>绿色</td><td>端口以全双工方式运行。</td></tr>
<tr><td rowspan=8>速率</td><td colspan=2>10/100及10/100/1000Mbps端口</td></tr>
<tr><td>不亮</td><td>端口以10Mbps速率运行。</td></tr>
<tr><td>绿色</td><td>端口以100Mbps速率运行。</td></tr>
<tr><td>绿色闪烁</td><td>端口以1000Mbps运行。</td></tr>
<tr><td>不亮</td><td>端口以 10Mbps 速率运行。</td></tr>
<tr><td>绿色</td><td>端口以 100Mbps 速率运行。</td></tr>
<tr><td>绿色闪烁</td><td>端口以 1000Mbps 运行。</td></tr>
<tr><td colspan=2>SPF(小封装可插拔small form-factor pluggable, SPF)端口</td></tr>
<tr><td>不亮</td><td>端口以10Mbps速率运行。</td></tr>
<tr><td>绿色</td><td>端口以100Mbps速率运行。</td></tr>
<tr><td>绿色闪烁</td><td>端口以1000Mbps速率运行。</td></tr>
<tr><td rowspan=5>PoE</td><td>不亮</td><td>PoE关闭。如被供电设备从交流电源取得电力那么就算被供电设备是连接到交换机的PoE端口LED也会不亮。</td></tr>
<tr><td>绿色</td><td>PoE开启。端口LED只在该交换机端口供电时才亮起绿色。</td></tr>
<tr><td>绿色和琥珀色交替亮起</td><td>因为向被供电设备提供电力会超出交换机电源功率而将PoE禁用了。Catalyst 2960-24PC-L、2960 48PST-L、2960-48PST-S及2960-24PC-S可以提供最高370W的电力。而Catalyst 2960-24LT-L和2960-24LC-S交换机只能提供最高124W的电力。</td></tr>
<tr><td>琥珀色闪烁</td><td>PoE因为故障而关闭。<br>注意在做网线不合规及加电的设备连接到PoE端口(non-compliant cabling or powered devices are connected to a PoE port)时都会导致PoE故障。在将思科认证的IP电话、无线接入点或符合IEEE 802.3af规范的设备连接到PoE端口时只能使用标准规范的做网线方式。必须将导致PoE故障的网线或设备从网络上移除。Only standard-compliant cabling can be used to connect Cisco prestandard IP phones, wireless access points, or IEEE 802.3af-compliant devices to PoE ports. You must remove the cable or device that cause the PoE fault from the network.</td></tr>
<tr><td>琥珀色</td><td>端口的PoE已被关闭。默认PoE是开启的。</td></tr>
<tr><td>不亮</td><td>端口以 10Mbps 速率运行。</td></tr>
<tr><td>绿色</td><td>端口以 100Mbps 速率运行。</td></tr>
<tr><td>绿色闪烁</td><td>端口以 1000Mbps 速率运行。</td></tr>
<tr><td rowspan=5>PoE</td><td>不亮</td><td>PoE关闭。如被供电设备从交流电源取得电力那么就算被供电设备是连接到交换机的 PoE 端口 LED 也会不亮。</td></tr>
<tr><td>绿色</td><td>PoE开启。端口 LED 只在该交换机端口供电时才亮起绿色。</td></tr>
<tr><td>绿色和琥珀色交替亮起</td><td>因为向被供电设备提供电力会超出交换机电源功率,而将 PoE 禁用了。Catalyst 2960-24PC-L、2960 48PST-L、2960-48PST-S及2960-24PC-S可以提供最高 370W 的电力。而Catalyst 2960-24LT-L和2960-24LC-S交换机只能提供最高 124W 的电力。</td></tr>
<tr><td>琥珀色闪烁</td><td>PoE因为故障而关闭。<br>注意:在做网线不合规及加电的设备连接到 PoE 端口(non-compliant cabling or powered devices are connected to a PoE port)时,都会导致 PoE 故障。在将思科认证的 IP 电话、无线接入点或符合IEEE 802.3af规范的设备连接到 PoE 端口时,只能使用标准规范的做网线方式。必须将导致 PoE 故障的网线或设备从网络上移除。Only standard-compliant cabling can be used to connect Cisco prestandard IP phones, wireless access points, or IEEE 802.3af-compliant devices to PoE ports. You must remove the cable or device that cause the PoE fault from the network.</td></tr>
<tr><td>琥珀色</td><td>端口的 PoE 已被关闭。默认 PoE 是开启的。</td></tr>
</table>
除了要掌握这些不同颜色的意义外重要的是掌握修复这些故障所需的做法。比如假设正在对一台Catalyst 6500交换机进行排错并注意到管理引擎或交换模块的状态LEDs是红色或不亮。在此情况就可能是该模块脱离了其插槽或是因为某个新模块没有正确插入到其机架上。那么建议做法就是重新插好该模块。而有些时候还需要重启整个系统。
除了要掌握这些不同颜色的意义外重要的是掌握修复这些故障所需的做法。比如假设正在对一台Catalyst 6500交换机进行排错并注意到管理引擎或交换模块的状态 LEDs 是红色或不亮。在此情况,就可能是该模块脱离了其插槽,或是因为某个新模块没有正确插入到其机架上。那么建议做法就是重新插好该模块。而有些时候,还需要重启整个系统。
在某条链路或某个端口LED颜色不是绿色时就往往表明某种失效或其它故障而重要的是记住**一条链路发出绿光也并不总意味着网线是完全没有问题的**。比如只有一根线坏掉或是一个关闭端口就可能导致一侧显示线路绿色光而另一侧不显示绿色绿色光。这可能是因为网线出现了物理压力而引起该网线具备临界级别的功能。在这种情况下就可以使用CLI来完成额外的派错。
在某条链路或某个端口 LED 颜色不是绿色时,就往往表明某种失效或其它故障,而重要的是记住**一条链路发出绿光也并不总意味着网线是完全没有问题的**。比如,只有一根线坏掉或是一个关闭端口,就可能导致一侧显示线路绿色光而另一侧不显示绿色绿色光。这可能是因为网线出现了物理压力而引起该网线具备临界级别的功能。在这种情况下,就可以使用 CLI 来完成额外的派错。
### 线缆故障排错
@ -183,7 +183,7 @@ PoE LED只有在Catalyst 2960交换机型号上才能找到。
- 有插入网线但没有连接
- 有插入网线且有得到连接,但那条连接的吞吐量极低
- 所有都工作正常但突然没有了连接接着又恢复正常接着又无连接也就是抖动flapping
- 所有都工作正常,但突然没有了连接,接着又恢复正常,接着又无连接(也就是抖动, flapping
- 间歇的连通性,看起来工作正常,但信号一次又一次地丢失
一些针对这些问题的建议测试有下面这些。
@ -207,13 +207,13 @@ PoE LED只有在Catalyst 2960交换机型号上才能找到。
大多数企业网络中用到的路由器和交换机都提供了铜质端口连接性也提供了将不同类型的发送接收器进行板上组装的专门接口。这些发送接收器通常用于光纤连接不过也有铜质的发送和接收器copper-compatible transceivers
光纤连接可在很长距离上运作同时这些特定端口通常都是模块化的需要一个兼容的SFP小型可插入发送和接收器如图15.2中给出的那样。
光纤连接可在很长距离上运作,同时这些特定端口通常都是模块化的,需要一个兼容的 SFP 小型可插入发送和接收器如图15.2中给出的那样。
![SFP模块](images/1502.png)
*图15.2 -- SFP模块*
尽管SFP模块看起来都一样但依据所使用的连接类型根据下面这些参数来选用适当的SFP模块。
尽管 SFP 模块看起来都一样,但依据所使用的连接类型,根据下面这些参数,来选用适当的 SFP 模块。
- 介质类型:光纤还是铜缆, optical fibre or copper
- 光纤类别单模还是多模光纤single-mode or multi-mode fibre
@ -225,7 +225,7 @@ PoE LED只有在Catalyst 2960交换机型号上才能找到。
> **注意:** 在为网络采购收发器时,应总要对设备端口、模块类型及所使用的光纤进行检查。
任何时候都可将收发器插入到网络设备比如交换机、路由器、防火墙等或从其上拔下而无需重启设备。在没有连接时不会在SFP模块上看到活动而这就是在可接触到设备时最容易排错的故障了。
任何时候都可将收发器插入到网络设备(比如交换机、路由器、防火墙等),或从其上拔下,而无需重启设备。在没有连接时,不会在 SFP 模块上看到活动,而这就是在可接触到设备时最容易排错的故障了。
此外,插入光纤将激活那个端口,但又因为各种不同故障而致使连通性受到影响(比如性能恶化或是间歇的连通性),或是没有连通性。此时,有着下面几种可供采行的方法。
@ -235,7 +235,7 @@ PoE LED只有在Catalyst 2960交换机型号上才能找到。
- 检查收发器没有硬件故障(换另一个收发器并进行测试)
- 依据所使用的收发器和线缆类别,检查设备端口有配置上正确的参数
为令到连接停机时间最低就应检测那些插入了SFP模块的端口以观察出现在统计信息中的可能错误。而这可通过标准监测工具完成最常用的就是SNMP。
为令到连接停机时间最低,就应检测那些插入了 SFP 模块的端口,以观察出现在统计信息中的可能错误。而这可通过标准监测工具完成,最常用的就是 SNMP
## 使用命令行接口来对链路故障进行排错
@ -253,7 +253,7 @@ PoE LED只有在Catalyst 2960交换机型号上才能找到。
- 端口输入及输出错误
- 端口输入及输出队列丢失情况
下面是在一个GigabitEthernet交换端口上的`show interfaces`命令的输出。
下面是在一个 GigabitEthernet 交换端口上的`show interfaces`命令的输出。
```console
Catalyst-3750-1#show interfaces GigabitEthernet3/0/1
@ -286,24 +286,24 @@ Output queue: 0/40 (size/max)
0 output buffer failures, 0 output buffers swapped out
```
多数思科Catalyst交换机端口默认都是`notconnect`状态,如同该命令打印输出的第一行所示。但如果网线从该端口拔出或未有正确连接,端口状态也会转换成该状态。在连接的网线有问题或是网线另一端没有插入到活动端口或设备(比如某台工作站插入交换机的端口是关闭的)时,将同样显示为`notconnect`。
多数思科 Catalyst 交换机端口默认都是`notconnect`状态,如同该命令打印输出的第一行所示。但如果网线从该端口拔出或未有正确连接,端口状态也会转换成该状态。在连接的网线有问题或是网线另一端没有插入到活动端口或设备(比如某台工作站插入交换机的端口是关闭的)时,将同样显示为`notconnect`。
> **注意:** 在对GigabitEthernet端口排错时若两端使用了不正确千兆接口转换器Gigabit Interface Converters, GBICs也会导致`notconnect`端口状态。
> **注意:** 在对 GigabitEthernet 端口排错时若两端使用了不正确千兆接口转换器Gigabit Interface Converters, GBICs也会导致`notconnect`端口状态。
输出的第一部分是该命令打印出的第一行(也就是`[interface] is up`),表示特定接口的物理层状态。输出的第二部分(也就是`line protocol is down`)表明该接口的数据链路层状态。而如该该部分指示`up`,就意味着该接口可发送和接收保持活动信号。**记住交换机端口可能在物理层是起来的,却在数据链路层是宕掉的**比如当端口是一个SPAN(Switch)目的端口时或者本地端口连接到一台CatOS交换机的一个关闭的端口时都会这样if this indicates an `"up"`, then it means that the interface can send and receive keepalives. Keep in mind that it is possible for the switch port to indicate that the Physical Layer is up while the Data Link Layer is down, for example, such as when the port is a SPAN destination port(for sniffer traffic) or if the local port is connected to a CatOS(older switch operating system) switch with its port disabled
输出的第一部分是该命令打印出的第一行(也就是`[interface] is up`),表示特定接口的物理层状态。输出的第二部分(也就是`line protocol is down`)表明该接口的数据链路层状态。而如该该部分指示`up`,就意味着该接口可发送和接收保持活动信号。**记住交换机端口可能在物理层是起来的,却在数据链路层是宕掉的**比如当端口是一个SPAN(Switch)目的端口时,或者本地端口连接到一台 CatOS 交换机的一个关闭的端口时都会这样if this indicates an `"up"`, then it means that the interface can send and receive keepalives. Keep in mind that it is possible for the switch port to indicate that the Physical Layer is up while the Data Link Layer is down, for example, such as when the port is a SPAN destination port(for sniffer traffic) or if the local port is connected to a CatOS(older switch operating system) switch with its port disabled
输入队列the Input queue表明因为超出最大队列尺寸而丢弃帧的实际数量。而其中的“fushes”列对Catalyst 6000系列交换机上的SPDselective packet discard, 选择性数据包丢弃, [Selective Packet Discard](pdfs/SelectivePacketDiscard.pdf)[Understanding Selective Packet Discard](http://www.cisco.com/c/en/us/support/docs/routers/12000-series-routers/29920-spd.html)丢弃数据包进行计数。SPD在CPU超负荷时将低优先级的数据包丢弃从而为高优先级数据包节省下处理能力。`show interfaces`命令输出中的`flushes`计数器随SPD部分而增长SPD对路由器IP处理队列运用一种选择性数据包丢弃策略a selective packet drop policy。因此SPD仅用在进程交换流量上appliese only to process-switched traffic
输入队列the Input queue表明因为超出最大队列尺寸而丢弃帧的实际数量。而其中的“ fushes ”列对Catalyst 6000系列交换机上的 SPD selective packet discard, 选择性数据包丢弃, [Selective Packet Discard](pdfs/SelectivePacketDiscard.pdf)[Understanding Selective Packet Discard](http://www.cisco.com/c/en/us/support/docs/routers/12000-series-routers/29920-spd.html))丢弃数据包进行计数。 SPD CPU 超负荷时将低优先级的数据包丢弃,从而为高优先级数据包节省下处理能力。`show interfaces`命令输出中的`flushes`计数器随 SPD 部分而增长, SPD 对路由器 IP 处理队列运用一种选择性数据包丢弃策略a selective packet drop policy。因此 SPD 仅用在进程交换流量上appliese only to process-switched traffic
总的输出丢弃数量the total output drops表示由于输出队列充满而丢弃的数据包数量。输出丢弃经常在正将来多个的高带宽入站链路比如几条千兆以太网链路的流量交换到单个的出站低带宽链路(比如一条快速以太网)时见到。输出丢弃的增长是因为入站和出站带宽不匹配而造成的超出流量将该接口击败造成的this is often seen when traffic from multiple inbound high-bandwidth links(e.g., GigabitEthernet links) is being switched to a single outbound lower-bandwidth(e.g., a FastEthernet link). The output drops increment because the interface is overwhelmed by the excess traffic due to the speed mismatch between the inbound and outbound bandwidths
`show interfaces`的输出中的一些其它接口相关的可分析的,同时在一二层排错中非常有用的术语,有下面这些。
- **帧数目**frame number该字段给出了接收到的带有不正确的CRC及大小不是整数个字节的数据包数目。这通常是由不正常功能的以太网设备硬件错误而导致的冲突造成的。
- **循环冗余校验**CRC该字段表示由发送设备生成的CRC与接收设备计算出的校验和不一致。这通常表示LAN上的传输错误、冲突或是系统传输不良数据。
- **畸形帧**runts: 此字段表示由于比最小数据包大小还小而丢弃的包数量。在以太网段上,比`64`字节还小的包都被看作畸形帧。
- **巨大帧**giants: 此字段表示由于比最大数据包大小还大而丢弃的包数量。在以太网段上,比起`1518`字节还大的数据包被看作巨大帧。
- **晚发冲突**(late collisions): 晚发冲突通常在网线过长或网络中有过多中继器时。冲突数目反应了因为以太网冲突而导致的重传报文数目。而这通常是由于对LAN的过度扩展造成的。
- **输入错误**input errors: 该字段提供所有畸形帧、巨大帧、CRC错误帧、超出帧overruns及忽略数据包的总数。
- **帧数目**frame number该字段给出了接收到的带有不正确的 CRC 及大小不是整数个字节的数据包数目。这通常是由不正常功能的以太网设备(硬件错误)而导致的冲突造成的。
- **循环冗余校验** CRC ):该字段表示由发送设备生成的 CRC 与接收设备计算出的校验和不一致。这通常表示 LAN 上的传输错误、冲突或是系统传输不良数据。
- **畸形帧** runts : 此字段表示由于比最小数据包大小还小而丢弃的包数量。在以太网段上,比`64`字节还小的包都被看作畸形帧。
- **巨大帧** giants : 此字段表示由于比最大数据包大小还大而丢弃的包数量。在以太网段上,比起`1518`字节还大的数据包被看作巨大帧。
- **晚发冲突**(late collisions): 晚发冲突通常在网线过长或网络中有过多中继器时。冲突数目反应了因为以太网冲突而导致的重传报文数目。而这通常是由于对 LAN 的过度扩展造成的。
- **输入错误**input errors: 该字段提供所有畸形帧、巨大帧、 CRC 错误帧、超出帧( overruns )及忽略数据包的总数。
- **输出错误**output errors: 该字段提供了阻止数据报最后从接口发出的错误总数this field provides the total sum of all errors that prevented the final transmission of datagrams out of the interface
除了`show interfaces`命令,命令`show interfaces [name] counters errors`也可以用来查看接口错误及促进一层的排错。下面就是命令`show interface [name] counters errors`打印出的输出。
@ -320,13 +320,13 @@ Gi3/0/1 0
接下来的部分对命令`show interfaces [name] counters errors`输出中的一些错误字段,以及这些字段所表示的故障或问题,进行讲述。
`Align-Err`字段反应了接收到的**没有以偶数个字节结束同时有着错误CRC帧的数目**。这些错误**通常是由不匹配的双工不匹配或物理问题造成**,比如线路问题、坏端口或坏网卡造成的。在网线头一次插入端口时,一些这类错误就会发生。此外,如有集线器连接到端口,集线器上其它设备之间的冲突也会造成这些错误。
`Align-Err`字段反应了接收到的**没有以偶数个字节结束,同时有着错误 CRC 帧的数目**。这些错误**通常是由不匹配的双工不匹配或物理问题造成**,比如线路问题、坏端口或坏网卡造成的。在网线头一次插入端口时,一些这类错误就会发生。此外,如有集线器连接到端口,集线器上其它设备之间的冲突也会造成这些错误。
`FCS-Err`字段反应了有帧校验序列Frame Check Sequence, FCS错误的大小有效(valid-sized)、没有组帧错误的帧数目。这通常是因为物理故障,诸如网线做得不好、坏端口或者坏网卡造成的。此外,该字段下的非零值,可能表明存在双工不匹配。
`Xmit-Err`字段中的非零值是内部发送Tx缓冲器充满的表征。当有来自多个入站高带宽链路比如多条GigabitEthernet链路的流量正转发到单一的出站低带宽链路比如一条FastEthernet链路通常会见到这种情形。
`Xmit-Err`字段中的非零值是内部发送( Tx )缓冲器充满的表征。当有来自多个入站高带宽链路(比如多条 GigabitEthernet 链路)的流量正转发到单一的出站低带宽链路(比如一条 FastEthernet 链路)时,通常会见到这种情形。
字段`Rcv-Err`表示收到帧错误的总和。该计数器在接口收到诸如畸形帧、巨大帧或FCS错误帧时增长。
字段`Rcv-Err`表示收到帧错误的总和。该计数器在接口收到诸如畸形帧、巨大帧或 FCS 错误帧时增长。
`UnderSize`字段在交换机接收到长度小于`64`字节的帧时增长。这通常是由故障发送设备造成的。
@ -336,13 +336,13 @@ Gi3/0/1 0
%CDP-4-DUPLEX_MISMATCH: duplex mismatch discovered on FastEthernet0/1 (not full duplex), with R2 FastEthernet0/0 (full duplex)
```
如同将在生成树协议Spanning Tree Protocol, STP章节中介绍的那样全双工不匹配可能导致在某端口连接到另一交换机时交换网络中的STP循环。这些不匹配**可通过手动配置交换机端口的速率和双工方式予以解决。**
如同将在生成树协议Spanning Tree Protocol, STP章节中介绍的那样全双工不匹配可能导致在某端口连接到另一交换机时交换网络中的 STP 循环。这些不匹配**可通过手动配置交换机端口的速率和双工方式予以解决。**
当以太网控制器每次想要在半双工连接上发送数据时,`Carri-Sen`载波侦听carrier sense都会增长。控制器侦听线路并确保在传输前线路是空闲的。该字段下的非零值表示接口运行于半双工模式。这对半双工来说是正常的。
因为双工不匹配或其它物理层问题,比如坏网线、坏端口以及所连接设备上的坏网卡,也可能导致`Runts`字段下可以看到非零值。畸形帧是指所接收到的有着错误的CRC、小于最小IEEE 802.3帧大小也就是以太网的64字节的那些帧。
因为双工不匹配或其它物理层问题,比如坏网线、坏端口以及所连接设备上的坏网卡,也可能导致`Runts`字段下可以看到非零值。畸形帧是指所接收到的有着错误的 CRC 、小于最小IEEE 802.3帧大小,也就是以太网的 64 字节的那些帧。
最后当接收到的帧超过IEEE 802.3最大帧大小非巨大以太网non-jumbo Ethernet, [Jumbo frame](https://en.wikipedia.org/wiki/Jumbo_frame), [Linux_Jumbo_frame](pdfs/Linux_Jumbo_frame.pdf))的`1518`字节时并有着坏的FCS时`Giants`计数器就会增长。对于那些连接到某台工作站的端口或接口该字段下的非零数值典型地是由所连接设备上的坏网卡导致的。不过对于那些连接到另一交换机比如通过中继链路的端口或接口如采用的是802.1Q封装方式,则该字段将会包含一个非零数值。**在802.1Q下其打标记机制the tagging mechanism对帧进行了修改因为中继设备插入了一个`4`字节的标记并随后再度计算了FCS。**
最后当接收到的帧超过IEEE 802.3最大帧大小非巨大以太网non-jumbo Ethernet, [Jumbo frame](https://en.wikipedia.org/wiki/Jumbo_frame), [Linux_Jumbo_frame](pdfs/Linux_Jumbo_frame.pdf))的`1518`字节时,并有着坏的 FCS 时,`Giants`计数器就会增长。对于那些连接到某台工作站的端口或接口该字段下的非零数值典型地是由所连接设备上的坏网卡导致的。不过对于那些连接到另一交换机比如通过中继链路的端口或接口如采用的是802.1Q封装方式,则该字段将会包含一个非零数值。**在802.1Q下其打标记机制the tagging mechanism对帧进行了修改因为中继设备插入了一个`4`字节的标记,并随后再度计算了 FCS 。**
对已有最大以太网帧大小的帧插入`4`字节后,就构成了一个`1522`字节的帧那么接收设备就会将其看着是一个幼小巨大帧a baby giant frame。因此尽管交换机仍将处理这些帧该计数器将增长并包含一个非零值。为解决这个问题802.3委员会建立一个名为802.3ac的小组来将以太网最大大小扩展到`1522`字节这样以来采行802.1Q中继时就不常见到该字段下的非零值了。
@ -399,7 +399,7 @@ Transmit GigabitEthernet3/0/1 Receive
- 极低的流量吞吐poor throughput
- 没有连通性lack of connectivity
某台设备可以连接到网络有着网络信号同时可以与Internet及其它设备通信却有着以持续的、易于重现方式的低通信性能。这种情况可能在正常运行中包括与网络其它部分进行文件传输或其它类型的通信中出现。
某台设备可以连接到网络,有着网络信号,同时可以与 Internet 及其它设备通信,却有着以持续的、易于重现方式的低通信性能。这种情况可能在正常运行中,包括与网络其它部分进行文件传输或其它类型的通信中出现。
在重大配置问题下该故障可能以完全的连通性缺失包括特定设备端口上连接信号灯不亮的形式出现with major configuration issues, the issue might manifest as lack of connectivity, including no link lights on the specific device ports。有时连接灯亮起但仍然没有任何类型的连通性。这显示在网线上有信号也就是说没有网线问题而是在端口上的端口问题故障或其它问题。这就要对设备的配置进行问题调查。
@ -413,7 +413,7 @@ Transmit GigabitEthernet3/0/1 Receive
如正对各个端口进行手动配置,那么要注意的第一个参数,就是接口速率。在**链路两端上的接口速率必须一致**。如在一侧配置不正确,链路就可以不会运作。另一个有关的设置就是**端口双工方式**,这可以配置为半双工或全双工。**可以在一侧配置为半双工、另一侧配置为全双工**,这样做尽管链路也会运行,但通过流量将极大地受到影响,因为两侧都期望以不同方式处理通信。同时这样做也会导致对那条链路上的传输造成影响的冲突。为令到流量能够尽可能有效地进行发送,请确保两侧都使用同样的双工设置。
而如在企业级环境下运营if you are operating in an enterprise-level environment就可能需要使用不同的VLANs对流量进行分段。所有交换机在这方面都必须准确配置如此一来所有交换机端口都分配到正确的VLAN中。而如直接将配置到使用不同VLAN IDs的端口直接连接那么就算物理层上显示没有故障二层上的通讯仍将遭到破坏。
而如在企业级环境下运营if you are operating in an enterprise-level environment就可能需要使用不同的 VLANs 对流量进行分段。所有交换机在这方面都必须准确配置,如此一来所有交换机端口都分配到正确的 VLAN 中。而如直接将配置到使用不同VLAN IDs的端口直接连接那么就算物理层上显示没有故障二层上的通讯仍将遭到破坏。
通过对上述的端口配置选项进行检查,以及确保链路两端的所有参数都保持同步,那么就可以肯定所连接设备的连通性及流量吞吐都将是最优的。
@ -421,7 +421,7 @@ Transmit GigabitEthernet3/0/1 Receive
**Troubleshooting VLANs and Trunking**
先前的小节中我们谈到可用用于物理层故障排除的三个命令行命令的使用。本节将给出一些用于对VLAN内倍连通性故障进行鉴别及排错的常见方法the use of three CLI commands that can be used for troubleshooting Physical Layer issues. this section describes some common approaches to identifying and troubleshooting intra-VLAN connectivitiy issues。VLAN内部连通性故障的一些相对来讲更为常见的原因有下面这些。
先前的小节中,我们谈到可用用于物理层故障排除的三个命令行命令的使用。本节将给出一些用于对 VLAN 内倍连通性故障进行鉴别及排错的常见方法the use of three CLI commands that can be used for troubleshooting Physical Layer issues. this section describes some common approaches to identifying and troubleshooting intra-VLAN connectivitiy issues VLAN 内部连通性故障的一些相对来讲更为常见的原因,有下面这些。
- 双工不匹配duplex mismatches
- 坏的网卡或网线bad NIC or cable
@ -435,42 +435,42 @@ Transmit GigabitEthernet3/0/1 Receive
因此好的做法就是在那些可以手动设置的地方对10/100以太网连接的速率和双工手动进行设置以避免自动协商带来的双工不匹配问题。**双工不匹配可能不仅会对直接连接到交换机上的用户造成影响,还可能对有着不匹配双工设置的交换机间连接上通过的网络流量造成影响。**使用命令`show interface`就可以查看到端口的接口速率和双工设置。
> **注意:** 因为Catalyst交换机仅支持1Gbps链路全双工所以对于GigabitEthernet连接双工问题并不常见。
> **注意:** 因为 Catalyst 交换机仅支持 1Gbps 链路全双工,所以对于 GigabitEthernet 连接,双工问题并不常见。
思科IOS软件中的多个计数器都可用来鉴别潜在**坏网卡或网线问题**。通过对不同的`show`命令中的一些计数器的检查来识别网卡或网线问题。比如假设交换机端口计数器显示带有无效CRC或FCS错误的帧数持续增长就有极大可能是因为工作站或机器的坏网卡以及坏的网线。
思科 IOS 软件中的多个计数器都可用来鉴别潜在**坏网卡或网线问题**。通过对不同的`show`命令中的一些计数器的检查,来识别网卡或网线问题。比如,假设交换机端口计数器显示带有无效 CRC FCS 错误的帧数持续增长,就有极大可能是因为工作站或机器的坏网卡,以及坏的网线。
网络壅塞同样可能引起交换网络中的间隙性连通故障。VLAN超载的第一个表象就是某端口上的接收或发送缓冲过度预订(oversubscribed)。此外,端口上过多的帧丢弃也是网络壅塞的指标。而网络壅塞的常见原因,就是对主干连接的聚合带宽需求估计不足。那么,**壅塞问题就可以通过配置以太网信道或往现有以太网信道中加入更多的端口,得到解决。**同时网络壅塞又是连通性故障的常见原因,同时重要的是要知道**交换机本身可能经历壅塞问题,而交换机本身的壅塞问题有可能会对网络性能产生类似的影响**a common cause of network congestion is due to underestimating aggregate bandwidth requirements for backbone connections. In such cases, congestion issues can be resolved by configuring EtherChannels or by adding additional ports to existing EtherChannels. While network congestion is a common cause of connectivity issues, it is also important to know that the switch itself can experience congestion issues, which can have a similar impact on network performance
网络壅塞同样可能引起交换网络中的间隙性连通故障。 VLAN 超载的第一个表象就是某端口上的接收或发送缓冲过度预订(oversubscribed)。此外,端口上过多的帧丢弃也是网络壅塞的指标。而网络壅塞的常见原因,就是对主干连接的聚合带宽需求估计不足。那么,**壅塞问题就可以通过配置以太网信道或往现有以太网信道中加入更多的端口,得到解决。**同时网络壅塞又是连通性故障的常见原因,同时重要的是要知道**交换机本身可能经历壅塞问题,而交换机本身的壅塞问题有可能会对网络性能产生类似的影响**a common cause of network congestion is due to underestimating aggregate bandwidth requirements for backbone connections. In such cases, congestion issues can be resolved by configuring EtherChannels or by adding additional ports to existing EtherChannels. While network congestion is a common cause of connectivity issues, it is also important to know that the switch itself can experience congestion issues, which can have a similar impact on network performance
**交换机内部壅塞**有限的交换机带宽可能导致壅塞问题由此造成的壅塞可能对网络性能造成极为严重的影响。在LAN交换中带宽是指交换机内部交换线路[the switch fabric](pdfs/the_Definition_of_a_Switch_Fabric-EtherealMind.pdf))的传输能力。因此,如果交换线路的传输能力是`5Gbps`, 而要尝试将`7Gbps`的流量通过交换机传输结果就是数据包丢失及差强人意的网络性能了。在那些所有端口的聚合传输容量可能超出总的骨干容量的超出预订平台上这是一个常见的问题this is a common issue in oversubscribed platforms, where the aggregate capacity of all ports can exceed the totoal backplane capacity
**交换机内部壅塞**,有限的交换机带宽可能导致壅塞问题,由此造成的壅塞可能对网络性能造成极为严重的影响。在 LAN 交换中,带宽是指交换机内部交换线路([the switch fabric](pdfs/the_Definition_of_a_Switch_Fabric-EtherealMind.pdf))的传输能力。因此,如果交换线路的传输能力是`5Gbps`, 而要尝试将`7Gbps`的流量通过交换机传输结果就是数据包丢失及差强人意的网络性能了。在那些所有端口的聚合传输容量可能超出总的骨干容量的超出预订平台上这是一个常见的问题this is a common issue in oversubscribed platforms, where the aggregate capacity of all ports can exceed the totoal backplane capacity
在交换LAN中**硬件故障**也可能引起连通性问题。这类问题的实例包括交换机的坏端口或坏模块。尽管在可能的情况下可以通过查看诸如LEDs等物理指示器来对这类故障进行排错某些时候这类问题是难于排错及诊断的。在怀疑存在潜在的硬件故障的多数情况下都应需求技术支持中心Technical Assistance Centre, TAC的支持。
在交换 LAN 中,**硬件故障**也可能引起连通性问题。这类问题的实例包括交换机的坏端口或坏模块。尽管在可能的情况下可以通过查看诸如 LEDs 等物理指示器来对这类故障进行排错某些时候这类问题是难于排错及诊断的。在怀疑存在潜在的硬件故障的多数情况下都应需求技术支持中心Technical Assistance Centre, TAC的支持。
相比上面这些问题软件缺陷software bugs就更难于分辨出来因为软件缺陷引起难于对其进行排错的偏差deviation。在怀疑有软件缺陷导致连通性问题时应该就发现的问题联系技术支持中心TAC。此外如在控制台或日志中有打印出错误消息就也可以使用思科提供的一些在线工具来采取一些替代方法implement a workaround或是得到某个已经解决该问题并得到验证的软件版本的建议。
相比上面这些问题软件缺陷software bugs就更难于分辨出来因为软件缺陷引起难于对其进行排错的偏差 deviation )。在怀疑有软件缺陷导致连通性问题时,应该就发现的问题,联系技术支持中心( TAC 。此外如在控制台或日志中有打印出错误消息就也可以使用思科提供的一些在线工具来采取一些替代方法implement a workaround或是得到某个已经解决该问题并得到验证的软件版本的建议。
与其它硬件设备相比交换机有着受限的资源比如物理内存。在这些资源过度使用时就会导致严重的性能问题。而像是高CPU使用率这样的问题就可能对交换机及网络性能造成极为严重的影响。
与其它硬件设备相比,交换机有着受限的资源,比如物理内存。在这些资源过度使用时,就会导致严重的性能问题。而像是高 CPU 使用率这样的问题,就可能对交换机及网络性能造成极为严重的影响。
最后,如同其它技术一样,**不正确的配置同样会直接或间接地造成连通性问题**。比如根桥放置粗劣就会导致慢速用户连通性。而将一台不当配置的交换机直接加入到生产网络则会导致一些或全部用户的网络连接完全中断the poor placement of the Root Bridge may result in slow connectivity for users. Directly integrating or adding an incorrectly configured switch into the production network could result in an outright outage for some or all users。下面的小节对一些常见的VLAN相关故障、其可能的原因以及为排除这些故障可采取的做法进行了讲解。
最后,如同其它技术一样,**不正确的配置同样会直接或间接地造成连通性问题**。比如根桥放置粗劣就会导致慢速用户连通性。而将一台不当配置的交换机直接加入到生产网络则会导致一些或全部用户的网络连接完全中断the poor placement of the Root Bridge may result in slow connectivity for users. Directly integrating or adding an incorrectly configured switch into the production network could result in an outright outage for some or all users。下面的小节对一些常见的 VLAN 相关故障、其可能的原因,以及为排除这些故障可采取的做法,进行了讲解。
### 动态VLAN通告排错
### 动态 VLAN 通告排错
**Troubleshooting Dynamic VLAN Advertisements**
思科Catalyst交换机使用VLAN中继协议VLAN Trunk Protocol, VTP来在交换域中传播VLAN信息propagate VLAN information dynamically throughout the switched domain。VTP是一个思科专有的二层报文发送协议用于管理位处同一VTP域中的交换机上VLANs的添加、删除及重命名。
思科 Catalyst 交换机使用 VLAN 中继协议VLAN Trunk Protocol, VTP来在交换域中传播 VLAN 信息propagate VLAN information dynamically throughout the switched domain VTP 是一个思科专有的二层报文发送协议,用于管理位处同一 VTP 域中的交换机上 VLANs 的添加、删除及重命名。
某台交换机在加入到VTP域时无法动态接收任何VLAN信息的原因有好几个。下面是一些常见的原因。
某台交换机在加入到 VTP 域时无法动态接收任何 VLAN 信息的原因有好几个。下面是一些常见的原因。
- 二层中继配置错误Layer 2 trunking misconfiguration
- 不正确的VTP配置incorrect VTP configuration
- 不正确的 VTP 配置incorrect VTP configuration
- 配置修订号configuration revision number
- 物理层故障, Physical Layer issues
- 软件或硬件故障或缺陷software or hardware issues or bugs
- 交换机性能问题, switch performance issues
为令到交换机采用VTP交换VLAN信息交换机间必须建立中继链路。思科IOS交换机支持ISL和802.1Q两种中继机制。尽管一些交换机默认采用ISL这种思科专有中继机制不过当前思科IOS Catalyst交换机默认都采用802.1Q了。在提供交换机间中继时,手动指定中继封装协议被认为是好的做法。这是通过在将链路配置为中继端口时,使用接口配置命令`switchport trunk encapsulation [isl|dot1q]`完成的。
为令到交换机采用 VTP 交换 VLAN 信息,交换机间必须建立中继链路。思科 IOS 交换机支持 ISL 和802.1Q两种中继机制。尽管一些交换机默认采用 ISL 这种思科专有中继机制不过当前思科IOS Catalyst交换机默认都采用802.1Q了。在提供交换机间中继时,手动指定中继封装协议被认为是好的做法。这是通过在将链路配置为中继端口时,使用接口配置命令`switchport trunk encapsulation [isl|dot1q]`完成的。
可用于对中继连通性问题进行排错的命令有好几个。可使用`show interfaces`命令来检查基本的端口运行及管理性状态you can use the `show interfaces` command to verify basic port operational and administrative status。此外可通过在`show interfaces`命令后追加`trunk`或`errors`关键字来进行额外排错和检查。 而命令`show interfaces [name] counters trunk`则可用于查看中继端口上传输和接收到的帧数目。
该命令的输出还包括了封装错误数而封装错误数可用于检查802.1Q和ISL以及中继封装不匹配数目如下面的输出所示。
该命令的输出还包括了封装错误数而封装错误数可用于检查802.1Q和 ISL ,以及中继封装不匹配数目,如下面的输出所示。
```console
Cat-3550-1#show interfaces FastEthernet0/12 counters trunk
@ -478,9 +478,9 @@ Port TrunkFramesTx TrunkFramesRx WrongEncap
Fa0/12 1696 32257 0
```
参考上面的输出可以反复执行该命令以确保Tx及Rx栏是持续增长的并以此完成更多的排错。比如假设该交换机没有发出任何帧则该接口就可能并未配置为中继接口或者其是宕掉的或关闭的or it might be down or disabled。而如果Rx栏没有增长则可能是远端交换机未有正确配置。
参考上面的输出,可以反复执行该命令,以确保 Tx Rx 栏是持续增长的并以此完成更多的排错。比如假设该交换机没有发出任何帧则该接口就可能并未配置为中继接口或者其是宕掉的或关闭的or it might be down or disabled。而如果 Rx 栏没有增长,则可能是远端交换机未有正确配置。
用于对可能的二层错误配置进行排错的另一个命令,就是`show interfaces [name] trunk`。该命令的输出包含了中继封装协议及模式、802.1Q的原生VLAN、允许通过中继链路VLANs、VTP域中活动的VLANs以及被修剪掉的VLANsthe output of `show interfaces [name] trunk` includes the trunking encapsulation protocol and mode, the native VLAN for 802.1Q, the VLANs that are allowed to traverse the trunk, the VLANs that are active in the VTP domain, and the VLANs that are pruned。**一个VLAN传播的常见问题就是上游交换机已通过使用接口配置命令`switchport trunk allowed vlan`被配置为对某些VLANs进行过滤。**命令`show interfaces [name] trunk`的输出如下所示。
用于对可能的二层错误配置进行排错的另一个命令,就是`show interfaces [name] trunk`。该命令的输出包含了中继封装协议及模式、802.1Q的原生 VLAN 、允许通过中继链路 VLANs VTP 域中活动的 VLANs ,以及被修剪掉的 VLANs the output of `show interfaces [name] trunk` includes the trunking encapsulation protocol and mode, the native VLAN for 802.1Q, the VLANs that are allowed to traverse the trunk, the VLANs that are active in the VTP domain, and the VLANs that are pruned。**一个 VLAN 传播的常见问题,就是上游交换机已通过使用接口配置命令`switchport trunk allowed vlan`,被配置为对某些 VLANs 进行过滤。**命令`show interfaces [name] trunk`的输出如下所示。
```console
Cat-3550-1#show interfaces trunk
@ -506,7 +506,7 @@ Fa0/14 none
Fa0/15 none
```
**另一个常见中继错误配置故障就是原生VLAN不匹配。**在配置802.1Q中继链路时中继链路两端的原生VLAN必须匹配否则该链路便不会工作。如存在原生VLAN不匹配STP就会将该端口置为端口VLAN ID不一致状态a port VLAN ID(PVID) inconsistent state且不会在该链路上进行转发。在此情况下将有类似于下面的消息在控制台或日志中打印出来。
**另一个常见中继错误配置故障就是原生 VLAN 不匹配。**在配置802.1Q中继链路时,中继链路两端的原生 VLAN 必须匹配;否则该链路便不会工作。如存在原生 VLAN 不匹配, STP 就会将该端口置为端口VLAN ID不一致状态a port VLAN ID(PVID) inconsistent state且不会在该链路上进行转发。在此情况下将有类似于下面的消息在控制台或日志中打印出来。
```console
*Mar 1 03:16:43.935: %SPANTREE-2-RECV_PVID_ERR: Received BPDU with inconsistent peer vlan id 1 on FastEthernet0/11 VLAN2.
@ -517,7 +517,7 @@ Fa0/15 none
*Mar 1 03:16:43.939: %SPANTREE-2-BLOCK_PVID_LOCAL: Blocking FastEthernet0/12 on VLAN0002. Inconsistent local vlan.
```
尽管STP排错将在本书后面进行讲解该不一致状态仍可通过使用`show spanning-tree`命令进行查证,如下面所示。
尽管 STP 排错将在本书后面进行讲解,该不一致状态仍可通过使用`show spanning-tree`命令进行查证,如下面所示。
```console
Cat-3550-1#show spanning-tree interface FastEthernet0/11
@ -527,7 +527,7 @@ VLAN0001 Desg BKN* 19 128.11 P2p *PVID_Inc
VLAN0002 Desg BKN* 19 128.11 P2p *PVID_Inc
```
如已经查明该中继链路确实是正确配置及两台交换机间是可运作的接下来就应对VTP配置参数进行检查了。这些参数包括VTP域名、正确的VTP模式及VTP口令如对该VTP域配置了某个参数就要使用相应的`show vtp status`及`show vtp password`命令。`show vtp status`命令的输出如下所示。
如已经查明该中继链路确实是正确配置,及两台交换机间是可运作的,接下来就应对 VTP 配置参数进行检查了。这些参数包括 VTP 域名、正确的 VTP 模式及 VTP 口令,如对该 VTP 域配置了某个参数,就要使用相应的`show vtp status`及`show vtp password`命令。`show vtp status`命令的输出如下所示。
```console
Cat-3550-1#show vtp status
@ -545,13 +545,13 @@ MD5 digest : 0x26 0x99 0xB7 0x93 0xBE 0xDA 0x76 0x9C
[Truncated Output]
```
在应用`show vtp status`命令时要确保交换机使用同一版本的VTP。默认情况下Catalyst交换机允许VTP版本`1`。而运行VTP版本`1`的交换机是不能加入到VTP版本`2`的域中的。而如某交换机不兼容VTP版本`2`, 那么就要使用全局配置命令`vtp version`将所有VTP版本`2`的交换机配置为运行版本`1`。
在应用`show vtp status`命令时,要确保交换机使用同一版本的 VTP 。默认情况下, Catalyst 交换机允许 VTP 版本`1`。而运行 VTP 版本`1`的交换机是不能加入到 VTP 版本`2`的域中的。而如某交换机不兼容 VTP 版本`2`, 那么就要使用全局配置命令`vtp version`,将所有 VTP 版本`2`的交换机配置为运行版本`1`。
> **注意:** 如在服务器上修改了VTP版本那么此改变将自动传播到VTP域中的客户端交换机。
> **注意:** 如在服务器上修改了 VTP 版本,那么此改变将自动传播到 VTP 域中的客户端交换机。
VTP客户端/服务器clinet/server或服务器/服务器(server/server)设备上的VTP传播是开启的。而如果在某台交换机上VTP是关闭的也就是透明模式那么该交换机将不会经由VTP动态地接收VLAN信息。不过要留意**VTP版本2的透明模式交换机将在其中继端口转发出接收到的VTP通告而充当VTP中继。**就算VTP版本不一样该过程也会照常进行。域中交换机上的VTP域名称也应保持一致。
VTP客户端/服务器clinet/server或服务器/服务器(server/server)设备上的 VTP 传播是开启的。而如果在某台交换机上 VTP 是关闭的(也就是透明模式),那么该交换机将不会经由 VTP 动态地接收 VLAN 信息。不过,要留意**VTP版本 2 的透明模式交换机,将在其中继端口转发出接收到的 VTP 通告,而充当 VTP 中继。**就算 VTP 版本不一样,该过程也会照常进行。域中交换机上的 VTP 域名称也应保持一致。
最后,`show vtp status`命令的输出也包含了用于认证目的的MD5散列值。该散列值是从VTP域名称和密码生成的域中所有交换机上的该散列值应是一致的。而如在这些交换机上的域名称和密码不同则计算出的MD5也会不同。而如域名称或密码不同那么`show vtp status`命令就会示出一条MD5摘要校验和不匹配an MD5 digest checksum mismatch消息如下面的输出所示。
最后,`show vtp status`命令的输出也包含了用于认证目的的 MD5 散列值。该散列值是从 VTP 域名称和密码生成的,域中所有交换机上的该散列值应是一致的。而如在这些交换机上的域名称和密码不同,则计算出的 MD5 也会不同。而如域名称或密码不同,那么`show vtp status`命令就会示出一条 MD5 摘要校验和不匹配an MD5 digest checksum mismatch消息如下面的输出所示。
```console
Cat-3550-1#show vtp status
@ -571,15 +571,15 @@ MD5 Digest : 0x26 0x99 0xB7 0x93 0xBE 0xDA 0x76 0x9C
[Truncated Output]
```
最后在应用VTP时**配置修订号可能会造成严重破坏。VTP域中的交换机使用配置修订号来保持对域中最新信息的跟踪**the configuration revision number can wreak havoc when using VTP. Switches use the configuration revision number to keep track of the most recent information in the VTP domain。域中所有交换机都将其前一次从一条VTP通告中收听到的配置修订号存储起来同时在每次接收到新信息时该号码都被增加。而在任何交换机接收到带有高于其自身配置修订号的通告报文时都将覆写任何存储的VLAN信息并将其自身存储的VLAN信息与所接收到的通告报文中的信息进行同步。
最后,在应用 VTP 时,**配置修订号可能会造成严重破坏。 VTP 域中的交换机使用配置修订号来保持对域中最新信息的跟踪**the configuration revision number can wreak havoc when using VTP. Switches use the configuration revision number to keep track of the most recent information in the VTP domain。域中所有交换机都将其前一次从一条 VTP 通告中收听到的配置修订号存储起来,同时在每次接收到新信息时该号码都被增加。而在任何交换机接收到带有高于其自身配置修订号的通告报文时,都将覆写任何存储的 VLAN 信息,并将其自身存储的 VLAN 信息与所接收到的通告报文中的信息进行同步。
因此如想知道为何加入到VTP域中的交换机没有接收任何的VLAN信息那么可能是该交换机已有一个较高的配置修订号而导致所有其它交换机覆写了它们的本地VLAN信息并将本地VLAN信息替换成了接收自新交换机的通告报文中的VLAN信息。为避免此种情形**在将新的交换机加入到某VTP域之前总是要确保其配置修订号被设置为0。**这可以通过在该交换机上修改VTP模式或修改VTP域名称完成。配置修订号在命令`show vtp status`的输出中有包含。
因此,如想知道为何加入到 VTP 域中的交换机没有接收任何的 VLAN 信息,那么可能是该交换机已有一个较高的配置修订号,而导致所有其它交换机覆写了它们的本地 VLAN 信息,并将本地 VLAN 信息替换成了接收自新交换机的通告报文中的 VLAN 信息。为避免此种情形,**在将新的交换机加入到某 VTP 域之前,总是要确保其配置修订号被设置为 0 。**这可以通过在该交换机上修改 VTP 模式或修改 VTP 域名称完成。配置修订号在命令`show vtp status`的输出中有包含。
### VLAN内部端到端连接丢失
**Troubleshooting Loss of End-to-End Intra-VLAN Connectivity**
某个VLAN中端到端连通性丢失有好几个原因。而最常见的原因包括下面这些。
某个 VLAN 中端到端连通性丢失有好几个原因。而最常见的原因包括下面这些。
- 物理层故障Physical Layer issues
- VTP修剪VTP pruning
@ -590,18 +590,18 @@ MD5 Digest : 0x26 0x99 0xB7 0x93 0xBE 0xDA 0x76 0x9C
- 软件或硬件问题或缺陷software or hardware issues or bugs
> **注意:** 为简明扼要地讲解这里只会对中继、VTP修剪、以及往域内新加入交换机三个方面进行说明。软件或硬件问题或缺陷及交换机性能问题在本书中已有说明。而物理层排错在本模块早前已经进行了讲解。
> **注意:** 为简明扼要地讲解,这里只会对中继、 VTP 修剪、以及往域内新加入交换机三个方面进行说明。软件或硬件问题或缺陷及交换机性能问题在本书中已有说明。而物理层排错在本模块早前已经进行了讲解。
**VTP修剪在没有本地端口属于某些VLANs时将那些VLANs从本地交换机的VLAN数据库中移除。**VTP修剪通过消除不必要的广播、多播及通过网络泛洪的那些未知流量而提升中继链路效率VTP pruning increases the efficiency of trunks by eliminating unnecessary Broadcast, Multicast, and unknown traffic from being flooded across the network
**VTP修剪在没有本地端口属于某些 VLANs 时,将那些 VLANs 从本地交换机的 VLAN 数据库中移除。**VTP修剪通过消除不必要的广播、多播及通过网络泛洪的那些未知流量而提升中继链路效率VTP pruning increases the efficiency of trunks by eliminating unnecessary Broadcast, Multicast, and unknown traffic from being flooded across the network
尽管VTP修剪是一项值得部署的特性但不正确的配置或是部署可能导致端到端连通性的丢失。应仅在客户端/服务器环境中开启in client/server environments。在包含透明模式交换机的网络中应用修剪就可能造成连通性丢失。如网络中有一或多台的交换机处于VTP透明模式就应该要么对整个VTP域全局关闭修剪否则就要通过在适当的接口下使用接口配置命令`switchport trunk pruning vlan`, 以确保到上游的透明模式交换机中继链路上的VLANs都无资格修剪也就是它们在这些链路上不被修剪ensure that all VLANs on the trunk link(s) to the upstream transparent mode switch(es) are pruning ineligible, i.e., they are not prunedusing the `switchport trunk pruning vlan` interface configuration command under the applicable interfaces
尽管 VTP 修剪是一项值得部署的特性,但不正确的配置或是部署可能导致端到端连通性的丢失。应仅在客户端/服务器环境中开启in client/server environments。在包含透明模式交换机的网络中应用修剪就可能造成连通性丢失。如网络中有一或多台的交换机处于 VTP 透明模式,就应该要么对整个 VTP 域全局关闭修剪,否则就要通过在适当的接口下,使用接口配置命令`switchport trunk pruning vlan`, 以确保到上游的透明模式交换机中继链路上的 VLANs 都无资格修剪也就是它们在这些链路上不被修剪ensure that all VLANs on the trunk link(s) to the upstream transparent mode switch(es) are pruning ineligible, i.e., they are not prunedusing the `switchport trunk pruning vlan` interface configuration command under the applicable interfaces
**对放行的VLANs及中继状态进行检查**
**对放行的 VLANs 及中继状态进行检查**
**Verify Allowed VLANs and Trunk Status**
除了VTP修剪外交换机中继链路上对VLANs的不正确过滤也可能导致端到端VLAN连通性的丢失。**默认允许所有VLANs通过所有中继链路**但是思科IOS软件允许管理员通过使用接口配置命令`switchport trunk allowed vlan`在指定中继链路上选择性地移除或加入VLANs。可以使用命令`show interfaces [name] trunk`及`show interfaces [name] switchport`来查看中继链路上被修剪和限制的VLANs。作为检查某个中继端口上放行VLANs最容易的方式命令`show interfaces [name] trunk`的输出如下所示。
除了 VTP 修剪外,交换机中继链路上对 VLANs 的不正确过滤,也可能导致端到端 VLAN 连通性的丢失。**默认允许所有 VLANs 通过所有中继链路;**但是思科 IOS 软件允许管理员通过使用接口配置命令`switchport trunk allowed vlan`,在指定中继链路上选择性地移除(或加入) VLANs 。可以使用命令`show interfaces [name] trunk`及`show interfaces [name] switchport`,来查看中继链路上被修剪和限制的 VLANs 。作为检查某个中继端口上放行 VLANs 最容易的方式,命令`show interfaces [name] trunk`的输出如下所示。
```console
Cat-3550-1#show interfaces trunk
@ -619,9 +619,9 @@ Fa0/1 1,10,20,30,40,50
Fa0/2 1,40,50,60,70,80,90,254
```
同样要检查中继链路上通告的正确VLANs。在中继链路上放行的不适当VLANs可能引起功能缺失或安全问题。也想要确保中继链路两端有着同样的放行VLANsInproper VLANs allowed on the link can lead to a lack of functionality or security issues. Also, you want to make sure that the same VLANs are allowed on both ends of a trunk
同样要检查中继链路上通告的正确 VLANs 。在中继链路上放行的不适当 VLANs 可能引起功能缺失或安全问题。也想要确保中继链路两端有着同样的放行 VLANs Inproper VLANs allowed on the link can lead to a lack of functionality or security issues. Also, you want to make sure that the same VLANs are allowed on both ends of a trunk
> **注意:** 在将另外的需要在某条中继链路上放行的VLAN(s)加入进去时,应非常谨慎地不要忘记关键字`add`。比如,在已经配置了`switchport trunk allowed vlan 10, 20`而打算同样放行VLAN 30时就需要输入命令`switchport trunk allowed vlan add 30`。而如只是简单地配置`switchport trunk allowed vlan 30`那么先前所允许的VLANs 10和20就会从中继链路上移除这将导致VLANs 10和20的通信中断。
> **注意:** 在将另外的需要在某条中继链路上放行的VLAN(s)加入进去时,应非常谨慎地不要忘记关键字`add`。比如,在已经配置了`switchport trunk allowed vlan 10, 20`而打算同样放行VLAN 30时就需要输入命令`switchport trunk allowed vlan add 30`。而如只是简单地配置`switchport trunk allowed vlan 30`那么先前所允许的VLANs 10和 20 就会从中继链路上移除这将导致VLANs 10和 20 的通信中断。
由命令`show interfaces trunk`命令所提供的另一重要信息就是中继端口状态。中继端口状态信息确认该中继链路是否形成同时必须要在链路两端对此进行检查。如该端口未处于“中继”模式此时最重要的就是必须对端口中继运作模式the mode of operation, o/auto等进行检查看看在该模式下是否能与链路另一端形成中继状态。
@ -629,7 +629,7 @@ Fa0/2 1,40,50,60,70,80,90,254
**Verify Encapsulation Type**
解决中继故障的另一重要步骤就是查明中继链路两端所配置的正确封装类型。大多数思科交换机都允许ISL及802.1Q封装类型。而尽管大多数现代网络都是设计使用dot1Q, 仍然可能存在一些网络优先使用ISL的情形。封装类型是通过使用接口配置命令`switchport trunk encapsulation <type>`配置的。而可用于查看封装类型的命令如下。
解决中继故障的另一重要步骤,就是查明中继链路两端所配置的正确封装类型。大多数思科交换机都允许 ISL 及802.1Q封装类型。而尽管大多数现代网络都是设计使用dot1Q, 仍然可能存在一些网络优先使用 ISL 的情形。封装类型是通过使用接口配置命令`switchport trunk encapsulation <type>`配置的。而可用于查看封装类型的命令如下。
- `show interfaces trunk`
- `show interfaces <number> switchport`
@ -668,13 +668,13 @@ Unknown multicast blocked: disabled
Appliance trust: none
```
如之前小节所说到的网络中一台新交换机的加入可能导致管理域中VLAN信息的丢失the integration of a new switch into the network can result in a loss of VLAN information in the management domain。而此VLAN信息丢失又可能导致同一VLAN中设备间连通性的丢失。所以在将新交换机加入到LAN之前一定要确保其配置修订号被重置到0。
如之前小节所说到的,网络中一台新交换机的加入,可能导致管理域中 VLAN 信息的丢失the integration of a new switch into the network can result in a loss of VLAN information in the management domain。而此 VLAN 信息丢失又可能导致同一 VLAN 中设备间连通性的丢失。所以在将新交换机加入到 LAN 之前,一定要确保其配置修订号被重置到 0
### 使用“show vlan”命令
**Using the "show vlan" Command**
除了在前面几个小节中介绍的那些命令外还有一些用于对VLAN配置进行检查和排错的有用思科IOS软件的命令。最常用到的VLAN检查和排错命令之一就是`show vlan`命令了。该命令显示管理域内所有VLANs的参数如下面的输出所示。
除了在前面几个小节中介绍的那些命令外,还有一些用于对 VLAN 配置进行检查和排错的有用思科 IOS 软件的命令。最常用到的 VLAN 检查和排错命令之一就是`show vlan`命令了。该命令显示管理域内所有 VLANs 的参数,如下面的输出所示。
```console
Cat-3550-1#show vlan
@ -722,7 +722,7 @@ Primary Secondary Type Ports
------- --------- ----------------- -------------------------------
```
该命令打印出所有可用的VLANs以及所分配到每个单独VLANs的那些端口。该命令的输出所包含的端口仅是接入端口且不管这些端口是否开启或宕掉都会显示出来。该命令输出不包括中继链路因为这些输出属于所有所有VLANs。`show vlan`命令还提供了RSPAN(Remote Switch Port ANalyser, 远程交换机端口分析器) VLANs, 以及交换机上私有VLANPrivate VLAN, PVLAN 这是一个CCNP考点的信息。`show vlan`命令还可以带上一些额外关键字来使用,以提供更具体的信息。下面的输出显示了可与该命令一起使用的所支持的附加关键字。
该命令打印出所有可用的 VLANs ,以及所分配到每个单独 VLANs 的那些端口。该命令的输出所包含的端口仅是接入端口,且不管这些端口是否开启或宕掉,都会显示出来。该命令输出不包括中继链路,因为这些输出属于所有所有 VLANs 。`show vlan`命令还提供了RSPAN(Remote Switch Port ANalyser, 远程交换机端口分析器) VLANs, 以及交换机上私有 VLAN Private VLAN, PVLAN 这是一个 CCNP 考点)的信息。`show vlan`命令还可以带上一些额外关键字来使用,以提供更具体的信息。下面的输出显示了可与该命令一起使用的所支持的附加关键字。
```console
Cat-3550-1#show vlan ?
@ -736,7 +736,7 @@ summary VLAN summary information
| Output modifiers<cr>
```
`brief`字段打印所有活动VLANs的简要信息。此命令的输出与上面的相同唯一的区别就是省掉了后两个部分。`id`字段提供了和`show vlan`一样的信息但如下面的输出所示只包含特定VLAN的信息。
`brief`字段打印所有活动 VLANs 的简要信息。此命令的输出与上面的相同,唯一的区别就是省掉了后两个部分。`id`字段提供了和`show vlan`一样的信息,但如下面的输出所示,只包含特定 VLAN 的信息。
```console
Switch-1#show vlan id 150
@ -760,16 +760,16 @@ Primary Secondary Type Ports
------- --------- ----------------- --------------------------------
```
VLAN与属于该VLAN的接入端口一样再度包含在了输出中。中继端口因为是属于所有VLANs而不包含在输出中。额外信息包括了VLAN MTU、RSPAN配置如适用以及PVLAN配置参数如适用
VLAN与属于该 VLAN 的接入端口一样,再度包含在了输出中。中继端口因为是属于所有 VLANs 而不包含在输出中。额外信息包括了VLAN MTU、 RSPAN 配置(如适用),以及 PVLAN 配置参数(如适用)。
`name`字段允许指定VLAN名称而不是其ID。该命令打印与`show vlan id <number>`命令同样的信息。`ifindex`字段现实VLAN的SNMP IfIndex(如适用),而`private-vlan`及`remote-span`字段打印相应的PVLAN及RSPAN配置信息。最后, `summary`字段打印管理域the management domain中活动的VLANs数目的一个汇总信息。活动VLANs包括了标准和扩展VLANs。
`name`字段允许指定 VLAN 名称而不是其 ID 。该命令打印与`show vlan id <number>`命令同样的信息。`ifindex`字段现实 VLAN 的SNMP IfIndex(如适用),而`private-vlan`及`remote-span`字段打印相应的 PVLAN RSPAN 配置信息。最后, `summary`字段打印管理域the management domain中活动的 VLANs 数目的一个汇总信息。活动 VLANs 包括了标准和扩展 VLANs
带上或不带参数的`show vlan`命令,在排错过程的以下方面,都是最为有用的命令。
- 确认设备上所配置的VLANs
- 判定端口成员关系
另一个有用的VLAN排错命令就是`show vtp counters`。该命令打印有关VTP数据包统计的信息。以下是在某台配置为VTP服务器的交换机上`show vtp counters`的输出。
另一个有用的 VLAN 排错命令,就是`show vtp counters`。该命令打印有关 VTP 数据包统计的信息。以下是在某台配置为 VTP 服务器的交换机上,`show vtp counters`的输出。
```console
Cat-3550-1#show vtp counters
@ -792,35 +792,35 @@ Fa0/11 0 1 0
Fa0/12 0 1 0
```
`show vtp counters`命令打印输出的前六行提供了三种类型VTP数据包的统计信息通告请求advertisement requests、汇总通告summary advertisements以及子集通告subset advertisements。随后小节将对这些不同报文进行讲解。
`show vtp counters`命令打印输出的前六行,提供了三种类型 VTP 数据包的统计信息通告请求advertisement requests、汇总通告summary advertisements以及子集通告subset advertisements。随后小节将对这些不同报文进行讲解。
**VTP通告请求**是对配置信息的请求。这些报文是由VTP客户端发出给VTP服务器用以请求其没有的VLAN及VTP信息。在交换机重置、VTP域名称改变或交换机接收到一条带有比其自身更高的配置修订号的VTP汇总通告帧时客户端交换机便发出一条VTP通告请求报文。VTP服务器应仅显示接收计数器增长而所有VTP客户端都应只显示发送计数器增长。
**VTP通告请求**是对配置信息的请求。这些报文是由 VTP 客户端发出给 VTP 服务器,用以请求其没有的 VLAN VTP 信息。在交换机重置、 VTP 域名称改变,或交换机接收到一条带有比其自身更高的配置修订号的 VTP 汇总通告帧时,客户端交换机便发出一条 VTP 通告请求报文。 VTP 服务器应仅显示接收计数器增长,而所有 VTP 客户端都应只显示发送计数器增长。
**VTP汇总通告**是由服务器默认每隔5分钟发出的。这些报文类型用于告知邻接交换机当前VTP域名称、配置修订号及VLAN配置状态及包括时间戳、MD5散列值及子网数目通告等其它VTP信息VTP summary advertisements are used to tell an adjacent switch of the current VTP domain name, the configuration revision number and the status of the VLAN configuration, as well as other VTP information, which includes the time stamp, the MD5 hash, and the number of subnet advertisements to follow。而如果服务器上的这些计数器在增长那么在VTP域中就有不知一台交换机充当或配置为VTP服务器。
**VTP汇总通告**是由服务器默认每隔 5 分钟发出的。这些报文类型用于告知邻接交换机当前 VTP 域名称、配置修订号及 VLAN 配置状态,及包括时间戳、 MD5 散列值及子网数目通告等其它 VTP 信息VTP summary advertisements are used to tell an adjacent switch of the current VTP domain name, the configuration revision number and the status of the VLAN configuration, as well as other VTP information, which includes the time stamp, the MD5 hash, and the number of subnet advertisements to follow。而如果服务器上的这些计数器在增长那么在 VTP 域中就有不知一台交换机充当或配置为 VTP 服务器。
**VTP子集通告**是由VTP服务器在某个VLAN配置改变时比如有VLAN被加入、中止、改变、删除或其它VLAN指定参数比如VLAN的MTU等发生变化时所发出的。在VTP汇总通告之后会有一或更多的子集通告发出。而一条子集通告包含了一个VLAN信息清单。而如果涉及多个VLANs就需要多于一条的子集通告以实现对所有VLANs的通告。
**VTP子集通告**是由 VTP 服务器在某个 VLAN 配置改变时,比如有 VLAN 被加入、中止、改变、删除或其它 VLAN 指定参数(比如 VLAN MTU 等)发生变化时所发出的。在 VTP 汇总通告之后,会有一或更多的子集通告发出。而一条子集通告包含了一个 VLAN 信息清单。而如果涉及多个 VLANs ,就需要多于一条的子集通告,以实现对所有 VLANs 的通告。
字段`Number of config revision errors`显示了交换机因其接收到带有相同配置修订号却有着不同MD5散列值的数据包而无法接受的通告数目。在同一VTP域中有两台以上的服务器交换机上的VTP信息同时发生变动且*中间交换机*(an intermediate switch)于同一时间接收到来自这些服务器的通告时这是常见会发生的。此概念在下图15.3中进行了演示,该图演示了一个基本的交换网络。
字段`Number of config revision errors`显示了交换机因其接收到带有相同配置修订号,却有着不同 MD5 散列值的数据包,而无法接受的通告数目。在同一 VTP 域中有两台以上的服务器交换机上的 VTP 信息同时发生变动,且*中间交换机*(an intermediate switch)于同一时间接收到来自这些服务器的通告时这是常见会发生的。此概念在下图15.3中进行了演示,该图演示了一个基本的交换网络。
![配置修订号错误的排错](images/1503.png)
*图15.3 -- 配置修订号错误的排错*
图15.3演示了一个结合了冗余和负载均衡incorporates redundancy and load sharing的基本网络。应假设Sw1和Sw2都是配置成的VTP服务器而Sw3是配置成的VTP客户端。Sw1是VLANs 10及30的根交换机同时Sw2是VLANs 20及40的根交换机。假设在Sw1和Sw2上同时应用了改变将VLAN 50加入到了Sw1, VLAN 60加入到了Sw2。在数据库的改变之后两台交换机都发出一条通告。
图15.3演示了一个结合了冗余和负载均衡incorporates redundancy and load sharing的基本网络。应假设 Sw1 Sw2 都是配置成的 VTP 服务器,而 Sw3 是配置成的 VTP 客户端。 Sw1 是VLANs 10及 30 的根交换机,同时 Sw2 是VLANs 20及 40 的根交换机。假设在 Sw1 Sw2 上同时应用了改变将VLAN 50加入到了Sw1, VLAN 60加入到了 Sw2 。在数据库的改变之后两台交换机都发出一条通告。
变动在域中传播覆写其它接收到该信息交换机先前的数据库。假设Sw5同时接收到来自邻居的同样信息同时接收到的两条通告都包含了同样配置修订号。那么在此情况下该交换机就无法接受这两条通告因为它们有着同样配置修订号但却有着不同的MD5散列值。
变动在域中传播,覆写其它接收到该信息交换机先前的数据库。假设 Sw5 同时接收到来自邻居的同样信息,同时接收到的两条通告都包含了同样配置修订号。那么在此情况下,该交换机就无法接受这两条通告,因为它们有着同样配置修订号,但却有着不同的 MD5 散列值。
当这种情况发生时,交换机就将`Number of config revision errors counter`字段加一同时不更新其VLANs数据库。而这种情况可能导致一个或多个VLANs中连通性的丢失因为在该交换机上的VLAN信息没有得到更新。为解决此问题并确保该交换机上的本地数据库保持更新就要在其中一台服务器交换机上配置一个虚构的VLANa dummy vlan这样就导致对所有交换机本地数据库的覆写从而允许Sw5也更新其数据库。切记这并不是一种常见现象this is not a common occurance; 但还是可能发生,因此,这里将这么多也是有必要的。
当这种情况发生时,交换机就将`Number of config revision errors counter`字段加一,同时不更新其 VLANs 数据库。而这种情况可能导致一个或多个 VLANs 中连通性的丢失,因为在该交换机上的 VLAN 信息没有得到更新。为解决此问题并确保该交换机上的本地数据库保持更新,就要在其中一台服务器交换机上配置一个虚构的 VLAN a dummy vlan这样就导致对所有交换机本地数据库的覆写从而允许 Sw5 也更新其数据库。切记这并不是一种常见现象this is not a common occurance; 但还是可能发生,因此,这里将这么多也是有必要的。
在交换机接收到一条带有与其计算出的MD5散列值不一致的MD5散列值的通告时`Number of config digest errors counter`字段就会增长。这是在交换机上配置了不同VTP密码的结果。可使用`show vtp password`命令检查所配置的VTP密码是正确的。同样重要的是记住在密码一致时硬件或软件的问题或缺陷也会造成VTP数据包的数据错误从而也会导致这样的错误出现。
在交换机接收到一条带有与其计算出的 MD5 散列值不一致的 MD5 散列值的通告时,`Number of config digest errors counter`字段就会增长。这是在交换机上配置了不同 VTP 密码的结果。可使用`show vtp password`命令检查所配置的 VTP 密码是正确的。同样重要的是记住在密码一致时,硬件或软件的问题或缺陷也会造成 VTP 数据包的数据错误,从而也会导致这样的错误出现。
最后,字段`VTP pruning statistics`将只在VTP域的VLAN修剪开启时才会包含非零值。**修剪是在服务器上开启的同时该配置在该VTP域中得以传播。**在某VTP域的修剪开启时服务器将接收来自客户端的Join报文the VTP Join messagespruning is enabled on servers and this configuration is propagated throughtout the VTP domain. Servers will receive joins from clients when pruning has been enabled for the VTP domain, [VTP pruning, InformIT](pdfs/VTP-Pruning_InformIT.pdf))。
最后,字段`VTP pruning statistics`将只在 VTP 域的 VLAN 修剪开启时,才会包含非零值。**修剪是在服务器上开启的,同时该配置在该 VTP 域中得以传播。**在某 VTP 域的修剪开启时,服务器将接收来自客户端的 Join 报文the VTP Join messagespruning is enabled on servers and this configuration is propagated throughtout the VTP domain. Servers will receive joins from clients when pruning has been enabled for the VTP domain, [VTP pruning, InformIT](pdfs/VTP-Pruning_InformIT.pdf))。
![VTP Join报文及VTP修剪](images/03fig15.gif)
![VTP Join报文及 VTP 修剪](images/03fig15.gif)
*VTP Join报文及VTP修剪*
*VTP Join报文及 VTP 修剪*
## 第15天问题
## 第 15 天问题
1. What is the colour of the system LED under normal system operations?
2. What is the colour of the RPS LED during a fault condition?
@ -834,7 +834,7 @@ Fa0/12 0 1 0
10. Which command prints a brief status of all active VLANs?
## 第15天答案
## 第 15 天答案
1. Green.
2. Amber.
@ -847,13 +847,13 @@ Fa0/12 0 1 0
9. `show interfaces [name] counters errors`.
10. The `show vlan brief`command.
## 第15天实验
## 第 15 天实验
### 一层排错实验
在真实设备上对本模块中提到的一层排错相关命令进行测试。
- 如同模块中所讲解的那样检查不同场景下交换机系统及端口LED状态
- 如同模块中所讲解的那样,检查不同场景下交换机系统及端口 LED 状态
- 执行一下`show interface`命令,并对本模块中所说明的有关信息进行查证
- 对`show controllers`及`show interface counters errors`进行同样的执行
@ -861,8 +861,8 @@ Fa0/12 0 1 0
在真实设备上对本模块中提到的二层排错相关命令进行测试。
- 在交换机之间配置VTP并将一些VLANs从VTP服务器通告到VTP客户端查看第三天的VTP实验
- 在两台交换机之间配置一条中继链路并生成一些流量ping操作
- 在交换机之间配置 VTP ,并将一些 VLANs VTP 服务器通告到 VTP 客户端(查看第三天的 VTP 实验)
- 在两台交换机之间配置一条中继链路,并生成一些流量( ping 操作)
- 测试`show vlan`命令
- 测试`show interface counters trunk`命令
- 测试`show interface switchport`命令

View File

@ -1,4 +1,4 @@
# 第31天 生成树协议
# 第 31 天 生成树协议
**Spanning Tree Protocol**
@ -16,28 +16,28 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第31天任务
## 第 31 天任务
- 阅读今天的课文
- 完成今天的实验
- 阅读ICND2记诵指南
- 在[subneting.org](http://subnetting.org/)上花15分钟
- 阅读 ICND2 记诵指南
- 在[subneting.org](http://subnetting.org/)上花 15 分钟
生成树协议Spanning Tree Protocol, STP的作用, 是在具备冗余的交换网络拓扑中,允许存在多条物理链路的同时, 通过建立一个无循环逻辑拓扑阻止网络上循环的发生the role of Spanning Tree Protocol(STP) is to prevent loops from occuring on your network by creating a loop-free logical topology, while allowing physical links in redundant switched network topologies。随着网络中所用到交换机数量的急剧增加以及传播VLAN信息的主要目的下围绕网络数据帧无尽循环问题开始出现。
生成树协议Spanning Tree Protocol, STP的作用, 是在具备冗余的交换网络拓扑中,允许存在多条物理链路的同时, 通过建立一个无循环逻辑拓扑阻止网络上循环的发生the role of Spanning Tree Protocol(STP) is to prevent loops from occuring on your network by creating a loop-free logical topology, while allowing physical links in redundant switched network topologies。随着网络中所用到交换机数量的急剧增加以及传播 VLAN 信息的主要目的下,围绕网络数据帧无尽循环问题开始出现。
先前CCNA考试仅要求对STP有基本理解。但当前版本则希望对此方面有极好的掌握。
先前 CCNA 考试仅要求对 STP 有基本理解。但当前版本则希望对此方面有极好的掌握。
今天将学习以下内容。
- STP的需求the need of STP
- STP桥IDSTP Bridge ID
- STP桥 ID STP Bridge ID
- STP根桥选举STP Root Bridge election
- STP开销及优先级STP cost and priority
- STP根及指定端口STP Root and Designated Ports
- STP增强STP enhancements
- STP排错Troubleshooting STP
本课对应了以下CCNA大纲要求。
本课对应了以下 CCNA 大纲要求。
+ PVSTP运作的配置和验证configure and verify PVSTP operation
- 对根桥选举进行描述, describe root bridge election
@ -47,7 +47,7 @@ ___
**The Need for STP**
STP是在IEEE 802.1D标准中定义的。为维护起一个无循环逻辑拓扑,交换机**每两秒**传递桥协议数据单元Bridge Protocol Data Units, BPDUs。BPDUs是一些在生成树拓扑中用到、用于传递有关端口、地址、优先级及开销等信息的数据报文。**BPDUs被打上VLAN ID标签。**
STP是在IEEE 802.1D标准中定义的。为维护起一个无循环逻辑拓扑,交换机**每两秒**传递桥协议数据单元Bridge Protocol Data Units, BPDUs BPDUs 是一些在生成树拓扑中用到、用于传递有关端口、地址、优先级及开销等信息的数据报文。**BPDUs被打上VLAN ID标签。**
下图31.1显示了网络中循环是如何能创建出来的。因为各台交换机都学到VLAN 20, 同时这些交换机也将其能达到VLAN 20的情况通告给其它交换机。很快所有交换机都认为其是VLAN 20流量的源且造成了一个循环因此所有以VLAN 20为目的地的帧将自一台交换机往另一台不停传递。
@ -55,39 +55,39 @@ STP是在IEEE 802.1D标准中定义的。为维护起一个无循环逻辑拓扑
*图31.1 -- 循环是如何建立的*
STP运行着一种算法用于根据所考虑的特定VLAN决定出哪些端口保持开放或活动以及哪些端口需要对特定VLAN关闭。
STP运行着一种算法用于根据所考虑的特定 VLAN ,决定出哪些端口保持开放或活动,以及哪些端口需要对特定 VLAN 关闭。
**位处生成树域中的所有交换机都使用BPDUs来沟通和交换报文。**STP利用BPDUs的交换来确定网络拓扑而网络拓扑则是由以下三个变量决定的。
**位处生成树域中的所有交换机,都使用 BPDUs 来沟通和交换报文。**STP利用 BPDUs 的交换,来确定网络拓扑,而网络拓扑则是由以下三个变量决定的。
- 与各台交换机相关联的唯一MAC地址交换机识别符the unique MAC address(switch identifier) that is associated with each switch
- 与各台交换机相关联的唯一 MAC 地址交换机识别符the unique MAC address(switch identifier) that is associated with each switch
- 各个交换机端口到根桥的路径开销the path cost to the Root Bridge associated with each switch port
- 各个交换机端口的端口识别符该端口的MAC地址the port identifier(MAC address of the port) associated with each switch port
- 各个交换机端口的端口识别符(该端口的 MAC 地址the port identifier(MAC address of the port) associated with each switch port
BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测及拓扑信息交换。BPDUs的两个类型分别是**配置BPDUs**及**拓扑变化通知BPDUs**Configuration BPDUs and Topology Change Notification BPDUs; 这里只会对配置BPDUs进行说明。
BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测及拓扑信息交换。 BPDUs 的两个类型分别是**配置BPDUs**及**拓扑变化通知BPDUs**Configuration BPDUs and Topology Change Notification BPDUs; 这里只会对配置 BPDUs 进行说明。
## IEEE 802.1D的配置BPDUs
**IEEE 802.1D Configuration BPDUs**
配置BPDUs是由LAN交换机发出用于就生成树拓扑进行通信和计算。在交换机端口初始化后该端口被置为阻塞状态同时一个BPDU被发送给交换机中的所有端口。**默认情况下直到其与其它交换机进行配置BPDUs的交换为止所有交换机最初都假定其为生成树的根。**在某端口仍将其自身配置BPDUs视为最具吸引力the most attractive其就会持续发送配置BPDUs。这些交换机基于以下4个因素以列出顺序确定出最佳配置BPDUthe best Configuration BPDU
配置 BPDUs 是由 LAN 交换机发出,用于就生成树拓扑进行通信和计算。在交换机端口初始化后,该端口被置为阻塞状态,同时一个 BPDU 被发送给交换机中的所有端口。**默认情况下,直到其与其它交换机进行配置 BPDUs 的交换为止,所有交换机最初都假定其为生成树的根。**在某端口仍将其自身配置 BPDUs 视为最具吸引力the most attractive其就会持续发送配置 BPDUs 。这些交换机基于以下 4 个因素(以列出顺序),确定出最佳配置 BPDU the best Configuration BPDU
1. 有着最低的根桥ID的, lowest Root Bridge ID
1. 有着最低的根桥 ID 的, lowest Root Bridge ID
2. 有着到根桥最低根路径开销的lowest Root path cost to Root Bridge
3. 有着最低发送者桥ID的lowest sender Bridge ID
3. 有着最低发送者桥 ID lowest sender Bridge ID
4. 有着最低发送者端口ID的lowest sender Port ID
4. 有着最低发送者端口 ID lowest sender Port ID
配置BPDU交换的完成导致以下动作。
配置 BPDU 交换的完成,导致以下动作。
- 选举出整个生成树域的根桥, a Root Switch is elected for the entire Spanning Tree domain
- 选举出生成树域中所有非根交换机上的根端口a Root Port is elected on every Non-Root Switch in the Spanning Tree domain
- 选举出所有LAN网段中的指定交换机a Designated Switch is elected for every LAN segment
- 选举出所有 LAN 网段中的指定交换机a Designated Switch is elected for every LAN segment
- 选举出所有网段的指定交换机的指定端口(根交换机上的所有活动端口也都是指定端口)a Designated Port is elected on the Designated Switch for every segment(all active ports on the Root Switch are also designated)
@ -95,47 +95,47 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
> **注意:** 随着逐步深入本模块内容,这些特性将会一一介绍。
一旦所有交换机端口都处于转发或阻塞状态生成树网络the Spanning Tree network就完成了收敛, 此时配置BPDUs就由根桥以默认每两秒的间隔发出。这就是**配置BPDUs的发端**。配置BPDUs通过根桥上的指定端口转发到下游邻居交换机this is referred to as the origination of Configuration BPDUs. The Configuration BPDUs are forwarded to downstream neighboring switches via the Designated Port on the Root Bridge
一旦所有交换机端口都处于转发或阻塞状态生成树网络the Spanning Tree network就完成了收敛, 此时配置 BPDUs 就由根桥以默认每两秒的间隔发出。这就是**配置 BPDUs 的发端**。配置 BPDUs 通过根桥上的指定端口转发到下游邻居交换机this is referred to as the origination of Configuration BPDUs. The Configuration BPDUs are forwarded to downstream neighboring switches via the Designated Port on the Root Bridge
当非根桥a Non-Root Bridge在其提供了到根桥最优路径的根端口上接收到一个配置BPDU时就会通过其指定端口发送出一个该BPDU的更新版本。这就是**BPDUs的传播**when a Non-Root Bridge receives a Configuration BPDU on its Root Port, which is the port that provides the best path to the Root Bridge, it sends an updated version of the BPDU via its Designated Port(s). This is referred to as the propagation of BPDUs
当非根桥a Non-Root Bridge在其提供了到根桥最优路径的根端口上接收到一个配置 BPDU 时,就会通过其指定端口,发送出一个该 BPDU 的更新版本。这就是**BPDUs的传播**when a Non-Root Bridge receives a Configuration BPDU on its Root Port, which is the port that provides the best path to the Root Bridge, it sends an updated version of the BPDU via its Designated Port(s). This is referred to as the propagation of BPDUs
**指定端口**则是**指定交换机**上在转发来自那个LAN网段的数据包到根桥时有着最低路径开销的端口**the Designated Port** is a port on **the Designated Switch** that has the lowest cost when forwarding packets from that LAN segment to the Root Bridge
**指定端口**则是**指定交换机**上,在转发来自那个 LAN 网段的数据包到根桥时,有着最低路径开销的端口(**the Designated Port** is a port on **the Designated Switch** that has the lowest cost when forwarding packets from that LAN segment to the Root Bridge
一旦生成树网络得以收敛便总是会有自根桥传输给STP域内其它交换机的一个配置BPDU在传送。而要记住在生成树网络完成收敛后的配置BPDUs数据流的最简单方法就是记住以下4条规则。
一旦生成树网络得以收敛,便总是会有自根桥传输给 STP 域内其它交换机的一个配置 BPDU 在传送。而要记住在生成树网络完成收敛后的配置 BPDUs 数据流的最简单方法,就是记住以下 4 条规则。
1. 配置BPDUs是从根桥发出且通过指定端口发送的, a Configuration BPDU originates on the Root Bridge and is sent via the Designated Port
1. 配置 BPDUs 是从根桥发出且通过指定端口发送的, a Configuration BPDU originates on the Root Bridge and is sent via the Designated Port
2. 配置BPDUs是由非根桥的根端口上接收的a Configuration BPDU is received by a Non-Root Bridge on a Root Port
2. 配置 BPDUs 是由非根桥的根端口上接收的a Configuration BPDU is received by a Non-Root Bridge on a Root Port
3. 配置BPDU是由非根桥的指定端口上传送的a Configuration BPDU is transmitted by a Non-Root Bridge on a Designated Port
3. 配置 BPDU 是由非根桥的指定端口上传送的a Configuration BPDU is transmitted by a Non-Root Bridge on a Designated Port
4. 在所有单个LAN区段上都只有一个指定端口在某台指定交换机上there is only one Designated Port (on a Designated Switch) on any single LAN segment
4. 在所有单个 LAN 区段上都只有一个指定端口在某台指定交换机上there is only one Designated Port (on a Designated Switch) on any single LAN segment
下图31.2演示了该STP域中的配置BPDU数据流对上面列出的4条简单规则进行了说明。
下图31.2演示了该 STP 域中的配置 BPDU 数据流,对上面列出的 4 条简单规则进行了说明。
![STP域中的配置BPDU数据流](images/3102.png)
![STP域中的配置 BPDU 数据流](images/3102.png)
*图31.2 -- STP域中的配置BPDU数据流*
*图31.2 -- STP域中的配置 BPDU 数据流*
1. 参考图31.2, 该配置BPDU源自根桥且是通过根桥上的指定端口发送出来前往那些非根桥交换机也就是Switch 2和Switch 3。
1. 参考图31.2, 该配置 BPDU 源自根桥且是通过根桥上的指定端口发送出来前往那些非根桥交换机也就是Switch 2和Switch 3。
2. 非根桥Switch 2和Switch 3在其有着到根桥最优路径的根端口上接收到配置BPDU。
2. 非根桥Switch 2和Switch 3在其有着到根桥最优路径的根端口上接收到配置 BPDU
3. Switch 2和Switch 3对接收到的配置BPDU进行修改更新让后在其指定端口上转发出去。**Switch 2就是该LAN网段上其自身及Switch 4的指定交换机Switch 3是该LAN网段上其自身及Switch 5的指定交换机。**而存在于指定交换机上的指定端口则是在转发来自该LAN区段数据包到根交换机时有着最低路径开销的端口。
3. Switch 2和Switch 3对接收到的配置 BPDU 进行修改(更新),让后在其指定端口上转发出去。**Switch 2就是该 LAN 网段上其自身及Switch 4的指定交换机Switch 3是该 LAN 网段上其自身及Switch 5的指定交换机。**而存在于指定交换机上的指定端口,则是在转发来自该 LAN 区段数据包到根交换机时,有着最低路径开销的端口。
4. **在Switch 4和Switch 5之间的LAN网段上**Switch 4被选举为指定交换机同时指定端口也处于其上。因为在一个网段上只能有一台指定交换机所以Switch 4和Switch 5之间网段上Switch 5的端口就被阻塞掉了。该端口将不会转发任何BPDUs。
4. **在Switch 4和Switch 5之间的 LAN 网段上**Switch 4被选举为指定交换机同时指定端口也处于其上。因为在一个网段上只能有一台指定交换机所以Switch 4和Switch 5之间网段上Switch 5的端口就被阻塞掉了。该端口将不会转发任何 BPDUs
## 生成树端口的各种状态
**Spanning Tree Port States**
生成树算法Spanning Tree Algorithm, STA定义了STP控制下端口在进入到活动的转发状态之前需要经历的几种状态。802.1D标准中端口状态有下面这些。
生成树算法Spanning Tree Algorithm, STA定义了 STP 控制下端口在进入到活动的转发状态之前需要经历的几种状态。802.1D标准中端口状态有下面这些。
- 阻塞中 -- 仅接收BPDUs为期20s blocking -- BPDUs received only (20 seconds)
- 阻塞中 -- 仅接收 BPDUs (为期 20s blocking -- BPDUs received only (20 seconds)
- 侦听中 -- 有BPDUs发出和接收为期15slistening -- BPDUs sent and received (15 seconds)
- 侦听中 -- 有 BPDUs 发出和接收(为期 15s listening -- BPDUs sent and received (15 seconds)
- 学习中 -- 桥接表被建立起来为期15slearning -- bridging table is built (15 seconds)
- 学习中 -- 桥接表被建立起来(为期 15s learning -- bridging table is built (15 seconds)
- 转发中 -- 发送/接收数据forwarding -- sending/receiving data
@ -155,13 +155,13 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
在该过程中用到**STP计时器**来控制收敛。
- Hello计时器 -- 2s每个配置BPDU直接的时间
- Hello计时器 -- 2s每个配置 BPDU 直接的时间)
- 转发延迟计数器 -- 15s侦听/控制学习状态的为期Forward Delay -- 15 seconds (controls durations of Listening/Learning states)
- 最大存活时间 -- 20s控制阻塞状态的为期Max Age -- 20 seconds (controls the duration of the Blocking state)
**默认收敛时间是30到50秒。**
**默认收敛时间是 30 50 秒。**
### 生成树阻塞状态
@ -175,9 +175,9 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
- 不将工作站地址放入到其地址数据库中does not incorporate station location into its address database
- 接收BPDUs并将这些BPDUs引导给系统模块receives BPDUs and directs them to the system module
- 接收 BPDUs 并将这些 BPDUs 引导给系统模块receives BPDUs and directs them to the system module
- 不传送自系统模块接收到的BPDUsdoes not transmit BPDUs received from the system module
- 不传送自系统模块接收到的 BPDUs does not transmit BPDUs received from the system module
- 接收网络管理报文并对这些报文进行响应receives and responds to network management messages
@ -185,7 +185,7 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
**Spanning Tree Listening State**
侦听状态是端口在阻塞状态之后所进入的第一个过渡状态。在STP确定端口应参与到帧转发时该端口就进入此状态。处于侦听状态的交换机端口完成以下动作。
侦听状态是端口在阻塞状态之后所进入的第一个过渡状态。在 STP 确定端口应参与到帧转发时,该端口就进入此状态。处于侦听状态的交换机端口完成以下动作。
- 丢弃接收自所连接网段的帧, discards frames received from the attached segment
@ -193,9 +193,9 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
- 不将工作站地址加入到其地址数据库does not incorporate station location into its address database
- 接收BPDUs并将这些BPDUs引导给系统模块receives BPDUs and directs them to the system module
- 接收 BPDUs 并将这些 BPDUs 引导给系统模块receives BPDUs and directs them to the system module
- 接收、处理并传送接收自系统模块的BPDUs在这一点上与阻塞状态有所不同, receives, processes, and transmits BPDUs received from the system module
- 接收、处理并传送接收自系统模块的 BPDUs (在这一点上,与阻塞状态有所不同), receives, processes, and transmits BPDUs received from the system module
- 对网络管理报文进行接收和响应receives and responds to network management messages
@ -203,7 +203,7 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
**Spanning Tree Learning State**
学习状态是端口所进入的第二个过渡状态。此状态在侦听状态之后且在端口进入转发状态之前到来。在此状态中端口学习MAC地址并将学习到的MAC地址装入到其转发表中。处于学习状态的交换机端口完成以下动作。
学习状态是端口所进入的第二个过渡状态。此状态在侦听状态之后,且在端口进入转发状态之前到来。在此状态中,端口学习 MAC 地址并将学习到的 MAC 地址装入到其转发表中。处于学习状态的交换机端口完成以下动作。
- 丢弃接收自所连接网段的帧, discards frames received from the attached segment
@ -211,7 +211,7 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
- 将工作站地址包含安装到其地址数据库这一点与侦听状态有所不同incorporates(installs) station location into its address database
- 接收BPDUs并将这些BPDUs引导给系统模块receives BPDUs and directs them to the system module
- 接收 BPDUs 并将这些 BPDUs 引导给系统模块receives BPDUs and directs them to the system module
- 接收、处理并传送接收自系统模块的BPDUs, receives, processes, and transmits BPDUs received from the system module
@ -229,7 +229,7 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
- 将站点地址信息加入(安装)到其地址数据库
- 接收BPDUs并将这些BPDUs导向给系统模块
- 接收 BPDUs 并将这些 BPDUs 导向给系统模块
- 处理接收自系统模块的BPDUs
@ -240,7 +240,7 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
**Spanning Tree Disabled State**
关闭状态不是端口正常STP进展的部分。而是端口被网络管理员进行管理性关闭或因为某种错误条件而被系统所关闭时就被认为处于关闭状态。关闭的端口完成以下动作。
关闭状态不是端口正常 STP 进展的部分。而是端口被网络管理员进行管理性关闭,或因为某种错误条件而被系统所关闭时,就被认为处于关闭状态。关闭的端口完成以下动作。
- 丢弃接收自所连接网段的数据帧
@ -248,7 +248,7 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
- 不将工作站地址加入其地址数据库
- 接收BPDUs但不将这些BPDUs导向给系统模块
- 接收 BPDUs 但不将这些 BPDUs 导向给系统模块
- 不接收来自系统模块的BPDUs
@ -259,13 +259,13 @@ BPDUs都是每两秒发出的此特性允许实现快速的网络循环探测
**Spanning Tree Bridge ID**
位于某个生成树域中的交换机都有一个用于对其进行唯一性区分的桥IDBridge ID, BID。BID还用于协助完成STP根桥(an STP Root Bridge)的选举STP根桥将在稍后讲到。BID是由一个6字节的MAC地址及2字节的桥优先级a 2-byte Bridge Priority构成的8字节字段。下图31.3演示了BID。
位于某个生成树域中的交换机,都有一个用于对其进行唯一性区分的桥 ID Bridge ID, BID BID 还用于协助完成 STP 根桥(an STP Root Bridge)的选举, STP 根桥将在稍后讲到。 BID 是由一个 6 字节的 MAC 地址及 2 字节的桥优先级a 2-byte Bridge Priority构成的 8 字节字段。下图31.3演示了 BID
![ID格式](images/3103.png)
![ ID 格式](images/3103.png)
*图31.3 -- 桥ID格式*
*图31.3 -- 桥 ID 格式*
**桥优先级是该交换机相对于其它交换机的优先级。**桥优先级取值范围是0到65535。思科Catalyst交换机的默认值为32768。
**桥优先级是该交换机相对于其它交换机的优先级。**桥优先级取值范围是 0 65535 。思科 Catalyst 交换机的默认值为 32768
```console
Switch2#show spanning-tree vlan 2
@ -289,27 +289,27 @@ Fa0/1 128.1 19 FWD 0 32768 0009.7c87.9081 128.13
Fa0/2 128.2 19 FWD 19 32770 0008.21a9.4f80 128.2
```
上面输出中的MAC地址是得自交换机背板或管理引擎的硬件地址the hardware address derived from the switch backplane or supervisor engine 又名为基底MAC地址the base MAC address。**在802.1D标准中每个VLAN都需要一个唯一BID。**
上面输出中的 MAC 地址是得自交换机背板或管理引擎的硬件地址the hardware address derived from the switch backplane or supervisor engine 又名为基底 MAC 地址the base MAC address。**在802.1D标准中,每个 VLAN 都需要一个唯一 BID 。**
大多数思科Catalyst交换机都有一个可用作VLANs的BIDs的、1024个MAC地址的地址池。这些MAC地址被顺序分配也就是该范围中的第一个MAC地址分配给VLAN 1, 第二个给VLAN 2, 第三个给VLAN 3, 以致第四个第五个等等。这样就提供了支持标准范围VLANs的支持能力但要支持扩展范围的VLANs就需要更多的MAC地址。该问题在802.1t802.1D的技术和编辑修正标准中得以解决this issue was resolved in the 802.1t(Technical and Editoral corrections for 802.1D) standard
大多数思科 Catalyst 交换机都有一个可用作 VLANs BIDs 的、 1024 MAC 地址的地址池。这些 MAC 地址被顺序分配,也就是该范围中的第一个 MAC 地址分配给VLAN 1, 第二个给VLAN 2, 第三个给VLAN 3, 以致第四个第五个等等。这样就提供了支持标准范围 VLANs 的支持能力,但要支持扩展范围的 VLANs ,就需要更多的 MAC 地址。该问题在802.1t802.1D的技术和编辑修正标准中得以解决this issue was resolved in the 802.1t(Technical and Editoral corrections for 802.1D) standard
## 生成树根桥选举
**Spanning Tree Root Bridge Election**
默认情况下紧接着初始化之后所有交换机最初都假定它们是生成树的根直到它们与其他交换机交换BPDUs为止。在交换机交换BPDUs时就举行一次选举而**网络中有着最低桥ID的交换机就被选举为STP根桥**(the STP Root Bridge)。如有两台或更多交换机有着相同的优先级则选取有着最低顺序MAC地址的交换机作为根桥。下图31.4对此概念进行了演示。
默认情况下,紧接着初始化之后,所有交换机最初都假定它们是生成树的根,直到它们与其他交换机交换 BPDUs 为止。在交换机交换 BPDUs 时,就举行一次选举,而**网络中有着最低桥 ID 的交换机就被选举为 STP 根桥**(the STP Root Bridge)。如有两台或更多交换机有着相同的优先级,则选取有着最低顺序 MAC 地址的交换机作为根桥。下图31.4对此概念进行了演示。
![STP根桥的选举](images/3104.png)
*图31.4 -- STP根桥的选举*
在图31.4中,四台交换机--Switch 1、Switch 2、Switch 3及Switch 4, 处于同一STP域中。默认所有交换机都有着桥优先级32768。为确定哪台交换机将成为根桥并由此打破不分胜负的局面STP将基于最低顺序MAC地址选择出根桥交换机in order to determine which switch will become the Root Bridge, and thus break the tie, STP will select the switch based on the lowest-order MAC address。那么基于此标准并参考图31.4给出的信息Switch 1将被选举为根桥。
在图31.4中,四台交换机--Switch 1、Switch 2、Switch 3及Switch 4, 处于同一 STP 域中。默认所有交换机都有着桥优先级 32768 。为确定哪台交换机将成为根桥,并由此打破不分胜负的局面, STP 将基于最低顺序 MAC 地址选择出根桥交换机in order to determine which switch will become the Root Bridge, and thus break the tie, STP will select the switch based on the lowest-order MAC address。那么基于此标准并参考图31.4给出的信息Switch 1将被选举为根桥。
一旦选定,根桥就成为生成树网络的逻辑中心。这并不是说根桥位处该网络的物理中心。确保不要做出那样的错误假设。
> **注意:** 重要的是记住在STP根桥选举期间是没有流量在该相同STP域上转发的。
> **注意:** 重要的是记住在 STP 根桥选举期间,是没有流量在该相同 STP 域上转发的。
**思科IOS软件允许管理员对根桥选举施加影响。**此外,管理员**也可以配置一台备份根桥**adminitrator can also configure a backup Root Bridge。备份根桥是一台管理员优先选择、在当前根桥失效或从网络中移除时成为根桥的交换机。
**思科 IOS 软件允许管理员对根桥选举施加影响。**此外,管理员**也可以配置一台备份根桥**adminitrator can also configure a backup Root Bridge。备份根桥是一台管理员优先选择、在当前根桥失效或从网络中移除时成为根桥的交换机。
**为生成树域配置一台备份根桥交换机,始终是好的做法。**这样做允许在根桥失效时网络具有确定性。最常见的做法就是在根桥上配置最高的优先级也就是优先级为最低数值并将第二高的优先级配置在当前根桥失效时作为根桥的备份交换机上。下图31.5对此进行了演示。
@ -317,9 +317,9 @@ Fa0/2 128.2 19 FWD 19 32770 0008.21a9.4f80 128.2
*图31.5 -- STP根桥选举*
基于图31.5中的配置最有可能被选举作为根桥的交换机是Switch 1。这是因为尽管所有优先级都一样但该交换机有着最低顺序的MAC地址。而假如Switch 1失效STP就会选举Switch 2作为根桥因为它有着第二低的MAC地址。但是这将导致一个次优的网络拓扑however, this would result in a suboptimal network topology
基于图31.5中的配置最有可能被选举作为根桥的交换机是Switch 1。这是因为尽管所有优先级都一样但该交换机有着最低顺序的 MAC 地址。而假如Switch 1失效 STP 就会选举Switch 2作为根桥因为它有着第二低的 MAC 地址。但是这将导致一个次优的网络拓扑however, this would result in a suboptimal network topology
为解决此问题管理员可手动修改Switch 1上的优先级到可能的最低值0, 以及Switch 2的优先级到可能的第二低优先级值4096。这样做将确保在根桥Switch 1失效时Switch 2被选举为根桥。因为管理员知道网络拓扑并了解哪台交换机将承担根桥功能那么就建立了一个具有确定性、更容易排错的网络。**根IDthe Root ID承载于BPDUs中包含了根桥的桥优先级及MAC地址。**
为解决此问题管理员可手动修改Switch 1上的优先级到可能的最低值 0 , 以及Switch 2的优先级到可能的第二低优先级值 4096 。这样做将确保在根桥Switch 1失效时Switch 2被选举为根桥。因为管理员知道网络拓扑并了解哪台交换机将承担根桥功能那么就建立了一个具有确定性、更容易排错的网络。**根 ID the Root ID承载于 BPDUs 中,包含了根桥的桥优先级及 MAC 地址。**
**考试技巧:**如要强制某台交换机成为根桥可执行下面的命令同时参见下图31.6)。
@ -364,7 +364,7 @@ Address 0000.0000.000d
Bridge ID Priority 4096 (priority 8192 sys-id-ext 5)
```
注意到VLAN编号通常会被加到优先级数字上如下面的输出展示的那样。
注意到 VLAN 编号通常会被加到优先级数字上,如下面的输出展示的那样。
```console
SwitchA#show spanning-tree vlan 5
@ -390,9 +390,9 @@ Fa0/18 Desg FWD 19 128.18 P2
**Spanning Tree Port Cost**
802.1D规格分配16位短整数基于端口带宽的默认端口开销值给每个端口。因为管理员同时有着手动分配端口开销值1和65535之间的能力所以该16位值就只用在那些未有具体配置了端口开销的端口。下表31.1列出了在应用短整数方式计算端口开销时各种类型端口的默认值。
802.1D规格分配 16 位(短整数)基于端口带宽的默认端口开销值给每个端口。因为管理员同时有着手动分配端口开销值( 1 65535 之间)的能力,所以该 16 位值就只用在那些未有具体配置了端口开销的端口。下表31.1列出了在应用短整数方式计算端口开销时各种类型端口的默认值。
*表 31.1 -- 默认STP端口开销值*
*表 31.1 -- 默认 STP 端口开销值*
<table>
<tr><th>带宽</th><th>默认端口开销</th></tr>
@ -404,7 +404,7 @@ Fa0/18 Desg FWD 19 128.18 P2
<tr><td>10Gbps</td><td>2</td></tr>
</table>
在思科IOS Catalyst交换机中可通过执行`show spanning-tree interface [name]`查看默认端口开销值如下面的输出中演示的那样该输出展示了一个FastEthernet接口的默认短整数端口开销。
在思科IOS Catalyst交换机中可通过执行`show spanning-tree interface [name]`查看默认端口开销值,如下面的输出中演示的那样,该输出展示了一个 FastEthernet 接口的默认短整数端口开销。
```console
@ -430,7 +430,7 @@ VLAN0050 Desg FWD 200000 128.2 P2p
**Spanning Tree Root and Designated Ports**
STP选举出两种类型用于转发BPDUs的端口指向根桥的根端口以及指向根端口另一边的指定端口STP elects two types of ports that are used to forward BPDUs: the Root Port, which points towards the Root Bridge, and the Designated Port, which points away from the Root Bridge。掌握这两种端口类型的作用及其选举过程十分重要。
STP选举出两种类型用于转发 BPDUs 的端口指向根桥的根端口以及指向根端口另一边的指定端口STP elects two types of ports that are used to forward BPDUs: the Root Port, which points towards the Root Bridge, and the Designated Port, which points away from the Root Bridge。掌握这两种端口类型的作用及其选举过程十分重要。
### 生成树根端口选举
@ -441,29 +441,29 @@ STP选举出两种类型用于转发BPDUs的端口指向根桥的根端口
1. 最低的根桥ID, lowest Root Bridge ID
2. 到根桥的最低根路径开销, lowest Root path cost to Root Bridge
3. 最低的发送方桥ID, lowest sender Bridge ID
4. 最低的发送方端口IDlowest sender Port ID
4. 最低的发送方端口 ID lowest sender Port ID
> **注意:** 为掌握生成树选举及指定出在任何给定情形下不同端口类型,那么重要的是记住这些打破平局的标准了。这些标准不仅要对其进行测试,还要为真实世界中设计、部署及支持互联网络而牢固掌握这个知识点。
生成树**根端口是在该设备将数据包转发到根桥时,提供出最优路径,或最低开销的端口。**也就是说根端口是接收到该交换机的最优BPDU的端口而这又表明了在路径开销上其是到根桥的最短路径。根端口是基于根桥路径开销选举出的。
生成树**根端口是在该设备将数据包转发到根桥时,提供出最优路径,或最低开销的端口。**也就是说,根端口是接收到该交换机的最优 BPDU 的端口,而这又表明了在路径开销上其是到根桥的最短路径。根端口是基于根桥路径开销选举出的。
根桥路径开销又是基于连接到根桥的所有链路的累积开销路径开销计算出的。路径开销是各个端口贡献给根桥开销的数值the path cost is the value that each port contributes to the Root Bridge path cost。因为此概念通常是十分令人困惑在下图31.7中对其进行了演示。
> **注意:** 图31.7中除了一条链路外其它链路都是GigabitEthernet链路。应假定用于端口开销计算的方法是传统的802.1D方法。因此默认GigabitEthernet的端口开销就是4, 同时FastEthernet是19。
> **注意:** 图31.7中除了一条链路外,其它链路都是 GigabitEthernet 链路。应假定用于端口开销计算的方法是传统的802.1D方法。因此,默认 GigabitEthernet 的端口开销就是4, 同时 FastEthernet 19
![生成树根端口选举](images/3107.png)
*图31.7 -- 生成树根端口选举*
> **注意:** 下面的解释对网络中交换机間的BPDUs数据流进行了说明。与其它信息一起这些BPDUs包含了根桥路径开销信息而根桥路径开销在接收交换机上的入站端口处被增加along with other information, these BPDUs contain the Root Bridge path cost information, which is incremented by the ingress port on the receiving switch
> **注意:** 下面的解释对网络中交换机間的 BPDUs 数据流进行了说明。与其它信息一起,这些 BPDUs 包含了根桥路径开销信息而根桥路径开销在接收交换机上的入站端口处被增加along with other information, these BPDUs contain the Root Bridge path cost information, which is incremented by the ingress port on the receiving switch
1. 根桥发出一个带有根桥路径开销值0的BPDU因为其端口直接位于该根桥上。此BPDU发送给Switch 2和Switch 3。
2. 当Switch 2和Switch 3接收到来自根桥的BPDU时它们便基于各自入站借口加上其自己的路径开销。因为Switch 2和Switch 3都是通过GigabitEthernet连接与根桥相连所以它们将从根桥接收到的路径开销值0与它们的GigabitEthernet路径开销值4相加。Switch 2及Switch 3经由GigabitEthernet0/1到根桥的根桥路径开销也就是0+4=4。
3. Switch 2和Switch 3将新的BPDUs送出至其各自的邻居也就是Switch 4和Switch 6。这些BPDUs包含了新的累积值4作为根桥路径开销。
4. 当Switch 4和Switch 6接收到分别来自Switch 2和Switch 3的BPDUs时它们根据入站借口对接收到的**根桥路径开销**予以增长。因为使用的是GigabitEthernet, 从Switch 2和Switch 3接收到的值被加上4。那么在Switch 4和Switch 6上经由其各自GigabitEthernet0/1接口的根桥路径开销就是0+4+4=8。
5. Switch 5接收到两个BPDUs一个来自Switch 4另一个来自Switch 6。接收自Switch 4的BPDU有着根桥路径开销0+4+4+4=12。接收自Switch 6的BPDU有着根桥路径开销0+4+4+19=27。因为包含于接收自Switch 4的BPDU中的根桥路径开销值好于接收自Switch 6的Switch 5将选举GigabitEthernet0/1作为**根端口**the Root Port
1. 根桥发出一个带有根桥路径开销值 0 BPDU ,因为其端口直接位于该根桥上。此 BPDU 发送给Switch 2和Switch 3。
2. 当Switch 2和Switch 3接收到来自根桥的 BPDU 它们便基于各自入站借口加上其自己的路径开销。因为Switch 2和Switch 3都是通过 GigabitEthernet 连接与根桥相连,所以它们将从根桥接收到的路径开销值( 0 )与它们的 GigabitEthernet 路径开销值( 4 相加。Switch 2及Switch 3经由GigabitEthernet0/1到根桥的根桥路径开销也就是0+4=4。
3. Switch 2和Switch 3将新的 BPDUs 送出至其各自的邻居也就是Switch 4和Switch 6。这些 BPDUs 包含了新的累积值( 4 )作为根桥路径开销。
4. 当Switch 4和Switch 6接收到分别来自Switch 2和Switch 3的 BPDUs 时,它们根据入站借口对接收到的**根桥路径开销**予以增长。因为使用的是GigabitEthernet, 从Switch 2和Switch 3接收到的值被加上 4 。那么在Switch 4和Switch 6上经由其各自GigabitEthernet0/1接口的根桥路径开销就是0+4+4=8。
5. Switch 5接收到两个 BPDUs 一个来自Switch 4另一个来自Switch 6。接收自Switch 4的 BPDU 有着根桥路径开销0+4+4+4=12。接收自Switch 6的 BPDU 有着根桥路径开销0+4+4+19=27。因为包含于接收自Switch 4的 BPDU 中的根桥路径开销值好于接收自Switch 6的Switch 5将选举GigabitEthernet0/1作为**根端口**the Root Port
> **注意:** 交换机2、3、4、6都将选举其各自的GigabitEthernet端口作为根端口。
> **注意:** 交换机 2 3 4 6 都将选举其各自的 GigabitEthernet 端口作为根端口。
![tips](images/3100.png)
@ -471,40 +471,40 @@ STP选举出两种类型用于转发BPDUs的端口指向根桥的根端口
**Further Explanation**
为更为细致的进行解释To explain further, 并有助于掌握根端口选举过程假定上图31.7中所有端口都是GigabitEthernet端口。这就意味着在上面的第5布中Switch 5将接收到两个带有相同根桥ID的BPDUs且两个都有着0+4+4+4=12的根路径开销值。为了选举出根端口STP将进入到下面所列出的打破僵局标准的下一选项前两个选项已经用到就被移除了
为更为细致的进行解释To explain further, 并有助于掌握根端口选举过程假定上图31.7中所有端口都是 GigabitEthernet 端口。这就意味着在上面的第 5 布中Switch 5将接收到两个带有相同根桥 ID BPDUs 且两个都有着0+4+4+4=12的根路径开销值。为了选举出根端口 STP 将进入到下面所列出的打破僵局标准的下一选项(前两个选项已经用到,就被移除了)。
1. 最低发送方桥IDlowest sender Bridge ID
2. 最低发送方端口IDlowest sender Port ID
1. 最低发送方桥 ID lowest sender Bridge ID
2. 最低发送方端口 ID lowest sender Port ID
基于第三个选举标准Switch 5将优先使用来自Switch 4的BPDU因为Switch 4的BID0000.0000.000D低于Switch 6的BID0000.0000.000F。Switch 5选出端口GigabitEthernet0/1作为根端口。
基于第三个选举标准Switch 5将优先使用来自Switch 4的 BPDU 因为Switch 4的 BID 0000.0000.000D低于Switch 6的 BID 0000.0000.000F。Switch 5选出端口GigabitEthernet0/1作为根端口。
### 生成树指定端口的选举
**Spanning Tree Designated Port Election**
与根端口不同指定端口是指向与STP根相反方向的端口。该端口是指定设备交换机连接LAN的端口。指定端口同时也是在将来自LAN的数据包转发给根桥时有着最低路径开销的端口。
与根端口不同,指定端口是指向与 STP 根相反方向的端口。该端口是指定设备(交换机)连接 LAN 的端口。指定端口同时也是在将来自 LAN 的数据包转发给根桥时有着最低路径开销的端口。
> **注意:** 一些人将指定端口当作是指定交换机。这两个术语是可以互换的且指的是同一个东西。也就是说这是用于将来自某个特定LAN网段的帧转发到根桥的交换机或端口。
> **注意:** 一些人将指定端口当作是指定交换机。这两个术语是可以互换的,且指的是同一个东西。也就是说,这是用于将来自某个特定 LAN 网段的帧,转发到根桥的交换机,或端口。
**指定端口的主要目的是阻止循环。**在超过一台的交换机连接到同一网段时,所有交换机都将尝试对在那个网段上接收到的某个帧进行转发。这样的默认行为可能导致该帧的多个拷贝被多台交换机同时转发--从而造成网络循环。为避免这种默认行为,**STP在所有网段上都选举出一个指定端口。***这是因为根桥路径开销将始终为0。*STA的指定端口选举过程在下图31.8中进行了演示。
**指定端口的主要目的是阻止循环。**在超过一台的交换机连接到同一网段时,所有交换机都将尝试对在那个网段上接收到的某个帧进行转发。这样的默认行为可能导致该帧的多个拷贝被多台交换机同时转发--从而造成网络循环。为避免这种默认行为,**STP在所有网段上都选举出一个指定端口。***这是因为根桥路径开销将始终为 0 。*STA的指定端口选举过程在下图31.8中进行了演示。
![生成树指定端口选举](images/3108.png)
*图31.8 -- 生成树指定端口选举*
1. 在根桥和Switch 2之间的网段上根桥的GigabitEthernet0/1被选举为指定端口因为该端口有着较低的根桥路径开销0。
1. 在根桥和Switch 2之间的网段上根桥的GigabitEthernet0/1被选举为指定端口因为该端口有着较低的根桥路径开销 0
2. 在根桥和Switch 3之间的网段根桥的GigabitEthernet0/2端口被选举作为指定端口因为其有着较低的根桥路径开销0。
2. 在根桥和Switch 3之间的网段根桥的GigabitEthernet0/2端口被选举作为指定端口因为其有着较低的根桥路径开销 0
3. 在Switch 2和Switch 4之间的网段Switch 2上的GigabitEthernet0/2被选举为指定端口因为Switch 2有着最低的根桥路径开销4。
3. 在Switch 2和Switch 4之间的网段Switch 2上的GigabitEthernet0/2被选举为指定端口因为Switch 2有着最低的根桥路径开销 4
4. 在Switch 3和Switch 6之间的网段Switch 3上的GigabitEthernet0/2端口被选举为指定端口因为Switch 3有着最低的根桥路径开销4。
4. 在Switch 3和Switch 6之间的网段Switch 3上的GigabitEthernet0/2端口被选举为指定端口因为Switch 3有着最低的根桥路径开销 4
5. 在Switch 4和Switch 5之间的网段Switch 4上的GigabitEthernet0/2端口被选举为指定端口因为Switch 4有着最低的根桥路径开销8。
5. 在Switch 4和Switch 5之间的网段Switch 4上的GigabitEthernet0/2端口被选举为指定端口因为Switch 4有着最低的根桥路径开销 8
6. 在Switch 5和Switch 6之间的网段Switch 6上的GigabitEthernet0/2被选举为指定端口因为Switch 6有着最低的根桥路径开销8。
6. 在Switch 5和Switch 6之间的网段Switch 6上的GigabitEthernet0/2被选举为指定端口因为Switch 6有着最低的根桥路径开销 8
非指定端口the Non-Designated Port实际上不是一种生成树端口类型。而是其作为一个术语只是简单地表示某个不作为某LAN网段上指定端口的端口。**非指定端口将始终被STP置为阻塞状态。**基于根端口及指定端口的计算下图31.9中展示了用于根端口和指定端口选举示例的交换网络的最终生成树拓扑Based on the calculation of Root and Designated Ports, the resultant Spanning Tree Topology for the switched network that was used in the Root Port and Designated Port election examples is shown in Figure 31.9 below
非指定端口the Non-Designated Port实际上不是一种生成树端口类型。而是其作为一个术语只是简单地表示某个不作为某 LAN 网段上指定端口的端口。**非指定端口将始终被 STP 置为阻塞状态。**基于根端口及指定端口的计算下图31.9中展示了用于根端口和指定端口选举示例的交换网络的最终生成树拓扑Based on the calculation of Root and Designated Ports, the resultant Spanning Tree Topology for the switched network that was used in the Root Port and Designated Port election examples is shown in Figure 31.9 below
![已收敛的生成树网络](images/3109.png)
@ -514,109 +514,109 @@ STP选举出两种类型用于转发BPDUs的端口指向根桥的根端口
**Cisco Spanning Tree Enhancements**
如早前指出的那样STP对其所在环境做出以下两点假设。
如早前指出的那样, STP 对其所在环境做出以下两点假设。
- 所有链路都是双向的,而能够发送和接收桥协议数据单元。
- 所有交换机都能正常地接收、处理及发出BPDUs
在现实世界的网络中这两个假设并不总是正确。在这种情况下STP就可能无法阻止网络中循环的形成in situations where that is the case, STP may not be able to prevent loops from being formed within the network。正是由于存在这种可能且为提升基本的802.1D STA性能思科引入了一些对IEEE 802.1D标准的增强,将在下面进行说明。
在现实世界的网络中,这两个假设并不总是正确。在这种情况下, STP 就可能无法阻止网络中循环的形成in situations where that is the case, STP may not be able to prevent loops from being formed within the network。正是由于存在这种可能且为提升基本的802.1D STA性能思科引入了一些对IEEE 802.1D标准的增强,将在下面进行说明。
### 端口快速
**Port Fast**
端口快速是一项典型地对连接了一台主机的端口或接口开启的特性。当该端口上的链路起来时交换机将跳过STA的第一阶段并直接过渡到转发状态。与通常的看法相反端口快速特性并不在选定的端口上关闭生成树。这是因为就算带有端口快速特性该端口仍能发送并接收BPDUs。
端口快速是一项典型地对连接了一台主机的端口或接口开启的特性。当该端口上的链路起来时,交换机将跳过 STA 的第一阶段并直接过渡到转发状态。与通常的看法相反,端口快速特性并不在选定的端口上关闭生成树。这是因为就算带有端口快速特性,该端口仍能发送并接收 BPDUs
这在该端口所连接的诸如某台工作站的网卡这样的没有发送或响应BPDUs的网络设备时不是问题。但如该端口所连接的设备确实在发出BPDUs比如另一台交换机这可能造成交换循环。这是因为该端口跳过了侦听及学习阶段而立即进入到转发状态this may result in a switching loop. This is because the port skips the Listening and Learning states and proceeds immediately to the Forwarding state。端口快速简单地令到该端口相较经历所有STA步骤快得多地开始转发以太网帧。
这在该端口所连接的诸如某台工作站的网卡这样的,没有发送或响应 BPDUs 的网络设备时不是问题。但如该端口所连接的设备确实在发出 BPDUs 比如另一台交换机这可能造成交换循环。这是因为该端口跳过了侦听及学习阶段而立即进入到转发状态this may result in a switching loop. This is because the port skips the Listening and Learning states and proceeds immediately to the Forwarding state。端口快速简单地令到该端口相较经历所有 STA 步骤,快得多地开始转发以太网帧。
### BPDU守护
**BPDU Guard**
**BPDU守护特性用于保护生成树域免受外部影响。BPDU默认是关闭的但建议在所有开启了端口快速特性的端口上予以开启。**在配置了BPDU守护特性的端口接收到一个BPDU时就立即转变成错误关闭状态the errdisable state
**BPDU守护特性用于保护生成树域免受外部影响。 BPDU 默认是关闭的,但建议在所有开启了端口快速特性的端口上予以开启。**在配置了 BPDU 守护特性的端口接收到一个 BPDU 就立即转变成错误关闭状态the errdisable state
在那些关闭了生成树的端口上这样做阻止了错误信息注入到生成树域中去。BPDU守护的运行结合端口快速特性在下面及后续的图31.10、31.11及31.12中,进行了演示。
在那些关闭了生成树的端口上,这样做阻止了错误信息注入到生成树域中去。 BPDU 守护的运行结合端口快速特性在下面及后续的图31.10、31.11及31.12中,进行了演示。
![掌握BPDU守护](images/3110.png)
![掌握 BPDU 守护](images/3110.png)
*图31.10 -- 掌握BPDU守护*
*图31.10 -- 掌握 BPDU 守护*
图31.10中Switch 1到Host 1的连接上**开启了端口快速。那么在初始化后该端口便过渡到转发状态这就消除了该端口在没有省略掉STA而要走完侦听及学习状态所要花掉的30秒。**因为该网络主机是一台工作站其不在那个端口上发送BPDUs。
图31.10中Switch 1到Host 1的连接上**开启了端口快速。那么在初始化后,该端口便过渡到转发状态,这就消除了该端口在没有省略掉 STA 而要走完侦听及学习状态所要花掉的 30 秒。**因为该网络主机是一台工作站,其不在那个端口上发送 BPDUs
要么因为偶然或是由于一些其它恶意目的Host 1从Switch 1上断开连接。使用同一端口SWitch 3被连接到Switch 1。Switch 3同时也连接到Switch 2。因为端口快速在连接Switch 1到Switch 3的端口上开启此端口就从初始化变成转发状态从而省略掉了一般STP初始化过程。此端口将接收并处理所有由Switch 3发送的BPDUs如下图31.11所示。
要么因为偶然或是由于一些其它恶意目的Host 1从Switch 1上断开连接。使用同一端口SWitch 3被连接到Switch 1。Switch 3同时也连接到Switch 2。因为端口快速在连接Switch 1到Switch 3的端口上开启此端口就从初始化变成转发状态从而省略掉了一般 STP 初始化过程。此端口将接收并处理所有由Switch 3发送的 BPDUs 如下图31.11所示。
![掌握BPDU守护](images/3111.png)
![掌握 BPDU 守护(续)](images/3111.png)
*图31.11 掌握BPDU守护*
*图31.11 掌握 BPDU 守护(续)*
基于上面所演示的端口状态可很快看出一个循环将在此网络中如何建立起来。为阻止此情形的发生就应在所有的那些开启了端口快速的端口上开启BPDU守护。这在下面的图31.12中进行了演示。
基于上面所演示的端口状态,可很快看出一个循环将在此网络中如何建立起来。为阻止此情形的发生,就应在所有的那些开启了端口快速的端口上,开启 BPDU 守护。这在下面的图31.12中进行了演示。
![掌握BPDU守护](images/3112.png)
![掌握 BPDU 守护(续)](images/3112.png)
*图31.12 -- 掌握BPDU守护*
*图31.12 -- 掌握 BPDU 守护(续)*
在端口快速端口上带有BPDU守护下在Switch 1接收到来自Switch 3的一个BPDU时就立即将该端口转变成错误关闭状态immediately transitions the port into the errdisable state。结果就是STP计算不受该冗余链路的影响且该网络不会有任何循环。
在端口快速端口上带有 BPDU 守护下在Switch 1接收到来自Switch 3的一个 BPDU 就立即将该端口转变成错误关闭状态immediately transitions the port into the errdisable state。结果就是 STP 计算不受该冗余链路的影响,且该网络不会有任何循环。
### BPDU过滤器
**BPDU Filter**
BPDU守护与BPDU过滤器两个特性常常混淆或甚至被想成是同一个特性。但它们是不同的而掌握它们之间的区别就很重要。在某个端口上开启了端口快速时该端口将发出BPDUs且将接受及处理收到的BPDUs。BPDU守护特性阻止该端口接收任何的BPDUs但不阻止其发送BPDUs。如有接收到任何BPDUs该端口就将成为错误关闭端口if any BPDUs received, the port will be errdisabled
BPDU守护与 BPDU 过滤器两个特性常常混淆或甚至被想成是同一个特性。但它们是不同的,而掌握它们之间的区别就很重要。在某个端口上开启了端口快速时,该端口将发出 BPDUs 且将接受及处理收到的 BPDUs BPDU 守护特性阻止该端口接收任何的 BPDUs ,但不阻止其发送 BPDUs 。如有接收到任何 BPDUs 该端口就将成为错误关闭端口if any BPDUs received, the port will be errdisabled
而BPDU过滤器特性有着两方面的功能the BPDU Filter feature has dual functionality。当在接口级别配置上BPDU过滤器时它将有效地在选定端口上通过阻止这些端口发送或接收所有BPDUs而关闭这些端口的STP。而在全局配置了BPDU过滤器并与全局端口快速配合使用是它会将任何接收到BPDUs的端口还原成端口快速模式。下图31.13对此进行了演示。
BPDU 过滤器特性有着两方面的功能the BPDU Filter feature has dual functionality。当在接口级别配置上 BPDU 过滤器时,它将有效地在选定端口上,通过阻止这些端口发送或接收所有 BPDUs ,而关闭这些端口的 STP 。而在全局配置了 BPDU 过滤器,并与全局端口快速配合使用是,它会将任何接收到 BPDUs 的端口还原成端口快速模式。下图31.13对此进行了演示。
![掌握BPDU过滤器](images/3113.png)
![掌握 BPDU 过滤器](images/3113.png)
### 循环守护
**Loop Guard**
循环守护特性用于防止生成树网络中循环的形成。循环守护对根端口及阻塞端口进行探测并确保它们继续接收BPDUs。当交换机在阻塞端口上接收到BPDUs该信息就被忽视因为来自根桥的最佳BPDU仍通过根端口正在接收着。
循环守护特性用于防止生成树网络中循环的形成。循环守护对根端口及阻塞端口进行探测,并确保它们继续接收 BPDUs 。当交换机在阻塞端口上接收到 BPDUs ,该信息就被忽视,因为来自根桥的最佳 BPDU 仍通过根端口,正在接收着。
如该交换机链路是运行的又没有接收到BPDUs因为该链路是单向链路due to a unidirectional link该交换机就假设将该链路开启是安全的那么该端口就转换到转发状态并开始对接收到的BPDUs进行中继。如有某台交换机连接到该链路的另一端这将有效地建立起一个生成树循环。下图31.14对此概念进行了演示。
如该交换机链路是运行的,又没有接收到 BPDUs 因为该链路是单向链路due to a unidirectional link该交换机就假设将该链路开启是安全的那么该端口就转换到转发状态并开始对接收到的 BPDUs 进行中继。如有某台交换机连接到该链路的另一端这将有效地建立起一个生成树循环。下图31.14对此概念进行了演示。
![掌握循环守护](images/3114.png)
*图31.14 -- 掌握循环守护*
图31.14中该生成树网络已完成收敛从而所有端口都处于阻塞或转发状态。但是因为一条单向链路Switch 3上的阻塞端口停止了接收来自Switch 2上的指定端口的BPDUs。Switch 3假定该端口可被转换成转发状态并开始此转换。该交换机此时就将接收到的BPDUs中继出那个端口从而导致网络循环。
图31.14中该生成树网络已完成收敛从而所有端口都处于阻塞或转发状态。但是因为一条单向链路Switch 3上的阻塞端口停止了接收来自Switch 2上的指定端口的 BPDUs 。Switch 3假定该端口可被转换成转发状态并开始此转换。该交换机此时就将接收到的 BPDUs 中继出那个端口,从而导致网络循环。
在循环守护开启时Switch 3保持对所有非指定端口的追踪。在端口持续接收到BPDUs时该端口就是好的但如该端口停止接收到BPDUs就被转移到循环不一致状态a loop-inconsistent state。也就是说在循环守护开启时STP端口状态机the STP port state machine被修改为在缺少BPDUs时阻止该端口从非指定端口角色转变成指定端口角色in other words, when Loop Guard is enabled, the STP port state machine is modified to prevent the port from transitioning from the Non-Designated Port role to the Designated Port role in the absence of BPDUs。在应用循环守护时应知道以下这些应用准则。
在循环守护开启时Switch 3保持对所有非指定端口的追踪。在端口持续接收到 BPDUs 时,该端口就是好的;但如该端口停止接收到 BPDUs 就被转移到循环不一致状态a loop-inconsistent state。也就是说在循环守护开启时 STP 端口状态机the STP port state machine被修改为在缺少 BPDUs 阻止该端口从非指定端口角色转变成指定端口角色in other words, when Loop Guard is enabled, the STP port state machine is modified to prevent the port from transitioning from the Non-Designated Port role to the Designated Port role in the absence of BPDUs。在应用循环守护时应知道以下这些应用准则。
- 不能在开启了根守护Root Guard的交换机上开启循环守护, Loop Guard cannot be enabled on a switch that also has Root Guard enabled
- 循环守护不影响上行快速Uplink Fast或骨干快速Backbone Fast的运行, Loop Guard does not affect Uplink Fast or Backbone Fast operation
- 循环守护只是必须在点对点链路上开启Loop Guard must be enabled on Point-to-Point links only
- 循环守护的运行不受生成树计时器的影响Loop Guard operation is not affected by the Spanning Tree timers
- 循环守护无法真正探测出一条单向链路Loop Guard cannot actually detect a unidirectional link
- 循环守护无法在端口快速或动态VLAN端口上开启Loop Guard cannot be enabled on Port Fast or Dynamic VLAN ports
- 循环守护无法在端口快速或动态 VLAN 端口上开启Loop Guard cannot be enabled on Port Fast or Dynamic VLAN ports
### 根守护
**Root Guard**
**根守护特性阻止指定端口成为根端口。**如在某个根守护特性开启的端口上接收到一个优良BPDUa superior BPDU, 根守护将该端口移入根不一致状态a root-inconsistent state, 从而维持当前根桥状态thus maintaining the current Root Bridge status quo。下图31.15对此概念进行了演示。
**根守护特性阻止指定端口成为根端口。**如在某个根守护特性开启的端口上接收到一个优良 BPDU a superior BPDU, 根守护将该端口移入根不一致状态a root-inconsistent state, 从而维持当前根桥状态thus maintaining the current Root Bridge status quo。下图31.15对此概念进行了演示。
![掌握根守护](images/3115.png)
*图31.15 -- 掌握根守护*
图31.15中Switch 3被加入到当前STP网络并发出比当前根桥更优质的BPDUs。在通常情况下STP将重新计算整个拓扑同时Switch 3将会被选举为根桥。但因为当前根桥及Switch 2上的指定端口上开启了根守护特性在接收到来自Switch 3的优良BPDUs时两台交换机都会将这些指定端口置为根不一致状态。这样做保护了生成树拓扑。
图31.15中Switch 3被加入到当前 STP 网络,并发出比当前根桥更优质的 BPDUs 。在通常情况下, STP 将重新计算整个拓扑同时Switch 3将会被选举为根桥。但因为当前根桥及Switch 2上的指定端口上开启了根守护特性在接收到来自Switch 3的优良 BPDUs 时,两台交换机都会将这些指定端口置为根不一致状态。这样做保护了生成树拓扑。
**根守护阻止某个端口成为根端口,因此确保该端口始终是指定端口。**与其它可同时在全局基础上开启的思科STP增强不同根守护必须手动在所有根桥不应出现的端口上开启unlike other STP enhancements, which can also be enabled on a global basis, Root Guard must be manually enabled on all ports where the Root Bridge should not appear。因为这点在LAN中STP的设计和部署时确保拓扑的确定性就很重要because of this, it is important to ensure a deterministic topology when designing and implementing STP in the LAN。根守护令到网络管理员可以强制指定网络中的根桥Root Guard enables an administrator to enforce the Root Bridge palcement in the network, 确保不会有客户设备因疏忽或其它原因而成为生成树的根所以根守护常用在ISP网络面向客户设备的边界so it is usually used on the network edge of the ISP towards the customers's equipment
**根守护阻止某个端口成为根端口,因此确保该端口始终是指定端口。**与其它可同时在全局基础上开启的思科 STP 增强不同根守护必须手动在所有根桥不应出现的端口上开启unlike other STP enhancements, which can also be enabled on a global basis, Root Guard must be manually enabled on all ports where the Root Bridge should not appear。因为这点 LAN STP 的设计和部署时确保拓扑的确定性就很重要because of this, it is important to ensure a deterministic topology when designing and implementing STP in the LAN。根守护令到网络管理员可以强制指定网络中的根桥Root Guard enables an administrator to enforce the Root Bridge palcement in the network, 确保不会有客户设备因疏忽或其它原因而成为生成树的根,所以根守护常用在 ISP 网络面向客户设备的边界so it is usually used on the network edge of the ISP towards the customers's equipment
### 上行快速
**Uplink Fast**
**上行快速特性提升了在主要链路失效(根端口的直接失效)时,更快的到冗余链路的切换**the Uplink Fast feature provides faster failover to a redundant link when the primary link fails(i.e., direct failure of the Root Port)。该特性的主要目的是在出现上行链路失效时提升STP的收敛时间。**该特性在带有到分布层冗余链路的接入层交换机上用的最多**;这也是其名称的由来。
**上行快速特性提升了在主要链路失效(根端口的直接失效)时,更快的到冗余链路的切换**the Uplink Fast feature provides faster failover to a redundant link when the primary link fails(i.e., direct failure of the Root Port))。该特性的主要目的是在出现上行链路失效时,提升 STP 的收敛时间。**该特性在带有到分布层冗余链路的接入层交换机上用的最多**;这也是其名称的由来。
在接入层交换机有着到分布层的双宿主时其中一条链路被被STP置为阻塞状态以防止环回when Access Layer switches are dual-homed to the Distribution Layer, one of the links is placed into a Blocking state by STP to prevent loops。在到分布层的主链路失效时处于阻塞状态的端口就必须在开始转发流量之前转换到侦听和学习状态。这导致在交换机能够转发以其它网段为目的的帧之前有一个30秒的延迟。上行快速的运作在下图31.16中进行演示。
在接入层交换机有着到分布层的双宿主时,其中一条链路被被 STP 置为阻塞状态以防止环回when Access Layer switches are dual-homed to the Distribution Layer, one of the links is placed into a Blocking state by STP to prevent loops。在到分布层的主链路失效时处于阻塞状态的端口就必须在开始转发流量之前转换到侦听和学习状态。这导致在交换机能够转发以其它网段为目的的帧之前有一个 30 秒的延迟。上行快速的运作在下图31.16中进行演示。
![掌握上行快速](images/3116.png)
*图31.16 -- 掌握上行快速*
图31.16中在Access 1和Distribution 1之间的链路上出现了失效Distribution 1是STP根桥此失效意味着STP会将Access 1和Distribution 2之间的链路移入转发状态也就是"阻塞中">"侦听中">"学习中">"转发中"Blocking > Listening > Learning > Forwarding。侦听和学习阶段各耗时15秒所以该端口只需在总共30秒过去之后便开始转发数据帧。**而在上行快速开启时,到分布层的后备端口被立即置为转发状态,从而带来无网络宕机时间的结果。**下图31.17对此概念进行了演示。
图31.16中在Access 1和Distribution 1之间的链路上出现了失效Distribution 1是 STP 根桥,此失效意味着 STP 会将Access 1和Distribution 2之间的链路移入转发状态也就是"阻塞中">"侦听中">"学习中">"转发中"Blocking > Listening > Learning > Forwarding。侦听和学习阶段各耗时 15 秒,所以该端口只需在总共 30 秒过去之后,便开始转发数据帧。**而在上行快速开启时,到分布层的后备端口被立即置为转发状态,从而带来无网络宕机时间的结果。**下图31.17对此概念进行了演示。
![掌握上行快速(续)](images/3117.png)
@ -626,33 +626,33 @@ BPDU守护与BPDU过滤器两个特性常常混淆或甚至被想成是同一个
**Backbone Fast**
骨干快速特性提供了STP域中一条非直连链路出现失效时的快速切换。在交换机从其指定桥在其根端口上接收到一个较差BPDU时快速切换便发生了。一个较差BPDU表明指定桥失去了其到根桥的连接所以该交换机知悉存在上游失效而无需等待计时器超时就改变根端口。下图31.18中对此进行了演示。
骨干快速特性提供了 STP 域中一条非直连链路出现失效时的快速切换。在交换机从其指定桥(在其根端口上)接收到一个较差 BPDU 时,快速切换便发生了。一个较差 BPDU 表明指定桥失去了其到根桥的连接所以该交换机知悉存在上游失效而无需等待计时器超时就改变根端口。下图31.18中对此进行了演示。
![掌握骨干快速](images/3118.png)
*图31.18 -- 掌握骨干快速*
图31.18中Switch 1和Switch 2之间的链路挂掉了。Switch 2探测到这个问题并发出BPDUs表明它是根桥。在来自Switch 1的BPDUs信息仍然保存着的Switch 3上接收到较差的BPDUs。
图31.18中Switch 1和Switch 2之间的链路挂掉了。Switch 2探测到这个问题并发出 BPDUs 表明它是根桥。在来自Switch 1的 BPDUs 信息仍然保存着的Switch 3上接收到较差的 BPDUs
Switch 3将忽略这些较差BPDUs直到最大存活值the Max Age value超时。在此期间Switch 2继续将BPDUs发送给Switch 3。在最大存活时间超时后Switch 3会将来自根桥、存储的BPDU信息老化排除并转换到侦听状态接着将把从根桥接收到的BPDU发送出去发送给Switch 2。
Switch 3将忽略这些较差 BPDUs 直到最大存活值the Max Age value超时。在此期间Switch 2继续将 BPDUs 发送给Switch 3。在最大存活时间超时后Switch 3会将来自根桥、存储的 BPDU 信息老化排除,并转换到侦听状态,接着将把从根桥接收到的 BPDU 发送出去发送给Switch 2。
因为此BPDU好于Switch 2自己的Switch 2将停止发送BPDUs同时Switch 2和Switch 3之间的端口经历侦听及学习状态的转换并最终进入到转发状态。STP过程的此默认运行方式将意味着Switch 2将至少在50秒内无法转发数据帧。
因为此 BPDU 好于Switch 2自己的Switch 2将停止发送 BPDUs 同时Switch 2和Switch 3之间的端口经历侦听及学习状态的转换并最终进入到转发状态。 STP 过程的此默认运行方式将意味着Switch 2将至少在 50 秒内无法转发数据帧。
骨干快速特性包含了一种允许在接收到一个较差的BPDU时立即检查某个端口上存储的BPDU信息是否仍然有效的机制。此特性通过一种叫做RLQ PDU 的新协议数据单元及根链路请求实现的this is implemented with a new PDU and the Root Link Query(RLQ), which is referred to as the RLQ PDU
骨干快速特性包含了一种允许在接收到一个较差的 BPDU 时,立即检查某个端口上存储的 BPDU 信息是否仍然有效的机制。此特性通过一种叫做RLQ PDU 的新协议数据单元及根链路请求实现的this is implemented with a new PDU and the Root Link Query(RLQ), which is referred to as the RLQ PDU
紧接着较差BPDU的接收该交换机将在除接收该较差BPDU的端口外的所有非指定端口上发出一个RLQ PDU。如该交换机是根桥或失去了到根桥的连接就将对对该RLQ进行响应。否则该RLQ将向上游传播otherwise, the RLQ will be propagated upstream。如该交换机在其根端口上接收到一个RLQ响应那么到根桥的连通性仍然是完整的。如该响应实在非根端口上接收到的就意味着到根桥的连通性已丢失同时在交换机上的本地交换生成树必须重新计算且最大存活时间计数器被置为超时如此就能重新找到一个新的根端口if the response is received on a Non-Root Port, it means that connectivity to the Root Bridge is lost, and the local switch Spanning Tree must be recalculated on the switch and the Max Age timer expired so that a new Root Port can be found。此概念在下图31.19中进行了演示。
紧接着较差 BPDU 的接收,该交换机将在除接收该较差 BPDU 的端口外的所有非指定端口上发出一个RLQ PDU。如该交换机是根桥或失去了到根桥的连接就将对对该 RLQ 进行响应。否则,该 RLQ 将向上游传播otherwise, the RLQ will be propagated upstream。如该交换机在其根端口上接收到一个 RLQ 响应那么到根桥的连通性仍然是完整的。如该响应实在非根端口上接收到的就意味着到根桥的连通性已丢失同时在交换机上的本地交换生成树必须重新计算且最大存活时间计数器被置为超时如此就能重新找到一个新的根端口if the response is received on a Non-Root Port, it means that connectivity to the Root Bridge is lost, and the local switch Spanning Tree must be recalculated on the switch and the Max Age timer expired so that a new Root Port can be found。此概念在下图31.19中进行了演示。
![掌握骨干快速(续)](images/3119.png)
*图31.19 -- 掌握骨干快速(续)*
参考图31.19, 紧接着较差BPDU的接收Switch 3在除了该BPDU所接收到的端口之外的所有非指定端口上发出一条RLQ请求。根桥功过一条从其指定端口发出的RLQ回应对Switch 3的RLQ请求进行响应。因为是在Switch 3的根端口上接收到的该响应该响应被认为是一条肯定响应a positive response。但如该响应是在非根端口上接收到的那么该响应就被认为是否定的且该交换机将需要再度完成整个的生成树计算。
参考图31.19, 紧接着较差 BPDU 的接收Switch 3在除了该 BPDU 所接收到的端口之外的所有非指定端口上,发出一条 RLQ 请求。根桥功过一条从其指定端口发出的 RLQ 回应对Switch 3的 RLQ 请求进行响应。因为是在Switch 3的根端口上接收到的该响应该响应被认为是一条肯定响应a positive response。但如该响应是在非根端口上接收到的那么该响应就被认为是否定的且该交换机将需要再度完成整个的生成树计算。
基于Switch 3上接收到的肯定响应就可以老化排除连接到Switch 2的端口而无需等待最大存活时间计数器过期based on the positive response received on Switch 3, it can age out the port connected to Switch 2 without waiting for the Max Age timer to expire。但是该端口仍必须经过侦听及学习状态。而通过立即将最大存活时间计数器进行老化清楚骨干快速将收敛时间从50秒20秒的最大存活时间 + 30秒的侦听和学习时间减少到30秒侦听和学习状态的时间
基于Switch 3上接收到的肯定响应就可以老化排除连接到Switch 2的端口而无需等待最大存活时间计数器过期based on the positive response received on Switch 3, it can age out the port connected to Switch 2 without waiting for the Max Age timer to expire。但是该端口仍必须经过侦听及学习状态。而通过立即将最大存活时间计数器进行老化清楚骨干快速将收敛时间从 50 秒( 20 秒的最大存活时间 + 30秒的侦听和学习时间减少到 30 秒(侦听和学习状态的时间)。
RLQs的类型有两种RLQ请求和RLQ响应。**RLQ请求典型地在根端口上发出用以检查到根桥的连通性。所有RLQ响应都是在指定端口上发出的。**因为RLQ请求包含了发送该RLQ响应的根桥BID如到根桥路径中其它交换机仍能到达该RLQ响应中所指定的根桥其就会响应给发出RLQ请求的交换机because the RLQ request contains the BID of the Root Bridge that sent it, if another switch in the path to the Root Bridge can still reach the Root Bridge specified in the RLQ response, it will respond back to the sending switch。如路径上的交换机已不能到达RLQ响应中的根桥该交换机就简单地通过其根端口往根桥转发该查询。
RLQs的类型有两种 RLQ 请求和 RLQ 响应。**RLQ请求典型地在根端口上发出用以检查到根桥的连通性。所有 RLQ 响应都是在指定端口上发出的。**因为 RLQ 请求包含了发送该 RLQ 响应的根桥 BID ,如到根桥路径中其它交换机仍能到达该 RLQ 响应中所指定的根桥,其就会响应给发出 RLQ 请求的交换机because the RLQ request contains the BID of the Root Bridge that sent it, if another switch in the path to the Root Bridge can still reach the Root Bridge specified in the RLQ response, it will respond back to the sending switch。如路径上的交换机已不能到达 RLQ 响应中的根桥,该交换机就简单地通过其根端口,往根桥转发该查询。
> **注意:** RLQ PDU有着与普通BPDU同样的包格式唯一区别在于RLQ PDU包含了两个用于请求和回应的思科SNAP(子网接入协议,[Subnetwork Access Protocol](https://en.wikipedia.org/wiki/Subnetwork_Access_Protocol))地址。
> **注意:** RLQ PDU有着与普通 BPDU 同样的包格式唯一区别在于RLQ PDU包含了两个用于请求和回应的思科SNAP(子网接入协议,[Subnetwork Access Protocol](https://en.wikipedia.org/wiki/Subnetwork_Access_Protocol))地址。
## STP排错
@ -660,13 +660,13 @@ RLQs的类型有两种RLQ请求和RLQ响应。**RLQ请求典型地在根端
大多数二层故障都跟域中某种循环有关而这又引起与其相关的多种问题包括网络停机。在进行交换机配置的工作及将某台设备插入或拔出时应确保没有在操作过程中建立循环。为缓和这类问题就通常应在这些交换机上配置生成树协议以避免出现在网络中的某处偶然创建出循环的情形to mitigate against such problems, you should usually configure Spanning Tree Protocol on switches in order to avoid situations that might occur if you happen to accidently create a loop somewhere in the network
网络中的所有交换机都是靠MAC地址进行通信的。在数据包进入时就对MAC地址进行分析从而基于二层头部中的目的MAC地址确定出那个数据包的去向。网络中的所有设备都有着其自己的MAC地址所以所有数据包在其走向上都是具体的。**不幸的是,像是广播及多播数据包前往交换机的所有端口。**如一个广播帧到达某个交换机端口,它将那个广播拷贝到可能连接到那台交换机的每台其它设备。此过程在网络中有着循环时,通常能是个问题。
网络中的所有交换机都是靠 MAC 地址进行通信的。在数据包进入时,就对 MAC 地址进行分析,从而基于二层头部中的目的 MAC 地址,确定出那个数据包的去向。网络中的所有设备都有着其自己的 MAC 地址,所以所有数据包在其走向上都是具体的。**不幸的是,像是广播及多播数据包前往交换机的所有端口。**如一个广播帧到达某个交换机端口,它将那个广播拷贝到可能连接到那台交换机的每台其它设备。此过程在网络中有着循环时,通常能是个问题。
应记住MAC地址数据包内部没有超时机制。**在TCP/IP中in the case of TCP/IPIP协议在其头部有一个名为TTL存活时间Time to Live的功能该功能就是通过路由器的跳数, 而不是事实上的时间单位。**所以如果IP数据包碰巧处于循环中而通过多台路由器它们将最终超时而被从网络中移除。但是交换机并未提供那种机制。二层数据帧理论上可以永久循环因为没有将其超时的机制意味着如创建出一个循环那个循环就会一直在那里直到手动将其从网络中移除。
应记住 MAC 地址数据包内部没有超时机制。**在TCP/IP中in the case of TCP/IP IP 协议在其头部有一个名为 TTL 存活时间Time to Live的功能该功能就是通过路由器的跳数, 而不是事实上的时间单位。**所以如果 IP 数据包碰巧处于循环中而通过多台路由器,它们将最终超时而被从网络中移除。但是,交换机并未提供那种机制。二层数据帧理论上可以永久循环,因为没有将其超时的机制,意味着如创建出一个循环,那个循环就会一直在那里,直到手动将其从网络中移除。
如正将一台工作站插入到网络时某个广播帧到达该工作站那么该广播数据帧将在那个点终结而不会是个网络问题。但是如在交换机侧端口进行了不当配置或两端都插入了交换机而未开启STP这将导致二层域内的广播风暴。广播风暴的发生是因为广播数据包被转发到了所有其它端口因此广播数据包保持继续存在并进入到同一网线上的另一交换机引起二层循环。广播风暴能够引起高的资源使用甚至网络宕机。
如正将一台工作站插入到网络时,某个广播帧到达该工作站,那么该广播数据帧将在那个点终结而不会是个网络问题。但是,如在交换机侧端口进行了不当配置,或两端都插入了交换机而未开启 STP ,这将导致二层域内的广播风暴。广播风暴的发生,是因为广播数据包被转发到了所有其它端口,因此广播数据包保持继续存在并进入到同一网线上的另一交换机,引起二层循环。广播风暴能够引起高的资源使用甚至网络宕机。
如在这样的配置不当的网络上开启STP交换机将识别到循环的出现并会阻塞确定端口以避免广播风暴。而所有交换机中的其它端口则继续正常运作所以网络不受影响。如未有配置STP那么唯一可做的就是拔掉引起问题的网线或者在还能对交换机进行操作的时候将其管理性关闭。
如在这样的配置不当的网络上开启 STP ,交换机将识别到循环的出现,并会阻塞确定端口以避免广播风暴。而所有交换机中的其它端口则继续正常运作,所以网络不受影响。如未有配置 STP ,那么唯一可做的就是拔掉引起问题的网线,或者在还能对交换机进行操作的时候,将其管理性关闭。
STP故障通常有以下三类STP issues usually fall within the following three categories
@ -676,7 +676,7 @@ STP故障通常有以下三类STP issues usually fall within the following th
### 不正确的根桥
优先级和基础MAC地址决定根桥是否是正确的priority and base MAC addresss decide whether the Root Bridge is incorrect。可以执行`show spanning-tree vlan <vlan#>`命令查看MAC地址及交换机优先级。而运用`spanning-tree vlan <vlan#> priority <priority>`命令修复此问题。
优先级和基础 MAC 地址决定根桥是否是正确的priority and base MAC addresss decide whether the Root Bridge is incorrect。可以执行`show spanning-tree vlan <vlan#>`命令查看 MAC 地址及交换机优先级。而运用`spanning-tree vlan <vlan#> priority <priority>`命令修复此问题。
### 不正确的根端口
@ -686,9 +686,9 @@ STP故障通常有以下三类STP issues usually fall within the following th
指定端口是将某个网络区段连接到网络其它部分最低开销的端口the Designated Port is the lowest cost port connecting a network segment to the rest of the network。如怀疑存在指定端口问题就可以执行`show spanning-tree vlan <vlan#>`及`spanning-tree cost <cost>`命令。
而可对相关事件进行调试的一个有用的STP排错命令就是`Switch#debug spanning-tree events`。
而可对相关事件进行调试的一个有用的 STP 排错命令,就是`Switch#debug spanning-tree events`。
## 第31天问题
## 第 31 天问题
1. How often do switches send Bridge Protocol Data Units ( BPDUs)?
2. Name the STP port states in the correct order.
@ -701,7 +701,7 @@ STP故障通常有以下三类STP issues usually fall within the following th
9. Contrary to popular belief, the Port Fast feature does not disable Spanning Tree on the selected port. This is because even with the Port Fast feature, the port can still send and receive BPDUs. True or false?
10. The Backbone Fast feature provides fast failover when a direct link failure occurs. True or false?
## 第31天答案
## 第 31 天答案
1. Every two seconds.
2. Blocking, Listening, Learning, Forwarding, and Disabled.
@ -714,7 +714,7 @@ STP故障通常有以下三类STP issues usually fall within the following th
9. True.
10. False.
## 第31天实验
## 第 31 天实验
### 生成树根选举实验
@ -728,7 +728,7 @@ STP故障通常有以下三类STP issues usually fall within the following th
**实验步骤**
1. 设置各台交换机的主机名并将其用交叉线连接起来。此时可以检查它们之间的接口是否被设置到“trunk”中继。
1. 设置各台交换机的主机名并将其用交叉线连接起来。此时可以检查它们之间的接口是否被设置到“ trunk ”中继。
```console
@ -766,7 +766,7 @@ STP故障通常有以下三类STP issues usually fall within the following th
Fa0/1 1
```
4. 在每台交换机上创建出两个VLANs。
4. 在每台交换机上创建出两个 VLANs
```console
@ -794,9 +794,9 @@ STP故障通常有以下三类STP issues usually fall within the following th
1003 token-ring-default active
```
同时也在交换机B上创建出VLANs拷贝上面的命令
同时也在交换机 B 上创建出 VLANs (拷贝上面的命令)。
5. 确定哪台交换机是VLANs 2和3的根桥。
5. 确定哪台交换机是VLANs 2和 3 的根桥。
```console
@ -817,7 +817,7 @@ STP故障通常有以下三类STP issues usually fall within the following th
Fa0/1 Desg FWD 19 128.1 P2p
```
可以看到Switch B是根。在交换机A上完成同样的命令并对VLAN 3进行检查。优先级是32768加上VLAN编号这里就是2.最低MAC地址将确定出根桥。
可以看到Switch B是根。在交换机 A 上完成同样的命令并对VLAN 3进行检查。优先级是 32768 加上 VLAN 编号这里就是2.最低 MAC 地址将确定出根桥。
```console
SwitchB#show spanning-tree vlan 3
@ -836,9 +836,9 @@ STP故障通常有以下三类STP issues usually fall within the following th
Fa0/1 Desg FWD 19 128.1 P2p
```
这里Switch A的MAC地址较高这就是为何其不会成为根桥的原因`00101123D245`
这里Switch A的 MAC 地址较高,这就是为何其不会成为根桥的原因:`0010 1123 D245`
6. 将另一个交换机设置为VLANs 2和3的根桥。对VLAN 2使用命令`spanning-tree vlan 2 priority 4096`以及对VLAN 3的`spanning-tree vlan 3 root primary`命令。
6. 将另一个交换机设置为VLANs 2和 3 的根桥。对VLAN 2使用命令`spanning-tree vlan 2 priority 4096`以及对VLAN 3的`spanning-tree vlan 3 root primary`命令。
```console
@ -875,4 +875,4 @@ STP故障通常有以下三类STP issues usually fall within the following th
SwitchA#
```
> **注意:** 尽管Switch B有较低的桥IDSwitch A还是被强制作为根桥。
> **注意:** 尽管Switch B有较低的桥 ID Switch A还是被强制作为根桥。

View File

@ -1,4 +1,4 @@
# 第32天 快速生成树协议
# 第 32 天 快速生成树协议
**Rapid Spanning Tree Protocol**
@ -16,24 +16,24 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
#第32天任务
#第 32 天任务
- 阅读今天的课文
- 复习昨天的课文
- 完成今天的实验
- 阅读ICND2记诵指南
- 在网站 [subnetting.org/](http://subnetting.org/) 花15分钟
- 阅读 ICND2 记诵指南
- 在网站 [subnetting.org/](http://subnetting.org/) 花 15 分钟
IEEE 802.1D标准是在连通性从失去到恢复需要一分钟左右就被认为性能已经可观的时期设计出来的。在IEEE 802.1D STP下恢复大约需要50秒这其中包括20秒的最大老化计时器the Max Age timer超时以及额外的给端口从阻塞状态过渡到转发状态的30秒。
IEEE 802.1D标准是在连通性从失去到恢复需要一分钟左右就被认为性能已经可观的时期设计出来的。在IEEE 802.1D STP下恢复大约需要 50 秒,这其中包括 20 秒的最大老化计时器the Max Age timer超时以及额外的给端口从阻塞状态过渡到转发状态的 30 秒。
随着计算机技术的进化网络变得更为重要更为快速的网络收敛显然是人们所需要的。思科通过开发一些包括骨干快速Backbone Fast及上行快速Uplink Fast等专有的STP增强来满足此需求。
随着计算机技术的进化网络变得更为重要更为快速的网络收敛显然是人们所需要的。思科通过开发一些包括骨干快速Backbone Fast及上行快速Uplink Fast等专有的 STP 增强,来满足此需求。
今天你将学到以下知识。
- RSTP的需求, the need for RSTP
- 配置RSTPRSTP configuration
- 配置 RSTP RSTP configuration
本课对应了以下CCNA大纲要求。
本课对应了以下 CCNA 大纲要求。
+ 认识增强的交换技术identify enhanced switching technologies
- RSTP
@ -43,15 +43,15 @@ IEEE 802.1D标准是在连通性从失去到恢复需要一分钟左右,就被
**the Need for RSTP**
随着技术的持续演化以及在同一物理平台上路由及交换的融合在诸如OSPF及EIGRP这样的可以在更短时间内提供出替代路径的路由协议面前交换网络的延迟就变得明显起来。802.1W标准就被设计出来解决此问题。
随着技术的持续演化,以及在同一物理平台上路由及交换的融合,在诸如 OSPF EIGRP 这样的可以在更短时间内提供出替代路径的路由协议面前交换网络的延迟就变得明显起来。802.1W标准就被设计出来解决此问题。
IEEE 802.1W标准或者是快速生成树协议Rapid Spanning Tree Protocol, RSTP, 显著地缩短了在某条链路失效时STP用于收敛的时间。在RSTP下网络从故障切换到一条替代路径或链路可在亚秒级别完成with RSTP, network failover to an alternate path or link can occur in a subsecond timeframe。RSTP是802.1D的一个扩展,执行与上行快速及骨干快速类似的功能。**RSTP比传统的STP执行得更好且无需额外配置。此外RSTP向后兼容最初的IEEE 802.1D STP标准。**其通过使用一种如下面的截屏中所示的修改的BPDU实现的向后兼容。
IEEE 802.1W标准或者是快速生成树协议Rapid Spanning Tree Protocol, RSTP, 显著地缩短了在某条链路失效时, STP 用于收敛的时间。在 RSTP 网络从故障切换到一条替代路径或链路可在亚秒级别完成with RSTP, network failover to an alternate path or link can occur in a subsecond timeframe RSTP 是802.1D的一个扩展,执行与上行快速及骨干快速类似的功能。**RSTP比传统的 STP 执行得更好,且无需额外配置。此外, RSTP 向后兼容最初的IEEE 802.1D STP标准。**其通过使用一种如下面的截屏中所示的修改的 BPDU ,实现的向后兼容。
![修改的BPDU](images/3201.png)
*图 32.1 -- 修改的BPDU*
RSTP的各种端口状态可如下这样与STP端口状态对应起来。
RSTP的各种端口状态可如下这样与 STP 端口状态对应起来。
- 关闭 -- 丢弃Disabled -- Discarding
- 阻塞 -- 丢弃Blocking -- Discarding
@ -66,7 +66,7 @@ RSTP包含了以下的端口角色。
- 可变端口阻塞状态Alternate(Blocking state)
- 备份端口阻塞状态Bakup(Blocking state)
对于考试掌握上面这些着重号标记的内容是非常重要的尤其是哪些端口状态转发流量一旦网络完成收敛。图32.2及32.3分别演示了一个RSTP可变端口及一个RSTP备份端口。
对于考试掌握上面这些着重号标记的内容是非常重要的尤其是哪些端口状态转发流量一旦网络完成收敛。图32.2及32.3分别演示了一个 RSTP 可变端口及一个 RSTP 备份端口。
![RSTP可变端口](images/3202.png)
@ -80,11 +80,11 @@ RSTP包含了以下的端口角色。
**RSTP with PVST+**
加强版的基于各VLAN的生成树允许每个VLAN都有一个单独的STP实例Per VLAN Spanning Tree Plus(PVST+) allows for an individual STP instance per VLAN。传统或普通的PVST+模式在出现某条链路失效时在网络收敛中依赖较旧的802.1D STP的使用。
加强版的基于各 VLAN 的生成树允许每个 VLAN 都有一个单独的 STP 实例Per VLAN Spanning Tree Plus(PVST+) allows for an individual STP instance per VLAN。传统或普通的PVST+模式在出现某条链路失效时在网络收敛中依赖较旧的802.1D STP的使用。
### RPVST+
快速的基于各VLAN的生成树加强版允许与PVST+ 一起使用802.1WRapid Per VLAN Spanning Tree Plus(RPVST+) allows for the use of 802.1W with PVST+。这就允许在每个VLAN都有一个单独的RSTP实例的同时提供比起802.1D STP所能提供的更为快速的收敛。**默认情况下在某台思科交换机上开启RSTP时也就在该交换机上开启了R-PVST+。**
快速的基于各 VLAN 的生成树加强版允许与PVST+ 一起使用802.1WRapid Per VLAN Spanning Tree Plus(RPVST+) allows for the use of 802.1W with PVST+)。这就允许在每个 VLAN 都有一个单独的 RSTP 实例的同时提供比起802.1D STP所能提供的更为快速的收敛。**默认情况下,在某台思科交换机上开启 RSTP 也就在该交换机上开启了R-PVST+。**
这里有一些可用来记住IEEE STP规格字母命名的记忆窍门。
@ -105,7 +105,7 @@ Switch is in rapid-pvst mode
Root bridge for: VLAN0050, VLAN0060, VLAN0070
```
## 第32天问题
## 第 32 天问题
**Day 32 Questions**
@ -115,7 +115,7 @@ Root bridge for: VLAN0050, VLAN0060, VLAN0070
4. Which command enables RSTP?
5. By default, when RSTP is enabled on a Cisco switch, R-PVST+ is enabled on the switch. True or false?
## 第32天问题答案
## 第 32 天问题答案
**Day 32 Answers**
@ -125,7 +125,7 @@ Root bridge for: VLAN0050, VLAN0060, VLAN0070
4. The `spanning-tree mode rapid-pvst` command.
5. True.
## 第32天实验
## 第 32 天实验
**Day 32 Lab**
@ -139,7 +139,7 @@ Root bridge for: VLAN0050, VLAN0060, VLAN0070
**实验目的**
学习RSTP的配置命令。
学习 RSTP 的配置命令。
**实验步骤**
@ -152,7 +152,7 @@ Root bridge for: VLAN0050, VLAN0060, VLAN0070
Root bridge for: VLAN0002 VLAN0003
```
2. 将模式改为RSTP并再度检查。
2. 将模式改为 RSTP 并再度检查。
```console
@ -162,6 +162,6 @@ Root bridge for: VLAN0050, VLAN0060, VLAN0070
Root bridge for: VLAN0002 VLAN0003
```
3. 用RSTP模式来重复第31天的实验。
3. 用 RSTP 模式来重复第 31 天的实验。
4. 你可以预先预测出那些端口将是根/指定/阻塞端口吗can you predict which ports will be Root/Designated/Blocking beforehand

View File

@ -1,4 +1,4 @@
# 第33天 以太网通道及链路聚合协议
# 第 33 天 以太网通道及链路聚合协议
**EtherChannels and Link Aggregation Protocols**
@ -16,15 +16,15 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第33天任务
## 第 33 天任务
- 阅读今天的课文
- 复习昨天的课文
- 完成今天的实验
- 阅读ICND2记诵指南
- 在网站[subnetting.org](http://subnetting.org/)上花15分钟
- 阅读 ICND2 记诵指南
- 在网站[subnetting.org](http://subnetting.org/)上花 15 分钟
思科IOS软件允许管理员将交换机上的多条物理链路multiple physical links结合成为一条单一的逻辑链路。这样做提供了一种负载分配以及链路冗余的理想方案且可同时为二层及三层子系统所使用provides an ideal solution for load sharing, as well as link redundancy, and can be used by both Layer 2 and Layer 3 subsystems
思科 IOS 软件允许管理员将交换机上的多条物理链路multiple physical links结合成为一条单一的逻辑链路。这样做提供了一种负载分配以及链路冗余的理想方案且可同时为二层及三层子系统所使用provides an ideal solution for load sharing, as well as link redundancy, and can be used by both Layer 2 and Layer 3 subsystems
今天将学习以下内容。
@ -33,11 +33,11 @@ ___
- PAgP的端口模式PAgP port modes
- PAgP 以太网通道协议的数据包转发, PAgP EtherChannel Protocol packet forwarding
- 链路聚合控制协议概述Link Aggregation Control Protocol(LACP) overview
- 各种LACP端口模式LACP port modes
- 各种 LACP 端口模式LACP port modes
- 不同以太网通道负载分配方法EtherChannel load-distribution methods
- 不同二层以太网通道的配置和验证Configuring and verifying Layer 2 EtherChannels
本课对应了以下ICND2大纲要求。
本课对应了以下 ICND2 大纲要求。
- 不同以太网通道技术EtherChannels
@ -45,61 +45,61 @@ ___
**Understanding EtherChannels**
以太网通道是由一些物理的、单独的FastEthernet、GigabitEthernet或Ten-GigabitEthernet(10Gbps)链路绑定在一起所构成的一条单一逻辑链路links that are bundled together into a single logical link如下面的图33.1所示。由FastEthernet链路所构成的以太网通道叫做FastEtherChannel(FEC)由GigabitEthernet链路所构成的通道被称为GigabitEtherChannel(GEC)最后由Ten-GigabitEthernet链路所构成的以太网通道则被称为是Ten-GigabitEtherChannel(10GEC)。
以太网通道是由一些物理的、单独的 FastEthernet GigabitEthernet 或Ten-GigabitEthernet(10Gbps)链路绑定在一起所构成的一条单一逻辑链路links that are bundled together into a single logical link如下面的图33.1所示。由 FastEthernet 链路所构成的以太网通道叫做FastEtherChannel(FEC);由 GigabitEthernet 链路所构成的通道被称为GigabitEtherChannel(GEC)最后由Ten-GigabitEthernet链路所构成的以太网通道则被称为是Ten-GigabitEtherChannel(10GEC)。
![以太网通道的物理和逻辑视图](images/3301.png)
*图33.1 -- 以太网通道的物理和逻辑视图*
**每个以太网通道最多可由8个端口构成。**以太网通道中的物理链路**必须有着相似特性**(physical links in an EtherChannel must share similar characteristics)诸如是定义在同一个VLAN中、或有着同样的速率以及双工设置。当在思科Catalyst交换机上配置以太网通道时重要的是记住在不同Catalyst交换机型号之间所支持的以太网通道数目会有所不同。
**每个以太网通道最多可由 8 个端口构成。**以太网通道中的物理链路**必须有着相似特性**(physical links in an EtherChannel must share similar characteristics),诸如是定义在同一个 VLAN 中、或有着同样的速率以及双工设置。当在思科 Catalyst 交换机上配置以太网通道时,重要的是记住在不同 Catalyst 交换机型号之间,所支持的以太网通道数目会有所不同。
比如在Catalyst 3750系列交换机上支持的数目是1到48个在Catalyst 4500系列交换机上是1到64个而在旗舰的Catalyst 6500系列交换机有效的以太网通道配置数目则是依据软件版本the software release。对早于12.1(3aE3的版本有效数值是1到256对于12.1(3aE3、12.1(3aE4以及12.1(4)E1有效数值是1到64。而对于12.1(5c)EX及以后的版本支持最大64的数量范围从1到256。
比如在Catalyst 3750系列交换机上支持的数目是 1 48 在Catalyst 4500系列交换机上 1 64 而在旗舰的Catalyst 6500系列交换机有效的以太网通道配置数目则是依据软件版本the software release。对早于12.1(3a E3 的版本,有效数值是 1 256 对于12.1(3a E3 、12.1(3a E4 以及12.1(4)E1有效数值是 1 64 。而对于12.1(5c)EX及以后的版本支持最大 64 的数量,范围从 1 256
> **注意:** 并不要求知道不同IOS版本中所支持的以太网通道数量。
> **注意:** 并不要求知道不同 IOS 版本中所支持的以太网通道数量。
用于自动创建一个以太网通道组an EtherChannel group的链路聚合协议有两个**端口聚合协议**Port Aggregation Protocol, PAgP及**链路聚合控制协议**(Link Aggregation Control Protocol, LACP)。**PAgP是一个思科专有协议同时LACP则是IEEE 802.3ad用于从几条物理链路建立逻辑链路规格的一部分。**本模块中将详细对这两个协议进行讲述。
用于自动创建一个以太网通道组an EtherChannel group的链路聚合协议有两个**端口聚合协议**Port Aggregation Protocol, PAgP及**链路聚合控制协议**(Link Aggregation Control Protocol, LACP)。**PAgP是一个思科专有协议同时 LACP 则是IEEE 802.3ad用于从几条物理链路建立逻辑链路规格的一部分。**本模块中将详细对这两个协议进行讲述。
## 端口聚合协议概述
**Port Aggregation Protocol Overview**
端口聚合协议Port Aggregation Protocol, PAgP是一个实现以太网通道自动建立的思科专有链路聚合协议a Cisco proprietary link aggregation protocol that enables the automatic creation of EtherChannels。默认下PAgP数据包在可作为以太网通道的端口之间发送PAgP packets are sent between EtherChannel-capable ports就以太网通道的形成进行协商。这些数据包被发送到目的多播MAC地址`01-00-0C-CC-CC-CC`(the destination Multicast MAC address `01-00-0C-CC-CC-CC`)而该多播MAC地址也是CDP、UDLD、VTP以及DTP所用到同一多播地址。下图33.2显示了在线路上所见到的一个PAgP数据帧中所包含的字段。
端口聚合协议Port Aggregation Protocol, PAgP是一个实现以太网通道自动建立的思科专有链路聚合协议a Cisco proprietary link aggregation protocol that enables the automatic creation of EtherChannels。默认下 PAgP 数据包在可作为以太网通道的端口之间发送PAgP packets are sent between EtherChannel-capable ports就以太网通道的形成进行协商。这些数据包被发送到目的多播 MAC 地址`01-00-0C-CC-CC-CC`(the destination Multicast MAC address `01-00-0C-CC-CC-CC`),而该多播 MAC 地址也是 CDP UDLD VTP 以及 DTP 所用到同一多播地址。下图33.2显示了在线路上所见到的一个 PAgP 数据帧中所包含的字段。
![PAgP以太网头部](images/3302.png)
*图 33.2 -- PAgP以太网头部*
尽管对PAgP数据包格式的深入探讨超出了CCNA考试要求范围下图33.3还是对一个典型的PAgP数据包所包含的字段进行了展示。PAgP数据所包含的一些字段与CCNA考试有关在本模块的跟进中将详细说明这些字段。
尽管对 PAgP 数据包格式的深入探讨超出了 CCNA 考试要求范围下图33.3还是对一个典型的 PAgP 数据包所包含的字段进行了展示。 PAgP 数据所包含的一些字段与 CCNA 考试有关,在本模块的跟进中将详细说明这些字段。
![端口聚合协议数据帧](images/3303.png)
*图 33.3 -- 端口聚合协议数据帧*
## 各种PAgP端口模式
## 各种 PAgP 端口模式
**PAgP Port Modes**
PAgP支持不同端口模式而这些端口模式则决定在两台支持PAgP的交换机(two PAgP-capable switches)之间将是否形成一个以太网通道。在深入到这两种PAgP端口模式之前一种特别的模式需要专门关注。该模式就是“on”模式有时被误当作一种PAgP模式。事实上其并不是一种PAgP的端口模式。
PAgP支持不同端口模式而这些端口模式则决定在两台支持 PAgP 的交换机(two PAgP-capable switches)之间将是否形成一个以太网通道。在深入到这两种 PAgP 端口模式之前,一种特别的模式需要专门关注。该模式(就是“ on ”模式)有时被误当作一种 PAgP 模式。事实上,其并不是一种 PAgP 的端口模式。
**该`on`模式强制将某个端口无条件地置于某个通道当中。**该通道将只在另一个交换机端口连接上、且被配置为`on`模式时建立起来。在此模式开启后就不会有该通道的协商被本地以太网通道协议所执行。也就是说这样做将切实关闭以太网通道协商并强制该端口到该通道when this mode is enabled, there is no negotiation of the channel performed by the local EtherChannel protocol. In other words, this effectively disables EtherChannel negotiation and forces the port to the channel。该模式的运作与中继链路上的`switchport nonegatiate`类似。**而重要的是记住配置为`on`模式的交换机接口不会对PAgP数据包进行交换。**
**该`on`模式强制将某个端口无条件地置于某个通道当中。**该通道将只在另一个交换机端口连接上、且被配置为`on`模式时建立起来。在此模式开启后就不会有该通道的协商被本地以太网通道协议所执行。也就是说这样做将切实关闭以太网通道协商并强制该端口到该通道when this mode is enabled, there is no negotiation of the channel performed by the local EtherChannel protocol. In other words, this effectively disables EtherChannel negotiation and forces the port to the channel。该模式的运作与中继链路上的`switchport nonegatiate`类似。**而重要的是记住配置为`on`模式的交换机接口不会对 PAgP 数据包进行交换。**
采用PAgP的交换机以太网通道可被配置为以这两种模式运行**自动**`auto`)或**我要**`desirable`。这两种PAgP模式的运作在下面的小节进行说明。
采用 PAgP 的交换机以太网通道可被配置为以这两种模式运行:**自动**`auto`)或**我要**`desirable`)。这两种 PAgP 模式的运作,在下面的小节进行说明。
### 自动模式
**Auto Mode**
自动模式(`auto` mode)是一种仅在该端口接收到一个PAgP数据包时才与另一PAgP端口进行协商的PAgP端口模式。在此模式开启后这些端口绝不会发起PAgP通信而会在与邻居交换机建立一个以太网通道之前被动地侦听任何接收到的PAgP数据包when this mode is enabled, the port(s) will never initiate PAgP communications but will instead listen passively for any received PAgP packets before creating an EtherChannel with the neighbouring switch
自动模式(`auto` mode)是一种仅在该端口接收到一个 PAgP 数据包时,才与另一 PAgP 端口进行协商的 PAgP 端口模式。在此模式开启后,该(这些)端口绝不会发起 PAgP 通信,而会在与邻居交换机建立一个以太网通道之前,被动地侦听任何接收到的 PAgP 数据包when this mode is enabled, the port(s) will never initiate PAgP communications but will instead listen passively for any received PAgP packets before creating an EtherChannel with the neighbouring switch
### 我要模式
**Desirable Mode**
我要模式(`desirable` mode是一种导致某端口发起与另一PAgP端口就通道建立而进行PAgP协商的PAgP端口模式desirable mode is a PAgP mode that causes the port to initiate PAgP negotiation for a channel with another PAgP port。也就是说在此模式下该端口主动尝试与运行了PAgP的另一交换机建立一个以太网通道。
我要模式(`desirable` mode是一种导致某端口发起与另一 PAgP 端口就通道建立而进行 PAgP 协商的 PAgP 端口模式desirable mode is a PAgP mode that causes the port to initiate PAgP negotiation for a channel with another PAgP port。也就是说在此模式下该端口主动尝试与运行了 PAgP 的另一交换机建立一个以太网通道。
总的来说,要记住配置成`on`模式的交换机接口不交换PAgP数据包**但它们会与那些配置为`auto`或`desirable`模式的伙伴接口进行PAgP数据包的交换**but they do exchange PAgP packets with partner interfaces configured in the auto or desirable modes。表33.1展示了不同的PAgP组合及其在建立一个以太网通道时所使用的结果。
总的来说,要记住配置成`on`模式的交换机接口,不交换 PAgP 数据包,**但它们会与那些配置为`auto`或`desirable`模式的伙伴接口进行 PAgP 数据包的交换**but they do exchange PAgP packets with partner interfaces configured in the auto or desirable modes。表33.1展示了不同的 PAgP 组合及其在建立一个以太网通道时所使用的结果。
*表 33.1 -- 采用不同PAgP模式的以太网通道形成*
*表 33.1 -- 采用不同 PAgP 模式的以太网通道形成*
<table>
<tr><th>交换机一PAgP模式</th><th>交换机二PAgP模式</th><th>以太网通道结果</th></tr>
<tr><th>交换机一 PAgP 模式</th><th>交换机二 PAgP 模式</th><th>以太网通道结果</th></tr>
<tr><td>Auto</td><td>Auto</td><td>不会形成以太网通道</td></tr>
<tr><td>Auto</td><td>Desirable</td><td>形成以太网通道</td></tr>
<tr><td>Desirable</td><td>Auto</td><td>形成以太网通道</td></tr>
@ -110,9 +110,9 @@ PAgP支持不同端口模式而这些端口模式则决定在两台支持PAgP
**PAgP EtherChannel Protocol Packet Forwarding**
尽管PAgP允许以太网通道中的所有链路用于转发和接收用户流量但应熟知一些关于在转发来自其它协议的流量时的限制。**DTP及CDP透过以太网通道中的所有物理接口发送和接收协议数据包。而PAgP仅在那些起来`up`)并开启了`auto`或`desirable`模式的接口上发送并接收PAgP协议数据单元**while PAgP allows for all links within the EtherChannel to be used to forward and receive user traffic, there are some restrictions that you should be familiar with regarding the forwarding of traffic from other protocols. DTP and CDP send and receive packets over all the physical interfaces in the EtherChannel. PAgP sends and receives PAgP Protocol Data Units only from interfaces that are up and have PAgP enabled for auto or desirable modes
尽管 PAgP 允许以太网通道中的所有链路用于转发和接收用户流量,但应熟知一些关于在转发来自其它协议的流量时的限制。**DTP及 CDP 透过以太网通道中的所有物理接口发送和接收(协议)数据包。而 PAgP 仅在那些起来(`up`)并开启了`auto`或`desirable`模式的接口上发送并接收 PAgP 协议数据单元**while PAgP allows for all links within the EtherChannel to be used to forward and receive user traffic, there are some restrictions that you should be familiar with regarding the forwarding of traffic from other protocols. DTP and CDP send and receive packets over all the physical interfaces in the EtherChannel. PAgP sends and receives PAgP Protocol Data Units only from interfaces that are up and have PAgP enabled for auto or desirable modes
在以太网通道捆绑an EtherChannel bundle被配置成一个中继端口时该中继就在编号最低的VLAN上发送和接收PAgP数据帧。**生成树协议总是选择以太网通道捆绑中的第一个可运作端口**when an EtherChannel bundle is configured as a trunk port, the trunk sends and receives PAgP frames on the lowest numbered VLAN. Spanning Tree Protocol(STP) always chooses the first operational port in an EtherChannel bundle。命令`show pagp [channel number] neighbor`同样可用于验证将会用于STP数据包发送和接收的端口确定出以太网通道捆绑中STP将使用的端口如下面的输出所示。
在以太网通道捆绑an EtherChannel bundle被配置成一个中继端口时该中继就在编号最低的 VLAN 上发送和接收 PAgP 数据帧。**生成树协议总是选择以太网通道捆绑中的第一个可运作端口**when an EtherChannel bundle is configured as a trunk port, the trunk sends and receives PAgP frames on the lowest numbered VLAN. Spanning Tree Protocol(STP) always chooses the first operational port in an EtherChannel bundle。命令`show pagp [channel number] neighbor`同样可用于验证将会用于 STP 数据包发送和接收的端口,确定出以太网通道捆绑中 STP 将使用的端口,如下面的输出所示。
```console
Switch-1#show pagp neighbor
@ -126,7 +126,7 @@ Fa0/2 Switch-2 0014.a9e5.d640 Fa0/2 1s SC 10001
Fa0/3 Switch-2 0014.a9e5.d640 Fa0/3 15s SC 10001
```
根据上面的输出STP将在端口`FastEthernet0/1`上发出其协议数据包因为该端口是第一个可运作接口。而如那个端口失效STP将在`FastEthernet0/2`上发出其协议数据包。而由PAgP所使用的默认端口则可由`show EtherChannel summary`命令进行查看,如下面的输出所示。
根据上面的输出, STP 将在端口`FastEthernet0/1`上发出其协议数据包,因为该端口是第一个可运作接口。而如那个端口失效, STP 将在`FastEthernet0/2`上发出其协议数据包。而由 PAgP 所使用的默认端口则可由`show EtherChannel summary`命令进行查看,如下面的输出所示。
```console
Switch-1#show EtherChannel summary
@ -148,31 +148,31 @@ Group Port-channel Protocol Ports
1 Po1(SU) PAgP Fa0/1(Pd) Fa0/2(P) Fa0/3(P)
```
当在以太网通道上配置诸如`Loop Guard`这样的附加STP特性时非常重要的是记住就算该通道捆绑中的其它端口是可运作的**在`Loop Guard`阻塞以太网通道捆绑的第一个端口时就不会有BPDUs通过该通道得以发送了**。这是因为PAgP将强制令到作为以太网通道端口组中的所有端口在`Loop Guard`配置上一致when configuring additional STP features such as Loop Guard on an EtherChannel, it is very important to remember that if Loop Guard blocks the first port, no BPDUs will be sent over the channel, even if other ports in the channel bundle are operational. This is because PAgP will enforce uniform Loop Guard configuration on all of the ports that are part of the EtherChannel group
当在以太网通道上配置诸如`Loop Guard`这样的附加 STP 特性时,非常重要的是记住就算该通道捆绑中的其它端口是可运作的,**在`Loop Guard`阻塞以太网通道捆绑的第一个端口时,就不会有 BPDUs 通过该通道得以发送了**。这是因为 PAgP 将强制令到作为以太网通道端口组中的所有端口在`Loop Guard`配置上一致when configuring additional STP features such as Loop Guard on an EtherChannel, it is very important to remember that if Loop Guard blocks the first port, no BPDUs will be sent over the channel, even if other ports in the channel bundle are operational. This is because PAgP will enforce uniform Loop Guard configuration on all of the ports that are part of the EtherChannel group
> **真实场景应用**
> **Real-World Implementation**
> 在生产网络中可能会用到思科虚拟交换系统the Cisco Virtual Switching System, VSS该系统是由两台物理Catalyst 6500系列交换机所构成的一台单一逻辑交换机。在VSS中一台交换机被选为活动交换机the active switch同时另一交换机就被选为了备用交换机the standby switch。这两台交换机就是通过以太网通道连接在一起从而允许它们之间控制数据包的发送和接收。
> 在生产网络中可能会用到思科虚拟交换系统the Cisco Virtual Switching System, VSS该系统是由两台物理Catalyst 6500系列交换机所构成的一台单一逻辑交换机。在 VSS 一台交换机被选为活动交换机the active switch同时另一交换机就被选为了备用交换机the standby switch。这两台交换机就是通过以太网通道连接在一起从而允许它们之间控制数据包的发送和接收。
> 接入交换机通过采用多机以太网通道Multichassis EtherChannel, MEC与VSS连接起来。而一个MEC就是一个对两台物理的Catalyst 6500交换机进行跨越而端接至一台逻辑虚拟交换机系统的以太网通道。增强的端口聚合协议Enhanced PAgP, PAgP+可用于允许Catalyst 6500交换机在其相互之间的以太网通道失效导致两台交换机都假定其自身是活动角色双活动 从而切实影响到交换网络中流量转发时经由MEC进行通信an MEC is simply an EtherChannel that spans the two physical Catalyst 6500 switches but terminates to the single logical VSS. Enhanced PAgP(PAgP+) can be used to allow the Catalyst 6500 switches to communicate via the MEC in the event that the EtherChannel between them fails, which would result in both switches assuming the active role(dual active), effectively affecting forwarding of traffic within the switched network。这在下面的图表中进行了演示。
> 接入交换机通过采用多机以太网通道Multichassis EtherChannel, MEC VSS 连接起来。而一个 MEC 就是一个对两台物理的Catalyst 6500交换机进行跨越而端接至一台逻辑虚拟交换机系统的以太网通道。增强的端口聚合协议Enhanced PAgP, PAgP+可用于允许Catalyst 6500交换机在其相互之间的以太网通道失效导致两台交换机都假定其自身是活动角色双活动 从而切实影响到交换网络中流量转发时,经由 MEC 进行通信an MEC is simply an EtherChannel that spans the two physical Catalyst 6500 switches but terminates to the single logical VSS. Enhanced PAgP(PAgP+) can be used to allow the Catalyst 6500 switches to communicate via the MEC in the event that the EtherChannel between them fails, which would result in both switches assuming the active role(dual active), effectively affecting forwarding of traffic within the switched network。这在下面的图表中进行了演示。
![PAgP+](images/3300.png)
尽管VSS超出了CCNA考试要求范围了解**只有PAgP才能用于承载VSS控制数据包**是有益处的。因此如要在一个VSS环境或者要在一个最终会部署上VSS的环境中部署一些以太网通道就会打算考虑运行PAgP而不是LACP因为LACP是一个开放标准不支持专有的VSS数据帧。本书中不会更为深入地涉及VSS。
尽管 VSS 超出了 CCNA 考试要求范围,了解**只有 PAgP 才能用于承载 VSS 控制数据包**是有益处的。因此,如要在一个 VSS 环境,或者要在一个最终会部署上 VSS 的环境中部署一些以太网通道,就会打算考虑运行 PAgP 而不是 LACP ,因为 LACP 是一个开放标准,不支持专有的 VSS 数据帧。本书中不会更为深入地涉及 VSS
## 链路聚合控制协议概述
**Link Aggregation Control Protocol Overview**
链路聚合控制协议Link Aggregation Control Protocol, LACP是IEEE 802.3ad规格的组成部分用于从多条物理链路建立起一条逻辑链路。因为LACP与PAgP是不兼容的所以链路的两端需要运行LACP以令到以太网通道组自动形成Because LACP and PAgP are incompatible, both ends of the link need to run LACP in order to automate the formation of EtherChannel groups
链路聚合控制协议Link Aggregation Control Protocol, LACP是IEEE 802.3ad规格的组成部分,用于从多条物理链路建立起一条逻辑链路。因为 LACP PAgP 是不兼容的,所以链路的两端需要运行 LACP 以令到以太网通道组自动形成Because LACP and PAgP are incompatible, both ends of the link need to run LACP in order to automate the formation of EtherChannel groups
与PAgP的情形一样**在配置LACP以太网通道时所有LAN端口都必须是同样速率且都必须被配置成二层或三层LAN端口。**而当某端口通道中的一条链路失效时,那么先前由该链路所承载的流量就由该端口通道中剩下的链路进行交换。此外,在对某个端口通道中的活动绑定端口的编号进行修改后,流量模式将反应出该端口通道重新平衡之后的状态。
PAgP 的情形一样,**在配置 LACP 以太网通道时,所有 LAN 端口都必须是同样速率,且都必须被配置成二层或三层 LAN 端口。**而当某端口通道中的一条链路失效时,那么先前由该链路所承载的流量就由该端口通道中剩下的链路进行交换。此外,在对某个端口通道中的活动绑定端口的编号进行修改后,流量模式将反应出该端口通道重新平衡之后的状态。
LACP通过在端口之间交换LACP数据包实现对端口通道自动创建的支持。其对端口组别具备的各项能力进行动态学习并通知给其它端口。而一旦LACP正确地识别出这些匹配的以太网链路其就推进将这些链路编组为一个GigabitEthernet端口通道。与PAgP要求端口有着相同速率及双工设置不同**LACP要求端口只能是全双工因为半双工是不支持的**。某个LACP以太网通道中的那些半双工端口被置为暂停状态Half-duplex ports in an LACP EtherChannel are placed into the suspended state
LACP通过在端口之间交换 LACP 数据包,实现对端口通道自动创建的支持。其对端口组别具备的各项能力进行动态学习,并通知给其它端口。而一旦 LACP 正确地识别出这些匹配的以太网链路,其就推进将这些链路编组为一个 GigabitEthernet 端口通道。与 PAgP 要求端口有着相同速率及双工设置不同,**LACP要求端口只能是全双工因为半双工是不支持的**。某个 LACP 以太网通道中的那些半双工端口被置为暂停状态Half-duplex ports in an LACP EtherChannel are placed into the suspended state
默认情况下一条链路上的所有入口广播及多播数据包在该端口通道的其它链路上的返回都被阻止by default, all inbound Broadcast and Multicast packets on one link in a port channel are blocked from returning on any other link of the port channel。LACP数据包被发送到IEEE 802.3慢速协议多播组地址the IEEE 802.3 Slow Protocols Multicast group address`01-80-C2-00-00-02`。LACP数据帧以EtherType数值0x8809进行编码。下图33.4演示了一个以太网数据帧中的这些字段。
默认情况下一条链路上的所有入口广播及多播数据包在该端口通道的其它链路上的返回都被阻止by default, all inbound Broadcast and Multicast packets on one link in a port channel are blocked from returning on any other link of the port channel LACP 数据包被发送到IEEE 802.3慢速协议多播组地址the IEEE 802.3 Slow Protocols Multicast group address`01-80-C2-00-00-02`。 LACP 数据帧以 EtherType 数值 0x8809 进行编码。下图33.4演示了一个以太网数据帧中的这些字段。
![IEEE 802.3 LACP数据帧](images/3304.png)
@ -182,28 +182,28 @@ LACP通过在端口之间交换LACP数据包实现对端口通道自动创建
**LACP Port Modes**
LACP通过在端口之间交换LACP数据包实现对端口通道自动建立的支持。而LACP又是通过动态地掌握端口组的各项能力并将其通告给其它端口完成的端口间数据交换。一旦LACP正确地识别出那些匹配的以太网链路就推进这些链路编组为一个端口通道。而一旦LACP模式得以配置其仅会在某单个接口被分配到指定通道组时被改变。LACP支持两种模式**主动**`acitve`)及**被动**`passive`)模式。后续小节将对这两种模式的运作进行说明。
LACP通过在端口之间交换 LACP 数据包,实现对端口通道自动建立的支持。而 LACP 又是通过动态地掌握端口组的各项能力并将其通告给其它端口完成的端口间数据交换。一旦 LACP 正确地识别出那些匹配的以太网链路,就推进这些链路编组为一个端口通道。而一旦 LACP 模式得以配置,其仅会在某单个接口被分配到指定通道组时被改变。 LACP 支持两种模式,**主动**`acitve`)及**被动**`passive`)模式。后续小节将对这两种模式的运作进行说明。
### LACP主动模式
**LACP Active Mode**
LACP主动模式将一个交换机端口置为经由发送LACP数据包对远端端口发起协商的主动协商状态an active negotiating state in which the switch port initiates negotiations with remote ports by sending LACP packets。主动模式与PAgP的`desirable`模式等价。也就是说在此模式下交换机端口主动尝试与另一台同样运行LACP的交换机建立以太网通道。
LACP主动模式将一个交换机端口置为经由发送 LACP 数据包对远端端口发起协商的主动协商状态an active negotiating state in which the switch port initiates negotiations with remote ports by sending LACP packets。主动模式与 PAgP 的`desirable`模式等价。也就是说,在此模式下,交换机端口主动尝试与另一台同样运行 LACP 的交换机建立以太网通道。
### LACP被动模式
**LACP Passive Mode**
当交换机端口被配置为被动模式时其只在接收到其它LACP数据包时才就建立LACP通道进行协商。在被动模式下该端口对其所接收到的LACP数据包进行响应而并不发起LACP数据包协商。该设置减少了LACP数据包传输。在此模式下该端口通道组将该接口附加到以太网通道捆绑。此模式与PAgP所用到的`auto`模式类似。
当交换机端口被配置为被动模式时,其只在接收到其它 LACP 数据包时,才就建立 LACP 通道进行协商。在被动模式下,该端口对其所接收到的 LACP 数据包进行响应,而并不发起 LACP 数据包协商。该设置减少了 LACP 数据包传输。在此模式下,该端口通道组将该接口附加到以太网通道捆绑。此模式与 PAgP 所用到的`auto`模式类似。
重要的是记住**主动和被动模式只在非PAgP接口上是有效的**the active and passive modes are valid on non-PAgP interfaces only。但是如有着一个PAgP以太网通道并打算将其转换到LACP那么**思科IOS软件允许随时对协议进行改变**。而其间唯一的限制,就是此**改变导致全部现有以太网通道重置为新协议的默认通道模式**。下表33.2展示了不同的LACP组合及它们在两台交换机之间建立一个以太网通道中应用的结果。
重要的是记住**主动和被动模式只在非 PAgP 接口上是有效的**the active and passive modes are valid on non-PAgP interfaces only。但是如有着一个 PAgP 以太网通道,并打算将其转换到 LACP ,那么**思科 IOS 软件允许随时对协议进行改变**。而其间唯一的限制,就是此**改变导致全部现有以太网通道重置为新协议的默认通道模式**。下表33.2展示了不同的 LACP 组合及它们在两台交换机之间建立一个以太网通道中应用的结果。
*表 33.2 -- 使用不同LACP模式的以太网通道形成*
*表 33.2 -- 使用不同 LACP 模式的以太网通道形成*
*Table 33.2 -- EtherChannel Formation Using Different LACP Modes*
<table>
<tr><th>交换机一的LACP模式</th><th>交换机二的LACP模式</th><th>以太网通道结果</th></tr>
<tr><th>交换机一的 LACP 模式</th><th>交换机二的 LACP 模式</th><th>以太网通道结果</th></tr>
<tr><td>被动模式</td><td>被动模式</td><td>没有以太网通道形成</td></tr>
<tr><td>被动模式</td><td>主动模式</td><td>形成以太网通道</td></tr>
<tr><td>主动模式</td><td>主动模式</td><td>形成以太网通道</td></tr>
@ -214,9 +214,9 @@ LACP主动模式将一个交换机端口置为经由发送LACP数据包对远
**EtherChannel Load-Distribution Methods**
对于PAgP及LACP以太网通道Catalyst交换机使用到一种利用数据包头部的一些关键字段生成一个随后匹配到以太网通道组中的某条物理链路的散列值的多态算法。也就是说交换机通过将由帧中的地址所形成的二进制模式减少到从以太网通道中多条链路选出一条的一个数值从而实现流量负载在这些链路上的分配a polymorphic algorithm that utilises key fields from the header of the packet to generate a hash which is then matched to a physical link in an EtherChannel group. In other words, the switch distributes the traffic load across the links in an EtherChannel by reducing part of the binary pattern formed from the addresses in the frame to a numerical value that selects one of the links in the EtherChannel
对于 PAgP LACP 以太网通道, Catalyst 交换机使用到一种利用数据包头部的一些关键字段生成一个随后匹配到以太网通道组中的某条物理链路的散列值的多态算法。也就是说交换机通过将由帧中的地址所形成的二进制模式减少到从以太网通道中多条链路选出一条的一个数值从而实现流量负载在这些链路上的分配a polymorphic algorithm that utilises key fields from the header of the packet to generate a hash which is then matched to a physical link in an EtherChannel group. In other words, the switch distributes the traffic load across the links in an EtherChannel by reducing part of the binary pattern formed from the addresses in the frame to a numerical value that selects one of the links in the EtherChannel
此操作可在MAC地址或IP地址上完成并可仅基于源或目的地址或同时基于源或目的地址。尽管对以太网通道负载分配中所用到的该散列值的实际计算的深入探讨是超出CCNA考试要求范围的但知道管理员可以指定头部中的哪些字段作为确定某个数据包的传输物理链路所用到的算法的输入是重要的while delving into detail on the actual computation of the hash used in EtherChannel load distribution is beyond the scope of the CCNA exam requirements, it is important to know that the adminitrator can define which fields in the header can be used as input to the algorithm used to determine the physical link transport to the packet
此操作可在 MAC 地址或 IP 地址上完成,并可仅基于源或目的地址,或同时基于源或目的地址。尽管对以太网通道负载分配中所用到的该散列值的实际计算的深入探讨,是超出 CCNA 考试要求范围的但知道管理员可以指定头部中的哪些字段作为确定某个数据包的传输物理链路所用到的算法的输入是重要的while delving into detail on the actual computation of the hash used in EtherChannel load distribution is beyond the scope of the CCNA exam requirements, it is important to know that the adminitrator can define which fields in the header can be used as input to the algorithm used to determine the physical link transport to the packet
负载分配方式通过全局配置命令`port-channel load-balance [method]`进行配置。在任何时间都只能使用一种单一方式。下表33.3列出并解释了在配置以太网通道负载分配时思科IOS Catalyst交换机中可用的不同方式。
@ -226,29 +226,29 @@ LACP主动模式将一个交换机端口置为经由发送LACP数据包对远
<table>
<tr><th>方式</th><th>说明</th></tr>
<tr><td>dst-ip</td><td>进行基于目的IP地址的负载分配performs load distribution based on the destination IP address</td></tr>
<tr><td>dst-mac</td><td>进行基于目的MAC地址的负载分配performs load distribution based on the destination MAC address</td></tr>
<tr><td>dst-port</td><td>进行基于基于目的第4层端口的负载分配performs load distribution based on the destination Layer 4 port</td></tr>
<tr><td>src-dst-ip</td><td>进行基于源和目的IP地址的负载分配performs load distribution based on the source and destination IP address</td></tr>
<tr><td>src-dst-port</td><td>进行基于源和目的第4层端口的负载分配performs load distribution based on the source and destination Layer 4 port</td></tr>
<tr><td>src-ip</td><td>进行基于源IP地址的负载分配performs load distribution based on the source IP address</td></tr>
<tr><td>src-mac</td><td>进行基于源MAC地址的负载分配, performs load distribution based on the source MAC address</td></tr>
<tr><td>src-port</td><td>进行基于源第4层端口的负载分配performs load distribution based on the source Layer 4 port</td></tr>
<tr><td>dst-ip</td><td>进行基于目的 IP 地址的负载分配performs load distribution based on the destination IP address</td></tr>
<tr><td>dst-mac</td><td>进行基于目的 MAC 地址的负载分配performs load distribution based on the destination MAC address</td></tr>
<tr><td>dst-port</td><td>进行基于基于目的第 4 层端口的负载分配performs load distribution based on the destination Layer 4 port</td></tr>
<tr><td>src-dst-ip</td><td>进行基于源和目的 IP 地址的负载分配performs load distribution based on the source and destination IP address</td></tr>
<tr><td>src-dst-port</td><td>进行基于源和目的第 4 层端口的负载分配performs load distribution based on the source and destination Layer 4 port</td></tr>
<tr><td>src-ip</td><td>进行基于源 IP 地址的负载分配performs load distribution based on the source IP address</td></tr>
<tr><td>src-mac</td><td>进行基于源 MAC 地址的负载分配, performs load distribution based on the source MAC address</td></tr>
<tr><td>src-port</td><td>进行基于源第 4 层端口的负载分配performs load distribution based on the source Layer 4 port</td></tr>
</table>
## 以太网通道配置准则
**EtherChannel Configuration Guidelines**
以下小节列出并说明了配置二层PAgP以太网通道所需要的步骤。但在深入到这些配置步骤之前有必要熟悉下面这些配置二层以太网通道时的限制。
以下小节列出并说明了配置二层 PAgP 以太网通道所需要的步骤。但在深入到这些配置步骤之前,有必要熟悉下面这些配置二层以太网通道时的限制。
- 每个以太网通道可以有最多8个兼容配置的以太网接口。而LACP则允许一个以太网通道组中多于8个的端口。不过这些额外端口都是热备份hot-standby端口。
- 以太网通道中的所有接口都必须以相同的速率及双工模式运行。记住与PAgP不同LACP并不支持半双工端口。
- 每个以太网通道可以有最多 8 个兼容配置的以太网接口。而 LACP 则允许一个以太网通道组中多于 8 个的端口。不过这些额外端口都是热备份hot-standby端口。
- 以太网通道中的所有接口都必须以相同的速率及双工模式运行。记住,与 PAgP 不同, LACP 并不支持半双工端口。
- 确保以太网通道中的所有接口都是开启的。在某些情况下如这些接口没有开启那么该逻辑端口通道接口the logical port channel interface就不会被自动创建。
- 在初次配置一个以太网通道组时重要的是记住这些端口与所加入的第一个组端口参数集一致when first configuring an EtherChannel group, it is important to remember that ports follow the parameters set for the first group port added
- 如有为某个以太网通道中的某个成员端口配置交换机端口分析器Switch Port Analyzer, SPAN, 那么该端口将会从该以太网通道组中移除。
- 将以太网通道中的所有端口都指派到同一个VLAN或将它们配置成中继端口是必要的。而如果这些参数不同该通道就不会形成。
- 记住有着不同STP路径开销由某位管理员所修改的的那些类似接口仍可用于组成一个以太网通道。
- 将以太网通道中的所有端口都指派到同一个 VLAN ,或将它们配置成中继端口,是必要的。而如果这些参数不同,该通道就不会形成。
- 记住有着不同 STP 路径开销(由某位管理员所修改的)的那些类似接口,仍可用于组成一个以太网通道。
- 在开始通道配置之前建议首先关闭所有成员接口it is recommended to shut down all member interfaces prior to beginning channelling configuration
### 配置并验证二层以太网通道
@ -260,7 +260,7 @@ LACP主动模式将一个交换机端口置为经由发送LACP数据包对远
1. 第一个配置步骤是通过全局配置命令`interface [name]`或`interface range [range]`,进入那些所需要的以太网通道接口的接口配置模式;
2. 配置的第二步是通过接口配置命令`switchport`,将这些接口配置为二层交换机接口;
3. 第三个配置步骤是通过接口配置命令`switchport mode [access|trunk]`,将这些交换机端口配置为中继或接入链路;
4. 作为可选步骤,如该接口或这些接口已被配置为接入端口,就要使用命令`switchport access vlan [number]`将其指派到同样的VLAN中。而如该接口或这些接口已被配置为中继端口就要通过执行接口配置命令`switchport trunk allowed vlan [range]`选择允许通过该中继的那些VLANs而如VLAN 1将不作为原生VLAN802.1Q的),就要通过执行接口配置命令`switchport trunk native vlan [number]`, 输入原生VLAN。此项配置在所有端口通道成员接口上必须一致。
4. 作为可选步骤,如该接口或这些接口已被配置为接入端口,就要使用命令`switchport access vlan [number]`,将其指派到同样的 VLAN 中。而如该接口或这些接口已被配置为中继端口,就要通过执行接口配置命令`switchport trunk allowed vlan [range]`,选择允许通过该中继的那些 VLANs 而如VLAN 1将不作为原生 VLAN 802.1Q的),就要通过执行接口配置命令`switchport trunk native vlan [number]`, 输入原生 VLAN 。此项配置在所有端口通道成员接口上必须一致。
5. 下一配置步骤就是通过接口配置命令`channel-group [number] mode on`, 将这些接口配置为无条件中继(the next configuration step is to configure the interfaces to unconditionally trunk via the `channel-group [number] mode on` interface configration command)。
用到上述步骤的无条件以太网通道配置将基于下图33.5中所演示的网络拓扑。
@ -337,7 +337,7 @@ Group Port-channel Protocol Ports
1 Po1(SU) - Fa0/1(Pd) Fa0/2(P) Fa0/3(P)
```
在上面的输出中可以看到在通道组1Channel Group 1中有三条链路。接口FastEthernet0/1是默认端口**该端口将用于发送比如的STP数据包**。如果该端口失效FastEthernet0/2就将被指定为默认端口如此延续this port will be used to send STP pakcets, for example. If this port fails, FastEthernet0/2 will be designated as the default port, and so forth。同时通过看看`Po1`后面的`SU`标志,还可以看到该端口组是一个活动的二层以太网通道。下面的输出现实了由`show EtherChannel detail`命令所打印出的信息。
在上面的输出中,可以看到在通道组 1 Channel Group 1中有三条链路。接口FastEthernet0/1是默认端口**该端口将用于发送比如的 STP 数据包**。如果该端口失效FastEthernet0/2就将被指定为默认端口如此延续this port will be used to send STP pakcets, for example. If this port fails, FastEthernet0/2 will be designated as the default port, and so forth。同时通过看看`Po1`后面的`SU`标志,还可以看到该端口组是一个活动的二层以太网通道。下面的输出现实了由`show EtherChannel detail`命令所打印出的信息。
```console
Switch-2#show EtherChannel detail
@ -390,10 +390,10 @@ Index Load Port EC state No of bits
Time since last port bundled: 0d:00h:21m:20s Fa0/3
```
在上面的输出中可以看出这是一个带有通道组中最多8个可能端口中的三个的二层以太网通道。还可以看出以太网通道模式是`on`, 这是基于由一条短横线所表示的协议字段看出的。此外同样可以看出这是一个FastEtherChannel(FEC)in the output above, you can see that this is a Layer 2 EtherChannel with three out of a maximum of eight possible ports in the channel group. You can also see that the EtherChannel mode is on, based on the protocol being denoted by a hash(-). In addition, you can also see that this is a FastEtherChannel(FEC))。
在上面的输出中,可以看出这是一个带有通道组中最多 8 个可能端口中的三个的二层以太网通道。还可以看出,以太网通道模式是`on`, 这是基于由一条短横线所表示的协议字段看出的。此外同样可以看出这是一个FastEtherChannel(FEC)in the output above, you can see that this is a Layer 2 EtherChannel with three out of a maximum of eight possible ports in the channel group. You can also see that the EtherChannel mode is on, based on the protocol being denoted by a hash(-). In addition, you can also see that this is a FastEtherChannel(FEC))。
最后,还可以通过执行命令`show interface port-channel [number] switchport`对该逻辑的port-channel接口的二层运行状态进行检查。这在下面的输出中进行了演示。
在上面的输出中可以看到这是一个带有通道组中最多8个中的3个端口的二层以太网通道。还可以从由短横所表示的协议看出以太网通道模式是`on`。此外还可以看到这是一个FastEtherChannel(FEC)。
在上面的输出中,可以看到这是一个带有通道组中最多 8 个中的 3 个端口的二层以太网通道。还可以从由短横所表示的协议,看出以太网通道模式是`on`。此外还可以看到这是一个FastEtherChannel(FEC)。
最后,还可通过执行命令`show interfaces port-channel [number] switchport`, 对该逻辑的端口通道接口the logical port-channel interface的二层运作状态进行查看。这在下面的输出中有所演示。
@ -422,20 +422,20 @@ Protected: false
Appliance trust: none
```
### 配置并验证PAgP以太网通道
### 配置并验证 PAgP 以太网通道
**Configuring and Verifying PAgP EtherChannels**
此部分对PAgP二层以太网通道的配置进行了说明。为配置并建立一个PAgP以太网通道需要执行以下步骤。
此部分对 PAgP 二层以太网通道的配置进行了说明。为配置并建立一个 PAgP 以太网通道,需要执行以下步骤。
1. 第一个配置步骤是通过全局配置命令`interface [name]`或`interface range [range]`,进入到所需的这些以太网接口的接口配置模式;
2. 配置的第二步,是通过接口配置命令`switchport`, 将这些接口配置为二层交换端口;
3. 第三个配置步骤,是通过接口配置命令`switchport mode [access|trunk]`,将这些交换端口,配置为中继或接入链路;
4. 作为可选步骤,如果已将这些端口配置为接入端口,那么就要使用命令`switchport access vlan [number]`, 将其指派到同一个VLAN中而如果这些接口已被配置为中继端口那么就要通过执行接口配置命令`switchport trunk allowed vlan [range]`来选择所允许通过该中继的那些VLANs如未打算将VLAN 1用作原生VLAN对于802.1Q),就要通过执行接口配置命令`switchport trunk native vlan [number]`输入原生VLAN。此项配置在所有端口通道的成员接口上一致。
5. 作为可选项,通过执行接口配置命令`channel-protocol pagp`将PAgP配置作为以太网通道协议the EtherChannel protocol。因为以太网通道默认是PAgP的所以此命令被认为是可选的而无需输入。但执行该命令被看作是良好实践因为可以令到配置绝对确定it is considered good practice to issue this command just to be absolutely sure of your configuration
4. 作为可选步骤,如果已将这些端口配置为接入端口,那么就要使用命令`switchport access vlan [number]`, 将其指派到同一个 VLAN 中;而如果这些接口已被配置为中继端口,那么就要通过执行接口配置命令`switchport trunk allowed vlan [range]`,来选择所允许通过该中继的那些 VLANs 如未打算将VLAN 1用作原生 VLAN 对于802.1Q),就要通过执行接口配置命令`switchport trunk native vlan [number]`,输入原生 VLAN 。此项配置在所有端口通道的成员接口上一致。
5. 作为可选项,通过执行接口配置命令`channel-protocol pagp`,将 PAgP 配置作为以太网通道协议the EtherChannel protocol。因为以太网通道默认是 PAgP 所以此命令被认为是可选的而无需输入。但执行该命令被看作是良好实践因为可以令到配置绝对确定it is considered good practice to issue this command just to be absolutely sure of your configuration
6. 下一步就是通过接口配置命令`channel-group [number] mode`,将这些接口配置为无条件中继。
下面的输出演示了如何在基于上面的图33.5中所给出的网络拓扑的Switch 1和Switch 2上配置PAgP的通道PAgP channelling。该以太网通道将被配置为使用默认参数的二层802.1Q中继。
下面的输出演示了如何在基于上面的图33.5中所给出的网络拓扑的Switch 1和Switch 2上配置 PAgP 的通道PAgP channelling。该以太网通道将被配置为使用默认参数的二层802.1Q中继。
```console
Switch-1#conf t
@ -449,9 +449,9 @@ Creating a port-channel interface Port-channel 1
Switch-1(config-if-range)#exit
```
> **注意:** 在上面的输出中,选择了端口通道的`desirable`模式。可以在此命令(`channel-group 1 mode desirable`)之后加上一个额外关键字`[non-silent]`。这是因为默认情况下PAgP的`auto`模式默认是安静模式。当交换机被连接到一台不兼容PAgP的设备时就用到安静模式且绝不会传送数据包(an additional keyword, `[non-silent]`, may also be appended to the end of this command. This is because, by default, PAgP auto and desirable modes default to a silent mode. The silent mode is used when the switch is connected to a device that is not PAgP-capable and that seldom, if ever transmits packets)。一台安静相邻设备的例子an example of a silent partner就是一台文件服务器或未有生成流量的数据包分析器。而如果一台设备不会发出PAgP数据包比如处于`auto`模式),也用到安静模式。
> **注意:** 在上面的输出中,选择了端口通道的`desirable`模式。可以在此命令(`channel-group 1 mode desirable`)之后加上一个额外关键字`[non-silent]`。这是因为,默认情况下, PAgP 的`auto`模式默认是安静模式。当交换机被连接到一台不兼容 PAgP 的设备时,就用到安静模式,且绝不会传送数据包(an additional keyword, `[non-silent]`, may also be appended to the end of this command. This is because, by default, PAgP auto and desirable modes default to a silent mode. The silent mode is used when the switch is connected to a device that is not PAgP-capable and that seldom, if ever transmits packets)。一台安静相邻设备的例子an example of a silent partner就是一台文件服务器或未有生成流量的数据包分析器。而如果一台设备不会发出 PAgP 数据包(比如处于`auto`模式),也用到安静模式。
在此示例中在一个连接到一台安静相邻设备的物理端口上运行PAgP阻止了那个交换机端口成为运作端口但是该安静设置允许PAgP运行从而将该接口加入到一个通道组同时利用该接口进行传输。在本例中因为Switch 2将被配置为`auto`模式(被动模式), 该端口采用默认的安静模式运作就是首先的了In this case, running PAgP on a physical port connected to a silent partner prevents that switch port from ever becoming operational; however, the silent setting allows PAgP to operate, to attatch the interface to a channel group, and to use the interface for transmission. In this example, because Switch 2 will be configured for auto mode(passive mode), it is preferred that the port uses the default silent mode operation。这在下面的PAgP以太网通道配置中进行了演示。
在此示例中,在一个连接到一台安静相邻设备的物理端口上运行 PAgP 阻止了那个交换机端口成为运作端口;但是,该安静设置允许 PAgP 运行从而将该接口加入到一个通道组同时利用该接口进行传输。在本例中因为Switch 2将被配置为`auto`模式(被动模式), 该端口采用默认的安静模式运作就是首先的了In this case, running PAgP on a physical port connected to a silent partner prevents that switch port from ever becoming operational; however, the silent setting allows PAgP to operate, to attatch the interface to a channel group, and to use the interface for transmission. In this example, because Switch 2 will be configured for auto mode(passive mode), it is preferred that the port uses the default silent mode operation。这在下面的 PAgP 以太网通道配置中进行了演示。
```console
Switch-1#conf t
@ -468,7 +468,7 @@ Creating a port-channel interface Port-channel 1
Switch-1(config-if-range)#exit
```
继续进行PAgP以太网通道的配置则Switch 2被配置为以下这样。
继续进行 PAgP 以太网通道的配置则Switch 2被配置为以下这样。
```console
Switch-2#conf t
@ -482,7 +482,7 @@ Creating a port-channel interface Port-channel 1
Switch-2(config-if-range)#exit
```
以下输出演示了怎样通过在Switch 1及Switch 2上使用命令`show EtherChannel summary`验证该PAgP以太网通道的配置。
以下输出演示了怎样通过在Switch 1及Switch 2上使用命令`show EtherChannel summary`,验证该 PAgP 以太网通道的配置。
```console
Switch-1#show EtherChannel summary
@ -503,7 +503,7 @@ Group Port-channel Protocol Ports
1 Po1(SU) PAgP Fa0/1(Pd) Fa0/2(P) Fa0/3(P)
```
还可以通过执行命令`show pagp [options]`, 查看到PAgP以太网通道的配置及统计数据。下面的输出演示了此命令下可用的选项。
还可以通过执行命令`show pagp [options]`, 查看到 PAgP 以太网通道的配置及统计数据。下面的输出,演示了此命令下可用的选项。
```console
Switch-1#show pagp ?
@ -522,7 +522,7 @@ Switch-1#show pagp 1 ?
neighbor Neighbor information
```
关键字`[counters]`提供了有关PAgP发出及接收到的数据包的信息。关键字`[internal]`提供了诸如端口状态、Hello间隔时间、PAgP端口优先级以及端口学习方式等的信息。下面的输出对命令`show pagp internal`的使用进行了演示。
关键字`[counters]`提供了有关 PAgP 发出及接收到的数据包的信息。关键字`[internal]`提供了诸如端口状态、 Hello 间隔时间、 PAgP 端口优先级以及端口学习方式等的信息。下面的输出对命令`show pagp internal`的使用进行了演示。
```console
Switch-1#show pagp 1 internal
@ -538,7 +538,7 @@ Fa0/2 SC U6/S7 H 30s 1 128 Any 29
Fa0/3 SC U6/S7 H 30s 1 128 Any 29
```
关键字`[neighbor]`打印出邻居名称、PAgP邻居的ID、邻居设备IDMAC以及邻居端口。同时在比如邻居是一台物理学习设备时a physical learner,这些标志同样表明了邻居运行的模式。下面的输出对命令`show pagp neighbor`的使用,进行了演示。
关键字`[neighbor]`打印出邻居名称、 PAgP 邻居的 ID 、邻居设备 ID MAC 以及邻居端口。同时在比如邻居是一台物理学习设备时a physical learner,这些标志同样表明了邻居运行的模式。下面的输出对命令`show pagp neighbor`的使用,进行了演示。
```console
Switch-1#show pagp 1 neighbor
@ -552,20 +552,20 @@ Fa0/2 Switch-2 0014.a9e5.d640 Fa0/2 24s SAC 10001
Fa0/3 Switch-2 0014.a9e5.d640 Fa0/3 18s SAC 10001
```
### 配置并验证LACP以太网通道
### 配置并验证 LACP 以太网通道
**Configuring and Verifying LACP EtherChannels**
此部分对LACP的二层以太网通道的配置进行了讲述。为配置并建立一个LACP以太网通道需要执行下面这些步骤。
此部分对 LACP 的二层以太网通道的配置进行了讲述。为配置并建立一个 LACP 以太网通道,需要执行下面这些步骤。
1. 第一个配置步骤是通过全局配置命令`interface [name]`或`interface range [range]`, 进入到所需要的以太网通道接口的接口配置模式;
2. 第二个配置步骤时通过接口配置命令`switchport`,将这些接口配置为二层交换端口;
3. 第三个配置步骤,时通过接口配置命令`switchport mode [access|trunk]`,将这些交换端口配置为中继或接入链路;
4. 作为可选步骤,如该接口或这些接口已被配置为接入端口,就要使用命令`switchport access vlan [number]`将其指派到同样的VLAN中。而如该接口或这些接口已被配置为中继端口就要通过执行接口配置命令`switchport trunk allowed vlan [range]`, 选择允许通过该中继的VLANs; 而如将不使用VLAN 1作为原生VLAN802.1Q的),就要通过执行接口配置命令`switchport trunk native vlan [number]`输入该原生VLAN。此项配置在所有的端口通道成员接口上一致
5. 通过执行接口配置命令`channel-protocol lacp`, 将LACP配置作为以太网通道协议。因为以太网通道协议默认时PAgP该命令被认为时LACP所强制的同时也是所要求输入的because EtherChannels default to PAgP, this command is considered mandatory for LACP and is required
4. 作为可选步骤,如该接口或这些接口已被配置为接入端口,就要使用命令`switchport access vlan [number]`将其指派到同样的 VLAN 中。而如该接口或这些接口已被配置为中继端口,就要通过执行接口配置命令`switchport trunk allowed vlan [range]`, 选择允许通过该中继的VLANs; 而如将不使用VLAN 1作为原生 VLAN 802.1Q的),就要通过执行接口配置命令`switchport trunk native vlan [number]`,输入该原生 VLAN 。此项配置在所有的端口通道成员接口上一致;
5. 通过执行接口配置命令`channel-protocol lacp`, 将 LACP 配置作为以太网通道协议。因为以太网通道协议默认时 PAgP ,该命令被认为时 LACP 所强制的同时也是所要求输入的because EtherChannels default to PAgP, this command is considered mandatory for LACP and is required
6. 下一配置步骤时通过接口配置命令`channel-group [number] mode`将这些接口配置为无条件中继the next configuration step is to configure the interfaces to unconditionally trunk via the `channel-group [number] mode` interface configuration command
下面的输出对在Switch 1和Switch 2上如何配置基于图33.5中所给出的网络拓扑的LACP通道进行了演示该以太网通道将被配置为一个使用默认参数的二层802.1Q中继,如下面的输出所示。
下面的输出对在Switch 1和Switch 2上如何配置基于图33.5中所给出的网络拓扑的 LACP 通道进行了演示该以太网通道将被配置为一个使用默认参数的二层802.1Q中继,如下面的输出所示。
```console
Switch-1#conf t
@ -590,7 +590,7 @@ Creating a port-channel interface Port-channel 1
Switch-2(config-if-range)#exit
```
下面的输出演示了如何通过在Switch 1及Switch 2上执行`show EtherChannel summary`命令来对该LACP以太网通道配置进行验证。
下面的输出演示了如何通过在Switch 1及Switch 2上执行`show EtherChannel summary`命令,来对该 LACP 以太网通道配置进行验证。
```console
Switch-1#show EtherChannel summary
@ -612,7 +612,7 @@ Group Port-channel Protocol Ports
1 Po1(SU) LACP Fa0/1(Pd) Fa0/2(P) Fa0/3(P)
```
默认LACP允许最多16个端口进入到一个端口通道组中by default, LACP allows up to 16 ports to be entered into a port channel group。前8个运作接口将为LACP所使用而剩下的8个接口将被置为热备份状态。命令`show EtherChannel detail`显示出一个LACP以太网通道中所支持的链路最大数量如下面的输出所示。
默认 LACP 允许最多 16 个端口进入到一个端口通道组中by default, LACP allows up to 16 ports to be entered into a port channel group。前 8 个运作接口将为 LACP 所使用,而剩下的 8 个接口将被置为热备份状态。命令`show EtherChannel detail`显示出一个 LACP 以太网通道中所支持的链路最大数量,如下面的输出所示。
```console
Switch-1#show EtherChannel 1 detail
@ -715,7 +715,7 @@ Switch-1#show lacp ?
sys-id LACP System ID
```
`[counters]`关键字提供了有关LACP发出和接收到的数据包的信息。该命令的打印输出如下面所示。
`[counters]`关键字提供了有关 LACP 发出和接收到的数据包的信息。该命令的打印输出如下面所示。
```console
Switch-1#show lacp counters
@ -728,7 +728,7 @@ Fa0/2 21 18 0 0 0 0 0
Fa0/3 21 18 0 0 0 0 0
```
而`[internal]`关键字提供了诸如端口状态、管理密钥adminitrative key、LACP端口优先级以及端口编号等信息。下面的输出对此进行了演示。
而`[internal]`关键字提供了诸如端口状态、管理密钥adminitrative key LACP 端口优先级,以及端口编号等信息。下面的输出对此进行了演示。
```console
Switch-1#show lacp internal
@ -743,7 +743,7 @@ Fa0/2 SA bndl 32768 0x1 0x1 0x1 0x3D
Fa0/3 SA bndl 32768 0x1 0x1 0x2 0x3D
```
关键字`[neighbor]`打印出邻居名称、LACP邻居的ID、邻居的设备IDMAC以及邻居端口等信息。这些标志还表明邻居运行所处状态以及其是否时一个物理学习设备the flags also indicate the mode the neighbor is operating in, as well as whether it is a physical learner, for example。下面的输出对此进行了演示。
关键字`[neighbor]`打印出邻居名称、 LACP 邻居的 ID 、邻居的设备 ID MAC 以及邻居端口等信息。这些标志还表明邻居运行所处状态以及其是否时一个物理学习设备the flags also indicate the mode the neighbor is operating in, as well as whether it is a physical learner, for example。下面的输出对此进行了演示。
```console
Switch-1#show lacp neighbor
@ -774,14 +774,14 @@ Fa0/3 00001,0014.a9e5.d640 0x3 24s SP
32768 0x1 0x3C
```
最后,关键字`[sys-id]`提供了本地交换机的系统IDfinally, the `[sys-id]` keyword provides the system ID of the local switch。这是一个该交换机MAC地址和LACP优先级的结合体如下面的输出所示。
最后,关键字`[sys-id]`提供了本地交换机的系统 ID finally, the `[sys-id]` keyword provides the system ID of the local switch。这是一个该交换机 MAC 地址和 LACP 优先级的结合体,如下面的输出所示。
```console
Switch-1#show lacp sys-id
1 ,000d.bd06.4100
```
## 第33天问题
## 第 33 天问题
1. What type of ports does a FastEtherChannel contain?
2. How many ports can a standard EtherChannel contain?
@ -795,7 +795,7 @@ or false?
9. LACP automatically configures an administrative key value on each port configured to use LACP. The administrative key defines the ability of a port to aggregate with other ports. Only ports that have the same administrative key are allowed to be aggregated into the same port channel group. True or false?
10. What is the command used to assign a port to a channel group?
## 第33天答案
## 第 33 天答案
1. 100 Mbps ports.
2. Up to eight ports.
@ -808,7 +808,7 @@ or false?
9. True.
10. The `channel-group [number] mode` command in Interface Configuration mode.
## 第33天实验
## 第 33 天实验
### 以太网通道实验
@ -817,14 +817,14 @@ or false?
在一个包含了两台直接相连的交换机它们至今至少有两条链路对本课程模块中出现的配置命令进行测试。通过Fa1/1及Fa2/2将它们连接起来Fa1/1到Fa1/1及Fa2/2到Fa2/2
+ 在两条链路上以`auto-desirable`模式配置PAgP
+ 将该以太网通道配置为一条中继并允许一些VLANs通过它
+ 将该以太网通道配置为一条中继并允许一些 VLANs 通过它
+ 执行一条`show etherchannel summary`命令,并验证该端口通道是运行的
+ 执行一条`show mac-address-table`命令并看看在两台交换机上所学习到的MAC地址
+ 执行一条`show mac-address-table`命令,并看看在两台交换机上所学习到的 MAC 地址
+ 执行一条`show pagp neighbor`命令,并检查结果
+ 采用LACP的`passive-active`模式,重复上述步骤
+ 采用 LACP 的`passive-active`模式,重复上述步骤
+ 使用命令`show EtherChannel detail`及`show lacp neighbor`命令,对配置进行验证
+ 使用`show interface port-channel [number] switchport`命令,对配置进行验证
+ 通过端口通道发出一些流量ping, 并使用`show lacp counters`命令对计数器进行检查
+ 通过端口通道发出一些流量( ping , 并使用`show lacp counters`命令对计数器进行检查
+ 配置一个不同的`lacp system-priority`输出,并使用`show lacp sys-id`命令予以验证
+ 配置一个不同的`lacp port-priority`输出,并使用命令`show lacp internal`予以验证
+ 使用命令`port-channel load-balance`对LACP的负载均衡进行配置并使用`show etherchannel load-balance`命令对此进行验证
+ 使用命令`port-channel load-balance`,对 LACP 的负载均衡进行配置,并使用`show etherchannel load-balance`命令对此进行验证

View File

@ -1,4 +1,4 @@
# 第34天 第一跳冗余协议
# 第 34 天 第一跳冗余协议
**First Hop Redundancy Protocols**
@ -16,15 +16,15 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第34天任务
## 第 34 天任务
- 阅读今天的课文
- 回顾昨天的课文
- 完成今天的实验
- 阅读ICND2记诵指南
- 在[subnetting.org](subnetting.org)上花15分钟
- 阅读 ICND2 记诵指南
- 在[subnetting.org](subnetting.org)上花 15 分钟
在设计和部署交换网络时,**高可用性**High Availability, HA是一项不可或缺的考虑。作为思科IOS软件中所提供的一项技术高可用性确保了网络层面的弹性与恢复能力从而提升了IP网络的可用性。所有网段都必须具备弹性和恢复能力以便网络能足够快地从故障中恢复过来且此恢复过程要对用户及网络应用无感知及透明。这里的这些第一跳冗余协议First Hop Redundancy Protocols, FHRPs就提供了在不同的包交换局域网环境下的冗余。
在设计和部署交换网络时,**高可用性**High Availability, HA是一项不可或缺的考虑。作为思科 IOS 软件中所提供的一项技术,高可用性确保了网络层面的弹性与恢复能力,从而提升了 IP 网络的可用性。所有网段都必须具备弹性和恢复能力以便网络能足够快地从故障中恢复过来且此恢复过程要对用户及网络应用无感知及透明。这里的这些第一跳冗余协议First Hop Redundancy Protocols, FHRPs就提供了在不同的包交换局域网环境下的冗余。
今天将学习以下内容:
@ -32,9 +32,9 @@ ___
- 虚拟路由器冗余协议Virtual Router Redundancy Protocol
- 网关负载均衡协议Gateway Load Balancing Protocol
这节课对应了一下ICND2考试大纲要求
这节课对应了一下 ICND2 考试大纲要求:
+ 认识高可用性FHRP
+ 认识高可用性( FHRP
- HSRP
- VRRP
- GLBP
@ -43,108 +43,108 @@ ___
** Hot Standby Router Protocol **
热备份路由器协议是一项思科公司专有的第一跳冗余协议。HSRP令到两台配置在同样HSRP组中的物理网关使用同样的虚拟网关地址。而位处这两台网关所在的子网中的网络主机就以该虚拟网关IP地址作为其默认网关地址。
热备份路由器协议是一项思科公司专有的第一跳冗余协议。 HSRP 令到两台配置在同样 HSRP 组中的物理网关,使用同样的虚拟网关地址。而位处这两台网关所在的子网中的网络主机,就以该虚拟网关 IP 地址,作为其默认网关地址。
当HSRP运作时由主网关the primary gateway转发该HSRP组的那些以虚拟网关IP地址为目的地址的数据包。而加入主网关失效则从网关the secondary gateway就接过主网关角色并转发那些发送到虚拟网关IP地址的数据包。下面的图34.1演示了某网络中HSRP的运作
HSRP 运作时由主网关the primary gateway转发该 HSRP 组的那些以虚拟网关 IP 地址为目的地址的数据包。而加入主网关失效则从网关the secondary gateway就接过主网关角色并转发那些发送到虚拟网关 IP 地址的数据包。下面的图34.1演示了某网络中 HSRP 的运作:
![热备份路由器协议的运作](images/3401.png)
*图 34.1 -- 热备份路由器协议的运作*
参阅图 34.1HSRP 是在三层(分发/分布层the Layer 3, Distribution Layer交换机之间的`VLAN 10` 提供了网关的冗余性。分配给三层交换机 `Switch 1` 上的交换机虚拟借口the Switch Virtual Interface, SVI的IP地址是`10.10.10.2/24`, 同时分配给三层交换机Switch 2的交换机虚拟接口的IP地址是`10.10.10.3/24`。两台交换机都被配置为同一HSRP组的组成部分并共用了该虚拟网关`10.10.10.1`。
参阅图 34.1HSRP 是在三层(分发/分布层the Layer 3, Distribution Layer交换机之间的`VLAN 10` 提供了网关的冗余性。分配给三层交换机 `Switch 1` 上的交换机虚拟借口the Switch Virtual Interface, SVI IP 地址是`10.10.10.2/24`, 同时分配给三层交换机Switch 2的交换机虚拟接口的 IP 地址是`10.10.10.3/24`。两台交换机都被配置为同一 HSRP 组的组成部分,并共用了该虚拟网关`10.10.10.1`。
`Switch 1` 已被配置了优先级值`105`,而 `Switch 2` 使用的是默认优先级值`100`。因为三层交换机 `Switch 1` 有着更高的优先级值,其就被选作主交换机,同时三层交换机 `Switch 2` 被选作从交换机。在 `VLAN 10` 上的所有主机,都配置了默认网关地址`10.10.10.1`。因此,假如 `Switch 1` 失效,`Switch 2` 就将接过网关的职责。此过程对这些网络主机完全透明无感知。
> **真实世界应用**
> **Real-World Implementation**
> 在生产网络中配置各种FHRPs确保子网的活动网关同时也是该特定VLAN的生成树根桥被认为是一种好的做法。比如参阅图 34.1 中的图例,`Switch 1`在作为`VLAN 10`的 HSRP 主网关的同时,也应被配置为该 VLAN 的根桥。
> 在生产网络中配置各种 FHRPs ,确保子网的活动(主)网关同时也是该特定 VLAN 的生成树根桥,被认为是一种好的做法。比如参阅图 34.1 中的图例,`Switch 1`在作为`VLAN 10`的 HSRP 主网关的同时,也应被配置为该 VLAN 的根桥。
如此做法带来的是一个确切的网络a deterministic network从而避免在二层或三层上的次优转发。比如假设 `VLAN 10` 的根桥是 `Switch 2`,而 `VLAN 10` 的主网关又是 `Switch 1`那么从网络主机发送到默认网关IP地址的数据包就将如下图34.2那样被转发了:
如此做法带来的是一个确切的网络a deterministic network从而避免在二层或三层上的次优转发。比如假设 `VLAN 10` 的根桥是 `Switch 2`,而 `VLAN 10` 的主网关又是 `Switch 1`,那么从网络主机发送到默认网关 IP 地址的数据包就将如下图34.2那样被转发了:
![STP拓扑与HSRP拓扑的同步](images/3402.png)
![STP拓扑与 HSRP 拓扑的同步](images/3402.png)
*图 34.2 -- STP拓扑与HSRP拓扑的同步Synchronising the STP Topology with HSRP*
*图 34.2 -- STP拓扑与 HSRP 拓扑的同步Synchronising the STP Topology with HSRP*
在上面的网络中,从 `Host 1` 到`10.10.10.1`的数据包将被如下这样转发:
1. 接入层交换机收到一个来自 `Host 1`、以虚拟网关IP地址之MAC地址为目标的数据帧。此数据帧实在 `VLAN 10` 中收到的同时该接入交换机经由其根端口已学习到了虚拟网关的MAC地址。
1. 接入层交换机收到一个来自 `Host 1`、以虚拟网关 IP 地址之 MAC 地址为目标的数据帧。此数据帧实在 `VLAN 10` 中收到的,同时该接入交换机经由其根端口,已学习到了虚拟网关的 MAC 地址。
2. 因为 `VLAN 10` 的根桥是 `Switch 2`,那么到 `Switch 1`也就是HSRP的主路由器的上行线路也被置于阻塞状态。此时该接入交换机就将该数据帧经由到 `Switch 2` 的上行链路予以转发。
2. 因为 `VLAN 10` 的根桥是 `Switch 2`,那么到 `Switch 1`(也就是 HSRP 的主路由器)的上行线路也被置于阻塞状态。此时该接入交换机就将该数据帧经由到 `Switch 2` 的上行链路予以转发。
3. `Switch 2` 又经由连接到 `Switch 1` 的指定端口,转发该数据帧。对于来自 `Host 2` 的数据帧,会使用上述的相同次优路径。
思科IOS软件当前支持两个版本的HSRP版本1及版本2。后续章节将对它们的相似点和不同点进行说明。
思科 IOS 软件当前支持两个版本的 HSRP :版本 1 及版本 2 。后续章节将对它们的相似点和不同点进行说明。
### HSRP版本1
默认情况下当在思科IOS软件中开启热备份路由器协议是是开启的版本1。HSRP版本1将可配置的HSRP分组限制在最多255个。HSRP版本1的那些路由器之间的通信是通过往多播组地址Multicast group address`224.0.0.2`上使用UDP端口`1985`发送报文进行的。下面的图34.3显示了HSRP版本1的报文
默认情况下,当在思科 IOS 软件中开启热备份路由器协议是,是开启的版本 1 HSRP 版本 1 将可配置的 HSRP 分组限制在最多 255 个。 HSRP 版本 1 的那些路由器之间的通信是通过往多播组地址Multicast group address`224.0.0.2`上,使用 UDP 端口`1985`发送报文进行的。下面的图34.3显示了 HSRP 版本 1 的报文:
![HSRP版本1多播组地址](images/3403.png)
![HSRP版本 1 多播组地址](images/3403.png)
*图 34.3 -- HSRP版本1多播组地址*
*图 34.3 -- HSRP版本 1 多播组地址*
对HSRP数据包格式的深入探讨是超出CCNA考试要求的范围的下图34.4仍然给出了HSRP版本1数据包的信息
HSRP 数据包格式的深入探讨,是超出 CCNA 考试要求的范围的下图34.4仍然给出了 HSRP 版本 1 数据包的信息:
![HSRP版本1数据包的字段](images/3404.png)
![HSRP版本 1 数据包的字段](images/3404.png)
*图 34.4 -- HSRP版本1数据包的字段*
*图 34.4 -- HSRP版本 1 数据包的字段*
在图34.4中要注意版本字段显示的是数值0。这是在版本1开启时该字段的默认值不过仍然要知道这里使用的是HSRP版本1。
在图34.4中,要注意版本字段显示的是数值 0 。这是在版本 1 开启时该字段的默认值;不过仍然要知道这里使用的是 HSRP 版本 1
### HSRP版本2
HSRP版本2使用了新的多播地址`224.0.0.102`而不是版本1的多播地址`224.0.0.2`, 来发送 `Hello` 数据包。不过其所用到的UDP端口号仍然一样`1985`。同时此新地址在IP数据包及以太网数据帧中都得以编码如下图34.5所示:
HSRP版本 2 使用了新的多播地址`224.0.0.102`,而不是版本 1 的多播地址`224.0.0.2`, 来发送 `Hello` 数据包。不过其所用到的 UDP 端口号仍然一样(`1985`)。同时此新地址在 IP 数据包及以太网数据帧中都得以编码如下图34.5所示:
![HSRP版本2多播组地址](images/3405.png)
![HSRP版本 2 多播组地址](images/3405.png)
*图 34.5 -- HSRP版本2多播组地址*
*图 34.5 -- HSRP版本 2 多播组地址*
对HSRP版本2数据包格式的深入探讨也是超出CCNA考试要求范围的但要记住HSRP版本2并未使用与版本1相同的数据包格式。
HSRP 版本 2 数据包格式的深入探讨,也是超出 CCNA 考试要求范围的,但要记住 HSRP 版本 2 并未使用与版本 1 相同的数据包格式。
版本2数据包使用了一直类型/长度/值的格式a Type/Length/Value format, TLV format。被HSRP版本1的路由器接收到的版本2数据包会将类型字段映射到HSRP版本1的版本字段而被忽略掉。下图34.6给出了HSRP版本2数据包中所包含的信息
版本 2 数据包使用了一直类型/长度/值的格式a Type/Length/Value format, TLV format。被 HSRP 版本 1 的路由器接收到的版本 2 数据包,会将类型字段映射到 HSRP 版本 1 的版本字段而被忽略掉。下图34.6给出了 HSRP 版本 2 数据包中所包含的信息:
![HSRP版本2的数据包字段](images/3406.png)
![HSRP版本 2 的数据包字段](images/3406.png)
*图 34.6 -- HSRP版本2的数据包字段*
*图 34.6 -- HSRP版本 2 的数据包字段*
### HSRP版本1与版本2的比较
### HSRP版本 1 与版本 2 的比较
HSRP 版本2包括了一些对版本1的增强。本小节将对这些增强及与版本1的不同进行说明。
HSRP 版本 2 包括了一些对版本 1 的增强。本小节将对这些增强及与版本 1 的不同进行说明。
尽管HSRP版本1通告了计时器数值但这些数值都是整秒的因为版本1无法通告或学习到毫秒的计时器数值。而版本2就既可以通告也可以学习毫秒的计时器数值了。下面的图34.7与图34.8分别着重表示了HSRP版本1与版本2在计时器字段上的不同
尽管 HSRP 版本 1 通告了计时器数值,但这些数值都是整秒的,因为版本 1 无法通告或学习到毫秒的计时器数值。而版本 2 就既可以通告也可以学习毫秒的计时器数值了。下面的图34.7与图34.8分别着重表示了 HSRP 版本 1 与版本 2 在计时器字段上的不同:
![HSRP版本1的计时器字段](images/3407.png)
![HSRP版本 1 的计时器字段](images/3407.png)
*图 34.7 -- HSRP版本1的计时器字段*
*图 34.7 -- HSRP版本 1 的计时器字段*
![HSRP版本2的计时器字段](images/3408.png)
![HSRP版本 2 的计时器字段](images/3408.png)
*图 34.8 -- HSRP版本2的计时器字段*
*图 34.8 -- HSRP版本 2 的计时器字段*
HSRP版本1的分组编号是限制在 `0``255` 的,而版本 2 的分组编号则已拓展到 `0``4095` 了。本课程模块后面的HSRP配置示例中将就此差异进行演示。
HSRP版本 1 的分组编号是限制在 `0``255` 的,而版本 2 的分组编号则已拓展到 `0``4095` 了。本课程模块后面的 HSRP 配置示例中,将就此差异进行演示。
版本2通过包含一个由物理路由器接口的MAC地址生成、用于对HSRP活动 `Hello` 报文来源的唯一性识别的6字节识别符字段a 6-byte Identifier field提供了改进的管理与故障排除功能。在版本1中这些 `Hello` 报文所包含的源MAC地址都是虚拟MAC地址那就是说无法找出是哪台HSRP路由器发送的HSRP `Hello` 报文。下图34.9给出了HSRP版本2而非版本1数据包中出现的识别符字段
版本 2 通过包含一个由物理路由器接口的 MAC 地址生成、用于对 HSRP 活动 `Hello` 报文来源的唯一性识别的 6 字节识别符字段a 6-byte Identifier field提供了改进的管理与故障排除功能。在版本 1 中,这些 `Hello` 报文所包含的源 MAC 地址,都是虚拟 MAC 地址,那就是说无法找出是哪台 HSRP 路由器发送的HSRP `Hello` 报文。下图34.9给出了 HSRP 版本 2 ,而非版本 1 数据包中出现的识别符字段:
![HSRP版本2的识别符字段](images/3409.png)
![HSRP版本 2 的识别符字段](images/3409.png)
*图 34.9 -- HSRP版本2中的识别符字段*
*图 34.9 -- HSRP版本 2 中的识别符字段*
在HSRP版本1中虚拟IP地址所使用的二层地址将是一个由`0000.0C07.ACxx`构成的虚拟MAC地址这里的`xx`就是HSRP分组编号的十六进制值同时是基于相应接口的。而在HSRP版本2中虚拟网关IP地址则是使用了新的MAC地址范围`0000.0C9F.F000`到`0000.0C9F.FFFF`。下图34.10给出了这些不同该图现实了HSRP `Group 1`的版本1的虚拟MAC地址同时在图34.11中显示了版本2的虚拟MAC地址也是HSRP `Group 1`的:
HSRP 版本 1 中,虚拟 IP 地址所使用的二层地址将是一个由`0000.0C07.ACxx`构成的虚拟 MAC 地址,这里的`xx`就是 HSRP 分组编号的十六进制值,同时是基于相应接口的。而在 HSRP 版本 2 中,虚拟网关 IP 地址则是使用了新的 MAC 地址范围`0000.0C9F.F000`到`0000.0C9F.FFFF`。下图34.10给出了这些不同该图现实了HSRP `Group 1`的版本 1 的虚拟 MAC 地址同时在图34.11中显示了版本 2 的虚拟 MAC 地址也是HSRP `Group 1`的:
![HSRP版本1的虚拟MAC地址格式](images/3410.png)
![HSRP版本 1 的虚拟 MAC 地址格式](images/3410.png)
*图 34.10 -- HSRP版本1的虚拟MAC地址格式*
*图 34.10 -- HSRP版本 1 的虚拟 MAC 地址格式*
![HSRP版本2的虚拟MAC地址格式](images/3411.png)
![HSRP版本 2 的虚拟 MAC 地址格式](images/3411.png)
*图 34.11 -- HSRP版本版本2的虚拟MAC地址格式*
*图 34.11 -- HSRP版本版本 2 的虚拟 MAC 地址格式*
### HSRP的主网关选举
可通过将默认HSRP优先级值 `100`, 修改为 `1``255` 之间的任何值对HSRP主网关的选举施加影响。有着最高优先级的路由器将被选举为该HSRP分组的主网关。
可通过将默认 HSRP 优先级值 `100`, 修改为 `1``255` 之间的任何值,对 HSRP 主网关的选举施加影响。有着最高优先级的路由器将被选举为该 HSRP 分组的主网关。
而在两个网关都使用默认优先级值时或两个网关上的优先级值被手工配置为相等是那么有着最高IP地址的路由器将被选举为主网关。在HSRP数据帧中HSRP优先级值与该路由器的当前状态比如是主路由器还是备份路由器都有进行传送。下图34.12演示了一台配置了非默认优先级值`105`, 此优先级令到该路由器被选举为此HSRP组的活动网关的网关的优先级和状态字段
而在两个网关都使用默认优先级值时,或两个网关上的优先级值被手工配置为相等是,那么有着最高 IP 地址的路由器将被选举为主网关。在 HSRP 数据帧中, HSRP 优先级值与该路由器的当前状态比如是主路由器还是备份路由器都有进行传送。下图34.12演示了一台配置了非默认优先级值`105`, 此优先级令到该路由器被选举为此 HSRP 组的活动网关,的网关的优先级和状态字段:
![HSRP的优先级与状态字段](images/3412.png)
@ -158,25 +158,25 @@ HSRP路由器之间就下列三种类型的报文进行交换
- Coup报文
- Resign报文
`Hello` 报文是经由多播进行交换的这些报文告诉另一网关本地路由器的HSRP状态和优先级数值。`Hello` 报文还包含了组IDthe Group ID、各种HSRP计时器数值、HSRP版本以及认证信息。前面给出的所有报文都是HSRP的Hello报文。
`Hello` 报文是经由多播进行交换的,这些报文告诉另一网关本地路由器的 HSRP 状态和优先级数值。`Hello` 报文还包含了组 ID the Group ID、各种 HSRP 计时器数值、 HSRP 版本,以及认证信息。前面给出的所有报文,都是 HSRP Hello 报文。
HSRP Coup报文实在当前备份路由器打算接过该HSRP组的活动网关角色时发出的。这与现实生活中的一次篡位a coup détat类似。
HSRP Coup报文实在当前备份路由器打算接过该 HSRP 组的活动网关角色时发出的。这与现实生活中的一次篡位a coup dé tat )类似。
而HSRP的 `Resign` 报文,则是在活动路由器即将关闭,以及在一台有着更高优先级的网关发出一个 `Hello` 报文或 `Coup` 报文时发出的。也就是说,在活动网关交出其作为主网关角色时,发出此报文。
HSRP `Resign` 报文,则是在活动路由器即将关闭,以及在一台有着更高优先级的网关发出一个 `Hello` 报文或 `Coup` 报文时发出的。也就是说,在活动网关交出其作为主网关角色时,发出此报文。
### HSRP的抢占
**HSRP Preemption**
在已有一台网关被选举为活动网关的情况下作为HSRP组一部分的另一网关被重新配置了一个更高的HSRP优先级数值时当前活动网关会保留主转发角色。这是HSRP的默认行为。
在已有一台网关被选举为活动网关的情况下,作为 HSRP 组一部分的另一网关被重新配置了一个更高的 HSRP 优先级数值时,当前活动网关会保留主转发角色。这是 HSRP 的默认行为。
而为了在某HSRP组中已有一个主网关的情形下令到具有更高优先级的网关接过活动网关功能就必须要将该路由器配置上抢占功能。这样做就允许该网关发起一次抢占并接过该HSRP组的活动网关角色。HSRP抢占在接着的配置示例中有演示。
而为了在某 HSRP 组中已有一个主网关的情形下,令到具有更高优先级的网关接过活动网关功能,就必须要将该路由器配置上抢占功能。这样做就允许该网关发起一次抢占,并接过该 HSRP 组的活动网关角色。 HSRP 抢占在接着的配置示例中有演示。
> **注意:** 抢占并不意味着生成树拓扑也会发生改变(译者注:这将导致次优路径)。
### HSRP的各种状态
与开放最短路径有限Open Shortest Path First, OSPF的方式类似当在某个接口上开启了HSRP时该网关接口会经历以下一系列状态的改变
与开放最短路径有限Open Shortest Path First, OSPF的方式类似当在某个接口上开启了 HSRP 时,该网关接口会经历以下一系列状态的改变:
1. 关闭( `Disabled`
@ -192,13 +192,13 @@ HSRP Coup报文实在当前备份路由器打算接过该HSRP组的活动网关
> **注意:** 这些接口状态过度并无设置时间数值There are no set time values for these interface transitions
在关闭及初始化状态中该网关处于尚未准备妥当或是无法参与到HSRP组情形可能的原因在于相关接口没有开启。
在关闭及初始化状态中,该网关处于尚未准备妥当或是无法参与到 HSRP 组情形,可能的原因在于相关接口没有开启。
而侦听状态是适用于备份网关的。仅有备份网关才会监听来自活动网关的 `Hello` 报文。假如备份网关在 `10` 秒内未能收到 `Hello` 报文,其就假定活动网关已经宕机,并接过活动网关角色。如有在统一网段上存在其它网关,这些网关也会侦听 `Hello` 报文且如果它们有着下一最高优先级值或IP地址那么它们就会被选举为该分组的活动网关。
而侦听状态是适用于备份网关的。仅有备份网关才会监听来自活动网关的 `Hello` 报文。假如备份网关在 `10` 秒内未能收到 `Hello` 报文,其就假定活动网关已经宕机,并接过活动网关角色。如有在统一网段上存在其它网关,这些网关也会侦听 `Hello` 报文,且如果它们有着下一最高优先级值或 IP 地址,那么它们就会被选举为该分组的活动网关。
`Speak` 阶段,备份网关与活动网关进行报文交换。在此阶段完成后,主网关就过渡到活动状态,同时备份网关过渡到备份状态。备份状态表明该网关已准备好在主网关阵亡时接过活动网关角色,同时活动状态表明该网关已准备好进行数据包的转发。
以下输出给出了在一台刚开启HSRP的网关上`debug standby`命令中显示的状态变化:
以下输出给出了在一台刚开启 HSRP 的网关上,`debug standby`命令中显示的状态变化:
```console
R2#debug standby
@ -241,11 +241,11 @@ R2(config-if)#
**HSRP Addressing**
在本课程模块的早期已了解到HSRP版本1中用于虚拟IP地址的二层地址将是一个由`000.0C07.ACxx`构成的虚拟MAC地址其中的`xx`就是该HSRP组的编号且是基于相应接口的。而在HSRP版本2中使用了一个新的MAC地址范围从`0000.0C9F.F000`到`0000.0C9F.FFFF`, 作为虚拟网关IP地址的虚拟MAC地址。
在本课程模块的早期,已了解到 HSRP 版本 1 中,用于虚拟 IP 地址的二层地址将是一个由`000.0C07.ACxx`构成的虚拟 MAC 地址,其中的`xx`就是该 HSRP 组的编号,且是基于相应接口的。而在 HSRP 版本 2 中,使用了一个新的 MAC 地址范围,从`0000.0C9F.F000`到`0000.0C9F.FFFF`, 作为虚拟网关 IP 地址的虚拟 MAC 地址。
而在某些情况下我们并不期望使用这些默认的地址范围。比如在连接到一个配置了端口安全的交换机端口的某个路由器接口上配置了好几个HSRP组时。在此情况下该路由器就应对不同HSRP组使用不同的MAC地址那么结果就是这些MAC地址都需要满足accommodate交换机端口的安全配置。该项配置在每次将HSRP组加入到路由器接口时都必须进行修改否则就会触发端口安全冲突otherwise, a port security violation would occur
而在某些情况下,我们并不期望使用这些默认的地址范围。比如在连接到一个配置了端口安全的交换机端口的某个路由器接口上,配置了好几个 HSRP 组时。在此情况下,该路由器就应对不同 HSRP 组使用不同的 MAC 地址,那么结果就是这些 MAC 地址都需要满足( accommodate )交换机端口的安全配置。该项配置在每次将 HSRP 组加入到路由器接口时都必须进行修改否则就会触发端口安全冲突otherwise, a port security violation would occur
为解决此问题思科IOS软件允许管理员将HSRP配置为使用其所配置上的物理接口的实际MAC地址。那么结果就是一个单独的MAC地址为所有HSRP组所使用也就是活动网关所使用的MAC地址且在每次往连接到这些交换机上的路由器添加HSRP组的时候无需对端口安全配置进行修改。此操作是通过使用接口配置命令`standby use-bia`命令完成的。下面的输出演示了命令`show standby`该命令给出了一个配置了两个不同HSRP组的网关接口的信息
为解决此问题,思科 IOS 软件允许管理员将 HSRP 配置为使用其所配置上的物理接口的实际 MAC 地址。那么结果就是一个单独的 MAC 地址为所有 HSRP 组所使用(也就是活动网关所使用的 MAC 地址),且在每次往连接到这些交换机上的路由器添加 HSRP 组的时候,无需对端口安全配置进行修改。此操作是通过使用接口配置命令`standby use-bia`命令完成的。下面的输出演示了命令`show standby`,该命令给出了一个配置了两个不同 HSRP 组的网关接口的信息:
```console
Gateway-1#show standby
@ -274,9 +274,9 @@ FastEthernet0/0 - Group 2
Active router is local
```
在上面的输出中由于是默认的HSRP版本那么HSRP `Group 1`的虚拟MAC地址就是`0000.0c07.ac01`同时HSRP组2的就是`0000.0c07.ac02`。这就意味着连接此网关的交换机端口要学习三个不同地址:物理接口`Fastethernet0/0`的实际或出厂地址、HSRP `Group 1`的虚拟MAC地址以及HSRP组2的虚拟MAC地址。
在上面的输出中,由于是默认的 HSRP 版本那么HSRP `Group 1`的虚拟 MAC 地址就是`0000.0c07.ac01`,同时 HSRP 2 的就是`0000.0c07.ac02`。这就意味着连接此网关的交换机端口要学习三个不同地址:物理接口`Fastethernet0/0`的实际或出厂地址、HSRP `Group 1`的虚拟 MAC 地址,以及 HSRP 2 的虚拟 MAC 地址。
下面的输出演示了如何将HSRP配置为使用该网关接口的实际MAC地址作为不同HSRP分组的虚拟MAC地址
下面的输出,演示了如何将 HSRP 配置为使用该网关接口的实际 MAC 地址,作为不同 HSRP 分组的虚拟 MAC 地址:
```console
Gateway-1#conf
@ -287,7 +287,7 @@ Gateway-1(config-if)#standby use-bia
Gateway-1(config-if)#exit
```
基于上面的输出中的配置,命令`show standby`会反应出HSRP组的新MAC地址如下面的输出所示:
基于上面的输出中的配置,命令`show standby`会反应出 HSRP 组的新 MAC 地址,如下面的输出所示:
```console
Gateway-1#show standby
@ -319,7 +319,7 @@ FastEthernet0/0 - Group 2
IP redundancy name is "hsrp-Fa0/0-2" (default)
```
那么这里两个HSRP组所用的MAC地址都是`0013.1986.0a20`就是分配给物理网关接口的MAC地址了。这在下面的输出中有证实
那么这里两个 HSRP 组所用的 MAC 地址,都是`0013.1986.0a20`,就是分配给物理网关接口的 MAC 地址了。这在下面的输出中有证实:
```console
Gateway-1#show interface FastEthernet0/0
@ -333,91 +333,91 @@ FastEthernet0/0 is up, line protocol is up
[Truncated Output]
```
> **注意:** 除了将HSRP配置为使用出厂地址the burnt-in address, BIA, 管理员亦可经由接口配置命令`standby [number] mac-address [mac]`静态指定虚拟网关要使用的MAC地址。但一般不会这样做因为这可能会导致交换网络中的重复MAC地址这就会引起严重的网络故障甚至造成网络中断。
> **注意:** 除了将 HSRP 配置为使用出厂地址the burnt-in address, BIA, 管理员亦可经由接口配置命令`standby [number] mac-address [mac]`,静态指定虚拟网关要使用的 MAC 地址。但一般不会这样做,因为这可能会导致交换网络中的重复 MAC 地址,这就会引起严重的网络故障,甚至造成网络中断。
### HSRP的明文认证
**HSRP Plain Text Authentication**
HSRP报文默认以明文密钥字串(the plain text key string)`cisco`发送以此作为一种对HSRP成员HSRP peers进行认证的简单方式。如报文中的密钥字串与HSRP成员路由器上所配置的密钥匹配报文就被接受。否则HSRP就忽略那些未认证的报文。
HSRP报文默认以明文密钥字串(the plain text key string)`cisco`发送,以此作为一种对 HSRP 成员HSRP peers进行认证的简单方式。如报文中的密钥字串与 HSRP 成员路由器上所配置的密钥匹配,报文就被接受。否则, HSRP 就忽略那些未认证的报文。
明文密钥提供了最低的安全性因为使用诸如Wireshark或Ethereal这样的简单抓包软件它们就可被抓包捕获。下图34.13显示了HSRP报文中所使用的默认命令认证密钥
明文密钥提供了最低的安全性,因为使用诸如 Wireshark Ethereal 这样的简单抓包软件它们就可被抓包捕获。下图34.13显示了 HSRP 报文中所使用的默认命令认证密钥:
![查看默认HSRP明文密钥](images/3413.png)
![查看默认 HSRP 明文密钥](images/3413.png)
*图 34.13 -- 查看HSRP默认明文密钥*
*图 34.13 -- 查看 HSRP 默认明文密钥*
因为明文认证提供很低的安全性那么下面介绍的消息摘要5message digest 5, MD5, 就是推荐的HSRP认证方式了。
因为明文认证提供很低的安全性,那么下面介绍的消息摘要 5 message digest 5, MD5, 就是推荐的 HSRP 认证方式了。
### HSRP MD5 认证
这并非CCNA题目放在这里是为了完整性及那些要实际从事网络方面工作的人的考虑。
这并非 CCNA 题目,放在这里是为了完整性及那些要实际从事网络方面工作的人的考虑。
消息摘要5认证通过生成一个多播HSRP协议数据包的HSRP部分的摘要提供了HSRP比起明文认证更强的安全性。在采行了MD5认证后就允许各个HSRP组成员使用一个密钥来生成一个加密了的MD5散列值并作为发出数据包的一部分。而接收到的HSRP数据包也会产生一个加密的散列值如果接收到的数据包的加密散列值与MD5生成值不匹配接收路由器就会忽略此数据包。
消息摘要 5 认证通过生成一个多播 HSRP 协议数据包的 HSRP 部分的摘要,提供了 HSRP 比起明文认证更强的安全性。在采行了 MD5 认证后,就允许各个 HSRP 组成员使用一个密钥,来生成一个加密了的 MD5 散列值,并作为发出数据包的一部分。而接收到的 HSRP 数据包也会产生一个加密的散列值,如果接收到的数据包的加密散列值与 MD5 生成值不匹配,接收路由器就会忽略此数据包。
既可以通过在配置使用一个密钥字串直接提供MD5散列值的密钥也可以通过密钥链a key chain来提供到。本课程模块稍后会对这两种方式进行讲解。在应用了明文或是MD5认证时在出现以下情形之一后网关都会拒绝那些HSRP数据包
既可以通过在配置使用一个密钥字串直接提供 MD5 散列值的密钥也可以通过密钥链a key chain来提供到。本课程模块稍后会对这两种方式进行讲解。在应用了明文或是 MD5 认证时,在出现以下情形之一后,网关都会拒绝那些 HSRP 数据包:
- 路由器与收到的数据包认证方案不一致时
- 路由器与收到的数据包的MD5摘要不同时
- 路由器与收到的数据包的 MD5 摘要不同时
- 路由器与收到的数据包的明文认证字串不一致时
### HSRP接口跟踪
**HSRP Interface Tracking**
HSRP允许管理员对当前活动网关上的接口状态进行追踪所以在有接口失效时网关就会将其优先级降低一个特定数值默认为 `10`, 这样就可以让其它网关接过HSRP组的活动网关角色。此概念在下图34.14中进行了演示:
HSRP允许管理员对当前活动网关上的接口状态进行追踪所以在有接口失效时网关就会将其优先级降低一个特定数值默认为 `10`, 这样就可以让其它网关接过 HSRP 组的活动网关角色。此概念在下图34.14中进行了演示:
![HSRP接口追踪](images/3414.png)
*图 34.14 -- HSRP 接口追踪*
参考图34.14, 对于 `VLAN 150`, 已在 `Switch 1``Switch 2` 上开启了HSRP。而基于当前的优先级配置`Switch 1` 有着优先级数值 `105`, 已被选举为该VLAN的主交换机。`Switch 1` 与 `Switch 2` 都通过其各自的`Gigabitethernet5/1`接口,分别连接到两台路由器。这里假定这两台与其它外部网络相连,比如互联网。
参考图34.14, 对于 `VLAN 150`, 已在 `Switch 1``Switch 2` 上开启了 HSRP 。而基于当前的优先级配置,`Switch 1` 有着优先级数值 `105`, 已被选举为该 VLAN 的主交换机。`Switch 1` 与 `Switch 2` 都通过其各自的`Gigabitethernet5/1`接口,分别连接到两台路由器。这里假定这两台与其它外部网络相连,比如互联网。
在没有HSRP接口跟踪功能时如果 `Switch 1``R1` 之间的`Gigabitethernet5/1`接口失效,那么 `Switch 1` 仍将保持其主网关状态。此时就必须将所有接收到的、比如前往互联网的数据包,使用 `Switch 1` 本身与 `Switch 2` 之间的连接,转发到 `Switch 2` 上。这些数据包将会通过 `R2` 转发到它们本来的目的地。这就造成了网络中的次优流量路径。
在没有 HSRP 接口跟踪功能时,如果 `Switch 1``R1` 之间的`Gigabitethernet5/1`接口失效,那么 `Switch 1` 仍将保持其主网关状态。此时就必须将所有接收到的、比如前往互联网的数据包,使用 `Switch 1` 本身与 `Switch 2` 之间的连接,转发到 `Switch 2` 上。这些数据包将会通过 `R2` 转发到它们本来的目的地。这就造成了网络中的次优流量路径。
HSRP接口跟踪功能令到管理员可将HSRP配置为追踪某个接口的状态并据此将活动网关的优先级降低一个默认 `10` 的值亦可指定该降低值。同样参考图34.14, 如果在 `Switch 1` 上采用默认值配置了HSRP接口跟踪那么就令到该交换机对接口`Gigabitethernet5/1`的状态进行跟踪,在那个接口失效后,`Switch 1` 就会将其该HSRP组的优先级降低 `10`, 得到一个 `95` 的优先级。
HSRP接口跟踪功能令到管理员可将 HSRP 配置为追踪某个接口的状态,并据此将活动网关的优先级降低一个默认 `10` 的值亦可指定该降低值。同样参考图34.14, 如果在 `Switch 1` 上采用默认值配置了 HSRP 接口跟踪,那么就令到该交换机对接口`Gigabitethernet5/1`的状态进行跟踪,在那个接口失效后,`Switch 1` 就会将其该 HSRP 组的优先级降低 `10`, 得到一个 `95` 的优先级。
又假设 `Switch 2` 上配置了抢占( `preempt` ),在此情形下是强制性要配置的,那么它就会注意到自己有着更高的优先级(`100` 比 `95`, 就会执行一次篡位结果该HSRP组的活动网关角色。
又假设 `Switch 2` 上配置了抢占( `preempt` ),在此情形下是强制性要配置的,那么它就会注意到自己有着更高的优先级(`100` 比 `95`, 就会执行一次篡位,结果该 HSRP 组的活动网关角色。
> **真实场景应用**
> 在生产网络中思科Catalyst交换机还支持增强对象跟踪Enhanced Object Tracking, EOT功能可用于所有FHRP也就是HSRP、VRRP及GLBP上。增强对象跟踪功能令到管理员可以将交换机配置为对以下参数进行跟踪
> 在生产网络中,思科 Catalyst 交换机还支持增强对象跟踪Enhanced Object Tracking, EOT功能可用于所有 FHRP (也就是 HSRP VRRP GLBP )上。增强对象跟踪功能令到管理员可以将交换机配置为对以下参数进行跟踪:
> - 某个接口的IP路由状态The IP routing state of an interface
> - 某个接口的 IP 路由状态The IP routing state of an interface
> - IP路由的可达性IP route reachablity
> - IP路由度量值阈值The threshold of IP route metrics
> - IP SLA 的运作IP SLA operations([Service-Level Agreements](http://www.cisco.com/c/en/us/tech/ip/ip-service-level-agreements-ip-slas/index.html), 服务等级协议)
> 对于这些FHRPs比如HSRP可被配置为对这些增强对象进行跟踪以令到在部署FHRP失效情形时具有更大的灵活性。比如在采用EOT时可将活动HSRP路由器配置为在网络或主机路由不可达时也就是出现在路由表中降低其优先级某个数值。EOT功能是超出了CCNA考试要求的在配置示例中不会涉及。
> 对于这些 FHRPs ,比如 HSRP ,可被配置为对这些增强对象进行跟踪,以令到在部署 FHRP 失效情形时具有更大的灵活性。比如,在采用 EOT 时,可将活动 HSRP 路由器配置为在网络或主机路由不可达时(也就是出现在路由表中),降低其优先级某个数值。 EOT 功能是超出了 CCNA 考试要求的,在配置示例中不会涉及。
### HSRP的负载均衡
HSRP允许管理员在一些物理接口上配置多个HSRP组以实现负载均衡。默认情况下在两台网关之间配置HSRP时在任何时期都只有一台网关对那个组的流量进行转发。这样就导致了备份网关链路上带宽的浪费。这在下图34.15中进行了演示:
HSRP允许管理员在一些物理接口上配置多个 HSRP 组,以实现负载均衡。默认情况下,在两台网关之间配置 HSRP 在任何时期都只有一台网关对那个组的流量进行转发。这样就导致了备份网关链路上带宽的浪费。这在下图34.15中进行了演示:
![不具备HSRP负载均衡的一个网络](images/3415.png)
![不具备 HSRP 负载均衡的一个网络](images/3415.png)
*图 34.15 -- 不具备HSRP负载均衡的一个网络*
*图 34.15 -- 不具备 HSRP 负载均衡的一个网络*
在图34.15中,在 `Switch 1``Switch 2` 上配置了两个HSRP组。`Switch 1` 已被配置为两个组的活动(主)网关--这是基于其有着较高的优先级值。`Switch 1` 与 `Switch 2` 都相应的连接到了路由器 `R1``R2` 上。这两台路由器都通过各自的 `T3/E3` 线路,连接到互联网。因为 `Switch 1` 是两个HSRP组的活动网关它就会转发两个组的流量直到其失效后`Switch 2` 才会结果活动(主)网关的角色。
在图34.15中,在 `Switch 1``Switch 2` 上配置了两个 HSRP 组。`Switch 1` 已被配置为两个组的活动(主)网关--这是基于其有着较高的优先级值。`Switch 1` 与 `Switch 2` 都相应的连接到了路由器 `R1``R2` 上。这两台路由器都通过各自的 `T3/E3` 线路,连接到互联网。因为 `Switch 1` 是两个 HSRP 组的活动网关,它就会转发两个组的流量,直到其失效后,`Switch 2` 才会结果活动(主)网关的角色。
尽管这样做满足了网络的冗余需求,但也造成 `R2` 上昂贵的 `T3/E3` 线路的空闲,除非在 `Switch 2` 成为活动网关并开始经由它来转发流量。自然,这就出现了一定数量带宽的浪费。
而通过配置多个HSRP组每个组使用不同的活动网关管理员就可以有效的防止不必要的资源浪费并在 `Switch 1``Switch 2` 之间实现负载均衡。这在下图34.16中进行了演示:
而通过配置多个 HSRP 组,每个组使用不同的活动网关,管理员就可以有效的防止不必要的资源浪费,并在 `Switch 1``Switch 2` 之间实现负载均衡。这在下图34.16中进行了演示:
![一个采用HSRP实现负载均衡的网络](images/3416.png)
![一个采用 HSRP 实现负载均衡的网络](images/3416.png)
*图 34.16 -- 一个采用HSRP实现负载均衡的网络*
*图 34.16 -- 一个采用 HSRP 实现负载均衡的网络*
这里通过将 `Switch 1` 配置为HSRP `Group 1`的活动网关,将 `Switch 2` 配置为HSRP组 `2` 的活动网关,管理员就令到来自两个不同组的流量,在 `Switch 1``Switch 2` 之间实现了负载均衡,并最终通过这两条专用 `T3/E3` 广域网连接。同时每台交换机又互为对方HSRP组的备份。比如在 `Switch 2` 失效时,`Switch 1` 就将接过HSRP组 `2` 活动网关的角色,相反亦然。
这里通过将 `Switch 1` 配置为HSRP `Group 1`的活动网关,将 `Switch 2` 配置为 HSRP `2` 的活动网关,管理员就令到来自两个不同组的流量,在 `Switch 1``Switch 2` 之间实现了负载均衡,并最终通过这两条专用 `T3/E3` 广域网连接。同时每台交换机又互为对方 HSRP 组的备份。比如在 `Switch 2` 失效时,`Switch 1` 就将接过 HSRP `2` 活动网关的角色,相反亦然。
> **真实世界的部署**
> 在生产网络中需要记住多个HSRP组的建立会造成网关上CPU使用率的上升以及有HSRP报文交换所造成的网络带宽占用的增加。诸如Catalyst 4500及6500系列的思科Catalyst交换机提供了对HSRP客户组HSRP client groups的支持。
> 在生产网络中,需要记住多个 HSRP 组的建立,会造成网关上 CPU 使用率的上升,以及有 HSRP 报文交换所造成的网络带宽占用的增加。诸如Catalyst 4500及 6500 系列的思科 Catalyst 交换机,提供了对 HSRP 客户组HSRP client groups的支持。
> 在前面的小节中了解到HSRP允许在单个的网关接口上配置多个HSRP组。而在网关接口上允许许多不同HSRP组的主要问题就是这样做会导致网关上CPU使用率的上升并也因为HSRP每隔3秒的Hello数据包而潜在可能增加网络流量。
> 在前面的小节中,了解到 HSRP 允许在单个的网关接口上配置多个 HSRP 组。而在网关接口上允许许多不同 HSRP 组的主要问题,就是这样做会导致网关上 CPU 使用率的上升,并也因为 HSRP 每隔 3 秒的 Hello 数据包,而潜在可能增加网络流量。
> 为解决这个潜在的问题HSRP就还允许客户或从组的配置the configuration of client or slave groups。这些组是一些简单的HSRP组它们跟随某个主HSRP组a master HSRP group而不参与HSRP选举。这些客户或从组跟随主组的允许与状态因此它们本身无需周期性地交换Hello数据包。这样在运用多个HSRP组时降低CPU与网络的使用。
> 为解决这个潜在的问题, HSRP 就还允许客户或从组的配置the configuration of client or slave groups。这些组是一些简单的 HSRP 组,它们跟随某个主 HSRP a master HSRP group而不参与 HSRP 选举。这些客户或从组跟随主组的允许与状态,因此它们本身无需周期性地交换 Hello 数据包。这样在运用多个 HSRP 组时,降低 CPU 与网络的使用。
> 但是为了刷新那些交换机的虚拟MAC地址这些客户组仍然要发送周期性的报文。不过与主组的协议选举报文相比这些刷新报文是以低得多的频率发送的。尽管HSRP客户组的配置是超出CCNA考试要求的下面的输出还是演示两个客户组的配置这两个客户组被配置为跟随主组HSRP `Group 1`, 该主组又被命名为`SWITCH-HSRP`组:
> 但是,为了刷新那些交换机的虚拟 MAC 地址,这些客户组仍然要发送周期性的报文。不过与主组的协议选举报文相比,这些刷新报文是以低得多的频率发送的。尽管 HSRP 客户组的配置是超出 CCNA 考试要求的下面的输出还是演示两个客户组的配置这两个客户组被配置为跟随主组HSRP `Group 1`, 该主组又被命名为`SWITCH-HSRP`组:
```console
Gateway-1(config)#interface vlan100
@ -433,27 +433,27 @@ Gateway-1(config-if)#standby 3 follow SWITCH-HSRP
Gateway-1(config-if)#exit
```
> 在上面的输出配置中,`Group 1` 被配置为了主HSRP组 同时`Group 2`与`Group 3`被配置为了客户组或叫做从组。
> 在上面的输出配置中,`Group 1` 被配置为了主 HSRP 组, 同时`Group 2`与`Group 3`被配置为了客户组或叫做从组。
### 网关上HSRP的配置
### 网关上 HSRP 的配置
在网关上配置HSRP需要完成以下步骤
在网关上配置 HSRP ,需要完成以下步骤:
1. 使用接口配置命令`ip address [address] [mask] [secondary]`配置网关接口的IP地址及掩码。
1. 使用接口配置命令`ip address [address] [mask] [secondary]`配置网关接口的 IP 地址及掩码。
2. 通过接口配置命令`standby [number] ip [virtual address] [secondary]`, 在网关接口上建立一个HSRP组以及给该HSRP组指派虚拟IP地址。关键词keyword`[secondary]`将该IP地址指定为指定组的次网关IP地址。
2. 通过接口配置命令`standby [number] ip [virtual address] [secondary]`, 在网关接口上建立一个 HSRP 组,以及给该 HSRP 组指派虚拟 IP 地址。关键词( keyword `[secondary]`将该 IP 地址指定为指定组的次网关 IP 地址。
3. 这里作为可选项,使用接口配置命令`standby [number] name [name]`, 为HSRP组指派一个名称。
3. 这里作为可选项,使用接口配置命令`standby [number] name [name]`, 为 HSRP 组指派一个名称。
4. 作为可选项,如打算对活动网关的选举施加影响,就要经由接口配置命令`standby [number] priority [value]`,对组优先级进行配置。
本章中的后续HSRP配置输出将建立在下图34.17中的网络:
本章中的后续 HSRP 配置输出将建立在下图34.17中的网络:
![HSRP示例配置的拓扑](images/3417.png)
*图 34.17 -- HSRP示例配置的拓扑*
> **注意:** 这里假定在`VTP-Server-1`与`VTP-Server-2`之间的VLAN与中继已有配置妥当同时交换机之间可以经由VLAN172 `ping`通。为简短起见,这些配置已在配置示例中省略。
> **注意:** 这里假定在`VTP-Server-1`与`VTP-Server-2`之间的 VLAN 与中继已有配置妥当同时交换机之间可以经由VLAN172 `ping`通。为简短起见,这些配置已在配置示例中省略。
```console
VTP-Server-1(config)#interface vlan172
@ -467,9 +467,9 @@ VTP-Server-2(config-if)#standby 1 ip 172.16.31.254
VTP-Server-2(config-if)#exit
```
> **注意:** 这里应用到`VTP-Server-2`的HSRP配置并没有手动指派优先级数值。默认情况下HSRP将使用一个 `100` 的优先级值,以允许带有优先级值 `105` 的`VTP-Server-1`在选举中胜选从而被选举为该HSRP组的主网关。
> **注意:** 这里应用到`VTP-Server-2`的 HSRP 配置并没有手动指派优先级数值。默认情况下, HSRP 将使用一个 `100` 的优先级值,以允许带有优先级值 `105` 的`VTP-Server-1`,在选举中胜选,从而被选举为该 HSRP 组的主网关。
在配置应用后,就可使用`show standby [interface brief]`命令对HSRP的配置进行验证。下面的输出对`show standby brief`命令进行了展示:
在配置应用后,就可使用`show standby [interface brief]`命令,对 HSRP 的配置进行验证。下面的输出对`show standby brief`命令进行了展示:
```console
VTP-Server-1#show standby brief
@ -484,20 +484,20 @@ Interface Grp Pri P State Active Standby Virtual IP
Vl172 1 100 Standby local 172.16.31.1 172.16.31.254
```
基于此种配置,只有在`VTP-Server-1`失效时,`VTP-Server-2`才会成为活动网关。此外因为没有配置抢占preemption那么即使在`VTP-Server-1`重新上线时就算在该HSRP组中其比起`VTP-Server-2`有着更高的优先级,它仍然无法强制性地接过活动网关角色。
基于此种配置,只有在`VTP-Server-1`失效时,`VTP-Server-2`才会成为活动网关。此外,因为没有配置抢占( preemption ),那么即使在`VTP-Server-1`重新上线时,就算在该 HSRP 组中,其比起`VTP-Server-2`有着更高的优先级,它仍然无法强制性地接过活动网关角色。
### HSRP抢占的配置
**Configuring HSRP Preemption**
抢占特性令到某台网关在本身比当前活动网关有着更高优先级时,强制性地接过活动网关的角色。使用命令`standby [number] preempt`命令来配置HSRP抢占特性。下面的输出演示了在`VTP-Server-1`上的此项配置:
抢占特性令到某台网关在本身比当前活动网关有着更高优先级时,强制性地接过活动网关的角色。使用命令`standby [number] preempt`命令,来配置 HSRP 抢占特性。下面的输出,演示了在`VTP-Server-1`上的此项配置:
```console
VTP-Server-1(config)#interface vlan172
VTP-Server-1(config-if)#standby 1 preempt
```
这里同样使用命令`show standby [interface [name] |brief]`, 来验证在某个网关上已有配置抢占特性。是通过下面的`show standby brief`命令输出中的“P”字样演示的
这里同样使用命令`show standby [interface [name] |brief]`, 来验证在某个网关上已有配置抢占特性。是通过下面的`show standby brief`命令输出中的“ P ”字样演示的:
```console
VTP-Server-1#show standby brief
@ -507,9 +507,9 @@ Interface Grp Pri P State Active Standby Virtual IP
Vl172 1 105 P Active local 172.16.31.2 172.16.31.254
```
有了这个修改,在因`VTP-Server-1`失效而导致`VTP-Server-2`接过VLAN172的活动网关角色时一旦`VTP-Server-1`再度上线其就将强制性再度接手那个角色。在配置抢占特性时思科IOS软件允许指定在交换机抢占及强制重新获得活动网关角色之前的时间间隔。
有了这个修改,在因`VTP-Server-1`失效而导致`VTP-Server-2`接过 VLAN172 的活动网关角色时,一旦`VTP-Server-1`再度上线,其就将强制性再度接手那个角色。在配置抢占特性时,思科 IOS 软件允许指定在交换机抢占及强制重新获得活动网关角色之前的时间间隔。
默认下抢占是立即发生的。但可使用接口配置命令`standby [number] preempt delay [minimum|reload|sync]`对此时间间隔进行修改。关键字`[minimum]`用于指定在抢占前等待的最短时间。下面的输出展示了如何配置在抢占前等待30秒钟
默认下抢占是立即发生的。但可使用接口配置命令`standby [number] preempt delay [minimum|reload|sync]`对此时间间隔进行修改。关键字`[minimum]`用于指定在抢占前等待的最短时间(秒)。下面的输出展示了如何配置在抢占前等待 30 秒钟:
```console
VTP-Server-1(config)#interface vlan172
@ -535,13 +535,13 @@ Priority 105 (configured 105)
IP redundancy name is “hsrp-Vl172-1” (default)
```
而关键字`[reload]`用于指定网关在其重启后需要等待的时间the `[reload]` keyword is used to specify the amount of time the gateway should wait after it initiates following a reload。关键字`[sync]`是与IP冗余客户端配合使用的。此配置超出了CCNA考试要求但在生产环境中是十分有用的因为在出现某个正在被跟踪的抖动接口或类似情况下此配置可以阻止不必要的角色切换this configuration is beyond the scope of the CCNA exam requirements but is very useful in production environments because it prevents an unnecessary change of roles in the case of a flapping interface that is being tracked, or similar activity
而关键字`[reload]`用于指定网关在其重启后需要等待的时间the `[reload]` keyword is used to specify the amount of time the gateway should wait after it initiates following a reload。关键字`[sync]`是与 IP 冗余客户端配合使用的。此配置超出了 CCNA 考试要求但在生产环境中是十分有用的因为在出现某个正在被跟踪的抖动接口或类似情况下此配置可以阻止不必要的角色切换this configuration is beyond the scope of the CCNA exam requirements but is very useful in production environments because it prevents an unnecessary change of roles in the case of a flapping interface that is being tracked, or similar activity
### 配置HSRP接口跟踪
### 配置 HSRP 接口跟踪
HSRP接口跟踪特性令到管理员可以将HSRP配置为追踪接口状态从而将当前优先级降低一个默认数值10或指定数值以允许另一网关接过指定HSRP组的主网关角色。
HSRP接口跟踪特性令到管理员可以将 HSRP 配置为追踪接口状态,从而将当前优先级降低一个默认数值( 10 )或指定数值,以允许另一网关接过指定 HSRP 组的主网关角色。
在下面的输出中,`VTP-Server-1`被配置为对连接到假想WAN路由器的接口`Gigabitethernet5/1`的状态,进行跟踪。在那个接口状态转变为`down`时该网关就将其优先级值降低10默认的:
在下面的输出中,`VTP-Server-1`被配置为对连接到假想 WAN 路由器的接口`Gigabitethernet5/1`的状态,进行跟踪。在那个接口状态转变为`down`时,该网关就将其优先级值降低 10 (默认的):
```console
VTP-Server-1#show standby vlan172
@ -592,9 +592,9 @@ Vlan172 - Group 1
GigabitEthernet5/1 50 Up
```
### 配置HSRP的版本
### 配置 HSRP 的版本
如同在本课程模块先前指出的那样默认当HSRP开启时是启用的版本1。但可通过接口配置命令`standby version [1|2]`来手动开启HSRP版本2。下面的输出演示了HSRP版本2的配置
如同在本课程模块先前指出的那样,默认当 HSRP 开启时,是启用的版本 1 。但可通过接口配置命令`standby version [1|2]`来手动开启 HSRP 版本 2 。下面的输出演示了 HSRP 版本 2 的配置:
```console
VTP-Server-1(config)#interface vlan172
@ -620,27 +620,27 @@ Vlan172 - Group 1 (version 2)
IP redundancy name is “hsrp-Vl172-1” (default)
```
而HSRP的开启就自动将HSRP所使用的MAC地址范围从`0000.0C07.ACxx`,改变为`0000.0C9F。F000`到`0000.0C9F.FFFF`。因此务必要记住这将导致生产网络中的一些数据包丢失因为网络中的设备必须要掌握到网关的新MAC地址。这类导致包丢失的变动都推荐在维护窗口或几乎的断网窗口来进行。
HSRP 的开启,就自动将 HSRP 所使用的 MAC 地址范围,从`0000.0C07.ACxx`,改变为`0000.0C9F。F000`到`0000.0C9F.FFFF`。因此务必要记住这将导致生产网络中的一些数据包丢失,因为网络中的设备必须要掌握到网关的新 MAC 地址。这类导致包丢失的变动,都推荐在维护窗口或几乎的断网窗口来进行。
## 虚拟路由器冗余协议
**Virtual Router Redundancy Protocol**
虚拟路由器冗余协议Virtual Router Redundancy Protocol, VRRP是一个动态地将一个或多个网关的职责指派给LAN上的VRRP路由器的网关选举协议a gateway election protocol, 其令到在诸如以太网这样的某个多路访问网段a Multi-Access segment上的数台路由器能够使用同一个虚拟IP地址作为它们的默认网关。
虚拟路由器冗余协议Virtual Router Redundancy Protocol, VRRP是一个动态地将一个或多个网关的职责指派给 LAN 上的 VRRP 路由器的网关选举协议a gateway election protocol, 其令到在诸如以太网这样的某个多路访问网段a Multi-Access segment上的数台路由器能够使用同一个虚拟 IP 地址,作为它们的默认网关。
VRRP以与HSRP类似的方式运作但与HSRP不同VRRP是一个定义在[RFC 2338](http://www.ietf.org/rfc/rfc2338.txt)中的开放标准RFC 2338 在[RFC 3768](http://www.ietf.org/rfc/rfc3768.txt)中被废弃。VRRP将通告发送到多播目的地址`224.0.0.18`VRRP, 使用的是IP协议编号`112`。在数据链路层通告是从主虚拟路由器the master virtual router的MAC地址`00-00-5e-00-01xx`发出的,这里的"xx"表示了两位十六进制的组编号。这在下图34.18中进行了演示:
VRRP以与 HSRP 类似的方式运作;但与 HSRP 不同, VRRP 是一个定义在[RFC 2338](http://www.ietf.org/rfc/rfc2338.txt)中的开放标准RFC 2338 在[RFC 3768](http://www.ietf.org/rfc/rfc3768.txt)中被废弃。 VRRP 将通告发送到多播目的地址`224.0.0.18` VRRP , 使用的是 IP 协议编号`112`。在数据链路层通告是从主虚拟路由器the master virtual router MAC 地址`00-00-5e-00-01xx`发出的,这里的"xx"表示了两位十六进制的组编号。这在下图34.18中进行了演示:
![VRRP的多播地址](images/3418.png)
*图 34.18 -- VRRP的多播地址VRRP Multicast Addresses*
> **注意:** 这里的协议编号是十六进制形式的。而十六进制值`0x70`就等于是进制的112。与此类似数据链路层目的地址`01-00-5e-00-00-12`中的十六进制值`12`就是十进制值18也就是`224.0.0.18`了。如你仍对这些数值是如何转换的没有掌握那么本CCNA手册的十六进制到十进制转换在网上是很详细的。
> **注意:** 这里的协议编号是十六进制形式的。而十六进制值`0x70`就等于是进制的 112 。与此类似,数据链路层目的地址`01-00-5e-00-00-12`中的十六进制值`12`就是十进制值 18 (也就是`224.0.0.18`)了。如你仍对这些数值是如何转换的没有掌握,那么本 CCNA 手册的十六进制到十进制转换在网上是很详细的。
> **真是世界的部署**
> 与HSRP不同VRRP并没有允许网关使用出厂地址Burnt-in Address, BIA或静态配置的地址作为VRRP组的MAC地址的选项。因此在带有多于VRRP组的生产网络中对在某个特定接口上应用多个MAC地址的理解掌握尤其是当部署了诸如端口安全这样的特性时 是重要的。记得要着重于整体上;否则就会发现,尽管有正确配置,一些特性或协议也不会如预期那样跑起来。
> 与 HSRP 不同, VRRP 并没有允许网关使用出厂地址Burnt-in Address, BIA或静态配置的地址作为 VRRP 组的 MAC 地址的选项。因此,在带有多于 VRRP 组的生产网络中,对在某个特定接口上应用多个 MAC 地址的理解掌握,尤其是当部署了诸如端口安全这样的特性时, 是重要的。记得要着重于整体上;否则就会发现,尽管有正确配置,一些特性或协议也不会如预期那样跑起来。
一个VRRP网关是在一台或多台连接到LAN的路由器上配置用于运行VRRP协议的A VRRP gateway is configured to run the VRRP protocol in conjunction with one or more other routers attached to a LAN。在VRRP配置中一台网关被选举为主虚拟路由器the master router, 而其它网关则扮演在主虚拟路由器失效时的备份虚拟路由器。下图34.19对此概念进行了演示:
一个 VRRP 网关是在一台或多台连接到 LAN 的路由器上,配置用于运行 VRRP 协议的A VRRP gateway is configured to run the VRRP protocol in conjunction with one or more other routers attached to a LAN。在 VRRP 配置中一台网关被选举为主虚拟路由器the master router, 而其它网关则扮演在主虚拟路由器失效时的备份虚拟路由器。下图34.19对此概念进行了演示:
![VRRP的基本运作](images/3419.png)
@ -648,39 +648,39 @@ VRRP以与HSRP类似的方式运作但与HSRP不同VRRP是一个定义在[
### VRRP的多虚拟路由器支持特性
可在某个接口上配置多大255个的虚拟路由器。而某个路由器接口实际能支持的虚拟路由器数目由以下因素决定
可在某个接口上配置多大 255 个的虚拟路由器。而某个路由器接口实际能支持的虚拟路由器数目,由以下因素决定:
- 路由器的处理能力Router processing capability
- 路由器的内存容量Router memory capability
- 路由器接口对多MAC地址的支持情况Router interface support of multiple MAC addresses
- 路由器接口对多 MAC 地址的支持情况Router interface support of multiple MAC addresses
### VRRP的主路由器选举
**VRRP Master Router Election**
VRRP默认使用优先级值来决定哪台路由器将被选举为主虚拟路由器。默认的VRRP优先级值为100; 但此数值可被手工修改为一个1到254之间的数值。而如多台网关有着相同的优先级数值那么有着最高IP地址的网关将被选举为主虚拟路由器同时有着较低IP地址的那台就成为备份虚拟路由器。
VRRP默认使用优先级值来决定哪台路由器将被选举为主虚拟路由器。默认的 VRRP 优先级值为100; 但此数值可被手工修改为一个 1 254 之间的数值。而如多台网关有着相同的优先级数值,那么有着最高 IP 地址的网关将被选举为主虚拟路由器,同时有着较低 IP 地址的那台就成为备份虚拟路由器。
加入有多于两台的路由器被配置为VRRP组的组成部分那么备份虚拟路由器中有着第二高优先级的就会在当前主虚拟路由器失效或不可用时被选举为主虚拟路由器。又假如那些备份虚拟路由器又有着相同的优先级那么这些备份路由器中有着最高IP地址的那台将被选举为主路由器。下图34.20对此概念进行了演示:
加入有多于两台的路由器被配置为 VRRP 组的组成部分,那么备份虚拟路由器中有着第二高优先级的,就会在当前主虚拟路由器失效或不可用时,被选举为主虚拟路由器。又假如那些备份虚拟路由器又有着相同的优先级,那么这些备份路由器中有着最高 IP 地址的那台将被选举为主路由器。下图34.20对此概念进行了演示:
![VRRP主虚拟路由器及备份虚拟路由器的选举](images/3420.png)
*图 34.20 -- VRRP主虚拟路由器及备份虚拟路由器的选举*
图34.20演示了一个采用了VRRP作为网关冗余的网络。主机1与主机2都配置了默认`192.168.1.254`作为默认网关,此网关就是配置在交换机`VRRP-1`、`VRRP-2`及`VRRP-3`上给VRRP `group 192`的虚拟IP地址。
图34.20演示了一个采用了 VRRP 作为网关冗余的网络。主机 1 与主机 2 都配置了默认`192.168.1.254`作为默认网关,此网关就是配置在交换机`VRRP-1`、`VRRP-2`及`VRRP-3`上给VRRP `group 192`的虚拟 IP 地址。
交换机`VRRP-1`已被配置了优先级值110, `VRRP-2`的是105, `VRRP-3`的是默认VRRP优先级100。基于此种配置`VRRP-1`就被选举为主虚拟路由器,同时`VRRP-2`和`VRRP-3`就成为备份虚拟路由器。
交换机`VRRP-1`已被配置了优先级值110, `VRRP-2`的是105, `VRRP-3`的是默认 VRRP 优先级 100 。基于此种配置,`VRRP-1`就被选举为主虚拟路由器,同时`VRRP-2`和`VRRP-3`就成为备份虚拟路由器。
在`VRRP-1`失效时,因为`VRRP-2`有着比起`VRRP-3`更高的优先级,所以它就成为主虚拟路由器。但如果`VRRP-2`与`VRRP-3`有着相同优先级的话,`VRRP-3`将被选举为主虚拟路由器因为它有着更高的IP地址。
在`VRRP-1`失效时,因为`VRRP-2`有着比起`VRRP-3`更高的优先级,所以它就成为主虚拟路由器。但如果`VRRP-2`与`VRRP-3`有着相同优先级的话,`VRRP-3`将被选举为主虚拟路由器,因为它有着更高的 IP 地址。
### VRRP的抢占
与HSRP不同VRRP的抢占特性是默认开启的因此无需管理员为开启此功能而进行显式的配置。但此功能可经由使用接口配置命令`no vrrp [number] preempt`进行关闭。
HSRP 不同, VRRP 的抢占特性是默认开启的,因此无需管理员为开启此功能而进行显式的配置。但此功能可经由使用接口配置命令`no vrrp [number] preempt`进行关闭。
### VRRP的负载均衡
VRRP允许以与HSRP类似的方式实现负载均衡。比如在一个于某台网关上配置了多个虚拟路由器VRRP组的网络中一个接口可作为某个虚拟路由器VRRP组的主接口虚拟路由器同时又可作为另一或更多虚拟路由器VRRP组的备份虚拟路由器。下图34.21对此进行了演示:
VRRP允许以与 HSRP 类似的方式,实现负载均衡。比如,在一个于某台网关上配置了多个虚拟路由器( VRRP 组)的网络中,一个接口可作为某个虚拟路由器( VRRP 组)的主接口(虚拟路由器),同时又可作为另一或更多虚拟路由器( VRRP 的备份虚拟路由器。下图34.21对此进行了演示:
![VRRP的负载均衡](images/3421.png)
@ -688,40 +688,40 @@ VRRP允许以与HSRP类似的方式实现负载均衡。比如在一个于
### VRRP的版本
默认情况下当在某台运行思科IOS软件的网关上配置了VRRP时开启的是VRRP版本2见下图。版本2正是默认的以及当前的VRRP版本。这里并不能如同在HSRP中那样改变版本因为并没有VRRP版本1的标准。
默认情况下,当在某台运行思科 IOS 软件的网关上配置了 VRRP 时,开启的是 VRRP 版本 2 (见下图)。版本 2 正是默认的以及当前的 VRRP 版本。这里并不能如同在 HSRP 中那样改变版本,因为并没有 VRRP 版本 1 的标准。
> **注意:** 在本手册编写过程中为IPv4与IPv6定义VRRP的版本3正处于草案阶段且并未标准化。
> **注意:** 在本手册编写过程中,为 IPv4 IPv6 定义 VRRP 的版本 3 ,正处于草案阶段,且并未标准化。
![VRRP版本2的数据包](images/3422.png)
![VRRP版本 2 的数据包](images/3422.png)
*图 34.22 -- VRRP版本2的数据包*
*图 34.22 -- VRRP版本 2 的数据包*
### VRRP的各种通告
**VRRP Advertisements**
主虚拟路由器将通告发送给同一VRRP组中的其它VRRP路由器。通告就主虚拟路由器的优先级与状态进行通信。VRRP的通告是以IP数据包进行封装的并被发送到在图34.18中所演示的那个指派给该VRRP组的IPv4多播地址。通告默认以每秒的频率发送不过此时间间隔是可被用户配置的因而可以改变。同时备份虚拟路由器收听主虚拟路由器通告的间隔也可进行配置。
主虚拟路由器将通告发送给同一 VRRP 组中的其它 VRRP 路由器。通告就主虚拟路由器的优先级与状态进行通信。 VRRP 的通告是以 IP 数据包进行封装的并被发送到在图34.18中所演示的那个指派给该 VRRP 组的 IPv4 多播地址。通告默认以每秒的频率发送;不过此时间间隔是可被用户配置的,因而可以改变。同时备份虚拟路由器收听主虚拟路由器通告的间隔,也可进行配置。
### 在网关上配置VRRP
在网关上配置VRRP需要以下步骤
在网关上配置 VRRP ,需要以下步骤:
1. 使用接口配置命令`ip address [address] [mask] [secondary]`给网关接口配置正确的IP地址与子网掩码。
1. 使用接口配置命令`ip address [address] [mask] [secondary]`,给网关接口配置正确的 IP 地址与子网掩码。
2. 通过接口配置命令`vrrp [number] ip [virtual address] [secondary]`在该网关接口上建立一个VRRP组并为其指派一个虚拟IP地址。关键字`[secondary]`将该虚拟IP地址配置为指定VRRP组的次网关地址。
2. 通过接口配置命令`vrrp [number] ip [virtual address] [secondary]`,在该网关接口上建立一个 VRRP 组,并为其指派一个虚拟 IP 地址。关键字`[secondary]`将该虚拟 IP 地址配置为指定 VRRP 组的次网关地址。
3. 作为可选项,使用接口配置命令`vrrp [number] description [name]`, 为该VRRP组指派一个描述性名称。
3. 作为可选项,使用接口配置命令`vrrp [number] description [name]`, 为该 VRRP 组指派一个描述性名称。
4. 作为可选项,在打算对主虚拟路由器及备份虚拟路由器的选举进行控制时,就要经由接口配置命令`vrrp [number] priority [value]`, 对该组的优先级进行配置。
本小节的VRRP配置输出将基于下图34.23的网络:
本小节的 VRRP 配置输出将基于下图34.23的网络:
![VRRP配置示例的拓扑](images/3423.png)
*图 34.23 -- VRRP配置示例的拓扑*
> **注意:** 这里假定在`VTP-Server-1`与`VTP-Server-2`之间的VLAN与中继已有配置妥当同时交换机之间可以经由VLAN192 `ping`通。为简短起见,这些配置已在配置示例中省略。
> **注意:** 这里假定在`VTP-Server-1`与`VTP-Server-2`之间的 VLAN 与中继已有配置妥当同时交换机之间可以经由VLAN192 `ping`通。为简短起见,这些配置已在配置示例中省略。
```console
VTP-Server-1(config)#interface vlan192
@ -737,9 +737,9 @@ VTP-Server-2(config-if)#vrrp 1 description SWITCH-VRRP-Example
VTP-Server-2(config-if)#exit
```
> **注意:** 这里没有为`VTP-Server-2`上所应用的VRRP配置手动指派优先级数值。那么默认情况下VRRP将使用100的优先级数值这就令到带有优先级数值105的`VTP-Server-1`在选举中获胜而被选举为该VRRP组的主虚拟路由器。此外这里还为该VRRP组配置了一个描述信息。
> **注意:** 这里没有为`VTP-Server-2`上所应用的 VRRP 配置手动指派优先级数值。那么默认情况下, VRRP 将使用 100 的优先级数值,这就令到带有优先级数值 105 的`VTP-Server-1`,在选举中获胜而被选举为该 VRRP 组的主虚拟路由器。此外,这里还为该 VRRP 组配置了一个描述信息。
下面还使用命令`show vrrp [all|brief|interface]`, 对此配置进行了验证。关键字`[all]`展示了有关该VRRP配置的所有信息包括了组的状态、描述信息在配置了的情况下、本地网关优先级以及主虚拟路由器和其它信息。关键字`[brief]`则会列印出该VRRP配置的摘要信息。而`[interface]`关键字会列印出特定接口的VRRP信息。下面的输出展示了`show vrrp all`命令的输出:
下面还使用命令`show vrrp [all|brief|interface]`, 对此配置进行了验证。关键字`[all]`展示了有关该 VRRP 配置的所有信息,包括了组的状态、描述信息(在配置了的情况下)、本地网关优先级,以及主虚拟路由器和其它信息。关键字`[brief]`则会列印出该 VRRP 配置的摘要信息。而`[interface]`关键字会列印出特定接口的 VRRP 信息。下面的输出展示了`show vrrp all`命令的输出:
```console
VTP-Server-1#show vrrp all
@ -779,13 +779,13 @@ Interface Grp Pri Time Own Pre State Master addr Group addr
Vl192 1 100 3609 Y Backup 192.168.1.1 192.168.1.254
```
### 配置VRRP的接口跟踪特性
### 配置 VRRP 的接口跟踪特性
为将VRRP配置为对某个接口进行跟踪就必须要在全局配置模式下为接口追踪而使用全局配置命令`track [object number] interface [line-protocol|ip routing]`, 或为IP前缀追踪而使用全局配置命令`track [object number] ip route [address | prefix] [reachablity | metric threshold]`建立一个被跟踪的对象。依据软件与平台的不同交换机上可对高达500个的被追踪对象进行跟踪。随后再使用接口配置命令`vrrp [number] track [object]`, 实现VRRP对被追踪对象的跟踪。
为将 VRRP 配置为对某个接口进行跟踪,就必须要在全局配置模式下,为接口追踪而使用全局配置命令`track [object number] interface [line-protocol|ip routing]`, 或为 IP 前缀追踪而使用全局配置命令`track [object number] ip route [address | prefix] [reachablity | metric threshold]`,建立一个被跟踪的对象。依据软件与平台的不同,交换机上可对高达 500 个的被追踪对象进行跟踪。随后再使用接口配置命令`vrrp [number] track [object]`, 实现 VRRP 对被追踪对象的跟踪。
> **注意:** CCNA考试不要求完成这些高级对象追踪的配置。
下面的输出展示了如何配置VRRP的跟踪引用了对象1, 该被跟踪对象对`Loopback0`接口的线路协议进行跟踪:
下面的输出展示了如何配置 VRRP 的跟踪引用了对象1, 该被跟踪对象对`Loopback0`接口的线路协议进行跟踪:
```console
VTP-Server-1(config)#track 1 interface Loopback0 line-protocol
@ -795,7 +795,7 @@ VTP-Server-1(config-if)#vrrp 1 track 1
VTP-Server-1(config-if)#exit
```
而下面的输出则展示了如何将VRRP配置为对引用对象2的追踪此被追踪对象追踪了到前缀`1.1.1.1/32`的可达性。一个被追踪的IP路由对象在存在一个该路由的路由表条目时被认为是在线且可达的同时该路由不是无法访问的无法访问就是说有着255的路由度量值, 当发生无法访问时该路由就会从路由信息数据库中被移除a tracked IP route object is considered to be up and reachable when a routing table entry exists for the route and the route is not accessible(i.e., has a route metric of 255)in which case the route is removed from the Routing Information Base(RIB) anyway
而下面的输出则展示了如何将 VRRP 配置为对引用对象 2 的追踪,此被追踪对象追踪了到前缀`1.1.1.1/32`的可达性。一个被追踪的 IP 路由对象在存在一个该路由的路由表条目时,被认为是在线且可达的,同时该路由不是无法访问的(无法访问就是说有着 255 的路由度量值), 当发生无法访问时该路由就会从路由信息数据库中被移除a tracked IP route object is considered to be up and reachable when a routing table entry exists for the route and the route is not accessible(i.e., has a route metric of 255)in which case the route is removed from the Routing Information Base(RIB) anyway
```console
VTP-Server-1(config)#track 2 ip route 1.1.1.1/32 reachability
@ -843,11 +843,11 @@ Track 2
VRRP Vlan192 1
```
> **注意:** 这些被追踪对象亦可与HSRP和GLBP配合使用。GLBP在下面的小节进行说明。
> **注意:** 这些被追踪对象亦可与 HSRP GLBP 配合使用。 GLBP 在下面的小节进行说明。
### VRRP的调试
命令`debug vrrp`提供给管理员用于查看有关VRRP运作情况实时信息的诸多选项。这些选项如下面的输出所示
命令`debug vrrp`提供给管理员用于查看有关 VRRP 运作情况实时信息的诸多选项。这些选项如下面的输出所示:
```console
VTP-Server-1#debug vrrp ?
@ -866,9 +866,9 @@ VTP-Server-1#debug vrrp ?
**Gateway Load Balancing Protocol**
与HSRP一样网关负载均衡协议也是一种思科专有的协议。GLBP以与HSRP和VRRP类似的方式提供了高的网络可用性。但与HSRP与VRRP在任何时候都由单一网关来转发特定组的流量不同GLBP允许在同一GLBP组中的多台网关同时进行流量的转发。
HSRP 一样,网关负载均衡协议也是一种思科专有的协议。 GLBP 以与 HSRP VRRP 类似的方式,提供了高的网络可用性。但与 HSRP VRRP 在任何时候都由单一网关来转发特定组的流量不同, GLBP 允许在同一 GLBP 组中的多台网关,同时进行流量的转发。
GLBP网关之间的通信是通过以每隔3秒的频率往多播地址`224.0.0.102`上使用UDP端口3322发送Hello报文进行的。下图34.24对此进行了演示:
GLBP网关之间的通信是通过以每隔 3 秒的频率,往多播地址`224.0.0.102`上,使用 UDP 端口 3322 发送 Hello 报文进行的。下图34.24对此进行了演示:
![GLBP的三层及四层协议与地址](images/3424.png)
@ -876,60 +876,60 @@ GLBP网关之间的通信是通过以每隔3秒的频率往多播地址`22
### GLBP的运作
在启用了GLBP后该GLBP组的那些成员就选举出一台网关作为改组的活动虚拟网关the active virtual gateway, AVG。该活动网关有着最高的优先级值。在成员优先级值相等时组中带有最高IP地址的活动虚拟网关将被选举为网关。组中剩下的其它网关就会在活动虚拟网关不可用时提供活动虚拟网关的备份。
在启用了 GLBP 后,该 GLBP 组的那些成员就选举出一台网关作为改组的活动虚拟网关the active virtual gateway, AVG。该活动网关有着最高的优先级值。在成员优先级值相等时组中带有最高 IP 地址的活动虚拟网关将被选举为网关。组中剩下的其它网关,就会在活动虚拟网关不可用时,提供活动虚拟网关的备份。
活动虚拟网关将应答所有对虚拟路由器地址的地址解析协议Address Resolution Protocol, ARP请求。此外活动虚拟网关还会为GLBP组的每个成员网关都分配一个虚拟MAC地址。因此每个成员网关都要负责转发发送到由活动虚拟网关所指派的虚拟MAC地址上的数据包了。这些网关一起, 作为它们所分配到的虚拟MAC地址所对应的活动虚拟转发器active virtual forwarders, AVFs被看待。这就令到GLBP能够提供负载的共同承担。下图34.25对此概念进行了演示:
活动虚拟网关将应答所有对虚拟路由器地址的地址解析协议Address Resolution Protocol, ARP请求。此外活动虚拟网关还会为 GLBP 组的每个成员网关,都分配一个虚拟 MAC 地址。因此每个成员网关都要负责转发发送到由活动虚拟网关所指派的虚拟 MAC 地址上的数据包了。这些网关一起, 作为它们所分配到的虚拟 MAC 地址所对应的活动虚拟转发器active virtual forwarders, AVFs被看待。这就令到 GLBP 能够提供负载的共同承担。下图34.25对此概念进行了演示:
![GLBP的活动虚拟网关与活动虚拟转发器](images/3425.png)
*图 34.25 -- GLBP的活动虚拟网关与活动虚拟转发器GLBP Active Virtual Gateway and Active Virtual Forwarders*
图34.25展示了一个使用GLBP作为FHRP的网络。这里的三台网关都被配置在GLBP `Group 1`中。网关`GLBP-1`配置了110的优先级值网关`GLBP-2`配置的优先级值是105, 网关`GLBP-3`使用了默认的优先级值100。那么`GLBP-1`就被选举为活动虚拟网关,同时`GLBP-2`和`GLBP-3`又被分配到相应的虚拟MAC地址`bbbb.bbbb.bbbb.bbbb`及`cccc.cccc.cccc` 且各自成为这些虚拟MAC地址对应的活动虚拟转发器。`GLBP-1`也是其本身虚拟MAC地址`aaaa.aaaa.aaaa`的活动虚拟转发器。
图34.25展示了一个使用 GLBP 作为 FHRP 的网络。这里的三台网关都被配置在GLBP `Group 1`中。网关`GLBP-1`配置了 110 的优先级值,网关`GLBP-2`配置的优先级值是105, 网关`GLBP-3`使用了默认的优先级值 100 。那么`GLBP-1`就被选举为活动虚拟网关,同时`GLBP-2`和`GLBP-3`又被分配到相应的虚拟 MAC 地址`bbbb.bbbb.bbbb.bbbb`及`cccc.cccc.cccc` 且各自成为这些虚拟 MAC 地址对应的活动虚拟转发器。`GLBP-1`也是其本身虚拟 MAC 地址`aaaa.aaaa.aaaa`的活动虚拟转发器。
主机1、2、3都配置了默认网关地址`192.168.1.254`, 此IP地址正是指派给该GLBP组的虚拟IP地址。主机1发出了查询其网关IP地址的ARP广播。此查询被活动虚拟网关`GLBP-1`)接收到,`GLBP-1`就以其自身的虚拟MAC地址`aaaa.aaaa.aaaa`加以响应。主机1于是就将到`192.168.1.254`的流量转发到这个MAC地址了。
主机 1 2 3 都配置了默认网关地址`192.168.1.254`, 此 IP 地址正是指派给该 GLBP 组的虚拟 IP 地址。主机 1 发出了查询其网关 IP 地址的 ARP 广播。此查询被活动虚拟网关(`GLBP-1`)接收到,`GLBP-1`就以其自身的虚拟 MAC 地址`aaaa.aaaa.aaaa`加以响应。主机 1 于是就将到`192.168.1.254`的流量,转发到这个 MAC 地址了。
主机2发出一个查询其网关IP地址的ARP广播。此查询被活动虚拟网关`GLBP-1`接收进而以虚拟MAC地址`bbbb.bbbb.bbbb`进行响应。那么主机2就将那些到`192.168.1.254`的流量都转发到这个MAC地址了并由`GLBP-2`来进一步转发这些流量。
主机 2 发出一个查询其网关 IP 地址的 ARP 广播。此查询被活动虚拟网关(`GLBP-1`)接收,进而以虚拟 MAC 地址`bbbb.bbbb.bbbb`进行响应。那么主机 2 就将那些到`192.168.1.254`的流量,都转发到这个 MAC 地址了,并由`GLBP-2`来进一步转发这些流量。
主机3的情况与此类似将会把到`192.168.1.254`的流量转发到虚拟MAC地址`cccc.cccc.cccc`, 由`GLBP-3`来转发这些流量。
主机 3 的情况与此类似,将会把到`192.168.1.254`的流量,转发到虚拟 MAC 地址`cccc.cccc.cccc`, 由`GLBP-3`来转发这些流量。
通过使用上组中的所有网关GLBP实现了无需像在HSRP或VRRP中那样需要配置多个组就能做到负载均衡。
通过使用上组中的所有网关, GLBP 实现了无需像在 HSRP VRRP 中那样需要配置多个组,就能做到负载均衡。
### GLBP的虚拟MAC地址分配
### GLBP的虚拟 MAC 地址分配
一个GLBP允许每组有4个的虚拟MAC地址。由活动虚拟网关来负责将虚拟MAC地址分配给组中的各个成员。其它组成员是在它们发现了活动虚拟网关后精油Hello报文请求到虚拟MAC地址的。
一个 GLBP 允许每组有 4 个的虚拟 MAC 地址。由活动虚拟网关来负责将虚拟 MAC 地址分配给组中的各个成员。其它组成员是在它们发现了活动虚拟网关后,精油 Hello 报文,请求到虚拟 MAC 地址的。
这些网关是依序分配到下一个虚拟MAC地址的。已通过活动虚拟网关分配到了虚拟MAC地址的网关被称作主虚拟转发器a primary virtual forwarder, 而已学习到某个虚拟MAC地址的网关被称作是从虚拟转发器a secondary virtual forwarder
这些网关是依序分配到下一个虚拟 MAC 地址的。已通过活动虚拟网关分配到了虚拟 MAC 地址的网关被称作主虚拟转发器a primary virtual forwarder, 而已学习到某个虚拟 MAC 地址的网关被称作是从虚拟转发器a secondary virtual forwarder
### GLBP的冗余
在GLBP组中是单一一台网关被选举为活动虚拟网关有另一网关被选举为备份虚拟网关the standby virtual gateway的。组中剩下的其它网关都被置于侦听状态a Listen state。在活动虚拟网关失效时备份虚拟网关将接过该虚拟IP地址的角色。于此同时又会再进行一次选举此时将从那些处于侦听状态的网关中选出一个新的备份虚拟网关。
GLBP 组中是单一一台网关被选举为活动虚拟网关有另一网关被选举为备份虚拟网关the standby virtual gateway的。组中剩下的其它网关都被置于侦听状态a Listen state。在活动虚拟网关失效时备份虚拟网关将接过该虚拟 IP 地址的角色。于此同时,又会再进行一次选举,此时将从那些处于侦听状态的网关中选出一个新的备份虚拟网关。
在该活动虚拟网关失效时处于侦听状态的某台从虚拟转发器会接过该虚拟MAC地址的职责。但是因为新的活动虚拟转发器已是使用了另一虚拟MAC地址的转发器GLBP就需要确保原有的转发器MAC地址停止使用同时那些主机已从此MAC地址迁移。这是通过使用下面的两个计时器实现的in the event the AVF fails, one of the secondary virtual forwarders in the Listen state assumes responsibility for the virtual MAC address. However, because the new AVF is already a forwarder using another virtual MAC address, GLBP needs to ensure that the old forwarder MAC address ceases being used and hosts are migrated away from this address. This is archived using the following two timers
在该活动虚拟网关失效时,处于侦听状态的某台从虚拟转发器,会接过该虚拟 MAC 地址的职责。但是因为新的活动虚拟转发器已是使用了另一虚拟 MAC 地址的转发器, GLBP 就需要确保原有的转发器 MAC 地址停止使用,同时那些主机已从此 MAC 地址迁移。这是通过使用下面的两个计时器实现的in the event the AVF fails, one of the secondary virtual forwarders in the Listen state assumes responsibility for the virtual MAC address. However, because the new AVF is already a forwarder using another virtual MAC address, GLBP needs to ensure that the old forwarder MAC address ceases being used and hosts are migrated away from this address. This is archived using the following two timers
- 重定向计时器the redirect timer
- 超时计时器the timeout timer
重定向时间是指在活动虚拟网关持续将主机重新到原有该虚拟转发器MAC地址的间隔。在此计时器超时后活动虚拟网关就在ARP应答中停止使用原有的虚拟转发器MAC地址了就算该虚拟转发器仍将持续发送到原有虚拟转发器MAC地址的数据包the redirect time is the interval during which the AVG continues to redirect hosts to the old virtual forwarder MAC address. When this timer expires, the AVG stops using the old virtual forwarder MAC address in ARP replies, although the virtual forwarder will continue to forward packets that were sent to the old virtual forwarder MAC address
重定向时间是指在活动虚拟网关持续将主机重新到原有该虚拟转发器 MAC 地址的间隔。在此计时器超时后,活动虚拟网关就在 ARP 应答中停止使用原有的虚拟转发器 MAC 地址了,就算该虚拟转发器仍将持续发送到原有虚拟转发器 MAC 地址的数据包the redirect time is the interval during which the AVG continues to redirect hosts to the old virtual forwarder MAC address. When this timer expires, the AVG stops using the old virtual forwarder MAC address in ARP replies, although the virtual forwarder will continue to forward packets that were sent to the old virtual forwarder MAC address
而在超时计时器超时后该虚拟转发器就被从该GLBP组的所有网关中移除。那些仍在使用ARP缓存中原有MAC地址的客户端就必须刷新此项项目以获取到新的虚拟MAC地址。GLBP使用Hello报文来就这两个计时器的当前状态进行通信when the timeout timer expires, the virtual forwarder is removed from all gateways in the GLBP group. Any clients still using the old MAC address in their ARP caches must refresh the entry to obtain the new virtual MAC address. GLBP uses Hello messages to communicate the current state of these two timers
而在超时计时器超时后,该虚拟转发器就被从该 GLBP 组的所有网关中移除。那些仍在使用 ARP 缓存中原有 MAC 地址的客户端,就必须刷新此项项目,以获取到新的虚拟 MAC 地址。 GLBP 使用 Hello 报文来就这两个计时器的当前状态进行通信when the timeout timer expires, the virtual forwarder is removed from all gateways in the GLBP group. Any clients still using the old MAC address in their ARP caches must refresh the entry to obtain the new virtual MAC address. GLBP uses Hello messages to communicate the current state of these two timers
### GLBP的负载抢占
GLBP抢占默认是关闭的也就是说仅在当前活动虚拟网关失效时备份虚拟网关才能成为活动虚拟网关这与分配给那些虚拟网关的优先级无关。这种运作方式与HSRP中用到的类似。
GLBP抢占默认是关闭的也就是说仅在当前活动虚拟网关失效时备份虚拟网关才能成为活动虚拟网关这与分配给那些虚拟网关的优先级无关。这种运作方式 HSRP 中用到的类似。
思科IOS软件允许管理员开启GLBP的抢占特性这就令到在备份虚拟网关被指派了一个比当前活动虚拟网关更高的优先级值时成为活动虚拟网关。默认GLBP的虚拟转发器抢占性方案是开启的有一个30秒的延迟By default, the GLBP virtual forwarder preemptive scheme is enabled with a delay of 30 seconds。但这个延迟可由管理员手动调整。
思科 IOS 软件允许管理员开启 GLBP 的抢占特性,这就令到在备份虚拟网关被指派了一个比当前活动虚拟网关更高的优先级值时,成为活动虚拟网关。默认 GLBP 的虚拟转发器抢占性方案是开启的,有一个 30 秒的延迟By default, the GLBP virtual forwarder preemptive scheme is enabled with a delay of 30 seconds。但这个延迟可由管理员手动调整。
### GLBP的权重
**GLBP Weighting**
GLBP采用了一种权重方案a weighting scheme来确定GLBP组中各台网关的转发容量。指派给GLBP组中某台网关的权重可用于确定其是否要转发数据包因此就可以依比例来确定该网关所要转发的LAN中主机的数据包了the weighting assigned to a gateway in the GLBP group can be used to determine whether it will forward packets and, if so, the proportion of hosts in the LAN for which it will forward packets
GLBP采用了一种权重方案a weighting scheme来确定 GLBP 组中各台网关的转发容量。指派给 GLBP 组中某台网关的权重,可用于确定其是否要转发数据包,因此就可以依比例来确定该网关所要转发的 LAN 中主机的数据包了the weighting assigned to a gateway in the GLBP group can be used to determine whether it will forward packets and, if so, the proportion of hosts in the LAN for which it will forward packets
每台网关都默认指派了100的权重。管理员可通过配置结合了GLBP的对象跟踪比如接口及IP前缀跟踪来进一步将网关配置为动态权重调整。在某个接口失效时权重就被动态地降低一个指定数值如此令到那些有着更高权重值的网关用于转发比那些有着更低权重值的网关更多的流量。
每台网关都默认指派了 100 的权重。管理员可通过配置结合了 GLBP 的对象跟踪,比如接口及 IP 前缀跟踪,来进一步将网关配置为动态权重调整。在某个接口失效时,权重就被动态地降低一个指定数值,如此令到那些有着更高权重值的网关,用于转发比那些有着更低权重值的网关更多的流量。
此外在某个GLBP组成员的权重降低到某个值时还可设置一个阈值用于关闭数据包的转发且在权重值上升到另一与之时又可自动开启转发。在当前活动虚拟转发器的权重掉到低权重阈值30秒时备份虚拟转发器将成为活动虚拟转发器。
此外,在某个 GLBP 组(成员)的权重降低到某个值时,还可设置一个阈值,用于关闭数据包的转发,且在权重值上升到另一与之时,又可自动开启转发。在当前活动虚拟转发器的权重掉到低权重阈值 30 秒时,备份虚拟转发器将成为活动虚拟转发器。
### GLBP负载共同分担
@ -943,37 +943,37 @@ GLBP支持以下三种方式的负载分担
- 加权的Weighted
在有赖于主机的负载共担下生成虚拟路由器地址ARP请求的各台客户端总是会在响应中收到同样的虚拟MAC地址。此方式为客户端提供了一致的网关MAC地址。
在有赖于主机的负载共担下,生成虚拟路由器地址 ARP 请求的各台客户端,总是会在响应中收到同样的虚拟 MAC 地址。此方式为客户端提供了一致的网关 MAC 地址。
而轮询的负载共担机制将流量平均地分发到组中作为活动虚拟转发器的所有网关the round-robin load-sharing mechanism distributes the traffic evenly across all gateways participating as AVFs in the group。这是默认的负载分担机制。
加权的负载分担机制使用权重值来确定发送到某个特定AVF的流量比例。较高的权重值会带来更频繁的包含那台网关虚拟MAC地址的ARP响应。
加权的负载分担机制,使用权重值来确定发送到某个特定 AVF 的流量比例。较高的权重值会带来更频繁的包含那台网关虚拟 MAC 地址的 ARP 响应。
### GLBP的客户端缓存
GLBP的客户端缓存包含了使用到某个GLBP组作为默认网关的那些网络主机的信息。此缓存项目包含了关于发送了IPv4 ARP或IPv6 邻居发现Neighbor Discovery, ND请求主机以及AVG指派了哪个转发器给它的信息还有每台网络主机已被分配的GLBP转发器的编号和当前分配给GLBP组中各台转发器的网络主机总数。
GLBP的客户端缓存包含了使用到某个 GLBP 组作为默认网关的那些网络主机的信息。此缓存项目包含了关于发送了IPv4 ARP或IPv6 邻居发现Neighbor Discovery, ND请求主机以及 AVG 指派了哪个转发器给它的信息,还有每台网络主机已被分配的 GLBP 转发器的编号,和当前分配给 GLBP 组中各台转发器的网络主机总数。
可以开启某个GLBP组的活动虚拟网关来存储一个使用到此GLBP组的所有LAN客户端的客户端缓存数据库a client cache database。客户端缓存数据库最多可以存储2000个条目但建议条目数不要超过1000。同时GLBP缓存的配置是超出CCNA考试要求的此特性可使用命令`glbp client-cache`进行配置,使用命令`show glbp detail`进行验证。
可以开启某个 GLBP 组的活动虚拟网关,来存储一个使用到此 GLBP 组的所有 LAN 客户端的客户端缓存数据库a client cache database。客户端缓存数据库最多可以存储 2000 个条目,但建议条目数不要超过 1000 。同时 GLBP 缓存的配置,是超出 CCNA 考试要求的,此特性可使用命令`glbp client-cache`进行配置,使用命令`show glbp detail`进行验证。
### 在网关上配置GLBP
在网关上配置GLBP需要以下步骤
在网关上配置 GLBP ,需要以下步骤:
1. 使用接口配置命令`ip address [address] [mask] [secondary]`为网关接口配置正确的IP地址与子网掩码。
1. 使用接口配置命令`ip address [address] [mask] [secondary]`,为网关接口配置正确的 IP 地址与子网掩码。
2. 通过接口配置命令`glbp [number] ip [virtual address] [secondary]`, 在网关接口上建立一个GLBP组并给该组指派上虚拟IP地址。关键字`[secondary]`将该虚拟IP地址配置为指定组的第二网关地址。
2. 通过接口配置命令`glbp [number] ip [virtual address] [secondary]`, 在网关接口上建立一个 GLBP 组,并给该组指派上虚拟 IP 地址。关键字`[secondary]`将该虚拟 IP 地址配置为指定组的第二网关地址。
3. 作为可选项,可通过接口配置命令`glbp [number] name [name]`为该GLBP组指派一个名称。
3. 作为可选项,可通过接口配置命令`glbp [number] name [name]`,为该 GLBP 组指派一个名称。
4. 作为可选项,如打算对活动虚拟网关的选举进行控制,就要通过接口配置命令`glbp [number] priority [value]`,配置该组的优先级。
本小节中的GLBP示例将基于下图34.26的网络:
本小节中的 GLBP 示例将基于下图34.26的网络:
![GLBP配置示例的拓扑](images/3426.png)
*图 34.26 -- GLBP配置示例的拓扑*
> **注意:** 这里假定在`VTP-Server-1`与`VTP-Server-2`之间的VLAN与中继已有配置妥当同时交换机之间可以经由VLAN192 `ping`通。为简短起见,这些配置已在配置示例中省略。
> **注意:** 这里假定在`VTP-Server-1`与`VTP-Server-2`之间的 VLAN 与中继已有配置妥当同时交换机之间可以经由VLAN192 `ping`通。为简短起见,这些配置已在配置示例中省略。
```console
VTP-Server-1(config)#interface vlan192
@ -991,7 +991,7 @@ VTP-Server-4(config-if)#glbp 1 ip 192.168.1.254
VTP-Server-4(config-if)#exit
```
一旦该GLBP组已被配置就可使用命令`show glbp brief`来查看该GLBP配置的摘要信息了如同下面的输出所示
一旦该 GLBP 组已被配置,就可使用命令`show glbp brief`来查看该 GLBP 配置的摘要信息了,如同下面的输出所示:
```console
VTP-Server-1#show glbp brief
@ -1027,9 +1027,9 @@ Vl192 1 3 - Listen 0007.b400.0103 192.168.1.3 -
Vl192 1 4 - Active 0007.b400.0104 local -
```
从上面的输出可以看出,基于`VTP-Server-1`192.168.1.1有着优先级值110, 该值高于所有其它网关的优先级值,而已被选举作为活动虚拟网关。网关`VTP-Server-4`192.168.1.4, 由于有着剩下三台网关中最高的IP地址而就算这三台网关有着同样的优先级值被选举作备份虚拟网关。因此网关`VTP-Server-2`与`VTP-Server-3`都被置于侦听状态了。
从上面的输出可以看出,基于`VTP-Server-1`192.168.1.1有着优先级值110, 该值高于所有其它网关的优先级值,而已被选举作为活动虚拟网关。网关`VTP-Server-4`192.168.1.4, 由于有着剩下三台网关中最高的 IP 地址,而就算这三台网关有着同样的优先级值,被选举作备份虚拟网关。因此网关`VTP-Server-2`与`VTP-Server-3`都被置于侦听状态了。
命令`show glbp`将有关该GLBP组状态的详细信息打印了出来下面对此命令的输出进行了演示
命令`show glbp`将有关该 GLBP 组状态的详细信息打印了出来,下面对此命令的输出进行了演示:
```console
VTP-Server-1#show glbp
@ -1086,9 +1086,9 @@ Vlan192 - Group 1
Active is 192.168.1.4 (primary), weighting 100 (expires in 8.510 sec)
```
当在活动虚拟网关上执行时,命令`show glbp`除了展示其它内容外还会给出备份虚拟网关的地址和组中所有活动虚拟转发器的数目以及由活动虚拟网关所指派给这些活动虚拟转发器的状态。同时还显示了各台活动虚拟转发器的虚拟MAC地址。
当在活动虚拟网关上执行时,命令`show glbp`除了展示其它内容外,还会给出备份虚拟网关的地址和组中所有活动虚拟转发器的数目,以及由活动虚拟网关所指派给这些活动虚拟转发器的状态。同时还显示了各台活动虚拟转发器的虚拟 MAC 地址。
## 第34天问题
## 第 34 天问题
1. Name two FHRP protocols that are Cisco proprietary.
2. Name the open standard FHRP protocol.
@ -1101,7 +1101,7 @@ Vlan192 - Group 1
9. Just like HSRP, VRRP has the option of allowing the gateway to use the BIA or a statically configured address as the MAC address for VRRP groups. True or false?
10. Which command can you use to configure a GLBP group IP address on a router interface?
## 第34天问题答案
## 第 34 天问题答案
1. HSRP and GLBP.
2. VRRP.
@ -1114,47 +1114,47 @@ Vlan192 - Group 1
9. False.
10. The `glbp [number] ip [virtual address]` command.
## 第34天实验
## 第 34 天实验
### HSRP实验
在包含了两台直连路由器的场景中(也就是`Fa0/0`连接到`Fa0/0`),对本课程模块中有解释的那些命令进行测试。这两天应都经由比如端口`Fa0/1`连接到一台交换机。便在交换机上连接一台工作站workstation
在包含了两台直连路由器的场景中(也就是`Fa0/0`连接到`Fa0/0`),对本课程模块中有解释的那些命令进行测试。这两天应都经由比如端口`Fa0/1`,连接到一台交换机。便在交换机上连接一台工作站( workstation )。
- 在两台路由器上配置某种一致的IP分址方案configure a consistent IP addressing scheme on the two routers比如`192.168.0.1/24`与`192.168.0.2/24`
- 在两台路由器上配置某种一致的 IP 分址方案configure a consistent IP addressing scheme on the two routers比如`192.168.0.1/24`与`192.168.0.2/24`
- 使用地址`192.168.0.10`在面向LAN的接口上配置HSRP 10configure HSRP 10 on LAN-facing interfaces
- 使用地址`192.168.0.10`,在面向 LAN 的接口上配置HSRP 10configure HSRP 10 on LAN-facing interfaces
- 将该HSRP组命名为`CCNA`
- 将该 HSRP 组命名为`CCNA`
- 使用命令`standby 10 priority 110`, 来对主HSRP网关的选举进行控制
- 使用命令`standby 10 priority 110`, 来对主 HSRP 网关的选举进行控制
- 使用命令`show standby [brief]`对HSRP配置进行验证
- 使用命令`show standby [brief]`,对 HSRP 配置进行验证
- 在两台路由器都配置上HSRP抢占
- 在两台路由器都配置上 HSRP 抢占
- 关闭`Router 1`,观察`Router 2`如何成为主路由器
- 重启`Router 1`,并观察其如何因为开启了抢占,而再度成为主路由器
- 将工作站的IP地址配置为`192.168.0.100/24`, 网关地址为`192.168.0.10`; 并从该工作站对网关进行`ping`操作
- 将工作站的 IP 地址配置为`192.168.0.100/24`, 网关地址为`192.168.0.10`; 并从该工作站对网关进行`ping`操作
- 配置接口跟踪:使用命令`standby 10 track [int number]`对路由器上的一个未使用接口进行跟踪; 将该接口循环置于不同根状态,进而对基于该接口状态,而发生的相应路由器优先级变化进行观察。
- 使用命令`standby version 2`配置上HSRP版本2
- 使用命令`standby version 2`,配置上 HSRP 版本2
- 通过命令`standby 10 timers x y`在两台路由器上对不同HSRP计时器进行修改
- 通过命令`standby 10 timers x y`,在两台路由器上对不同 HSRP 计时器进行修改
- 在两台路由器之间配置MD5的HSRP验证
- 在两台路由器之间配置 MD5 HSRP 验证
- 在一台路由器的主网关状态变化时,使用命令`debug standby`对HSRP进行调试从而观察另一台是如何被选举为主网关的
- 在一台路由器的主网关状态变化时,使用命令`debug standby`对 HSRP 进行调试,从而观察另一台是如何被选举为主网关的
### VRRP实验
重复上一实验但这次在适用的命令改变下用VRRP代替HSRPrepeat the previous lab but this time using VRRP instead of HSRP, with the applicable command changes
重复上一实验,但这次在适用的命令改变下,用 VRRP 代替 HSRP repeat the previous lab but this time using VRRP instead of HSRP, with the applicable command changes
### GLBP实验
重复第一个实验在适用的命令改变下用GLBP代替HSRP。在两台路由器上使用`glbp 10 load-balancing round-robin`命令配置GLBP的负载共担并观察LAN中流量是如何同时到达两台路由器的。
重复第一个实验,在适用的命令改变下,用 GLBP 代替 HSRP 。在两台路由器上使用`glbp 10 load-balancing round-robin`命令,配置 GLBP 的负载共担,并观察 LAN 中流量是如何同时到达两台路由器的。
访问[www.in60days.com](http://www.in60days.com/), 看看作者是怎样完成此实验的。

View File

@ -1,4 +1,4 @@
# 第35天 系统启动引导过程与 IOS
# 第 35 天 系统启动引导过程与 IOS
__Booting and IOS__
@ -16,28 +16,28 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第35天任务
## 第 35 天任务
- 阅读以下今天的课文
- 复习昨天的课文
- 完成后面的实验
- 阅读ICND2记诵指南
- 阅读 ICND2 记诵指南
架构architecture指的是制造路由器所用的部件以及在路由器启动过程中它们的用法。这些知识全是一名思科CCNA工程师所要掌握的基础知识思科CCNA工程师需要知道路由器中的各种存储器完成什么功能以及怎样使用IOS命令来对各种存储器进行备份或对其存储内容进行操作。
架构( architecture )指的是制造路由器所用的部件,以及在路由器启动过程中它们的用法。这些知识全是一名思科 CCNA 工程师所要掌握的基础知识,思科 CCNA 工程师需要知道路由器中的各种存储器完成什么功能,以及怎样使用 IOS 命令来对各种存储器进行备份或对其存储内容进行操作。
今天将学习以下内容:
- 路由器存储器及各种文件
- 管理IOS
本课程对应了以下ICND2大纲要求
本课程对应了以下 ICND2 大纲要求:
- 对思科IOS路由器的启动过程进行描述
- 对思科 IOS 路由器的启动过程进行描述
- 加电自检过程Power-On Self-Test, POST
- 路由器的启动过程Router bootup process
- 管理思科IOS的各种文件
- 管理思科 IOS 的各种文件
- 各种启动选项Boot preferences
- 各种思科IOS镜像Cisco IOS images(15)
- 各种思科 IOS 镜像Cisco IOS images(15)
- 软件许可licensing
- 展示/修改许可证show/change license
@ -50,12 +50,12 @@ ___
在将路由器盖子打开后,在其内部常能见到不同的存储器插槽。还能发现一些闪存卡插在路由器插槽中。
![在某台路由器主板上的DRAM单列直插内存模组](images/3502.png)
*图35.2 -- 在某台路由器主板上的DRAM单列直插内存模组Dynamic Random Access Mememory Single In-line Mememory Module on a Router Motherboard*
![在某台路由器主板上的 DRAM 单列直插内存模组](images/3502.png)
*图35.2 -- 在某台路由器主板上的 DRAM 单列直插内存模组Dynamic Random Access Mememory Single In-line Mememory Module on a Router Motherboard*
以下是每种内存及文件类型的作用:
引导ROMboot ROM-- 是电可擦可编程只读存储器Electrically Erasable Programmable Read-Only Mememory, EEPROM,, 一种掉电后数据不丢失的存储芯片),用于启动图/Rommonstartup diagram/Rommon的存储及IOS的装入。在路由器启动是如缺少IOS文件那么就会启动要一种叫做Rommon的紧急模式an emergency mode此模式下允许输入一些有限的几个命令以对路由器进行恢复及装入其它IOS。此模式又叫做启动模式bootstrap mode在以下两种路由器提示符下就可以明白是在此模式
引导 ROM boot ROM-- 是电可擦可编程只读存储器Electrically Erasable Programmable Read-Only Mememory, EEPROM,, 一种掉电后数据不丢失的存储芯片),用于启动图/Rommonstartup diagram/Rommon的存储及 IOS 的装入。在路由器启动是,如缺少 IOS 文件,那么就会启动要一种叫做 Rommon 的紧急模式an emergency mode此模式下允许输入一些有限的几个命令以对路由器进行恢复及装入其它 IOS 。此模式又叫做启动模式bootstrap mode在以下两种路由器提示符下就可以明白是在此模式
```console
>
@ -64,15 +64,15 @@ Rommon>
非易失性随机访问存储器Non-Volatile Random Access Mememory, NVRAM) -- 用于启动配置与配置寄存器的存储。启动配置是用于存储已保存的路由器配置的文件。其在路由器重启是不被擦除。
闪存/PCMCIAPersonal Computer Mememory Card International Association卡 -- 包含了IOS及一些配置文件。闪存存储器还被当作EEPROM 同时思科IOS就以某种压缩形式存放在这里。在闪存容量充足时甚至可以在闪存存储器上保存多个版本的思科IOS。
闪存/PCMCIAPersonal Computer Mememory Card International Association卡 -- 包含了 IOS 及一些配置文件。闪存存储器还被当作 EEPROM 同时思科 IOS 就以某种压缩形式存放在这里。在闪存容量充足时,甚至可以在闪存存储器上保存多个版本的思科 IOS
DRAM内存-- 也就是RAM其存储完整的IOS、运行中的配置及路由表。其为运行内存在路由器重启后数据被擦除。
DRAM内存-- 也就是 RAM ,其存储完整的 IOS 、运行中的配置,及路由表。其为运行内存,在路由器重启后数据被擦除。
ROM监测程序ROM Monitor-- 用于系统诊断及启动。ROM监测程序中有着名为启动器或启动帮助器的一套甚为小型的代码用于对安装的各种存储器及接口进行检查The ROM Monitor has a very small code called bootstrap or boothelper in it to check for attached mememory and interfaces
ROM监测程序ROM Monitor-- 用于系统诊断及启动。 ROM 监测程序中有着名为启动器或启动帮助器的一套甚为小型的代码用于对安装的各种存储器及接口进行检查The ROM Monitor has a very small code called bootstrap or boothelper in it to check for attached mememory and interfaces
RxBoot程序 -- 小型的IOSMini-IOS, 在此程序模式下允许上传一个完整的IOS。其又被称为启动装载器the boot loader可用于完成一些路由器维护操作参见[这里](http://www.cisco.com/image/gif/paws/10252/13.pdf))。
RxBoot程序 -- 小型的 IOS Mini-IOS, 在此程序模式下允许上传一个完整的 IOS 。其又被称为启动装载器the boot loader可用于完成一些路由器维护操作参见[这里](http://www.cisco.com/image/gif/paws/10252/13.pdf))。
路由器配置 -- 尽管严格来说这并非一类路由器组件其存储在NVRAM中在启动是拉入到DRAM中。可将DRAM中的配置经由命令`copy run start`放入到NVRAM同时也可以使用命令`copy start run`将NVRAM中的配置文件放到内存中。
路由器配置 -- 尽管严格来说这并非一类路由器组件,其存储在 NVRAM 中,在启动是拉入到 DRAM 中。可将 DRAM 中的配置,经由命令`copy run start`,放入到 NVRAM ,同时也可以使用命令`copy start run`,将 NVRAM 中的配置文件放到内存中。
配置寄存器the Configuration Register-- 设置启动中的一些指令sets instructions for booting。因为在实验中要对用到的路由器上的配置寄存器进行修改比如无配置的干净启动或是要完成一次口令恢复所以对配置寄存器的掌握是非常重要的。虽然在某些模型上有所不同但下面是两个最常见的设置
@ -138,25 +138,25 @@ Processor board ID 18086064, with hardware revision 00000003
做好一些简单的路由器及交换机日常工作就可避免许多的网络灾难many network disasters could have been avoided with simple router and switch housekeeping。如路由器配置文件对于你及你的业务比较重要那么就应对其进行备份。
如觉得路由器的当前的运行配置,可作为工作版本,就可以使用命令`copy run start`将其拷贝到NVRAM中。
如觉得路由器的当前的运行配置,可作为工作版本,就可以使用命令`copy run start`,将其拷贝到 NVRAM 中。
而为了将该路由器配置保存起来就需要在网络上保有一台运行着TFTP服务器软件的PC及或服务器。可从诸如SolarWinds这类公司下载到免费版的TFTP服务器软件。升级闪存镜像也需要有TFTP服务器。
而为了将该路由器配置保存起来,就需要在网络上保有一台运行着 TFTP 服务器软件的 PC 及或服务器。可从诸如 SolarWinds 这类公司下载到免费版的 TFTP 服务器软件。升级闪存镜像也需要有 TFTP 服务器。
路由器配置可在路由器或网络上的PC机或服务器之间移动。路由器上的运行配置保存在DRAM中。对配置做出的任何修改都将保存在DRAM中此时由于任何的原因而导致的重启这些运行配置都会丢失。
路由器配置可在路由器或网络上的 PC 机或服务器之间移动。路由器上的运行配置保存在 DRAM 中。对配置做出的任何修改,都将保存在 DRAM 中,此时由于任何的原因而导致的重启,这些运行配置都会丢失。
你可以将运行配置拷贝到一台运行了TFTP服务器软件的PC机或服务器上
你可以将运行配置拷贝到一台运行了 TFTP 服务器软件的 PC 机或服务器上:
```console
Router#copy startup-config tftp:← You need to include the colon
```
还可以将IOS镜像复制到某台TFTP服务器上。如要将服务器IOS更新到另一较新版本就必须要这么做以防新版本可能带来的问题管理员经常将一个路由器现有闪存装不下的IOS镜像放上去
还可以将 IOS 镜像复制到某台 TFTP 服务器上。如要将服务器 IOS 更新到另一较新版本,就必须要这么做,以防新版本可能带来的问题(管理员经常将一个路由器现有闪存装不下的 IOS 镜像放上去)。
```console
Router#copy flash tftp:
```
路由器将提示输入TFTP服务器的IP地址建议服务器与路由器位处同一子网。而如打算从TFTP服务器下载IOS镜像就只需简单地逆转一下命令即可
路由器将提示输入 TFTP 服务器的 IP 地址,建议服务器与路由器位处同一子网。而如打算从 TFTP 服务器下载 IOS 镜像,就只需简单地逆转一下命令即可:
```console
Router#copy tftp flash:
@ -164,11 +164,11 @@ Router#copy tftp flash:
这些命令的问题在于大多数工程师一年也就用两三次,或者只在出现网络灾难时才用到。通常,你会发现在你的网络宕机时,互联网接入也没有了,所以必须要将路由器存储器中将它们备份出来!
作者强烈建议在家庭网络上对配置完成一些备份及恢复的联系。此外还建议观看一下作者在Youtube上的恢复实验
作者强烈建议在家庭网络上对配置完成一些备份及恢复的联系。此外,还建议观看一下作者在 Youtube 上的恢复实验:
[www.youtube.com/user/paulwbrowning](http://www.youtube.com/user/paulwbrowning)
通过`show version`或`show flash`命令, 或者经由`dir flash:`进入到flash目录进入到flash目录将显示出闪存中所有的文件就可以查看到闪存的文件名。
通过`show version`或`show flash`命令, 或者经由`dir flash:`进入到 flash 目录,进入到 flash 目录将显示出闪存中所有的文件,就可以查看到闪存的文件名。
```console
RouterA#show flash
@ -179,13 +179,13 @@ File Length Name/status
16384K bytes of processor board System flash (Read ONLY)
```
作者本打算对此方面进行深入但你应着重于CCNA考试本身及日常工作。不过灾难恢复应在深入研究及实验的目标清单当中。
作者本打算对此方面进行深入,但你应着重于 CCNA 考试本身及日常工作。不过灾难恢复应在深入研究及实验的目标清单当中。
## 各种启动选项
**Booting Options**
在路由器启动时有着许多可选选项。通常在闪存中都只有一个IOS镜像因此路由器将使用那个镜像进行启动。在有着多个镜像或者路由器闪存对于镜像太小而无法放下镜像时就可能需要路由器从网络上的某台保存了IOS镜像的TFTP服务器启动了。
在路由器启动时,有着许多可选选项。通常在闪存中都只有一个 IOS 镜像,因此路由器将使用那个镜像进行启动。在有着多个镜像,或者路由器闪存对于镜像太小而无法放下镜像时,就可能需要路由器从网络上的某台保存了 IOS 镜像的 TFTP 服务器启动了。
取决于所要配置的启动选项,命令可能有些许不同。所以要在一台开启的路由器上对所有选项都进行尝试。
@ -205,7 +205,7 @@ tftp Boot from tftp server
RouterA(config)#boot system flash ? WORD System image filename <cr>
```
而对于TFTP
而对于 TFTP
```console
Enter configuration commands, one per line. End with CNTL/Z.
@ -219,15 +219,15 @@ RouterA(config)#boot system tftp:
一次标准的路由器启动顺序,看起来像下面这样:
1. 设备开机并将首先执行加电自检Power on Self Test动作。加电自检对硬件进行测试以确保所有组件都不缺少且是正常的包括各种接口、存储器、CPU、专用集成电路(ASICs)等等。加电自检程序是存储在ROM中并自ROM运行的。
1. 设备开机并将首先执行加电自检Power on Self Test动作。加电自检对硬件进行测试以确保所有组件都不缺少且是正常的包括各种接口、存储器、 CPU 、专用集成电路(ASICs)等等)。加电自检程序是存储在 ROM 中,并自 ROM 运行的。
2. 启动引导程序the bootstrap查找并装入思科IOS软件。启动引导程序是ROM中的一个程序用于执行一些其它程序并负责查找各个IOS软件所处位置接着就装入IOS镜像文件。启动引导程序找到思科IOS软件并将其装入到RAM中。思科IOS文件可在这三个地方找到闪存、某台TFTP服务器或在启动配置文件中所指定的另一位置。在所有思科路由器中IOS软件默认都是从闪存装入的。要从其它位置进行装入就必须对配置设置进行修改。
2. 启动引导程序the bootstrap查找并装入思科 IOS 软件。启动引导程序是 ROM 中的一个程序,用于执行一些其它程序,并负责查找各个 IOS 软件所处位置,接着就装入 IOS 镜像文件。启动引导程序找到思科 IOS 软件并将其装入到 RAM 中。思科 IOS 文件可在这三个地方找到:闪存、某台 TFTP 服务器,或在启动配置文件中所指定的另一位置。在所有思科路由器中, IOS 软件默认都是从闪存装入的。要从其它位置进行装入,就必须对配置设置进行修改。
3. IOS软件在NVRAM中查找一个可用的配置文件也就是启动配置文件(the startup-config file))。
3. IOS软件在 NVRAM 中查找一个可用的配置文件(也就是启动配置文件(the startup-config file))。
4. 如在NVRAM中确实有着一个启动配置文件路由器就会装入此文件此时路由器就将成为可运作的了。而如果在NVRAM中没有启动配置文件路由器将启动设置模式的配置the setup-mode configuration
4. 如在 NVRAM 中确实有着一个启动配置文件,路由器就会装入此文件,此时路由器就将成为可运作的了。而如果在 NVRAM 中没有启动配置文件路由器将启动设置模式的配置the setup-mode configuration
在运行路由器上所作的任何修改就将保存在RAM中这里就需要手动执行命令`copy running-config startup-config`,令到当前配置作为在每次启动路由器时的启动配置。
在运行路由器上所作的任何修改,就将保存在 RAM 中,这里就需要手动执行命令`copy running-config startup-config`,令到当前配置作为在每次启动路由器时的启动配置。
## IOS许可
@ -235,27 +235,27 @@ RouterA(config)#boot system tftp:
自思科为其第一台路由器构建首个互联网络操作系统the first Internetwork Operating System, IOS以来其都遵循了以下方式每种型号的路由器都有着其自己的版本与软件发布构建。大的版本都赋予了12.0的编号系统。对这些版本的改动就被编号作12.1、12.2等等。这些小的版本是一些漏洞修复或对一些模块的支持及引入其它特性比如12.1(1a)。
不幸的是随着支持的加入以及漏洞的修复这些发布就被拆分成了路线以致每个型号有其自己的IOS这样就导致许多不同版本与发布unfortunately, as support was added and bugs fixed, the releases were split into trains so each model had it's own IOS, which led to various versions and releases。假如需要一个安全或是语音镜像那么就必须购买对于手头路由器正确版本的特定镜像同时有着正确的特性支持与漏洞修复。
不幸的是,随着支持的加入以及漏洞的修复,这些发布就被拆分成了路线,以致每个型号有其自己的 IOS 这样就导致许多不同版本与发布unfortunately, as support was added and bugs fixed, the releases were split into trains so each model had it's own IOS, which led to various versions and releases。假如需要一个安全或是语音镜像那么就必须购买对于手头路由器正确版本的特定镜像同时有着正确的特性支持与漏洞修复。
思科公司最终发布了完整的训练工具与演示这样就可以搞清楚IOS软件的命名约定、发布级别及支持的模块the naming conventions, release levels, and supported modules。而根据软件的测试及成熟情况其还有着不同的名字比如ED表示处于早期部署阶段(Early DeploymentED)而GD则表示处于一般部署阶段General Deployment, GD这些对于消费者来讲都是非常迷惑的。下面是一张从思科官方文档中摘取的对IOS发布进行解释的图片
思科公司最终发布了完整的训练工具与演示,这样就可以搞清楚 IOS 软件的命名约定、发布级别及支持的模块the naming conventions, release levels, and supported modules。而根据软件的测试及成熟情况其还有着不同的名字比如 ED 表示处于早期部署阶段(Early DeploymentED),而 GD 则表示处于一般部署阶段General Deployment, GD这些对于消费者来讲都是非常迷惑的。下面是一张从思科官方文档中摘取的对 IOS 发布进行解释的图片:
![IOS软件的特别发布](images/3504.png)
*图 35.4 -- IOS软件的特别发布IOS Special Releases(Image Copyright Cisco Systems Inc.)*
作者在思科技术支持中心Technical Assistant Center, TAC就解决了数不清的那些买了一台路由器及一套IOS软件却发现到手的产品无法支持其对网络设施所要求的那些特性而迷惑的或是愤怒的客户。还要记住对于大型、企业网络必须要提前数月来安排IOS升级把IOS升级放到一个很小的维护窗口。
作者在思科技术支持中心Technical Assistant Center, TAC就解决了数不清的那些买了一台路由器及一套 IOS 软件,却发现到手的产品无法支持其对网络设施所要求的那些特性,而迷惑的或是愤怒的客户。还要记住对于大型、企业网络,必须要提前数月来安排 IOS 升级,把 IOS 升级放到一个很小的维护窗口。
## 一个新的型号
**A New Model**
思科公司现在已经改变了其IOS型号且从IOS发布12跳到了15Cisco have now changed their IOS model and jumped from IOS release 12 to 15。当前对于每个型号的路由器有着一个通用镜像。此镜像有着你需要的所有特性但为了获取到那些真正所需的高级特性的使用就需要购买适当的许可证并在具体设备上对许可证加以验证。这样做的目的是为了思科公司及其客户的便利以及阻止对思科软件的窃取与未授权共享可以想象这些思科软件是花了可观成本去开发的。
思科公司现在已经改变了其 IOS 型号,且从 IOS 发布 12 跳到了 15 Cisco have now changed their IOS model and jumped from IOS release 12 to 15。当前对于每个型号的路由器有着一个通用镜像。此镜像有着你需要的所有特性但为了获取到那些真正所需的高级特性的使用就需要购买适当的许可证并在具体设备上对许可证加以验证。这样做的目的是为了思科公司及其客户的便利以及阻止对思科软件的窃取与未授权共享可以想象这些思科软件是花了可观成本去开发的。
购买自思科零售商的所有新型号路由器都带有安装好的基础镜像以及启用了的许可证。而如果客户想要开启高级安全或是语音特性那么就需要开启这些特性。这通常是经由使用一个名为思科许可证管理器Cisco License Manager, CLM的免费思科应用完成的。在[Cisco.com](http://www.cisco.com/)网站可轻易搜寻到此应用:
![思科许可证管理器的下载页面](images/3505.png)
*图 35.5 -- 思科许可证管理器的下载页面*
可在某台允许客户在他们的设备与思科公司的许可证门户之间进行操作的服务器或主机上安装CLM。CLM专注于对当前许可证及各台设备的特性的跟踪使用图形界面。
可在某台允许客户在他们的设备与思科公司的许可证门户之间进行操作的服务器或主机上,安装 CLM CLM 专注于对当前许可证及各台设备的特性的跟踪,使用图形界面。
![思科许可证管理器的图形界面](images/3506.png)
*图 35.6 -- 思科许可证管理器的图形界面Image Copyright Cisco Systems Inc.*
@ -278,7 +278,7 @@ Device# PID SN UDI
*0 CISCO1941/K9 FTX15240000 CISCO1941/K9:FTX15240000
```
在[www.cisco.com/go/license](http://www.cisco.com/go/license)处将IOS于思科公司进行注册时就需要输入UDI。还需要把由经销商在你为IOS付款后提供给你的许可证产品授权密钥Product Authorization Key, PAK加入进去此许可证将与UDI进行比对检查。在验证通过后思科将发送给你一封许可证密钥的电子邮件。
在[www.cisco.com/go/license](http://www.cisco.com/go/license)处将 IOS 于思科公司进行注册时,就需要输入 UDI 。还需要把由经销商在你为 IOS 付款后提供给你的许可证产品授权密钥Product Authorization Key, PAK加入进去此许可证将与 UDI 进行比对检查。在验证通过后,思科将发送给你一封许可证密钥的电子邮件。
在下面可以看到有哪些特性也被激活。特性`ipbasek9`将总是开启的。
@ -317,7 +317,7 @@ securityk9 yes yes no no
datak9 yes no no no
```
一旦许可证得到验证就必须通过U盘或网络服务器及在命令行执行`license install [url]`, 将该许可证密钥添加到路由器。需要注意“.lic”这个文件名。
一旦许可证得到验证,就必须通过 U 盘或网络服务器,及在命令行执行`license install [url]`, 将该许可证密钥添加到路由器。需要注意“.lic”这个文件名。
```console
Router#dir usbflash0:
@ -342,7 +342,7 @@ Router#
## 第35天问题
## 第 35 天问题
1. Which files would you usually find in DRAM?
2. Where is the compressed IOS held?
@ -356,7 +356,7 @@ Router#
10. What is the purpose of the POST?
## 第35天答案
## 第 35 天答案
1. Uncompressed IOS, running configuration, and routing tables.
2. On the flash memory.
@ -370,20 +370,20 @@ Router#
10. The POST tests the hardware in order to verify that all the components are present and healthy (interfaces, memory, CPU, ASICs, etc.).
## 第35天实验
## 第 35 天实验
对本课程模块中讲到的那些配置命令进行测试:
- 在某台思科设备上执行一下`show version`命令,并对输出进行检查;将这些输出项与课程中详细解释进行联系
- 将启动配置拷贝到一台TFTP服务器上
- 将启动配置拷贝到一台 TFTP 服务器上
- 从某台TFTP服务器拷贝配置文件到路由器上
- 从某台 TFTP 服务器拷贝配置文件到路由器上
- 从某台TFTP服务器拷贝一个IOS镜像到路由器的闪存中
- 从某台 TFTP 服务器拷贝一个 IOS 镜像到路由器的闪存中
- 使用`show flash`命令,对闪存中的内容进行检查
- 以`boot system flash: [name]`命令使用新的IOS文件启动设备
- 以`boot system flash: [name]`命令,使用新的 IOS 文件启动设备
访问[www.in60days.com](http://www.in60days.com/)网站,免费观看作者完成此实验。

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
# 第37天 EIGRP故障排除
# 第 37 天 EIGRP故障排除
**Troubleshooting EIGRP**
@ -16,14 +16,14 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第37天任务
## 第 37 天任务
- 阅读今天的课文
- 复习昨天的课文
增强的内部网关路由协议是一种思科专有的高级距离矢量路由协议。因为EIGRP是一种广泛使用的路由协议而作为一名思科网络工程师掌握如何来支持EIGRP就尤为重要。在具备了本教程前面讲到的那些技术下为了对运行着EIGRP的网络进行鼓掌排除与支持就必须对EIGRP协议本身内部工作原理有扎实掌握。
增强的内部网关路由协议是一种思科专有的高级距离矢量路由协议。因为 EIGRP 是一种广泛使用的路由协议,而作为一名思科网络工程师,掌握如何来支持 EIGRP ,就尤为重要。在具备了本教程前面讲到的那些技术下,为了对运行着 EIGRP 的网络进行鼓掌排除与支持,就必须对 EIGRP 协议本身内部工作原理有扎实掌握。
尽管无法深入到所有潜在的EIGRP故障场景本课程模块还是将就那些在把EIGRP选作内部网关协议进行部署时一些最常见的故障场景进行讨论。
尽管无法深入到所有潜在的 EIGRP 故障场景,本课程模块还是将就那些在把 EIGRP 选作内部网关协议进行部署时,一些最常见的故障场景进行讨论。
今天将学习以下内容:
@ -32,7 +32,7 @@ ___
- 路由通告的故障排除, Troubleshooting route advertisement
- EIGRP路由故障的调试Debugging EIGRP routing issues
本课程对应了以下CCNA大纲要求
本课程对应了以下 CCNA 大纲要求:
+ EIGRP故障排除Troubleshoot and resolve EIGRP problems
- 邻居关系的建立Neighbour adjancies
@ -44,28 +44,28 @@ ___
**Troubleshooting Neighbour Relationships**
这里重要的是掌握到仅在两台或更多路由器之间简单地开启EIGRP并不保证能建立邻居关系。而是除了在那些确切参数匹配外一些其它因素亦会造成EIGRP邻居关系建立的失败。以下任何问题都将导致EIGRP邻居关系的无法建立
这里重要的是掌握到仅在两台或更多路由器之间简单地开启 EIGRP ,并不保证能建立邻居关系。而是除了在那些确切参数匹配外,一些其它因素亦会造成 EIGRP 邻居关系建立的失败。以下任何问题,都将导致 EIGRP 邻居关系的无法建立:
- 这些邻居路由器不在同一个子网中The neighbour routers are not on a common subnet
- 不匹配的主从子网Mismatched primary and secondary subnets
- K值不匹配Mismatched K values
- 不匹配的自治系统编号, Mismatched ASN
- 有访问控制列表将EIGRP数据包过滤掉了Access control lists are filtering EIGRP packets
- 有访问控制列表,将 EIGRP 数据包过滤掉了Access control lists are filtering EIGRP packets
- 存在物理层故障Physical Layer issues
- 存在数据链路层故障Data Link Layer issues
- 认证参数不匹配, Mismatched authentication parameters
非同一子网问题是在尝试建立EIGRP邻居关系时所遇到的最常见故障之一。而在因为子网不一致造成EIGRP无法建立邻居关系时将有下面的消息在控制台上打印出来或是被路由器、交换机所记录Uncommon subnet issues are one of the most common problems experienced when attempting to establish EIGRP neighbour relationships. When EIGRP cannot establish a neighbour relationship because of an uncommon subnet, the following error message will be printed on the console, or will be logged by the router or switch
非同一子网问题,是在尝试建立 EIGRP 邻居关系时,所遇到的最常见故障之一。而在因为子网不一致造成 EIGRP 无法建立邻居关系时将有下面的消息在控制台上打印出来或是被路由器、交换机所记录Uncommon subnet issues are one of the most common problems experienced when attempting to establish EIGRP neighbour relationships. When EIGRP cannot establish a neighbour relationship because of an uncommon subnet, the following error message will be printed on the console, or will be logged by the router or switch
```console
*Mar 2 22:12:46.589 CST: IP-EIGRP(Default-IP-Routing-Table:1): Neighbor 150.1.1.2 not on common subnet for FastEthernet0/0
*Mar 2 22:12:50.977 CST: IP-EIGRP(Default-IP-Routing-Table:1): Neighbor 150.1.1.2 not on common subnet for FastEthernet0/0
```
而造成邻居路由器位处不同子网的最常见原因,就是配置不当了。这可能是**意外地将邻居路由器接口配置在了两个不同的子网上**了。而**假如两台邻居路由器是经由VLAN连接的则有可能是因为多播数据包在VLANs之间泄露了**从而导致此种故障。对于这种故障要排除之首先就要对设备上的接口配置进行检查。而随后的其它排除步骤则是诸如执行VLAN的故障排除在适用的情况下以对隔离出故障并加以解决。
而造成邻居路由器位处不同子网的最常见原因,就是配置不当了。这可能是**意外地将邻居路由器接口配置在了两个不同的子网上**了。而**假如两台邻居路由器是经由 VLAN 连接的,则有可能是因为多播数据包在 VLANs 之间泄露了**,从而导致此种故障。对于这种故障,要排除之,首先就要对设备上的接口配置进行检查。而随后的其它排除步骤,则是诸如执行 VLAN 的故障排除(在适用的情况下),以对隔离出故障并加以解决。
导致报出上面错误消息的另一常见原因,就是**在尝试建立EIGRP邻居关系时采用的是接口的从地址**(secondary addresses)。解决此类故障的最简单方式同样是对路由器或交换机的配置进行检查。比如假定上面的错误消息是在本地路由器控制台上打印出来的那么故障排除的第一步就是检查配置在接口上的IP地址如下所示
导致报出上面错误消息的另一常见原因,就是**在尝试建立 EIGRP 邻居关系时,采用的是接口的从地址**(secondary addresses)。解决此类故障的最简单方式,同样是对路由器或交换机的配置进行检查。比如,假定上面的错误消息是在本地路由器控制台上打印出来的,那么故障排除的第一步,就是检查配置在接口上的 IP 地址,如下所示:
```console
R1#show running-config interface FastEthernet0/0
@ -79,7 +79,7 @@ speed auto
end
```
接着就要验证到有着IP地址`150.1.1.2`的设备上的配置是一致的,如下所示:
接着,就要验证到有着 IP 地址`150.1.1.2`的设备上的配置是一致的,如下所示:
```console
R2#show running-config interface FastEthernet0/0
@ -94,7 +94,7 @@ speed auto
end
```
从上面的输出可以看到路由器R1上的主要子网the primary subnet却是本地路由器R2上的第二子网the secondary subnet。在使用从地址时EIGRP是无法建立邻居关系的。该故障的解决方法就是简单地将路由器R2的`Fastethernet0/0`接口的IP分址配置the IP addressing configuration予以更正即可如下所示
从上面的输出可以看到,路由器 R1 上的主要子网the primary subnet却是本地路由器 R2 上的第二子网the secondary subnet。在使用从地址时 EIGRP 是无法建立邻居关系的。该故障的解决方法,就是简单地将路由器 R2 的`Fastethernet0/0`接口的 IP 分址配置the IP addressing configuration予以更正即可如下所示
```console
R2#config terminal
@ -107,7 +107,7 @@ R2(config-if)#end
*Oct 20 03:10:27.185 CST: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 150.2.2.1 (FastEthernet0/0) is up: new adjacency
```
而EIGRP的那些K值则是用于给路径的不同方面比如带宽、延迟等可能包含在EIGRP复合度量值中的参数进行权重分配的。这里再度说明一下默认的K值为`K1=K3=1`及`K2=K4=K5=0`。如在某台路由器或交换机上对这些K值进行了修改那么就必须对自治系统中所有其它路由器或交换机上的K值做同样修改。使用`show ip protocols`命令就可查看到默认EIGRP的那些K值如下所示
EIGRP 的那些 K 值,则是用于给路径的不同方面,比如带宽、延迟等可能包含在 EIGRP 复合度量值中的参数,进行权重分配的。这里再度说明一下,默认的 K 值为:`K1=K3=1`及`K2=K4=K5=0`。如在某台路由器或交换机上对这些 K 值进行了修改,那么就必须对自治系统中所有其它路由器或交换机上的 K 值做同样修改。使用`show ip protocols`命令,就可查看到默认 EIGRP 的那些 K 值,如下所示:
```console
R1#show ip protocols
@ -134,18 +134,18 @@ Routing Protocol is “eigrp 150”
Distance: internal 90 external 170
```
在某台路由器上的K值被重置后那么该本地路由器的所有邻居关系都将被重置。而如果在重置后所有路由器上的这些K值出现不一致那么控制台上将打印出下面的错误消息同时EIGRP邻居关系将不会建立
在某台路由器上的 K 值被重置后,那么该本地路由器的所有邻居关系都将被重置。而如果在重置后所有路由器上的这些 K 值出现不一致,那么控制台上将打印出下面的错误消息,同时 EIGRP 邻居关系将不会建立:
```console
*Oct 20 03:19:14.140 CST: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 150.2.2.1 (FastEthernet0/0) is down: Interface Goodbye received
*Oct 20 03:19:18.732 CST: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 150.2.2.1 (FastEthernet0/0) is down: K-value mismatched
```
> **注意:** 尽管可使用`metric-weights`命令对EIGRP的那些K值进行调整但在没有老练网络工程师或思科技术支持中心的协助下是不推荐的。
> **注意:** 尽管可使用`metric-weights`命令对 EIGRP 的那些 K 值进行调整,但在没有老练网络工程师或思科技术支持中心的协助下,是不推荐的。
与OSPF使用到**本地意义上的进程ID**不同, 在与其它路由器建立邻居关系时EIGRP要求同样的自治系统编号除开其它变量之外。对此方面故障的排除是通过对设备配置进行比较并确保那些将要建立邻居关系的路由器之间的自治系统编号除开其它变量一致即可。作为邻居处于不同自治系统的一个良好指标就是即使路由器之间有着基本的IP连通性的情况下仍然缺少双向Hello数据包。这一点可通过使用`show ip eigrp traffic`命令予以验证该命令的输出在接下来的小节中有演示unlike OSPF, which uses **a locally significant process ID**, EIGRP requires the same ASN(among other variables) when establishing neighbour relationships with other routers. Troubleshoot such issues by comparing configurations of devices and ensuring that the ASN(among other variables) is consistent between routers that should establish neighbour relationships. A good indicator that neighbours are in a different AS would be a lack of bidirectional Hellos, even in the presence of basic IP connectivity between the routers. This can be validated using the `show ip eigrp traffic` command, the output of which is illustrated in the section that follows
OSPF 使用到**本地意义上的进程ID**不同, 在与其它路由器建立邻居关系时, EIGRP 要求同样的自治系统编号(除开其它变量之外)。对此方面故障的排除,是通过对设备配置进行比较,并确保那些将要建立邻居关系的路由器之间的自治系统编号(除开其它变量)一致即可。作为邻居处于不同自治系统的一个良好指标,就是即使路由器之间有着基本的 IP 连通性的情况下,仍然缺少双向 Hello 数据包。这一点可通过使用`show ip eigrp traffic`命令予以验证该命令的输出在接下来的小节中有演示unlike OSPF, which uses **a locally significant process ID**, EIGRP requires the same ASN(among other variables) when establishing neighbour relationships with other routers. Troubleshoot such issues by comparing configurations of devices and ensuring that the ASN(among other variables) is consistent between routers that should establish neighbour relationships. A good indicator that neighbours are in a different AS would be a lack of bidirectional Hellos, even in the presence of basic IP connectivity between the routers. This can be validated using the `show ip eigrp traffic` command, the output of which is illustrated in the section that follows
**配置不当的访问控制清单ACLs与其它过滤器filters同样也是造成路由器建立EIGRP邻居关系失败的常见原因**。这时就要对路由器配置和其它中间设备进行检查以确保EIGRP或多播数据包未被过滤掉。要用到的一个非常有用的故障排除命令就是`show ip eigrp traffic`了。此命令提供了所有EIGRP数据包的统计信息。比如假设这里已经对基本的连通性能`ping`通及两台设备之间的配置进行了验证但EIGRP邻居关系仍然没有建立。那么在此情况下就可以在本地设备上开启调试enabling debugging on the local device之前使用该命令检查看看路由器是否有Hello数据包的交换如下所示
**配置不当的访问控制清单( ACLs )与其它过滤器( filters )同样也是造成路由器建立 EIGRP 邻居关系失败的常见原因**。这时就要对路由器配置和其它中间设备进行检查,以确保 EIGRP 或多播数据包未被过滤掉。要用到的一个非常有用的故障排除命令,就是`show ip eigrp traffic`了。此命令提供了所有 EIGRP 数据包的统计信息。比如假设这里已经对基本的连通性(能`ping`通)及两台设备之间的配置进行了验证,但 EIGRP 邻居关系仍然没有建立。那么在此情况下就可以在本地设备上开启调试enabling debugging on the local device之前使用该命令检查看看路由器是否有 Hello 数据包的交换,如下所示:
```console
R2#show ip eigrp traffic
@ -163,7 +163,7 @@ IP-EIGRP Traffic Statistics for AS 2
Eigrp input queue: 0/2000/0/0 (current/max/highest/drops)
```
在上面的输出中注意虽然该本地路由器已发出144个Hello数据包, 但其尚未收到任何的Hello数据包。假设已验证了两台设备之间有着连通性及各自配置那么就应对本地路由器与中间设备在适用时上的访问控制清单配置进行检查以确保EIGRP或多播数据包未被过滤掉。比如可能发现有着一条ACL配置为拒绝所有D类与E类流量而放行所有其它流量譬如下面的ACL
在上面的输出中,注意虽然该本地路由器已发出 144 Hello 数据包, 但其尚未收到任何的 Hello 数据包。假设已验证了两台设备之间有着连通性及各自配置,那么就应对本地路由器与中间设备(在适用时)上的访问控制清单配置进行检查,以确保 EIGRP 或多播数据包未被过滤掉。比如,可能发现有着一条 ACL 配置为拒绝所有 D 类与 E 类流量,而放行所有其它流量,譬如下面的 ACL
```console
R2#show ip access-lists
@ -175,7 +175,7 @@ Extended IP access list 100
物理及数据链路层的故障,以及这些故障对路由协议及其它流量造成影响的方式,已在早先的课程模块中有所说明。对这些故障的排除,可以使用`show interfaces`、`show interfaces counters`、`show vlan`及`show spanning-tree`等命令,以及其它一些在前面课程模块([物理及数据链路层故障排除](d15-Layer_1-and-Layer_2-Troubleshooting.html))中讲到的命令。这里为了避免重复,就不再重申那些物理及数据链路层故障排除步骤了。
最后一些常见的认证配置错误包括在配置密钥链时使用了不同密钥ID以及指定了不同或不匹配的口令等Finally, common authentication configuration mistakes include using different key IDs when configuring key chains and specifying different or mismatched password。在某个接口下开启了认证时EIGRP邻居关系将被重置并被重新初始化。如在部署认证之后原本已建立的邻居关系未能再度建立那么就要通过在路由器上观察运行配置或使用`show key chain`及`show ip eigrp interfaces detail [name]`命令,来对各项认证参数进行检查。下面是由`show key chain`命令所打印出来的示例输出:
最后,一些常见的认证配置错误,包括在配置密钥链时使用了不同密钥 ID 以及指定了不同或不匹配的口令等Finally, common authentication configuration mistakes include using different key IDs when configuring key chains and specifying different or mismatched password。在某个接口下开启了认证时 EIGRP 邻居关系将被重置并被重新初始化。如在部署认证之后,原本已建立的邻居关系未能再度建立,那么就要通过在路由器上观察运行配置,或使用`show key chain`及`show ip eigrp interfaces detail [name]`命令,来对各项认证参数进行检查。下面是由`show key chain`命令所打印出来的示例输出:
```console
R2#show key chain
@ -210,22 +210,22 @@ Se0/0 0 0/0 0 0/1 0 0
Use unicast
```
通常在进行故障排除时都是建议在思科IOS软件中使用`show`命令(`show` commands而不是`debug`命令(`debug` commands。虽然调试提供到实时信息但调试是非常耗费处理器资源的从而造成设备的高CPU使用率同时在某些情况下甚至造成设备设备崩溃。除了这些`show`命令之外,还应对软件所打印出的错误消息加以留意,因为这些消息提供了可用于故障排除及隔离出问题根源的有用信息。
通常在进行故障排除时,都是建议在思科 IOS 软件中使用`show`命令(`show` commands而不是`debug`命令(`debug` commands。虽然调试提供到实时信息但调试是非常耗费处理器资源的从而造成设备的高 CPU 使用率,同时在某些情况下,甚至造成设备设备崩溃。除了这些`show`命令之外,还应对软件所打印出的错误消息加以留意,因为这些消息提供了可用于故障排除及隔离出问题根源的有用信息。
## 路由安装的故障排除
**Troubleshooting Route Installation**
在一些故障实例中可能会注意到EIGRP未有将某些路由安装到路由表中。造成此类问题的主要原因就是某些与协议失败相对应的错误配置For the most part, this is typically due to some misconfigurations versus a protocol failure。路由安装失败的一些常见原因如下
在一些故障实例中,可能会注意到 EIGRP 未有将某些路由安装到路由表中。造成此类问题的主要原因就是某些与协议失败相对应的错误配置For the most part, this is typically due to some misconfigurations versus a protocol failure。路由安装失败的一些常见原因如下
- 经由另一协议收到了有着更低管理距离的相同路由The same route is received via another protocol with a lower administrative distance
- EIGRP汇总EIGRP summarisation
- EIGRP域中出现了重复的路由器IDDuplicate router IDs are present within the EIGRP domain
- EIGRP域中出现了重复的路由器 ID Duplicate router IDs are present within the EIGRP domain
- 这些路由未能满足可行条件The routes do not meet the Feasibility Condition
管理距离这一概念被用于确定出路由源的可靠性The administrative distance(AD) concept is used to determine how reliable the route source is。较低的管理距离就意味着路由源更为可靠。假如从三种不同协议接收到同一条路由那么有着最低管理距离的那条路由将被安装到路由表中。在使用EIGRP时要记住对于汇总、内部及外部三种路由summary, internal, and external routesEIGRP分别使用了不同的管理距离值。而假如同时运行着多种路由协议这时就要确保对各种路由协议的管理距离数值以及它们对路由表的生成有何种影响有所掌握。这在进行多种路由协议之间路由重分发时尤其要加以关注If you are running multiple routing protocols, it is important to ensure that you understand AD values and how they impact routing table population. This is especially of concern when you are Redistributing routes between multiple routing protocols
管理距离这一概念被用于确定出路由源的可靠性The administrative distance(AD) concept is used to determine how reliable the route source is。较低的管理距离就意味着路由源更为可靠。假如从三种不同协议接收到同一条路由那么有着最低管理距离的那条路由将被安装到路由表中。在使用 EIGRP 要记住对于汇总、内部及外部三种路由summary, internal, and external routes EIGRP 分别使用了不同的管理距离值。而假如同时运行着多种路由协议这时就要确保对各种路由协议的管理距离数值以及它们对路由表的生成有何种影响有所掌握。这在进行多种路由协议之间路由重分发时尤其要加以关注If you are running multiple routing protocols, it is important to ensure that you understand AD values and how they impact routing table population. This is especially of concern when you are Redistributing routes between multiple routing protocols
默认情况下EIGRP在有类边界上进行自动汇总并创建出一条指向`Null0`接口的汇总路由。由于该汇总是以默认的管理距离数值`5`安装到路由表中的因此所有其它类似的动态接收到的路由就都不会被安装到路由表中了By default, EIGRP automatically summarises at classful boundaries and creates a summary route pointing to the `Null0` interface. Because the summary is installed with a default AD value of `5`, any other similar dynamically received routes will not be installed into the routing table。比如考虑下图37.1中所演示的拓扑:
默认情况下, EIGRP 在有类边界上进行自动汇总,并创建出一条指向`Null0`接口的汇总路由。由于该汇总是以默认的管理距离数值`5`安装到路由表中的因此所有其它类似的动态接收到的路由就都不会被安装到路由表中了By default, EIGRP automatically summarises at classful boundaries and creates a summary route pointing to the `Null0` interface. Because the summary is installed with a default AD value of `5`, any other similar dynamically received routes will not be installed into the routing table。比如考虑下图37.1中所演示的拓扑:
![EIGRP的自动汇总](images/3701.png)
*图 37.1 -- EIGRP的自动汇总*
@ -247,9 +247,9 @@ R2#
*Mar 13 03:24:33.999: DUAL: RT installed 10.0.0.0/8 via 0.0.0.0
```
在上面的调试输出中,本地路由器从邻居`150.1.1.1`处接收到了有着路由度量值`156160/128256`的`10.0.0.0/8`路由。但由于汇总操作,弥散更新算法本地也有着该相同路由,且该本地路由有着`128256/0`的路由度量值。因此安装到路由表中的是本地路由而不是接收到的因为本地路由有着更好的度量值。此情形在路由器R1上同样适用R1将会把它本地的`10.0.0.0/8`路由安装到RIBRoute Information Base, 路由信息库)中。结果就是两台路由器都无法`ping`到对方的`10.x.x.x`子网。为解决此问题,就应在两台路由器上都使用`no auto-summary`命令,关闭自动汇总,从而允许这些具体路由条目得以通告出去。
在上面的调试输出中,本地路由器从邻居`150.1.1.1`处接收到了有着路由度量值`156160/128256`的`10.0.0.0/8`路由。但由于汇总操作,弥散更新算法本地也有着该相同路由,且该本地路由有着`128256/0`的路由度量值。因此安装到路由表中的是本地路由,而不是接收到的,因为本地路由有着更好的度量值。此情形在路由器 R1 上同样适用, R1 将会把它本地的`10.0.0.0/8`路由安装到 RIB Route Information Base, 路由信息库)中。结果就是两台路由器都无法`ping`到对方的`10.x.x.x`子网。为解决此问题,就应在两台路由器上都使用`no auto-summary`命令,关闭自动汇总,从而允许这些具体路由条目得以通告出去。
EIGRP路由器IDRID的主要用途就是阻止路由环回的形成。RID用于识别外部路由的始发路由器The RID is used to identify the originating router for external routes。假如接收到一条有着与本地路由器相同RID的外部路由该路由将被丢弃。不过重复的路由器ID却并不会影响到任何内部EIGRP路由。设计此特性的目的就是降低那些有着多台自治系统边界路由器AS Boundary Router, ASBR进行路由重分发的网络出现路由环回的可能性。在`show ip eigrp topology`命令的输出中便可查看到始发路由器IDThe primary use of the EIGRP router ID(RID) is to prevent routing loops. The RID is used to identify the originating router for external routes. If an external route is received with the same RID as the local router, the route will be discarded. However, duplicate RIDs do not affect any internal EIGRP routes. This feature is designed to reduce the possibility of routing loops in networks where route redistribution is being performed on more than on ASBR. The originating RID can be viewed in the output of the `show ip eigrp topology` command如下所示
EIGRP路由器 ID RID )的主要用途,就是阻止路由环回的形成。 RID 用于识别外部路由的始发路由器The RID is used to identify the originating router for external routes。假如接收到一条有着与本地路由器相同 RID 的外部路由,该路由将被丢弃。不过重复的路由器 ID ,却并不会影响到任何内部 EIGRP 路由。设计此特性的目的就是降低那些有着多台自治系统边界路由器AS Boundary Router, ASBR进行路由重分发的网络出现路由环回的可能性。在`show ip eigrp topology`命令的输出中,便可查看到始发路由器 ID The primary use of the EIGRP router ID(RID) is to prevent routing loops. The RID is used to identify the originating router for external routes. If an external route is received with the same RID as the local router, the route will be discarded. However, duplicate RIDs do not affect any internal EIGRP routes. This feature is designed to reduce the possibility of routing loops in networks where route redistribution is being performed on more than on ASBR. The originating RID can be viewed in the output of the `show ip eigrp topology` command如下所示
```console
R1#show ip eigrp topology 2.2.2.2 255.255.255.255
@ -272,7 +272,7 @@ IP-EIGRP (AS 1): Topology entry for 2.2.2.2/32
Administrator tag is 0 (0x00000000)
```
如怀疑存在潜在的RID重复故障就可以对EIGRP事件日志中的事件进行检查看看是否有任何路由因为RID重复而被拒绝。下面的示例演示了该EIGRP事件日志的输出样例显示出一些因为从某台与本地路由器有着相同RID的路由器接收而被弹回的路由If you suspect a potential duplicate RID issue, you can check the events in the EIGRP event log to see if any routes have been rejected because of a duplicate RID. The following illustrates a sample output of the EIGRP event log, showing routes that have been rejected because they were received from a router with the same RID as the local router:
如怀疑存在潜在的 RID 重复故障,就可以对 EIGRP 事件日志中的事件进行检查,看看是否有任何路由因为 RID 重复而被拒绝。下面的示例演示了该 EIGRP 事件日志的输出样例,显示出一些因为从某台与本地路由器有着相同 RID 的路由器接收而被弹回的路由If you suspect a potential duplicate RID issue, you can check the events in the EIGRP event log to see if any routes have been rejected because of a duplicate RID. The following illustrates a sample output of the EIGRP event log, showing routes that have been rejected because they were received from a router with the same RID as the local router:
```console
R2#show ip eigrp events
@ -291,9 +291,9 @@ Event information for AS 1:
[Truncated Output]
```
上述问题的可能解决办法,就是修改邻居路由器`10.0.0.1`上的RID或本地路由器的RID这取决于到底哪一个是不被正确配置的The resolution for the solution above would be to change the RID on neighbour router `10.0.0.1` or on the local router, depending upon which one of the two has been incorrectly configured
上述问题的可能解决办法,就是修改邻居路由器`10.0.0.1`上的 RID ,或本地路由器的 RID 这取决于到底哪一个是不被正确配置的The resolution for the solution above would be to change the RID on neighbour router `10.0.0.1` or on the local router, depending upon which one of the two has been incorrectly configured
最后重要的是记住EIGRP不会将那些未能满足可行条件的路由安装到路由表中。就算在本地路由器上配置了`variance`命令,这一点也是适用的。作为一个常见误解,就是执行`variance`命令就会令到EIGRP在那些路由度量值为后继路由度量值`x`倍的路径上进行负载分配了Finally, it is important to remember that EIGRP will not install routes into the routing table if they do not meet the Feasibility Condition. This is true even if the `variance` command has been configured on the local router. It is a common misconception that issuing the `variance` command will allow EIGRP to load share over any paths whose route metric is `x` times that of the successor metric。比如请考虑下图37.2中所演示的拓扑:
最后,重要的是记住 EIGRP 不会将那些未能满足可行条件的路由,安装到路由表中。就算在本地路由器上配置了`variance`命令,这一点也是适用的。作为一个常见误解,就是执行`variance`命令,就会令到 EIGRP 在那些路由度量值为后继路由度量值`x`倍的路径上进行负载分配了Finally, it is important to remember that EIGRP will not install routes into the routing table if they do not meet the Feasibility Condition. This is true even if the `variance` command has been configured on the local router. It is a common misconception that issuing the `variance` command will allow EIGRP to load share over any paths whose route metric is `x` times that of the successor metric。比如请考虑下图37.2中所演示的拓扑:
![掌握可行条件](images/3702.png)
*图 37.2 -- 掌握可行条件*
@ -308,39 +308,39 @@ Event information for AS 1:
| `R1`-`R3`-`R5` | `R3` | 10 | 30 |
| `R1`-`R4`-`R5` | `R4` | 15 | 25 |
`R1`已被配置为在所有路径上进行负载均衡,同时命令`variance 2`被加入到路由器配置。这就令到EIGRP在至多两倍于后继路由度量值的路径上进行负载均衡给予默认的度量值计算这将包含到所有三条的路径。但尽管有着此配置仍只有两条路径将被安装及使用`R1` has been configured to load share across all paths and the `variance 2` command is added to the router configuration. This allow EIGRP to load share across paths with up to twice the metric of the Successor route, which would include all three paths based on the default metric calculation. However, despite this configuration, only two paths will be installed and used
`R1`已被配置为在所有路径上进行负载均衡,同时命令`variance 2`被加入到路由器配置。这就令到 EIGRP 在至多两倍于后继路由度量值的路径上进行负载均衡,给予默认的度量值计算,这将包含到所有三条的路径。但尽管有着此配置,仍只有两条路径将被安装及使用(`R1` has been configured to load share across all paths and the `variance 2` command is added to the router configuration. This allow EIGRP to load share across paths with up to twice the metric of the Successor route, which would include all three paths based on the default metric calculation. However, despite this configuration, only two paths will be installed and used
首先,基于经由`R4`的路径的可行距离,也就是`25`, `R1`将选择该路由作为后继路由。该路由将被放入到IP路由表以及EIGRP的拓扑表中。而邻居`R3`到`192.168.100.0/24`网络的度量值,也被称作报告的距离或通告的距离,是`10`。该度量值低于可行距离因此该路由是满足可行条件的而被放入到EIGRP的拓扑表。
首先,基于经由`R4`的路径的可行距离,也就是`25`, `R1`将选择该路由作为后继路由。该路由将被放入到 IP 路由表以及 EIGRP 的拓扑表中。而邻居`R3`到`192.168.100.0/24`网络的度量值,也被称作报告的距离或通告的距离,是`10`。该度量值低于可行距离,因此该路由是满足可行条件的,而被放入到 EIGRP 的拓扑表。
但邻居`R2`到`192.168.100.0/24`网络的度量值却是`30`。该值要比可行距离`25`要高。那么该路由就不满足可行条件而不被当作是一条可行后继。但该路由仍将被放入到EIGRP的拓扑表。不过就算该路径的度量值是处于由EIGRP路由器配置命令`variance 2`所指定的范围中,其也不会被用于负载分配。在这类情形中,可考虑使用**EIGRP的偏移清单**来确保所有路由都被加以考虑In such situations, consider using **EIGRP offset lists** to ensure that all routes are considered
但邻居`R2`到`192.168.100.0/24`网络的度量值却是`30`。该值要比可行距离`25`要高。那么该路由就不满足可行条件,而不被当作是一条可行后继。但该路由仍将被放入到 EIGRP 的拓扑表。不过就算该路径的度量值是处于由 EIGRP 路由器配置命令`variance 2`所指定的范围中,其也不会被用于负载分配。在这类情形中,可考虑使用**EIGRP的偏移清单**来确保所有路由都被加以考虑In such situations, consider using **EIGRP offset lists** to ensure that all routes are considered
## 路由通告的故障排除
**Troubleshooting Route Advertisement**
总是会出现看起来EIGRP要么没有对其配置的那些进行通告的网络加以通告要么通告出其未配置为进行通告的那些网络的情形。对于这些大部分情况来说此类故障都是由于路由器或交换机的不当配置造成的。而至于EIGRP没有对其已配置为加以通告的某个网络进行通告的原因有好几种。一些原因如下所示There are times when it may seem that EIGRP is either not advertising the networks that is has been configured to advertise or is advertising networks that it has not been configured to advertise. For the most part, such issues are typically due to router and switch misconfigurations. Thare are several reasons why EIGRP might not advertise a network that it has been configured to advertise. Some of these reasons include the following
总是会出现看起来 EIGRP 要么没有对其配置的那些进行通告的网络加以通告,要么通告出其未配置为进行通告的那些网络的情形。对于这些大部分情况来说,此类故障都是由于路由器或交换机的不当配置造成的。而至于 EIGRP 没有对其已配置为加以通告的某个网络进行通告的原因有好几种。一些原因如下所示There are times when it may seem that EIGRP is either not advertising the networks that is has been configured to advertise or is advertising networks that it has not been configured to advertise. For the most part, such issues are typically due to router and switch misconfigurations. Thare are several reasons why EIGRP might not advertise a network that it has been configured to advertise. Some of these reasons include the following
- 投送清单Distribute lists, 这是超出CCNA大纲要求的
- 投送清单Distribute lists, 这是超出 CCNA 大纲要求的)
- 水平分割Split horizon
- 汇总Summarisation
- 汇总( Summarisation
未正确配置的投送清单是EIGRP没有对某个已被配置为加以通告的网络进行通告的一个原因。在配置同送清单时要确保所有应被通告的网络都是为所引用的**IP访问控制清单**或**IP前缀清单放行**的Incorrectly configured distribute lists are one reason why EIGRP might not advertise a network that it has been configured to advertise. When configuring distribute lists, ensure that all networks that should be advertised are permitted by the referenced **IP ACL** or **IP Prefix List**)。
未正确配置的投送清单,是 EIGRP 没有对某个已被配置为加以通告的网络进行通告的一个原因。在配置同送清单时,要确保所有应被通告的网络,都是为所引用的**IP访问控制清单**或**IP前缀清单放行**的Incorrectly configured distribute lists are one reason why EIGRP might not advertise a network that it has been configured to advertise. When configuring distribute lists, ensure that all networks that should be advertised are permitted by the referenced **IP ACL** or **IP Prefix List**)。
另一个采用EIGRP时与网络通告有关的常见故障就是水平分割的默认行为了。水平分割是一项强制路由信息无法从其被接收到的接口再发送出去的一项距离矢量协议特性。此特性阻止了路由信息再度通告到学习到该信息的来源从而有效地阻止了路由环回Another common issue pertaining to network advertisement when using EIGRP is the default behaviour of split horizon. Split horizon is a Distance Vector protocol feature that mandates that routing information cannot be sent back out of the same interface through which it was received. This prevents the re-advertising of information back to the source from which it was learned, effectively preventing routing loops。此概念在下图37.3中进行了演示:
另一个采用 EIGRP 时与网络通告有关的常见故障就是水平分割的默认行为了。水平分割是一项强制路由信息无法从其被接收到的接口再发送出去的一项距离矢量协议特性。此特性阻止了路由信息再度通告到学习到该信息的来源从而有效地阻止了路由环回Another common issue pertaining to network advertisement when using EIGRP is the default behaviour of split horizon. Split horizon is a Distance Vector protocol feature that mandates that routing information cannot be sent back out of the same interface through which it was received. This prevents the re-advertising of information back to the source from which it was learned, effectively preventing routing loops。此概念在下图37.3中进行了演示:
![EIGRP的水平分割](images/3703.png)
*图37.3 -- EIGRP的水平分割*
图37.3中的拓扑演示了**一个经典的中心与分支网络**,其中路由器`HQ`作为**中心路由器**,而路由器`S1`与`S2`作为两台**分支路由器**。在该帧中继的WAN上每台分支路由器都有着**局部网状网络**中、单独的在各自自身与中心路由器之间所提供的DLCI。默认情况下对于连接到**包交换网络**比如这里的帧中继的WAN接口EIGRP的水平分割是开启的。这就意味着该中心路由器将不会对接口`Serial0/0`上学习到的路由信息再在该相同接口上通告出去The topology in Figure 37.3 illustrates **a classic hub-and-spoke network**, with router `HQ` as **the hub router** and routers `S1` and `S2` as **the two spoke routers**. On the Frame Relay WAN, each spoke router has a single DLCI provisioned between itself and the `HQ` router in **a partial-mesh topology**. By default, EIGRP split horizon is enabled for WAN interfaces connected to **packet-switched networks**, such as Frame Relay. This means that the `HQ` router will not advertise routing information learned on `Serial0/0` out of the same interface
图37.3中的拓扑演示了**一个经典的中心与分支网络**,其中路由器`HQ`作为**中心路由器**,而路由器`S1`与`S2`作为两台**分支路由器**。在该帧中继的 WAN 上,每台分支路由器都有着**局部网状网络**中、单独的在各自自身与中心路由器之间所提供的 DLCI 。默认情况下,对于连接到**包交换网络**,比如这里的帧中继的 WAN 接口, EIGRP 的水平分割是开启的。这就意味着该中心路由器将不会对接口`Serial0/0`上学习到的路由信息再在该相同接口上通告出去The topology in Figure 37.3 illustrates **a classic hub-and-spoke network**, with router `HQ` as **the hub router** and routers `S1` and `S2` as **the two spoke routers**. On the Frame Relay WAN, each spoke router has a single DLCI provisioned between itself and the `HQ` router in **a partial-mesh topology**. By default, EIGRP split horizon is enabled for WAN interfaces connected to **packet-switched networks**, such as Frame Relay. This means that the `HQ` router will not advertise routing information learned on `Serial0/0` out of the same interface
该默认行为的影响,就是中心路由器不会将自`S1`接收到的`10.1.1.0/24`前缀通告给`S2`, 因为该路由是通过`Serial0/0`接口接收到,而水平分割特性阻止了该路由器对在那个接口上所学习到的信息从该相同接口通告出去。同样的情形对于中心路由器从`S2`上所接收到的`10.2.2.0/24`前缀也是适用的。此问题的推荐解决办法就是在中心路由器的该WAN接口上使用接口配置命令`no ip split-horizon eigrp [asn]`关闭水平分割特性了。
该默认行为的影响,就是中心路由器不会将自`S1`接收到的`10.1.1.0/24`前缀通告给`S2`, 因为该路由是通过`Serial0/0`接口接收到,而水平分割特性阻止了该路由器对在那个接口上所学习到的信息从该相同接口通告出去。同样的情形对于中心路由器从`S2`上所接收到的`10.2.2.0/24`前缀也是适用的。此问题的推荐解决办法,就是在中心路由器的该 WAN 接口上,使用接口配置命令`no ip split-horizon eigrp [asn]`关闭水平分割特性了。
而对于EIGRP来说自动汇总则是在**有类边界**the classful boundary上默认是开启的。这一点可使用`show ip protocols`命令予以验证到。除开自动汇总EIGRP还支持接口级别的手动汇总。不管采用何种方式汇总都将阻止由汇总路由所涵盖到的那些更具体路由条目被通告给邻居路由器Regardless of the method implemented, summarisation prevents the more specific route entries that are encompassed by the summary from being advertised to neighbour routers。如果汇总是被不当配置的那就可能出现EIGRP没有通告出某些网络的情况。比如请考虑下图37.4中所演示的基本网络拓扑:
而对于 EIGRP 来说,自动汇总则是在**有类边界**the classful boundary上默认是开启的。这一点可使用`show ip protocols`命令予以验证到。除开自动汇总, EIGRP 还支持接口级别的手动汇总。不管采用何种方式汇总都将阻止由汇总路由所涵盖到的那些更具体路由条目被通告给邻居路由器Regardless of the method implemented, summarisation prevents the more specific route entries that are encompassed by the summary from being advertised to neighbour routers。如果汇总是被不当配置的那就可能出现 EIGRP 没有通告出某些网络的情况。比如请考虑下图37.4中所演示的基本网络拓扑:
![EIGRP的汇总](images/3704.png)
*图37.4 -- EIGRP的汇总*
参考图37.4, 所有路由器都位于EIGRP自治系统`150`中。`R2`正经由EIGRP对`10.1.1.0/24`、`10.1.2.0/24`与`10.1.3.0/24`子网进行通告。而`R1`也有着一个分配给子网`10.1.0.0/24`的接口,其就应相应地将这些子网通告给`R3``R1`, which also has an interface assigned to the `10.1.0.0/24` subnet, should in turn advertise these subnets to `R3`)。路由器`R2`上的EIGRP配置已作如下部署
参考图37.4, 所有路由器都位于 EIGRP 自治系统`150`中。`R2`正经由 EIGRP 对`10.1.1.0/24`、`10.1.2.0/24`与`10.1.3.0/24`子网进行通告。而`R1`也有着一个分配给子网`10.1.0.0/24`的接口,其就应相应地将这些子网通告给`R3``R1`, which also has an interface assigned to the `10.1.0.0/24` subnet, should in turn advertise these subnets to `R3`)。路由器`R2`上的 EIGRP 配置已作如下部署:
```console
R2(config)#router eigrp 150
@ -352,7 +352,7 @@ R2(config-router)#no auto-summary
R2(config-router)#exit
```
而`R1`上的EIGRP则是部署如下
而`R1`上的 EIGRP 则是部署如下:
```console
R1(config)#router eigrp 150
@ -362,7 +362,7 @@ R1(config-router)#network 172.16.1.0 0.0.0.3
R1(config-router)#exit
```
最后,`R3`上的EIGRP配置部署如下
最后,`R3`上的 EIGRP 配置部署如下:
```console
R3(config)#router eigrp 150
@ -405,7 +405,7 @@ D 172.16.1.0 [90/2172416] via 172.16.0.1, 00:21:21, Serial0/0
D 10.0.0.0/8 [90/2297856] via 172.16.0.1, 00:01:15, Serial0/0
```
因为在`R1`上汇总是开启的就出现了EIGRP不再通告由**汇总路由**`10.0.0.0/8`所包含的那些具体子网的情况了Because summarisation is enabled on `R1`, it appears that the EIGRP is no longer advertising the specific subnets encompassed by the `10.0.0.0/8` **summary**。而要允许这些具体子网通过EIGRP得以通告就应在`R1`上将汇总关闭,如下所示:
因为在`R1`上汇总是开启的,就出现了 EIGRP 不再通告由**汇总路由**`10.0.0.0/8`所包含的那些具体子网的情况了Because summarisation is enabled on `R1`, it appears that the EIGRP is no longer advertising the specific subnets encompassed by the `10.0.0.0/8` **summary**)。而要允许这些具体子网通过 EIGRP 得以通告,就应在`R1`上将汇总关闭,如下所示:
```console
R1(config)#router eigrp 150
@ -441,9 +441,9 @@ D 10.1.0.0 [90/156160] via 172.16.1.1, 00:00:10, FastEthernet0/0
**Debugging EIGRP Routing Issues**
在前面这些小节中我们把主要强调的方面放在那些`show`命令上的同时此最后的小节将介绍一些还可以用于EIGRP故障排除的调试命令。不过还是要始终记住调试是甚为处理器密集而应作为随后手段加以应用的也就是在应用并尝试了所有`show`命令及其它故障排除方法和工具之后。While primary emphasis has been placed on the use of `show` commands in the previous sections, this final section descibes some of the debugging commands that can also be used to troubleshoot EIGRP. Keep in mind, however, that debugging is very processor intensive and should be used only as a last resort(i.e., after all `show` commands and other troubleshooting methods and tools have been applied or attempted))。
在前面这些小节中我们把主要强调的方面放在那些`show`命令上的同时,此最后的小节将介绍一些还可以用于 EIGRP 故障排除的调试命令。不过还是要始终记住,调试是甚为处理器密集,而应作为随后手段加以应用的(也就是在应用并尝试了所有`show`命令及其它故障排除方法和工具之后。While primary emphasis has been placed on the use of `show` commands in the previous sections, this final section descibes some of the debugging commands that can also be used to troubleshoot EIGRP. Keep in mind, however, that debugging is very processor intensive and should be used only as a last resort(i.e., after all `show` commands and other troubleshooting methods and tools have been applied or attempted))。
命令`debug ip routing [acl|static]`是一个强大的故障排除工具及命令a powerful troubleshooting tool and command。但需要注意到尽管此命令并非特定于EIGRP其提供到有关路由表的有用与详细信息。下面是由该命令所打印出的信息示例
命令`debug ip routing [acl|static]`是一个强大的故障排除工具及命令a powerful troubleshooting tool and command。但需要注意到尽管此命令并非特定于 EIGRP ,其提供到有关路由表的有用与详细信息。下面是由该命令所打印出的信息示例:
```console
R1#debug ip routing
@ -485,7 +485,7 @@ has_route: False
*Mar 3 23:03:49.119: RT: add 10.1.1.0/24 via 172.16.1.2, eigrp metric [90/156160]
```
可与某条访问控制清单结合使用此命令来查看有关在那个访问控制清单中所引用到某条路由或某几条路由的信息。此外同样的命令也可以用于本地设备上静态路由事件的调试。作为附注在运行EIGRP时作为使用此命令的替代请考虑使用`show ip eigrp events`命令而不是此命令,因为`show ip eigrp events`提供到EIGRP内部事件的历史记录且可用于对活动粘滞故障以及路由抖动及其它事件进行排除You can use this command in conjunction with an ACL to view information about the route or routes referenced in the ACL. Additionally, the same command can also be used for troubleshooting static route events on the local device. As a side note, instead of using this command, if you are running EIGRP, consider using the `show ip eigrp events` command instead, as it provides a history of EIGRP internal events and can be used to troubleshoot SIA issues, as well as route flaps and other events。下面是`show ip eigrp events`命令所打印信息的一个示例:
可与某条访问控制清单结合使用此命令,来查看有关在那个访问控制清单中所引用到某条路由或某几条路由的信息。此外,同样的命令也可以用于本地设备上静态路由事件的调试。作为附注,在运行 EIGRP 时,作为使用此命令的替代,请考虑使用`show ip eigrp events`命令而不是此命令,因为`show ip eigrp events`提供到 EIGRP 内部事件的历史记录且可用于对活动粘滞故障以及路由抖动及其它事件进行排除You can use this command in conjunction with an ACL to view information about the route or routes referenced in the ACL. Additionally, the same command can also be used for troubleshooting static route events on the local device. As a side note, instead of using this command, if you are running EIGRP, consider using the `show ip eigrp events` command instead, as it provides a history of EIGRP internal events and can be used to troubleshoot SIA issues, as well as route flaps and other events。下面是`show ip eigrp events`命令所打印信息的一个示例:
```console
R1#show ip eigrp events
@ -516,7 +516,7 @@ Event information for AS 150:
[Truncated Output]
```
除开`debug ip routing`命令思科IOS软件里还有额外可用的两个EIGRP专用调试命令。命令`debug eigrp`可用于提供到有关弥散更新算法的有限状态机、EIGRP邻居关系、非停止转发事件、数据包及传输事件等的相关实时信息In addition to the `debug ip routing` command, two additional EIGRP-specific debugging commands are also available in Cisco IOS software. The `debug eigrp` command can be used to provide real-time information on the DUAL Finite State Machine, EIGRP neighbour relationships, Non-Stop Forwarding events, packets, and transimission events。下面演示了此命令可用的参数
除开`debug ip routing`命令,思科 IOS 软件里还有额外可用的两个 EIGRP 专用调试命令。命令`debug eigrp`可用于提供到有关弥散更新算法的有限状态机、 EIGRP 邻居关系、非停止转发事件、数据包及传输事件等的相关实时信息In addition to the `debug ip routing` command, two additional EIGRP-specific debugging commands are also available in Cisco IOS software. The `debug eigrp` command can be used to provide real-time information on the DUAL Finite State Machine, EIGRP neighbour relationships, Non-Stop Forwarding events, packets, and transimission events。下面演示了此命令可用的参数
```console
R1#debug eigrp ?
@ -527,7 +527,7 @@ R1#debug eigrp ?
transmit EIGRP transmission events
```
在`debug eigrp`命令之外,命令`debug ip eigrp`打印出有关EIGRP路由事件的详细信息诸如EIGRP如何处理到来的更新等。下面演示了可与该命令结合使用的那些额外关键字
在`debug eigrp`命令之外,命令`debug ip eigrp`打印出有关 EIGRP 路由事件的详细信息,诸如 EIGRP 如何处理到来的更新等。下面演示了可与该命令结合使用的那些额外关键字:
```console
R1#debug ip eigrp ?
@ -571,7 +571,7 @@ packet
[Truncated Output]
```
## 第37天问题
## 第 37 天问题
**Day 37 Questions**
@ -587,7 +587,7 @@ packet
10. What is the best command to use when debugging various routing issues?
## 第37天答案
## 第 37 天答案
**Day 37 Answers**
@ -603,19 +603,19 @@ packet
10. The `debug ip routing` command.
## 第37天实验
## 第 37 天实验
**Day 37 Lab**
请重复前一天的EIGRP实验。此外对本节课中给出的那些EIGRP故障排除命令进行测试
请重复前一天的 EIGRP 实验。此外,对本节课中给出的那些 EIGRP 故障排除命令进行测试:
- 使用`show ip protocol`命令来查看那些EIGRP的参数See the EIGRP parameters using the `show ip protocol` command
- 对两台路由器上的K值进行修改并再次执行该命令Modify K values on both routers and issue the command again
- 注意各异的所配置K值导致了EIGRP邻居关系丢失Notice that different configured K values lead to EIGRP neighbour relationships being lost
- 通过执行`show ip eigrp traffic`命令验证所传输的Hello数据包Verify the Hello packets being transmitted by issuing the `show ip eigrp traffic` command
- 使用`show ip protocol`命令,来查看那些 EIGRP 的参数See the EIGRP parameters using the `show ip protocol` command
- 对两台路由器上的 K 值进行修改并再次执行该命令Modify K values on both routers and issue the command again
- 注意各异的所配置 K 值,导致了 EIGRP 邻居关系丢失Notice that different configured K values lead to EIGRP neighbour relationships being lost
- 通过执行`show ip eigrp traffic`命令,验证所传输的 Hello 数据包Verify the Hello packets being transmitted by issuing the `show ip eigrp traffic` command
- 对`debug eigrp fsm`命令进行测试
- 针对已通告的路由测试`show ip eigrp topology`命令并留意起源RID在远端路由器上修改RID并再次执行该命令Test the `show ip eigrp topology` command for the advertised route and notice the originating RID; change the RID on the remote router and issue the command again
- 针对已通告的路由测试`show ip eigrp topology`命令,并留意起源 RID ;在远端路由器上修改 RID 并再次执行该命令Test the `show ip eigrp topology` command for the advertised route and notice the originating RID; change the RID on the remote router and issue the command again
- 对`show ip eigrp events`命令加以验证Verify the `show ip eigrp events` command
- 在将网络通告进EIGRP之前启动IP路由调试留意所生成的调试更新消息Start the debug IP routing before advertising the network into EIGRP; notice the generated debug updates
- 在将网络通告进 EIGRP 之前,启动 IP 路由调试留意所生成的调试更新消息Start the debug IP routing before advertising the network into EIGRP; notice the generated debug updates
请访问[www.in60days.com](http://www.in60days.com)网站,免费观看作者完成此实验。

View File

@ -1,4 +1,4 @@
# 第38天 EIGRP对IPv6的支持
# 第 38 天 EIGRP对 IPv6 的支持
**EIGRP For IPv6**
@ -16,70 +16,70 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第38天任务
## 第 38 天任务
- 阅读今天的课文(以下内容)
- 复习EIGRP模块
- 复习EIGRP故障排除模块
- 复习 EIGRP 模块
- 复习 EIGRP 故障排除模块
尽管针对IPv6的EIGRP内容并没有在新的CCNA考试大纲中特别列出但因为以下原因此方面的内容将在本模块中加以涵盖。首先CCNA题目对有关EIGRP与IPv6技术有着较高的关注所以就算看起来不怎么可能EIGRPv6方面的题目仍可能出现在考试中。其次此方面内容相对容易而简单因此掌握起来也不会花很多时间尤其在考虑讲解并不会深入的情况下。
尽管针对 IPv6 EIGRP 内容,并没有在新的 CCNA 考试大纲中特别列出,但因为以下原因,此方面的内容将在本模块中加以涵盖。首先, CCNA 题目对有关 EIGRP IPv6 技术有着较高的关注,所以就算看起来不怎么可能, EIGRPv6 方面的题目仍可能出现在考试中。其次,此方面内容相对容易而简单,因此掌握起来也不会花很多时间,尤其在考虑讲解并不会深入的情况下。
除了那些开放的标准协议外思科专有的EIGRP也已被修订到支持IPv6了。因为其支持IPv6, 所以有时这个修订版的EIGRP被成为是EIGRPv6而并不是因为它是EIGRP路由协议的第6版。类似地IPv4的EIGRP有时也被称为EIGRPv4, 以区别两个版本所支持的其所路由协议的不同In addition to open standart protocols, the Cisco-proprietary EIGRP has also been modified to support IPv6. This modified version of EIGRP is sometimes referred to as EIGRPv6 because of its support for IPv6, not because it is revision 6 of the EIGRP routing protocol. Similarly, EIGRP for IPv4 is also sometimes referred to as EIGRPv4 to differentiate between the routing protocol versions supported by either version
除了那些开放的标准协议外,思科专有的 EIGRP 也已被修订到支持 IPv6 了。因为其支持IPv6, 所以有时这个修订版的 EIGRP 被成为是 EIGRPv6 ,而并不是因为它是 EIGRP 路由协议的第 6 版。类似地, IPv4 EIGRP 有时也被称为EIGRPv4, 以区别两个版本所支持的其所路由协议的不同In addition to open standart protocols, the Cisco-proprietary EIGRP has also been modified to support IPv6. This modified version of EIGRP is sometimes referred to as EIGRPv6 because of its support for IPv6, not because it is revision 6 of the EIGRP routing protocol. Similarly, EIGRP for IPv4 is also sometimes referred to as EIGRPv4 to differentiate between the routing protocol versions supported by either version
今天将学习以下内容:
- IPv6下的思科EIGRP概览与基础知识Cisco EIGRP for IPv6 overview and fundamentals
- IPv6下的EIGRP的配置基础
- IPv6下的思科 EIGRP 概览与基础知识Cisco EIGRP for IPv6 overview and fundamentals
- IPv6下的 EIGRP 的配置基础
本课程对应了以下CCNA大纲要求
本课程对应了以下 CCNA 大纲要求:
- 配置并验证EIGRP单一自治系统Configure and verify EIGRP(Single AS)
- 配置并验证 EIGRP 单一自治系统Configure and verify EIGRP(Single AS)
EIGRPv6保留了EIGRPv4中的大部分相同基础的核心功能For the most part, EIGRPv6 retains the same basic core functions as EIGRPv4。比如两个版本仍使用弥散更新算法来确保无环回的路径同时两个版本都使用多播数据包来发送更新--尽管EIGRPv6使用的是IPv6的多播地址`FF02::A`而EIGRPv4使用的是组地址`224.0.0.10`。在保留了一些相同核心基础的同时版本之间有着一些不同之处。下表38.1列出了EIGRPv4与EIGRPv6之间或简单且更通常地说是IPv4下的EIGRP与IPv6下的EIGRP之间的不同之处
EIGRPv6保留了 EIGRPv4 中的大部分相同基础的核心功能For the most part, EIGRPv6 retains the same basic core functions as EIGRPv4。比如两个版本仍使用弥散更新算法来确保无环回的路径同时两个版本都使用多播数据包来发送更新--尽管 EIGRPv6 使用的是 IPv6 的多播地址`FF02::A`,而 EIGRPv4 使用的是组地址`224.0.0.10`。在保留了一些相同核心基础的同时版本之间有着一些不同之处。下表38.1列出了 EIGRPv4 EIGRPv6 之间,或简单且更通常地说是 IPv4 下的 EIGRP IPv6 下的 EIGRP 之间的不同之处:
*表 38.1 -- EIGRPv4与EIGRPv6的差异*
*表 38.1 -- EIGRPv4与 EIGRPv6 的差异*
| 协议特性Protocol Characteristic | IPv4下的EIGRP | IPv6下的EIGRP |
| ------ | ------ | ------ |
| 自动汇总特性 | 支持Yes | 不适用Not Applicable |
| 认证或安全特性 | MD5 | 内建于IPv6中Built into IPv6 |
| 要求对等点处于同一子网Common Subnet for Peers | 要求Yes | 不要求No |
| 自动汇总特性 | 支持( Yes | 不适用Not Applicable |
| 认证或安全特性 | MD5 | 内建于 IPv6 Built into IPv6 |
| 要求对等点处于同一子网Common Subnet for Peers | 要求( Yes | 不要求( No |
| 通告内容Advertisement Contents| 子网/掩码Subnet/Mask | 前缀/长度Prefix/Length |
| 数据包的封装Packet Encapsulation | IPv4封装IPv4 | IPv6封装IPv6 |
| 数据包的封装Packet Encapsulation | IPv4封装 IPv4 | IPv6封装 IPv6 |
> **注意:** 因为EIGRPv6使用邻居的链路本地地址作为下一跳地址因此在位于同一自治系统及同一网段的两台路由器建立邻居关系时就不需要其全局的IPv6单播子网一致了。这一点是要求邻居在同一子网的EIGRPv4与使用链路本地地址建立邻居关系而消除了此要求的EIGRPv6之间最为显著的不同之一Because EIGRPv6 uses the Link-Local address of the neighbour as the next-hop address, the global IPv6 Unicast subnets do not need to be the same for a neighbour relationship to be established between two routers that reside within the same autonomous system and are on a common network segment. This is one of the most significant differences between EIGRPv4, which requires neighbours to be on a common subnet, and EIGRPv6, which negates this need by using the Link-Local addresses for neighbour relationships instead
> **注意:** 因为 EIGRPv6 使用邻居的链路本地地址作为下一跳地址,因此在位于同一自治系统及同一网段的两台路由器建立邻居关系时,就不需要其全局的 IPv6 单播子网一致了。这一点是要求邻居在同一子网的 EIGRPv4 ,与使用链路本地地址建立邻居关系而消除了此要求的 EIGRPv6 之间最为显著的不同之一Because EIGRPv6 uses the Link-Local address of the neighbour as the next-hop address, the global IPv6 Unicast subnets do not need to be the same for a neighbour relationship to be established between two routers that reside within the same autonomous system and are on a common network segment. This is one of the most significant differences between EIGRPv4, which requires neighbours to be on a common subnet, and EIGRPv6, which negates this need by using the Link-Local addresses for neighbour relationships instead
## 思科IOS软件在EIGRPv4与EIGRPv6配置上的差异
## 思科 IOS 软件在 EIGRPv4 EIGRPv6 配置上的差异
**Cisco IOS Software EIGRPv4 and EIGRPv6 Configuration Differences**
思科IOS软件中对EIGRPv4与EIGRPv4的配置上有着一些显著的差异。那么第一个显著差异就在于开启受路由的协议方式的不同。对于EIGRPv4来说需要使用全局配置命令`router eigrp [ASN]`来开启EIGRPv4的路由并指定该EIGRPv4自治系统编号。而在配置EIGRPv6时则是使用`ipv6 router eigrp [ASN]`来开启EIGRPv6并指定出**本地路由器ASN**了There are some notable differences in the configuration of EIGRPv4 and EIGRPv6 in Cisco IOS software. The first notable difference is the way in which the routing protocol is enabled. For EIGRPv4, the `router eigrp [ASN]` global configuration command is required to enable EIGRPv4 routing and to specify the EIGRPv4 autonomous system number(ASN). When configuring EIGRPv6, the `ipv6 router eigrp [ASN]` global configuration command is used instead to enable EIGRPv6 and to specify **the local router ASN**)。
思科 IOS 软件中对 EIGRPv4 EIGRPv4 的配置上,有着一些显著的差异。那么第一个显著差异就在于开启受路由的协议方式的不同。对于 EIGRPv4 来说,需要使用全局配置命令`router eigrp [ASN]`来开启 EIGRPv4 的路由,并指定该 EIGRPv4 自治系统编号。而在配置 EIGRPv6 时,则是使用`ipv6 router eigrp [ASN]`来开启 EIGRPv6 并指定出**本地路由器ASN**了There are some notable differences in the configuration of EIGRPv4 and EIGRPv6 in Cisco IOS software. The first notable difference is the way in which the routing protocol is enabled. For EIGRPv4, the `router eigrp [ASN]` global configuration command is required to enable EIGRPv4 routing and to specify the EIGRPv4 autonomous system number(ASN). When configuring EIGRPv6, the `ipv6 router eigrp [ASN]` global configuration command is used instead to enable EIGRPv6 and to specify **the local router ASN**)。
尽管EIGRPv4与EIGRPv6的开启有些类似但在两个路由进程开启之后的协议状态中是有着非常显著的不同的。默认在开启了EIGRPv4时该协议就自动启动并在其假定有桌正确配置的情况下开始在所有指定的运作接口上发送Hello数据包。而当在思科IOS软件中启用EIGRPv6时默认情况下在该协议被开启后其将保持关闭状态。这就意味着就算在某些指定接口下得以开启在执行路由器配置命令`no shutdown`之前EIGRP进程仍不是运作中的While enabling EIGRPv4 and EIGRPv6 is somewhat similar, there is a very notable and significant difference in the protocol states once the routing process has been enabled. By default, when EIGRPv4 is enabled, the protocol automatically starts and, assuming correct configuration, begins sending Hello packets on all specified interfaces. When enabling EIGRPv6 in Cisco IOS software, by default, after the protocol has been enabled, it remains in the shutdown state. This means that even if enabled under specified interfaces, the EIGRP process will not be operational until the `no shutdown` router configuration command is issued
尽管 EIGRPv4 EIGRPv6 的开启有些类似,但在两个路由进程开启之后的协议状态中,是有着非常显著的不同的。默认在开启了 EIGRPv4 时,该协议就自动启动,并在其假定有桌正确配置的情况下,开始在所有指定的运作接口上发送 Hello 数据包。而当在思科 IOS 软件中启用 EIGRPv6 时,默认情况下在该协议被开启后,其将保持关闭状态。这就意味着就算在某些指定接口下得以开启,在执行路由器配置命令`no shutdown`之前, EIGRP 进程仍不是运作中的While enabling EIGRPv4 and EIGRPv6 is somewhat similar, there is a very notable and significant difference in the protocol states once the routing process has been enabled. By default, when EIGRPv4 is enabled, the protocol automatically starts and, assuming correct configuration, begins sending Hello packets on all specified interfaces. When enabling EIGRPv6 in Cisco IOS software, by default, after the protocol has been enabled, it remains in the shutdown state. This means that even if enabled under specified interfaces, the EIGRP process will not be operational until the `no shutdown` router configuration command is issued
而EIGRPv4与EIGRPv6的另一配置差异就是在EIGRPv6下路由器ID是强制要求的且必须以IPv4的点分十进制表示法进行指定。在分配RID时要记住该地址不必是一个可路由或可达的地址Yet another configuration difference between EIGRPv4 and EIGRPv6 is that with EIGRPv6, the router ID is mandatory and must be specified in IPv4 dotted-decimal notation. When assigning the RID, keep in mind that the address does not have to be a routable or reachable address
EIGRPv4 EIGRPv6 的另一配置差异,就是在 EIGRPv6 下,路由器 ID 是强制要求的,且必须以 IPv4 的点分十进制表示法进行指定。在分配 RID 要记住该地址不必是一个可路由或可达的地址Yet another configuration difference between EIGRPv4 and EIGRPv6 is that with EIGRPv6, the router ID is mandatory and must be specified in IPv4 dotted-decimal notation. When assigning the RID, keep in mind that the address does not have to be a routable or reachable address
> **注意:** 如在本地路由器上有任何配置了IPv4地址的接口那么该路由器将从这些接口选取路由器ID -- 优先选取环回接口在路由器上没有配置环回接口或环回接口不可运作时就使用物理接口。在有环回接口运行时将选取环回接口IP地址中最高的作为RID。在没有环回接口运行而有物理接口运行时就选择物理接口IP地址中最高的作为RID。在路由器上环回接口与物理接口都没有配置时就必须使用`eigrp router-id [IPv4 Addresses]`命令指定出一个RIDIf there are any interfaces with IPv4 address configured on the local router, then the router will select the router ID from these interfaces -- preferring Loopback interfaces, and then using physical interfaces if no Loopback interfaces are configured or operational on the router. The highest IP address of the Loopback interface(s), if up, will be selected. If not, the RID will be selected from the highest IP address of the physical interfaces, if up. If neither is configured on the router, the `eigrp router-id [IPv4 Address]` command must be used
> **注意:** 如在本地路由器上有任何配置了 IPv4 地址的接口那么该路由器将从这些接口选取路由器ID -- 优先选取环回接口,在路由器上没有配置环回接口或环回接口不可运作时,就使用物理接口。在有环回接口运行时,将选取环回接口 IP 地址中最高的作为 RID 。在没有环回接口运行,而有物理接口运行时,就选择物理接口 IP 地址中最高的作为 RID 。在路由器上环回接口与物理接口都没有配置时,就必须使用`eigrp router-id [IPv4 Addresses]`命令,指定出一个 RID If there are any interfaces with IPv4 address configured on the local router, then the router will select the router ID from these interfaces -- preferring Loopback interfaces, and then using physical interfaces if no Loopback interfaces are configured or operational on the router. The highest IP address of the Loopback interface(s), if up, will be selected. If not, the RID will be selected from the highest IP address of the physical interfaces, if up. If neither is configured on the router, the `eigrp router-id [IPv4 Address]` command must be used
## 思科IOS软件中IPv6的配置与验证
## 思科 IOS 软件中 IPv6 的配置与验证
**Configuring and Verifying EIGRPv6 in Cisco IOS Software**
继续上一小节其中突出了EIGRPv4与EIGRPv6之间的配置差异, 本节对在思科IOS软件中开启并验证EIGRPv6功能与路由所需的步骤序列加以贯穿这些步骤如下
继续上一小节,其中突出了 EIGRPv4 EIGRPv6 之间的配置差异, 本节对在思科 IOS 软件中开启并验证 EIGRPv6 功能与路由所需的步骤序列,加以贯穿,这些步骤如下:
1. 使用全局配置命令`ipv6 unicast-routing`来全局性地开启IPv6路由。在思科IOS软件中IPv6路由默认是关闭的。
2. 使用全局配置命令`ipv6 router eigrp [ASN]`来配置一或多个的EIGRPv6进程。
3. 如路由器上没有配置了IPv4地址的运行接口就要使用路由器配置命令`eigrp router-id [IPv4 Address]`来手动配置EIGRPv6的RID。
4. 使用路由器配置命令`no shutdown`来开启EIGRPv6进程。
5. 在需要的接口上,使用接口配置命令`ipv6 address`与`ipv6 enable`开启其IPv6功能。
6. 使用接口配置命令`ipv6 eigrp [ASN]`, 来开启该接口下的一或多个EIGRPv6进程。
1. 使用全局配置命令`ipv6 unicast-routing`,来全局性地开启 IPv6 路由。在思科 IOS 软件中 IPv6 路由默认是关闭的。
2. 使用全局配置命令`ipv6 router eigrp [ASN]`来配置一或多个的 EIGRPv6 进程。
3. 如路由器上没有配置了 IPv4 地址的运行接口,就要使用路由器配置命令`eigrp router-id [IPv4 Address]`来手动配置 EIGRPv6 RID
4. 使用路由器配置命令`no shutdown`来开启 EIGRPv6 进程。
5. 在需要的接口上,使用接口配置命令`ipv6 address`与`ipv6 enable`,开启其 IPv6 功能。
6. 使用接口配置命令`ipv6 eigrp [ASN]`, 来开启该接口下的一或多个 EIGRPv6 进程。
因为对于EIGRPv6来说自动汇总是不适用的因此就没有关闭此行为的需要。为对EIGRPv6配置的掌握进行加强请考虑下图38.1中所演示的拓扑,该图演示了一个由两台路由器所构成的网络。两台路由器都使用`AS 1`运行着EIGRPv6。路由器`R3`将通过EIGRPv6通告两个额外的前缀
因为对于 EIGRPv6 来说自动汇总是不适用的,因此就没有关闭此行为的需要。为对 EIGRPv6 配置的掌握进行加强请考虑下图38.1中所演示的拓扑,该图演示了一个由两台路由器所构成的网络。两台路由器都使用`AS 1`运行着 EIGRPv6 。路由器`R3`将通过 EIGRPv6 通告两个额外的前缀:
![思科IOS软件中EIGRPv6的配置](images/3801.png)
*图38.1 -- 思科IOS软件中EIGRPv6的配置*
![思科 IOS 软件中 EIGRPv6 的配置](images/3801.png)
*图38.1 -- 思科 IOS 软件中 EIGRPv6 的配置*
根据上述配置步骤顺序,路由器`R1`上EIGRPv6将被如下配置上
根据上述配置步骤顺序,路由器`R1`上 EIGRPv6 将被如下配置上:
```console
R1(config)#ipv6 unicast-routing
@ -94,7 +94,7 @@ R1(config-if)#ipv6 eigrp 1
R1(config-if)#exit
```
而根据同样的步骤顺序,路由器`R3`上的EIGRPv6就被如下这样配置上
而根据同样的步骤顺序,路由器`R3`上的 EIGRPv6 就被如下这样配置上:
```console
R3(config)#ipv6 unicast-routing
@ -115,7 +115,7 @@ R3(config-if)#ipv6 eigrp 1
R3(config-if)#exit
```
EIGRPv6的验证过程将按照EIGRPv4的同样过程进行。首先要验证EIGRP的邻居关系已被成功建立。对于EIGRPv6, 这是通过使用`show ipv6 eigrp neighbours`命令完成的,如下所示:
EIGRPv6的验证过程将按照 EIGRPv4 的同样过程进行。首先要验证 EIGRP 的邻居关系已被成功建立。对于EIGRPv6, 这是通过使用`show ipv6 eigrp neighbours`命令完成的,如下所示:
```console
R1#show ipv6 eigrp neighbors
@ -126,7 +126,7 @@ H Address Interface Hold Uptime SRTT RTO Q Seq
FE80::1AEF:63FF:FE63:1B00
```
如同先前指出的那样请注意这里的下一跳地址也就是EIGRP的邻居地址被指定为本地链路地址而不是全局单播地址。此命令所打印出的所有其它信息与`show ip eigrp neighbors`命令打印出是相同的。而要查看详细的邻居信息,可简单地在`show ipv6 eigrp neighbours`命令后面追加上`[detail]`关键字。使用此选项就打印出有关EIGRP版本、以及从那个特定EIGRP邻居处接收到的前缀数目等信息如下所示
如同先前指出的那样,请注意这里的下一跳地址(也就是 EIGRP 的邻居地址)被指定为本地链路地址,而不是全局单播地址。此命令所打印出的所有其它信息,与`show ip eigrp neighbors`命令打印出是相同的。而要查看详细的邻居信息,可简单地在`show ipv6 eigrp neighbours`命令后面追加上`[detail]`关键字。使用此选项就打印出有关 EIGRP 版本、以及从那个特定 EIGRP 邻居处接收到的前缀数目等信息,如下所示:
```console
R1#show ipv6 eigrp neighbors
@ -139,7 +139,7 @@ H Address Interface Hold Uptime SRTT RTO Q Seq
Topology-ids from peer - 0
```
在对EIGRPv6的邻居关系进行验证之后就可以对路由信息进行验证了。比如要查看到从EIGRPv6邻居处接收到的那些IPv6前缀就将使用`show ipv6 route`命令,如下面的输出所示:
在对 EIGRPv6 的邻居关系进行验证之后,就可以对路由信息进行验证了。比如,要查看到从 EIGRPv6 邻居处接收到的那些 IPv6 前缀,就将使用`show ipv6 route`命令,如下面的输出所示:
```console
R1#show ipv6 route eigrp
@ -154,7 +154,7 @@ D 3FFF:1234:ABCD:3::/64 [90/3072]
via FE80::1AEF:63FF:FE63:1B00, GigabitEthernet0/0
```
请再次注意这里所接收到的前缀都包含着作为所有接收到的前缀的下一跳IPv6地址的本地链路地址。而要查看EIGRPv6的拓扑表就应使用`show ipv6 eigrp topology`命令。该命令支持那些与用于查看EIGRPv4的拓扑表的`show ip eigrp topology`命令下可用的同样的参数。这里基于上面已部署的配置,`R1`上的拓扑表显示出以下IPv6前缀信息
请再次注意,这里所接收到的前缀,都包含着作为所有接收到的前缀的下一跳 IPv6 地址的本地链路地址。而要查看 EIGRPv6 的拓扑表,就应使用`show ipv6 eigrp topology`命令。该命令支持那些与用于查看 EIGRPv4 的拓扑表的`show ip eigrp topology`命令下可用的同样的参数。这里基于上面已部署的配置,`R1`上的拓扑表显示出以下 IPv6 前缀信息:
```console
R1#show ipv6 eigrp topology
@ -169,7 +169,7 @@ P 3FFF:1234:ABCD:3::/64, 1 successors, FD is 3072
via FE80::1AEF:63FF:FE63:1B00 (3072/2816), GigabitEthernet0/0
```
与EIGRPv4中的情况一样可在此命令的后面追加一个前缀以查看到有关那个前缀或子网的详细信息。比如要查看有关子网`3FFF:1234:ABCD:2::/64`的详细信息,就应简单的输入`show ipv6 eigrp topology 3FFF:1234:ABCD:2::/64`命令,如下所示:
EIGRPv4 中的情况一样,可在此命令的后面追加一个前缀,以查看到有关那个前缀或子网的详细信息。比如,要查看有关子网`3FFF:1234:ABCD:2::/64`的详细信息,就应简单的输入`show ipv6 eigrp topology 3FFF:1234:ABCD:2::/64`命令,如下所示:
```console
R1#show ipv6 eigrp topology 3FFF:1234:ABCD:2::/64
@ -199,7 +199,7 @@ Sending 10, 100-byte ICMP Echos to 3FFF:1234:ABCD:2::3, timeout is 2 seconds:
Success rate is 100 percent (10/10), round-trip min/avg/max = 0/0/4 ms
```
与EIGRPv4下的情况一样也可使用`show ipv6 protocols`对EIGRPv6的一些默认协议数值进行检查该命令的输出在下面有打印出来。该命令包含了那些开启了EIGRP实例的接口、路由重分发的信息在适用时以及手动配置指定或所配置的点分十进制的EIGRPv6路由器ID。
EIGRPv4 下的情况一样,也可使用`show ipv6 protocols`对 EIGRPv6 的一些默认协议数值进行检查,该命令的输出在下面有打印出来。该命令包含了那些开启了 EIGRP 实例的接口、路由重分发的信息(在适用时),以及手动配置指定或所配置的点分十进制的 EIGRPv6 路由器 ID
```console
R1#show ipv6 protocols
@ -219,7 +219,7 @@ EIGRP-IPv6 Protocol for AS(1)
Redistribution:
```
## 第38天问题
## 第 38 天问题
1. IPv6 security for EIGRPv6 is built-in. True or false?
2. Because EIGRPv6 uses the Link-Local address of the neighbour as the next-hop address, the global IPv6 Unicast subnets do not need to be the same in order for a neighbour relationship to be established between two routers that reside within the same autonomous system and are on a common network segment. True or false?
@ -228,7 +228,7 @@ EIGRP-IPv6 Protocol for AS(1)
5. How do you enable EIGRP for IPv6 on a router interface?
## 第38天答案
## 第 38 天答案
1. True.
2. True.
@ -236,18 +236,18 @@ EIGRP-IPv6 Protocol for AS(1)
4. The shutdown state.
5. Issue the `ipv6 eigrp [ASN]` command.
## 第38天实验
## 第 38 天实验
请重复第36天的EIGRP实验不过这次要使用IPv6地址并激活IPv6下的EIGRP-IPV6
请重复第 36 天的 EIGRP 实验,不过这次要使用 IPv6 地址并激活 IPv6 下的EIGRP-IPV6
- 在两台路由器上开启IPv6的单播路由
- 在接口上配置IPv6地址
- 使用`ipv6 router eigrp 100`命令配置EIGRP进程
- 在两台路由器上开启 IPv6 的单播路由
- 在接口上配置 IPv6 地址
- 使用`ipv6 router eigrp 100`命令配置 EIGRP 进程
- 使用命令`eigrp router-id 10.10.10.10`配置一个RID
- 使用`no shutdown`命令激活进程
- 使用`ipv6 eigrp 10`命令在IPv6接口上开启EIGRP
- 使用`ipv6 eigrp 10`命令在 IPv6 接口上开启EIGRP
- 使用`show ipv6 eigrp neighbors [detail]`命令对邻居关系进行检查
- 使用命令`show ipv6 route eigrp`对所通告的路由进行检查
- 使用`show ipv6 eigrp topology`命令对EIGRP的拓扑进行检查
- 使用`show ipv6 eigrp topology`命令对 EIGRP 的拓扑进行检查
请访问[www.in60days.com](http://www.in60days.com/)并免费观看作者如何完成的此实验。

View File

@ -1,4 +1,4 @@
# 第39天 开放最短路径优先协议
# 第 39 天 开放最短路径优先协议
**Open Shortest Path First, OSPF**
@ -16,15 +16,15 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第39天任务
## 第 39 天任务
- 阅读今天的课文(以下)
- 复习昨天的课文
- 完成今天的实验
- 阅读ICND2记诵指南
- 在网站[subnetting.org](http://subnetting.org/)上学习15分钟
- 阅读 ICND2 记诵指南
- 在网站[subnetting.org](http://subnetting.org/)上学习 15 分钟
与EIGRP一样对OSPF的讨论也可以花上几天时间但这里需要针对那些考试要用到的知识点进行着重学习。CCNA级别的OSPF知识尚不足以在大多数网络上涉及与部署该路由技术。
EIGRP 一样,对 OSPF 的讨论也可以花上几天时间,但这里需要针对那些考试要用到的知识点,进行着重学习。 CCNA 级别的 OSPF 知识,尚不足以在大多数网络上涉及与部署该路由技术。
今日将学习以下内容:
@ -33,7 +33,7 @@ ___
- OSPF的配置
- OSPF故障排除
这一课对应了以下CCNA大纲的要求
这一课对应了以下 CCNA 大纲的要求:
- OSPF的配置与验证单区single area
- 邻居临接Neighbour adjacencies, 或者叫邻居关系的形成)
@ -46,11 +46,11 @@ ___
## 指定与后备指定路由器Designated and Backup Designated Routers
如同第12天模块中所指出的OSPF会在广播与非广播网络类型上选举出指定路由器DR与/或非后备指定路由器BDR。对后备指定路由器并非这些网络类型上的强制性组件这一点的掌握是重要的。事实上仅选出指定路由器而没有后备指定路由器时OSPF同样能工作只是在指定路由器失效时没有冗余而已同时网络中的OSPF路由器需要再度进行一遍选举流程以选出新的指定路由器。
如同第 12 天模块中所指出的, OSPF 会在广播与非广播网络类型上选举出指定路由器( DR )与/或非后备指定路由器( BDR )。对后备指定路由器并非这些网络类型上的强制性组件这一点的掌握,是重要的。事实上,仅选出指定路由器,而没有后备指定路由器时, OSPF 同样能工作;只是在指定路由器失效时,没有冗余而已,同时网络中的 OSPF 路由器需要再度进行一遍选举流程,以选出新的指定路由器。
在网段上(广播或非广播网络类型),所有非指定/后备指定路由器,都将与指定路由器与选出的后备指定路由器(若有选出后备指定路由器)建立临接关系,而不会与网段上的其它非指定/后备指定路由器形成临接关系。这些非指定/后备指定路由器将往全指定路由器多播组地址the AllDRRouters Multicast group address`224.0.0.6`发出报文与更新。只有指定路由器与后备指定路由器才会收听发到此组地址的多播报文。随后指定路由器将通告报文给全SPF路由器多播组地址the AllSPFRouters Multicast group address`224.0.0.5`。这就令到网段上的所有其它OSPF路由器接收到更新。
在网段上(广播或非广播网络类型),所有非指定/后备指定路由器,都将与指定路由器与选出的后备指定路由器(若有选出后备指定路由器)建立临接关系,而不会与网段上的其它非指定/后备指定路由器形成临接关系。这些非指定/后备指定路由器将往全指定路由器多播组地址the AllDRRouters Multicast group address`224.0.0.6`发出报文与更新。只有指定路由器与后备指定路由器才会收听发到此组地址的多播报文。随后指定路由器将通告报文给全 SPF 路由器多播组地址the AllSPFRouters Multicast group address`224.0.0.5`。这就令到网段上的所有其它 OSPF 路由器接收到更新。
对于已选出指定路由器与/或后备指定路由器时报文交换顺序的掌握尤为重要。下面作为一个示例请设想一个有着4台路由器分别为`R1`、`R2`、`R3`与`R4`,的广播网络。假定`R4`被选作指定路由器,`R3`被选作后备指定路由器。那么`R1`与`R2`就既不是指定也不是后备指定路由器了因此在思科OSPF命名法中就被成为`DROther`路由器。此时`R1`上有一个配置改变,随后`R1`就发出一个更新报文到`AllDRRouters`多播组地址`226.0.0.6`。指定路由器`R4`接收到该更新并发出一个确认报文acknowledgement回送到`AllSPFRouters`多播组地址`224.0.0.5`上,`R4`随后使用`AllSPFRouters`多播组地址,将该更新发送给所有其它非指定/后备指定路由器。该更新被其它的`DROther`路由器,也就是`R2`接收到,同时`R2`发出一个确认报文到`AllDRRouters`多播组地址`224.0.0.6`。该过程在下图39.1中进行了演示:
对于已选出指定路由器与/或后备指定路由器时报文交换顺序的掌握尤为重要。下面作为一个示例,请设想一个有着 4 台路由器,分别为`R1`、`R2`、`R3`与`R4`,的广播网络。假定`R4`被选作指定路由器,`R3`被选作后备指定路由器。那么`R1`与`R2`就既不是指定也不是后备指定路由器了,因此在思科 OSPF 命名法中就被成为`DROther`路由器。此时`R1`上有一个配置改变,随后`R1`就发出一个更新报文到`AllDRRouters`多播组地址`226.0.0.6`。指定路由器`R4`接收到该更新,并发出一个确认报文( acknowledgement ),回送到`AllSPFRouters`多播组地址`224.0.0.5`上,`R4`随后使用`AllSPFRouters`多播组地址,将该更新发送给所有其它非指定/后备指定路由器。该更新被其它的`DROther`路由器,也就是`R2`接收到,同时`R2`发出一个确认报文到`AllDRRouters`多播组地址`224.0.0.6`。该过程在下图39.1中进行了演示:
![OSPF指定与后备指定通告](images/3901.png)
@ -62,32 +62,32 @@ ___
某台路由器要成为网段的指定路由器或后备指定路由器,其就必须被选中。选举基于以下两点:
- 有着最高的路由器优先级值the highest router priority value
- 有着最高的路由器IDthe highest router ID
- 有着最高的路由器 ID the highest router ID
默认下所有路由器都有着默认的优先级值`1`。可使用接口配置命令`ip ospf priority <0-255>`对该值进行调整。路由器的优先级值越高,那么其就越有可能被选为该网段的指定路由器。有着第二高优先级的路由器,则将被选为后备指定路由器。如配置了优先级值`0`则该路由器将不参加到DR/BDR的选举过程。最高路由器优先级与路由器ID原则仅在参与指定/后备指定路由器选举过程的所有路由器同时加载OSPF进程时才起作用。如这些路由器没有同时加载OSPF进程则最先完成OSPF进程加载的路由器将成为网段上的指定路由器。
默认下所有路由器都有着默认的优先级值`1`。可使用接口配置命令`ip ospf priority <0-255>`对该值进行调整。路由器的优先级值越高,那么其就越有可能被选为该网段的指定路由器。有着第二高优先级的路由器,则将被选为后备指定路由器。如配置了优先级值`0`则该路由器将不参加到DR/BDR的选举过程。最高路由器优先级与路由器 ID 原则,仅在参与指定/后备指定路由器选举过程的所有路由器同时加载 OSPF 进程时才起作用。如这些路由器没有同时加载 OSPF 进程,则最先完成 OSPF 进程加载的路由器,将成为网段上的指定路由器。
在确定OSPF路由器ID时思科IOS将选取已配置的环回接口的最高IP地址。在没有配置环回接口时IOS软件将使用所有已配置的物理接口的最高IP地址作为OSPF路由器ID。思科IOS软件还允许管理员使用路由器配置命令`router-id [address]`来手动指定路由器ID。
在确定 OSPF 路由器 ID 时,思科 IOS 将选取已配置的环回接口的最高 IP 地址。在没有配置环回接口时, IOS 软件将使用所有已配置的物理接口的最高 IP 地址,作为 OSPF 路由器 ID 。思科 IOS 软件还允许管理员使用路由器配置命令`router-id [address]`,来手动指定路由器 ID
重要的是记住在OSPF下一旦指定路由器与后备指定路由器被选出那么在进行另一次选举之前它们都将始终作为指定/后备指定路由器。比如在某个多路访问网络上已存在一台指定路由器与一台后备指定路由器的情况下一台有着更高优先级或IP地址的路由器被加入到该同一网段时既有的指定与后备指定路由器将不会变化。在指定路由器失效时接过指定路由器的角色的是后备指定路由器而不是新加入的有着更高优先级或IP地址的路由器。此外一次新的选举将举行而那台路由器极有可能被选举为后备指定路由器Instead, a new election will be held and that router will most likely be elected BDR。而为了让那台路由器成为指定路由器就必须将后备路由器移除或使用`clear ip ospf`命令对OSPF进程进行重置以强制进行一次新的指定/后备指定路由器选举。一旦完成选举OSPF像下面这样来使用指定与后备指定路由器
重要的是记住在 OSPF 下,一旦指定路由器与后备指定路由器被选出,那么在进行另一次选举之前,它们都将始终作为指定/后备指定路由器。比如,在某个多路访问网络上已存在一台指定路由器与一台后备指定路由器的情况下,一台有着更高优先级或 IP 地址的路由器被加入到该同一网段时,既有的指定与后备指定路由器将不会变化。在指定路由器失效时,接过指定路由器的角色的是后备指定路由器,而不是新加入的有着更高优先级或 IP 地址的路由器。此外一次新的选举将举行而那台路由器极有可能被选举为后备指定路由器Instead, a new election will be held and that router will most likely be elected BDR。而为了让那台路由器成为指定路由器就必须将后备路由器移除或使用`clear ip ospf`命令对 OSPF 进程进行重置,以强制进行一次新的指定/后备指定路由器选举。一旦完成选举, OSPF 像下面这样来使用指定与后备指定路由器:
- 用于减少网段上所要求的临接关系To reduce the number of adjacencies required on the segment
- 用于对多路访问网段上的路由器进行通告To advertise the routers on the Multi-Access segment
- 用于确保所有更新送达网段上的所有路由器
为了更好地掌握这些基础概念这里参考下图39.2中的基本OSPF网络拓扑
为了更好地掌握这些基础概念这里参考下图39.2中的基本 OSPF 网络拓扑:
![OSPF指定与后备指定路由器基础](images/3902.png)
*图 39.2 -- OSPF 指定与后备指定路由器基础*
在图39.2中网段上的各台路由器与指定及后备指定路由器之间建立临接关系但相互之间并不建立临接关系Referencing Figure 39.2, each router on the segment establishes an adjacency with the DR and the BDR but not with each other。也就是说非指定/后备指定路由器之间不会建立临接关系。这一特性阻止网段上的路由器形成相互之间的`N(N-1)`个临接关系从而降低过多的OSPF数据包在网段上泛滥。
在图39.2中网段上的各台路由器与指定及后备指定路由器之间建立临接关系但相互之间并不建立临接关系Referencing Figure 39.2, each router on the segment establishes an adjacency with the DR and the BDR but not with each other。也就是说非指定/后备指定路由器之间不会建立临接关系。这一特性阻止网段上的路由器形成相互之间的`N(N-1)`个临接关系,从而降低过多的 OSPF 数据包在网段上泛滥。
比如在没有网段上的指定/后备指定路由器概念时各台路由器都需要与网段上的其它路由器建立临接关系。对于图39.2的情形,这将导致网段上的`4(4-1)`,也就是`12`个临接关系。但有了指定/后备指定路由器后,每台路由器只需与这两台路由器,而无需与其它非指定与后备指定路由器,建立临接关系。指定路由器与后备指定路由器之间也会建立临接关系。此特性降低了网段及各台路由器上的临接关系数目,进而降低各台路由器上资源消耗(比如内存与处理器使用)。
对于第二点OSPF将一条链路视为两台路由器或两个节点之间的连接。在多路访问网络比如以太网中多台路由器可处于同一网段上就如同图39.2中所演示的那样。在这样的网络中OSPF使用网络链路状态通告Network Link State Advertisement, Type 2 LSA, 类型2的链路状态通告来对多路访问网段上的路由器进行通告。这种链路状态通告是由指定路由器生成并仅在该区域传播。因为其它非指定/后备指定路由器并不在各自之间建立临接关系,所以此类链路状态通告就令到那些路由器知悉在该多路访问网段上的其它路由器了。
对于第二点, OSPF 将一条链路视为两台路由器或两个节点之间的连接。在多路访问网络比如以太网中多台路由器可处于同一网段上就如同图39.2中所演示的那样。在这样的网络中, OSPF 使用网络链路状态通告Network Link State Advertisement, Type 2 LSA, 类型 2 的链路状态通告),来对多路访问网段上的路由器进行通告。这种链路状态通告是由指定路由器生成,并仅在该区域传播。因为其它非指定/后备指定路由器并不在各自之间建立临接关系,所以此类链路状态通告就令到那些路由器知悉在该多路访问网段上的其它路由器了。
为进一步说明这一点这里参考图39.2, 假定该网段上的所有路由器都具有默认的OSPF优先级`1`并同时加载OSPF进程因为`R4`有着最高的路由器ID而被选为指定路由器。`R3`因为有着第二高的路由器ID而被选为后备指定路由器。因为`R2`与`R1`既不是指定也不是后备指定路由器,因此它们为称为思科命名法中的`DROther`路由器。可在所有路由器上使用`show ip ospf neighbour`命令对此进行验证,如下所示:
为进一步说明这一点这里参考图39.2, 假定该网段上的所有路由器都具有默认的 OSPF 优先级`1`(并同时加载 OSPF 进程),因为`R4`有着最高的路由器 ID 而被选为指定路由器。`R3`因为有着第二高的路由器 ID 而被选为后备指定路由器。因为`R2`与`R1`既不是指定也不是后备指定路由器,因此它们为称为思科命名法中的`DROther`路由器。可在所有路由器上使用`show ip ospf neighbour`命令对此进行验证,如下所示:
```console
R1#show ip ospf neighbor
@ -114,7 +114,7 @@ Neighbor ID Pri State Dead Time Address Interface
3.3.3.3 1 FULL/BDR 00:00:30 192.168.1.3 FastEthernet0/0
```
> **注意:** 那些`DROther`路由器之所以处于`2WAY/DROTHER`状态,是因为它们仅与指定及后备指定路由器交换它们的数据库。那么就因为`DROther`路由器之间没有完整的数据库交换所以它们绝不会达到OSPF完整临接状态The DROther routers remain in the `2WAY/DROTHER` state because they exchange their databases only with the DR and BDR routers. Therefore, because there is no full database exchange between the DROther routers, they will never reach the OSPF FULL adjacency state
> **注意:** 那些`DROther`路由器之所以处于`2WAY/DROTHER`状态,是因为它们仅与指定及后备指定路由器交换它们的数据库。那么就因为`DROther`路由器之间没有完整的数据库交换,所以它们绝不会达到 OSPF 完整临接状态The DROther routers remain in the `2WAY/DROTHER` state because they exchange their databases only with the DR and BDR routers. Therefore, because there is no full database exchange between the DROther routers, they will never reach the OSPF FULL adjacency state
因为`R4`已被选为指定路由器它就生成网络链路状态通告the Network LSA这类链路状态通告是就该多路访问网段上的其它路由器进行通告的。可在网段上的任意路由器上使用`show ip ospf database network [link state ID]`命令,或在指定路由器上使用`show ip ospf database network self-originate`命令,对此加以验证。下面演示了在指定路由器(`R4`)上命令`show ip ospf database network self-originate`命名的输出:
@ -138,11 +138,11 @@ R4#show ip ospf database network self-originate
Attached Router: 3.3.3.3
```
参考上面的输出,指定路由器(`R4`)发起了表示`192.168.1.0/24`子网的类型2网络链路状态通告the Type 2(Network) LSA。因为该子网上存在多台路由器所以该`192.168.1.0/24`子网被称作OSPF命名法中的一条传输链路a transit link in OSPF terminology。输出中的通告路由器字段the Advertising Router field显示了生成此链路状态通告的那台路由器`4.4.4.4`, `R4`。网络掩码字段the Network Mask field则显示了该传输网络的子网掩码也就是24位或`255.255.255.0`。
参考上面的输出,指定路由器(`R4`)发起了表示`192.168.1.0/24`子网的类型 2 网络链路状态通告the Type 2(Network) LSA。因为该子网上存在多台路由器所以该`192.168.1.0/24`子网被称作 OSPF 命名法中的一条传输链路a transit link in OSPF terminology。输出中的通告路由器字段the Advertising Router field显示了生成此链路状态通告的那台路由器`4.4.4.4`, `R4`。网络掩码字段the Network Mask field则显示了该传输网络的子网掩码也就是 24 位,或`255.255.255.0`。
> 注OSPF中链路类型link type有4种P2P、Stub、Transit与Virtual link; 网络类型network type有两种传输网络Transit network与末梢网络Stub network链路状态通告有六种Router LSA一类、Network LSA二类、Network summary LSA三类、ASBR summary LSA四类、AS external LSA五类 与 NSSA LSA七类。[参考链接](http://blog.51cto.com/xiaojiejt/1941362)。
> 注: OSPF 中链路类型link type 4 种: P2P Stub Transit 与Virtual link; 网络类型network type有两种传输网络Transit network与末梢网络Stub network链路状态通告有六种Router LSA一类、Network LSA二类、Network summary LSA三类、ASBR summary LSA四类、AS external LSA五类 与 NSSA LSA七类。[参考链接](http://blog.51cto.com/xiaojiejt/1941362)。
所连接路由器字段the Attached Router field列出了在该网络网段上所有路由器的路由器ID。这样就令到该网段上的所有路由器知悉有哪些其它路由器也同样位处该网段上。下面的输出演示了在`R1`、`R2`与`R3`上的`show ip ospf database network [link state ID]`命令的输出,反映出同样的信息:
所连接路由器字段the Attached Router field列出了在该网络网段上所有路由器的路由器 ID 。这样就令到该网段上的所有路由器,知悉有哪些其它路由器也同样位处该网段上。下面的输出,演示了在`R1`、`R2`与`R3`上的`show ip ospf database network [link state ID]`命令的输出,反映出同样的信息:
```console
R2#show ip ospf database network
@ -211,20 +211,20 @@ R3#show ip ospf database network
*图 39.3 -- 发到指定/后备指定路由器组地址的一个`DROther`更新*
`R4`(指定路由器)收到该更新,并接着将相同更新发送到多播组地址`224.0.0.5``AllSPFRouters`。该组地址是由所有OSPF路由器使用的以确保网段上的所有其它路由器都收到此更新。下图39.4对发自`R4`(指定路由器)的该更新进行了演示:
`R4`(指定路由器)收到该更新,并接着将相同更新发送到多播组地址`224.0.0.5``AllSPFRouters`)。该组地址是由所有 OSPF 路由器使用的以确保网段上的所有其它路由器都收到此更新。下图39.4对发自`R4`(指定路由器)的该更新进行了演示:
![OSPF组地址的指定路由器更新](images/3904.png)
![ OSPF 组地址的指定路由器更新](images/3904.png)
*图 39.4 -- 到OSPF组地址的指定路由器更新*
*图 39.4 -- 到 OSPF 组地址的指定路由器更新*
> **注意:** 可以看出这就是来自`R1`的更新因为图39.3与图39.4中的通告路由器字段the Advertising Router field都包含了`R1`的路由器IDthe router ID, RID, 也就是`1.1.1.1`。
> **注意:** 可以看出这就是来自`R1`的更新因为图39.3与图39.4中的通告路由器字段the Advertising Router field都包含了`R1`的路由器 ID the router ID, RID, 也就是`1.1.1.1`。
> **注意:** OSPF使用到的其它LSA类型将在本模块的后面详细介绍。
> **注意:** OSPF使用到的其它 LSA 类型,将在本模块的后面详细介绍。
## 额外的路由器类型Additional Router Types
除了多路访问网段上的指定与后备指定路由器外对OSPF路由器的描述方式还包括根据它们的位置与在OSPF网络中的作用。在OSPF网络中通常会发现以下额外的路由器类型
除了多路访问网段上的指定与后备指定路由器外,对 OSPF 路由器的描述方式,还包括根据它们的位置与在 OSPF 网络中的作用。在 OSPF 网络中,通常会发现以下额外的路由器类型:
- 区域边界路由器Area Border Routers
- 自治系统边界路由器Autonomous System Boundary Routers
@ -232,33 +232,33 @@ R3#show ip ospf database network
- 骨干路由器Backbone Routers
下图39.5演示了一个后两个区域--一个OSPF骨干区域the OSPF backbone area(`Area 0`)与一个额外的一般OSPF区域a additional normal OSPF area(`Area 2`), 构成的基本OSPF网络。`R2`有着一个与`R1`的外部边界网关协议邻居关系an external BGP neighbour relationship。该图例将用于描述此网络中不同的OSPF路由器类型。
下图39.5演示了一个后两个区域--一个 OSPF 骨干区域the OSPF backbone area(`Area 0`))与一个额外的一般 OSPF 区域a additional normal OSPF area(`Area 2`), 构成的基本 OSPF 网络。`R2`有着一个与`R1`的外部边界网关协议邻居关系an external BGP neighbour relationship。该图例将用于描述此网络中不同的 OSPF 路由器类型。
![额外的OSPF路由器类型](images/3905.png)
![额外的 OSPF 路由器类型](images/3905.png)
*图 39.5 -- 额外的OSPF路由器类型*
*图 39.5 -- 额外的 OSPF 路由器类型*
区域边界路由器An Area Border Router, ABR是一台将一个或多个OSPF区域连接到OSPF骨干的OSPF路由器。这就意味着其必须有一个接口在`Area 0`中同时有其它接口在某个不同的OSPF区域中。区域边界路由器是所有其归属区域的成员且它们保有着每个其所归属区域的一个单独链路状态数据库ABRs are members of all areas to which they belong, and they keep a seperate Link State Database for every area to which they belong。参考图39.5, `R3`就应被认为是一台区域边界路由器,因为它将`Area 2`连接到了OSPF骨干`Area 0`。
区域边界路由器An Area Border Router, ABR是一台将一个或多个 OSPF 区域,连接到 OSPF 骨干的 OSPF 路由器。这就意味着其必须有一个接口在`Area 0`中,同时有其它接口在某个不同的 OSPF 区域中。区域边界路由器是所有其归属区域的成员且它们保有着每个其所归属区域的一个单独链路状态数据库ABRs are members of all areas to which they belong, and they keep a seperate Link State Database for every area to which they belong。参考图39.5, `R3`就应被认为是一台区域边界路由器,因为它将`Area 2`连接到了 OSPF 骨干`Area 0`。
而传统意义上的自治系统边界路由器则是位处路由域的边沿且定义了内部与外部网络的边界An Autonomous System Boundary Router(ASBR), in the traditional sense, resides at the edge of the routing domain and defines the boundary between the internal and the external networks。参考图39.5, `R2`将被认为是一台自治系统边界路由器。除了注入来自其它协议比如BGP的路由信息外在某台路由器将静态路由或是所连接的子网注入到OSPF网络时也可将其划分为自治系统边界路由器。
而传统意义上的自治系统边界路由器则是位处路由域的边沿且定义了内部与外部网络的边界An Autonomous System Boundary Router(ASBR), in the traditional sense, resides at the edge of the routing domain and defines the boundary between the internal and the external networks。参考图39.5, `R2`将被认为是一台自治系统边界路由器。除了注入来自其它协议(比如 BGP )的路由信息外,在某台路由器将静态路由或是所连接的子网,注入到 OSPF 网络时,也可将其划分为自治系统边界路由器。
内部路由器的所有运作接口都保持在单个的OSPF区域中。基于图39.5中演示的网络拓扑,`R4`将被视为一台内部路由器因为其仅有的接口处于单个的OSPF区域中。
内部路由器的所有运作接口,都保持在单个的 OSPF 区域中。基于图39.5中演示的网络拓扑,`R4`将被视为一台内部路由器,因为其仅有的接口,处于单个的 OSPF 区域中。
骨干路由器是那些有一个接口在OSPF骨干中的路由器。骨干路由器可以包括那些有着仅在OSPF骨干区域的接口的路由器或者有一个接口在OSPF骨干区域也有接口在其它区域的路由器也就是区域边界路由器。基于图39.5中演示的拓扑,路由器`R2`与`R3`都可被视为骨干路由器。
骨干路由器是那些有一个接口在 OSPF 骨干中的路由器。骨干路由器可以包括那些有着仅在 OSPF 骨干区域的接口的路由器,或者有一个接口在 OSPF 骨干区域也有接口在其它区域的路由器也就是区域边界路由器。基于图39.5中演示的拓扑,路由器`R2`与`R3`都可被视为骨干路由器。
> **注意:** OSPF的路由器可有多个角色。比如上面的`R2`就同时是一台自治系统边界路由器及骨干路由器,`R3`又同时是一台骨干路由器与区域边界路由器。贯穿本模块将详细审视这些类型的路由器与其在OSPF域中的角色与功能。
> **注意:** OSPF的路由器可有多个角色。比如上面的`R2`就同时是一台自治系统边界路由器及骨干路由器,`R3`又同时是一台骨干路由器与区域边界路由器。贯穿本模块,将详细审视这些类型的路由器与其在 OSPF 域中的角色与功能。
## OSPF数据包类型
OSPF路由器发出的不同类型数据包包含在这些数据包共有的、24字节的OSPF头部The different types of packets sent by OSPF routers are contained in the common 24-byte OSPF header。尽管对该OSPF头部细节的深入超出了CCNA考试要求的范围但对该头部中所包含的各个字段以及它们各自用途的基本掌握仍然重要。下图39.6对此各种数据包共有的24个八位OSPF头部进行了演示
OSPF路由器发出的不同类型数据包包含在这些数据包共有的、 24 字节的 OSPF 头部The different types of packets sent by OSPF routers are contained in the common 24-byte OSPF header。尽管对该 OSPF 头部细节的深入,超出了 CCNA 考试要求的范围但对该头部中所包含的各个字段以及它们各自用途的基本掌握仍然重要。下图39.6对此各种数据包共有的 24 个八位 OSPF 头部,进行了演示:
![OSPF协议数据包头部](images/3906.png)
*图 39.6 - OSPF协议数据包头部*
其中的8位版本字段指出了OSPF的版本。该字段的默认值是`2`。但在开启了OSPFv3时该字段就被设置为`3`。在第13天时对OSPFv3进行了详细介绍。
其中的 8 位版本字段,指出了 OSPF 的版本。该字段的默认值是`2`。但在开启了 OSPFv3 时,该字段就被设置为`3`。在第 13 天时,对 OSPFv3 进行了详细介绍。
接着的8位类型字段用于指明该OSPF数据包的类型。五种主要的OSPF数据包类型将在本课程模块接下来进行介绍它们是
接着的 8 位类型字段,用于指明该 OSPF 数据包的类型。五种主要的 OSPF 数据包类型,将在本课程模块接下来进行介绍,它们是:
- 类型1 = `Hello`数据包
- 类型2 = 数据库描述数据包Database Description packet
@ -266,29 +266,29 @@ OSPF路由器发出的不同类型数据包包含在这些数据包共有的
- 类型4 = 链路状态更新数据包Link State Update packet
- 类型5 = 链路状态确认数据包Link State Acknowledgement packet
随后的16位数据包长度字段是用于指明该协议数据包的长度。此长度包括了标准的OSPF头部。
随后的 16 位数据包长度字段,是用于指明该协议数据包的长度。此长度包括了标准的 OSPF 头部。
下面的32位路由器ID自动用于指明发出数据包的路由器的IP地址。在思科IOS设备上该字段将包含运行OSPF的设备上配置的所有物理接口的最高的IP地址。如在设备上配置了环回接口Loopback interfaces那么该字段将包含所有配置的环回接口的最高IP地址。或者在显式地有管理员配置或指定了路由器ID时该字段也可包含那个手动配置的路由器ID。
下面的 32 位路由器 ID 自动,用于指明发出数据包的路由器的 IP 地址。在思科 IOS 设备上,该字段将包含运行 OSPF 的设备上配置的所有物理接口的最高的 IP 地址。如在设备上配置了环回接口Loopback interfaces那么该字段将包含所有配置的环回接口的最高 IP 地址。或者在显式地有管理员配置或指定了路由器 ID 时,该字段也可包含那个手动配置的路由器 ID
> **注意:** 除非重启了路由器或者获取IP地址的那个接口被关闭或移除抑或在路由器上使用了提权的`EXEC`命令`clear ip ospf process`命令重置了OSPF进程否则在路由器ID被选出后该路由器ID都不会发生改变。
> **注意:** 除非重启了路由器,或者获取 IP 地址的那个接口被关闭或移除,抑或在路由器上使用了提权的`EXEC`命令`clear ip ospf process`命令重置了 OSPF 进程,否则在路由器 ID 被选出后,该路由器 ID 都不会发生改变。
接下来的32位区域IDArea ID用于区分该数据包的OSPF区域the OSPF area。数据包只能属于单个OSPF区域。在数据包是通过虚拟链路a virtual link接收到的时那么区域ID就会是OSPF的骨干区域也就是`Area 0`。本课程模块后面后对虚拟链路进行介绍。
接下来的 32 位区域 ID Area ID用于区分该数据包的 OSPF 区域the OSPF area。数据包只能属于单个 OSPF 区域。在数据包是通过虚拟链路a virtual link接收到的时那么区域 ID 就会是 OSPF 的骨干区域,也就是`Area 0`。本课程模块后面后对虚拟链路进行介绍。
校验和字段是16位长的它指出了该数据包完整内容从OSPF头部开始但排除了64位的认证数据字段的标准IP校验和。如该数据包的长度不是正数个的16位字16-bit words长时则会在进行检验和检查钱以全`0`字节加以补充。
校验和字段是 16 位长的,它指出了该数据包完整内容,从 OSPF 头部开始,但排除了 64 位的认证数据字段的标准 IP 校验和。如该数据包的长度不是正数个的 16 位字16-bit words长时则会在进行检验和检查钱以全`0`字节加以补充。
其后的16位认证类型字段The 16-bit Authentication(Auth) Type field指出所使用的认证的类型。该字段仅对OSPFv2有效且可能包含以下3个代码之一
其后的 16 位认证类型字段The 16-bit Authentication(Auth) Type field指出所使用的认证的类型。该字段仅对 OSPFv2 有效,且可能包含以下 3 个代码之一:
- `Code 0` - 意思是空(`0`)认证,也就是没有认证;这是默认选项
- `Code 1` - 表明认证类型是普通文本the authentication type is plain text
- `Code 2` - 意思是认证类型为消息摘要算法MD5, Message Digest Algorithm
OSPF头部最后的64位认证数据字段则是在开启了认证时用于具体的认证信息或数据。重要的是记住 **该字段仅对OSPFv2有效**。在使用的是普通文本认证时该自动包含了认证密钥the authentication key。但在使用的是MD5认证时该自动就被重新定义为几个其它字段不过这超出了CCNA考试要求范围。下图39.7显示了线路上捕获到的OSPF数据包的不同字段
OSPF头部最后的 64 位认证数据字段,则是在开启了认证时,用于具体的认证信息或数据。重要的是记住 **该字段仅对 OSPFv2 有效**。在使用的是普通文本认证时该自动包含了认证密钥the authentication key。但在使用的是 MD5 认证时,该自动就被重新定义为几个其它字段,不过这超出了 CCNA 考试要求范围。下图39.7显示了线路上捕获到的 OSPF 数据包的不同字段:
![OSPF数据包头部的线上捕获](images/3907.png)
*图 39.7 - OSPF数据包头部的线上捕获*
在OSPF数据包头部里头8位的类型字段用于指明OSPF数据包的类型。这里再度说明一下如下所示的5种OSPF数据包类型
OSPF 数据包头部里头, 8 位的类型字段用于指明 OSPF 数据包的类型。这里再度说明一下,如下所示的 5 OSPF 数据包类型:
- 类型1 = `Hello`数据包
- 类型2 = 数据库描述数据包Database Description packet
@ -299,9 +299,9 @@ OSPF头部最后的64位认证数据字段则是在开启了认证时
### OSPF `Hello` 数据包
`Hello`数据包用于发现其它直接相连的OSPF路由器以及在OSPF路由器之间建立OSPF临接关系OSPF adjacencies between OSPF routers。对于广播及点对点网络OSPF使用多播来发送`Hello`数据包。这些数据包被投送到`AllSPFRouters`多播组地址`224.0.0.5`。对于非广播链路比如帧中继OSPF使用单播Unicast来将`Hello`数据包直接发送给那些静态配置的邻居。
`Hello`数据包用于发现其它直接相连的 OSPF 路由器,以及在 OSPF 路由器之间建立 OSPF 临接关系OSPF adjacencies between OSPF routers。对于广播及点对点网络 OSPF 使用多播来发送`Hello`数据包。这些数据包被投送到`AllSPFRouters`多播组地址`224.0.0.5`。对于非广播链路(比如帧中继), OSPF 使用单播( Unicast )来将`Hello`数据包直接发送给那些静态配置的邻居。
> **注意:** 默认情况下所有OSPF数据包也就是包括多播与单播都是以IP存活时间TTL, Time To Live`1`发送的。这就将这些数据包限制到本地链路。也就是说无法与距离远于一挑的另一台路由器建立OSPF临接关系。这一点也适用于EIGRP。
> **注意:** 默认情况下,所有 OSPF 数据包(也就是包括多播与单播),都是以 IP 存活时间TTL, Time To Live`1`发送的。这就将这些数据包限制到本地链路。也就是说,无法与距离远于一挑的另一台路由器建立 OSPF 临接关系。这一点也适用于 EIGRP
OSPF的`Hello`数据包,还在广播链路上用于指定路由器与后备指定路由器的选举。指定路由器仅侦听多播地址`224.0.0.6``AllDRRouters`。本课程模块前面已经介绍了指定与后备指定路由器。下图39.8演示了OSPF`Hello`数据包中所包含的字段:
@ -309,56 +309,56 @@ OSPF的`Hello`数据包,还在广播链路上用于指定路由器与后备指
*图 39.8 - OSPF的`Hello`数据包*
其中 **4字节的网络掩码字段**包含了通告OSPF接口的子网掩码 **The 4-byte Network Mask field** contains the subnet mask of the advertising OSPF interface。只有在广播介质上才会检查子网掩码。对于本模块后面会介绍的未编号的点对点接口及虚拟链路该字段将被设置为`0.0.0.0`。
其中 **4字节的网络掩码字段**包含了通告 OSPF 接口的子网掩码( **The 4-byte Network Mask field** contains the subnet mask of the advertising OSPF interface。只有在广播介质上才会检查子网掩码。对于本模块后面会介绍的未编号的点对点接口及虚拟链路该字段将被设置为`0.0.0.0`。
后面两字节的`Hello`字段,显示`Hello`时间间隔,也就是两个`Hello`数据包之间的秒数,通告路由器要求此字段。其取值范围为`1`到`255`。在广播与点对点介质上的默认值为`10`,在所有其它介质上的默认值为`30`。
随后1字节的选项字段The 1-byte Options field是由本地路由器用于通告可选功能optional capatibilities。选项字段中的每一位都表示了不同的功能。深入了解这些位所对应的功能超出了CCNA考试要求范围。
随后 1 字节的选项字段The 1-byte Options field是由本地路由器用于通告可选功能optional capatibilities。选项字段中的每一位都表示了不同的功能。深入了解这些位所对应的功能超出了 CCNA 考试要求范围。
后面的1字节路由器优先级字段The 1-byte Router Priority field包含了本地路由器的优先级。默认该字段的值为`1`。该值用于指定与后备指定路由器的选举。可能的取值范围为`0`到`255`。优先级越高,那么该本地路由器就越有机会成为指定路由器。优先级值`0`就意味着该本地路由器不会参与指定或后备指定路由器的选举。
后面的 1 字节路由器优先级字段The 1-byte Router Priority field包含了本地路由器的优先级。默认该字段的值为`1`。该值用于指定与后备指定路由器的选举。可能的取值范围为`0`到`255`。优先级越高,那么该本地路由器就越有机会成为指定路由器。优先级值`0`就意味着该本地路由器不会参与指定或后备指定路由器的选举。
接下来的4字节指定路由器字段列出指定路由器的IP地址。在比如某个点对点链路上或当某台路由器已被显式地配置为不参与此选举时于尚无指定路由器选出时就使用值`0.0.0.0`。
接下来的 4 字节指定路由器字段,列出指定路由器的 IP 地址。在比如某个点对点链路上,或当某台路由器已被显式地配置为不参与此选举时,于尚无指定路由器选出时,就使用值`0.0.0.0`。
其后的4字节后备指定路由器字段标识出后备路由器并列出当前后备指定路由器的接口地址。在没有选出后备指定路由器时就使用值`0.0.0.0`。
其后的 4 字节后备指定路由器字段,标识出后备路由器,并列出当前后备指定路由器的接口地址。在没有选出后备指定路由器时,就使用值`0.0.0.0`。
最后的活动邻居字段the (Active) Neighbour field是一个可变长度的字段显示网段上的所有已接收到`Hello`数据包的OSPF路由器。
最后的活动邻居字段the (Active) Neighbour field是一个可变长度的字段显示网段上的所有已接收到`Hello`数据包的 OSPF 路由器。
### 数据库描述数据包Database Description Packets
在各台OSPF路由器对其本地数据库信息进行通告时于数据库交换期间就要用到数据库描述数据包。这些数据包通常被称作DBD数据包或DD数据包。第一个DBD数据包用于数据库交换过程的主从选举。DBD数据包还包含了由主路由器选定的初始序列编号The first DBD packet is used for the Master and Slave election for database exchange. The DBD packet also contains the initial sequence number selected by the Master。有着较高路由器ID的路由器成为主路由器并发起数据库同步过程。只有主路由器才能增加DBD数据包中的序列编号。主路由器开启数据库交换并对从路由器进行信息轮询。数据库交换中的主从选举是在邻居对的基础上进行的。
在各台 OSPF 路由器对其本地数据库信息进行通告时,于数据库交换期间,就要用到数据库描述数据包。这些数据包通常被称作 DBD 数据包或 DD 数据包。第一个 DBD 数据包用于数据库交换过程的主从选举。 DBD 数据包还包含了由主路由器选定的初始序列编号The first DBD packet is used for the Master and Slave election for database exchange. The DBD packet also contains the initial sequence number selected by the Master。有着较高路由器 ID 的路由器,成为主路由器并发起数据库同步过程。只有主路由器才能增加 DBD 数据包中的序列编号。主路由器开启数据库交换,并对从路由器进行信息轮询。数据库交换中的主从选举,是在邻居对的基础上进行的。
明白主从选举过程不同于指定与后备指定路由器的选举过程尤为重要。通常后错误地假定它们一致This is commonly incorrectly assumed。主从选举过程只基于有着最高IP地址的路由器两台邻居路由器之间一条原则但指定与后备指定路由器选举过程则由IP地址或优先级值两个因素决定。
明白主从选举过程不同于指定与后备指定路由器的选举过程尤为重要。通常后错误地假定它们一致This is commonly incorrectly assumed。主从选举过程只基于有着最高 IP 地址的路由器(两台邻居路由器之间)一条原则;但指定与后备指定路由器选举过程,则由 IP 地址或优先级值两个因素决定。
比如这里假设,两台名为`R1`与`R2`的路由器开始了临接关系建立过程。`R1`有着路由器ID`1.1.1.1`,同时`R2`有着路由器ID`2.2.2.2`。网络管理员将`R1`的OSPF优先级值配置为`255`以确保该路由器被选举为指定路由器。在主从关系确定过程中,`R2`因为有着较高的路由器ID优势而将被选举为主路由器。但在`R1`上配置的优先级值,导致`R1`被选举为指定路由器。而实际上,在主从选举过程中,作为指定路由器的`R1`就可作为从路由器。
比如这里假设,两台名为`R1`与`R2`的路由器开始了临接关系建立过程。`R1`有着路由器ID`1.1.1.1`,同时`R2`有着路由器ID`2.2.2.2`。网络管理员将`R1`的 OSPF 优先级值配置为`255`以确保该路由器被选举为指定路由器。在主从关系确定过程中,`R2`因为有着较高的路由器 ID 优势,而将被选举为主路由器。但在`R1`上配置的优先级值,导致`R1`被选举为指定路由器。而实际上,在主从选举过程中,作为指定路由器的`R1`就可作为从路由器。
在选出了主从路由器后本地路由器就通过往对方路由器发送LSA头部而使用DBD数据包对本地数据库进行概括After the Master and Slave have been elected, DBD packets are used to summarise the local database by sending LSA headers to the remote router. LSALink-State Advertisement, 链路状态通告。远端路由器分析这些头部以判断在其自己的LSDB拷贝中是否缺少什么信息。下图39.9中对数据库描述数据包进行了演示:
在选出了主从路由器后,本地路由器就通过往对方路由器发送 LSA 头部,而使用 DBD 数据包对本地数据库进行概括After the Master and Slave have been elected, DBD packets are used to summarise the local database by sending LSA headers to the remote router. LSALink-State Advertisement, 链路状态通告)。远端路由器分析这些头部,以判断在其自己的 LSDB 拷贝中是否缺少什么信息。下图39.9中对数据库描述数据包进行了演示:
![OSPF的数据库描述数据包](images/3909.png)
*图 39.9 - OSPF的数据库描述数据包*
在DBD数据包中两字节的接口MTU字段包含了发出接口的8位二进制的MTU值the 2-byte Interface MTU field contains the MTU value, in octets, of the outgoing interface。也就是说该字段包含了通过相关接口所能发送的最大数据大小以字节计。当在虚拟链路上使用接口时该字段就被设置为值`0x0000`。有了成功建立OSPF的邻居临接关系所有路由器上的MTU必须一致。如在一台路由器上修改了这个值就必须在相同子网的所有其它路由器上配置同样的值或使用`ip ospf mtu-ignore`命令)。
DBD 数据包中,两字节的接口 MTU 字段包含了发出接口的 8 位二进制的 MTU the 2-byte Interface MTU field contains the MTU value, in octets, of the outgoing interface。也就是说该字段包含了通过相关接口所能发送的最大数据大小以字节计。当在虚拟链路上使用接口时该字段就被设置为值`0x0000`。有了成功建立 OSPF 的邻居临接关系,所有路由器上的 MTU 必须一致。如在一台路由器上修改了这个值,就必须在相同子网的所有其它路由器上配置同样的值(或使用`ip ospf mtu-ignore`命令)。
> **注意:** 对于EIGRP来说不必为了成功建立EIGRP的邻居关系而要求接口MTU一致。
> **注意:** 对于 EIGRP 来说,不必为了成功建立 EIGRP 的邻居关系,而要求接口 MTU 一致。
随后的1字节选项字段包含的是与OSPF`Hello`数据包相同的选项。为简明起见,不再对这些选项进行描述。
随后的 1 字节选项字段包含的是与OSPF`Hello`数据包相同的选项。为简明起见,不再对这些选项进行描述。
其后的数据库描述或标志字段是一个1字节的、在临接关系形成过程中提供某台OSPF路由器可否就多个DBD数据包与邻居进行交换的能力的字段The Database Description or Flags field is a 1-byte field that provides an OSPF router with the capability to exchange multiple DBD packets with a neighbour during an adjacency formation
其后的数据库描述或标志字段,是一个 1 字节的、在临接关系形成过程中,提供某台 OSPF 路由器可否就多个 DBD 数据包与邻居进行交换的能力的字段The Database Description or Flags field is a 1-byte field that provides an OSPF router with the capability to exchange multiple DBD packets with a neighbour during an adjacency formation
接着的4字节DBD序列号字段The 4-byte Sequence Number field通过使用一个序列号而用于确保所有DBD数据包在同步过程中得以接收与处理。主路由器在第一个DBD数据包中将该字段初始化为一个独特值其后的每个数据包的序列号都增加`1`。序列号的增加,仅由主路由器进行。
接着的 4 字节 DBD 序列号字段The 4-byte Sequence Number field通过使用一个序列号而用于确保所有 DBD 数据包在同步过程中,得以接收与处理。主路由器在第一个 DBD 数据包中,将该字段初始化为一个独特值,其后的每个数据包的序列号都增加`1`。序列号的增加,仅由主路由器进行。
最后的可变长度LSA头部字段the variable length LSA Header运送的是描述本地路由器信息的多个LSA头部。每个头部长度为20个8位二进制数并对数据库中的各个LSA进行唯一地区别。每个DBD数据包可包含多个LSA头部。
最后的可变长度 LSA 头部字段the variable length LSA Header运送的是描述本地路由器信息的多个 LSA 头部。每个头部长度为 20 8 位二进制数,并对数据库中的各个 LSA 进行唯一地区别。每个 DBD 数据包可包含多个 LSA 头部。
### 链路状态请求数据包Link State Request Packets
链路状态请求数据包是由OSPF路由器发送的用以请求缺失的或过期的数据库信息。这些数据包包含了对所请求的链路状态通告进行独特描述的标识符。单个的链路状态请求数据包可能包含了请求多条链路状态通告的单个的标识符集或多个的标识符集。链路状态请求数据包还用于在数据库交换之后的对数据库交换期间本地路由器不曾有的那些链路状态通告的请求。下图39.10对OSPF的链路状态请求数据包格式的演示
链路状态请求数据包,是由 OSPF 路由器发送的用以请求缺失的或过期的数据库信息。这些数据包包含了对所请求的链路状态通告进行独特描述的标识符。单个的链路状态请求数据包可能包含了请求多条链路状态通告的单个的标识符集或多个的标识符集。链路状态请求数据包还用于在数据库交换之后的对数据库交换期间本地路由器不曾有的那些链路状态通告的请求。下图39.10对 OSPF 的链路状态请求数据包格式的演示:
![OSPF链路状态请求数据包](images/3910.png)
*图 39.10 - OSPF链路状态请求数据包*
其中的4字节链路状态通告类型字段The 4-byte Link State Advertisement Type field包含了所请求的链路状态通告类型。其可包含下列字段之一
其中的 4 字节链路状态通告类型字段The 4-byte Link State Advertisement Type field包含了所请求的链路状态通告类型。其可包含下列字段之一
- 类型1 = 路由器链路状态通告
- 类型2 = 网络链路状态通告
@ -368,43 +368,43 @@ OSPF的`Hello`数据包,还在广播链路上用于指定路由器与后备指
- 类型6 = 多播链路状态通告
- 类型7 = 次末梢区域外部链路状态通告Not-So-Stubby Area, NSSA
- 类型8 = 外部属性链路状态通告External Attributes Link State Advertisement
- 类型9 = 本地链路的不透明链路状态通告Opaque LSA - Link Local, *目前主要用于MPLS多协议标签交换协议
- 类型10 = 区域的不透明链路状态通告Opaque LSA - Area, *目前主要用于MPLS多协议标签交换协议
- 类型11 = 自治系统的不透明链路状态通过Opaque LSA - Autonomous System, *目前主要用于MPLS多协议标签交换协议
- 类型9 = 本地链路的不透明链路状态通告Opaque LSA - Link Local, *目前主要用于 MPLS 多协议标签交换协议)
- 类型10 = 区域的不透明链路状态通告Opaque LSA - Area, *目前主要用于 MPLS 多协议标签交换协议)
- 类型11 = 自治系统的不透明链路状态通过Opaque LSA - Autonomous System, *目前主要用于 MPLS 多协议标签交换协议)
> **注意:** 一些上面列出的链路状态通告将在后面的小节进行讲解。
4字节的链路状态ID字段编码了特定于LSA的信息。包含在该字段的信息根据LSA的种类而有所不同。最后的4字节通告路由器字段包含的是最先发起LSA的路由器的路由器ID。
4字节的链路状态 ID 字段,编码了特定于 LSA 的信息。包含在该字段的信息根据 LSA 的种类而有所不同。最后的 4 字节通告路由器字段,包含的是最先发起 LSA 的路由器的路由器 ID
### 链路状态更新数据包Link State Update Packets
链路状态更新LSU数据包是由路由器用于对链路状态通告进行通告的数据包advertise Link State Advertisements。链路状态更新数据包可以是到OSPF邻居的单播作为从邻居处接收到链路状态请求的回应。然而最为常见的是它们被可靠地在整个网络中泛洪到`AllSPFRouters`多播组地址`224.0.0.5`直到所有路由器都有一份数据库的拷贝位置。所泛洪的更新于随后在链路状态通告的确认数据包中加以确认。如链路状态通告未被确认就会默认每隔5秒加以重传。下图39.11展示了一个发送给某个邻居的、作为LSR响应的链路状态更新数据包
链路状态更新( LSU 数据包是由路由器用于对链路状态通告进行通告的数据包advertise Link State Advertisements。链路状态更新数据包可以是到 OSPF 邻居的单播,作为从邻居处接收到链路状态请求的回应。然而最为常见的是,它们被可靠地在整个网络中泛洪到`AllSPFRouters`多播组地址`224.0.0.5`,直到所有路由器都有一份数据库的拷贝位置。所泛洪的更新,于随后在链路状态通告的确认数据包中加以确认。如链路状态通告未被确认,就会默认每隔 5 秒加以重传。下图39.11展示了一个发送给某个邻居的、作为 LSR 响应的链路状态更新数据包:
![单播的LSU数据包](images/3911.png)
![单播的 LSU 数据包](images/3911.png)
*图 39.11 - 单播的LSU数据包*
*图 39.11 - 单播的 LSU 数据包*
下图 39.12 演示了一个可靠地泛洪到多播组地址`224.0.0.5`的LSU
下图 39.12 演示了一个可靠地泛洪到多播组地址`224.0.0.5`的 LSU
![多播LSU数据包](images/3912.png)
![多播 LSU 数据包](images/3912.png)
*图 39.12 - 多播LSU数据包*
*图 39.12 - 多播 LSU 数据包*
链路状态更新数据包由两部分构成。第一部分是4字节的链路状态通告数目字段the 4-byte Number of LSAs field。该字段显式了LSU数据包中所运送的LSA条数。第二部分则是一条或多条的链路状态通告。此可变长度字段包含了完整的LSA。每种类型的LSA都有共同的头部格式与其各自特定的用来描述各自信息的数据字段。一个LSU数据包可包含单一的LSA或多条的LSA。
链路状态更新数据包由两部分构成。第一部分是 4 字节的链路状态通告数目字段the 4-byte Number of LSAs field。该字段显式了 LSU 数据包中所运送的 LSA 条数。第二部分则是一条或多条的链路状态通告。此可变长度字段包含了完整的 LSA 。每种类型的 LSA 都有共同的头部格式,与其各自特定的用来描述各自信息的数据字段。一个 LSU 数据包可包含单一的 LSA 或多条的 LSA
### 链路状态确认数据包Link State Acknowledgement Packets
链路状态确认数据包LSAck用于对各条LSA进行确认及作为对LSU数据包的响应。通过显式地使用链路状态确认数据包来对泛洪的数据包加以确认OSPF所使用的泛洪机制被认为是可靠的。
链路状态确认数据包( LSAck )用于对各条 LSA 进行确认及作为对 LSU 数据包的响应。通过显式地使用链路状态确认数据包来对泛洪的数据包加以确认, OSPF 所使用的泛洪机制被认为是可靠的。
链路状态确认数据包包含了一般的OSPF头部以及随后的一个LSA头部清单。此可变长度字段允许本地路由器以单个数据包对多条LSA进行确认。链路状态确认数据包是以多播发送的。在多路访问网络上如果发送LSAck的是指定或后备指定路由器那么这些LSAck就被发送到多播组地址`224.0.0.5``AllSPFRouters`。而如果发送LSAck的不是指定或后备指定路由器那么这些LSAck数据包就被发送到多播组地址`224.0.0.6``AllDRRouters`。下图39.13对LSAck的格式进行了演示
链路状态确认数据包包含了一般的 OSPF 头部,以及随后的一个 LSA 头部清单。此可变长度字段允许本地路由器以单个数据包对多条 LSA 进行确认。链路状态确认数据包是以多播发送的。在多路访问网络上,如果发送 LSAck 的是指定或后备指定路由器,那么这些 LSAck 就被发送到多播组地址`224.0.0.5``AllSPFRouters`)。而如果发送 LSAck 的不是指定或后备指定路由器,那么这些 LSAck 数据包就被发送到多播组地址`224.0.0.6``AllDRRouters`。下图39.13对 LSAck 的格式进行了演示:
![链路状态确认数据包](images/3913.png)
*图 39.13 - 链路状态确认数据包*
总之重要的是记住不同的OSPF数据包类型及它们所包含的信息。这将不仅有助于考试也可在将OSPF作为一个协议的整个运作进行掌握的过程中有所裨益。
总之,重要的是记住不同的 OSPF 数据包类型及它们所包含的信息。这将不仅有助于考试,也可在将 OSPF 作为一个协议的整个运作进行掌握的过程中有所裨益。
在思科IOS软件中可使用`show ip ospf traffic`命令来查看OSPF数据包的统计信息。该命令展示了发送及接收道德OSPF数据包的总数并将这些OSPF数据包细分到单独的OSPF进程最终又细分到具体进程下开启了OSPF进程的各个接口上。该命令也可用于对OSPF临接关系建立的故障排除其作为调试用途时不是处理器占用密集的方式。下面的输出中演示了该命令所打印的信息
在思科 IOS 软件中,可使用`show ip ospf traffic`命令来查看 OSPF 数据包的统计信息。该命令展示了发送及接收道德 OSPF 数据包的总数,并将这些 OSPF 数据包细分到单独的 OSPF 进程,最终又细分到具体进程下开启了 OSPF 进程的各个接口上。该命令也可用于对 OSPF 临接关系建立的故障排除,其作为调试用途时,不是处理器占用密集的方式。下面的输出中演示了该命令所打印的信息:
```console
R4#show ip ospf traffic
@ -479,27 +479,27 @@ Summary traffic statistics for process ID 4:
## 临接关系的建立Establishing Adjacencies
运行OSPF的路由器在建立临接关系之前会经历几种状态。在这些状态期间路由器要交换不同类型的数据包。这些报文交换令到所有路由器建立起临接关系以具备网络的持久视图。随后对当前网络的变更就增量更新发送出去。这些状态分别是`Down`、`Attempt`、`Init`、`2-way`、`Exstart`、`Exchange`、`Loading`以及`Full states`,如下所示:
运行 OSPF 的路由器在建立临接关系之前,会经历几种状态。在这些状态期间,路由器要交换不同类型的数据包。这些报文交换令到所有路由器建立起临接关系,以具备网络的持久视图。随后对当前网络的变更,就增量更新发送出去。这些状态分别是:`Down`、`Attempt`、`Init`、`2-way`、`Exstart`、`Exchange`、`Loading`以及`Full states`,如下所示:
- `Down`状态就是所有OSPF路由器的开始状态。然而即便在所指定的路由器死亡间隔那个接口尚未接收到`Hello`数据包本地路由器仍可在此状态中显示出一个邻居However, the local router may also show a neighbour in this state when no Hello packets have been recieved within the specified router dead interval for that interface
- `Attempt`状态仅对那些非广播多路访问网络上的OSPF邻居有效。在该状态中已发出了一个`Hello`数据包,但尚未在死亡间隔中接收到来自静态配置的邻居的信息;但会尽力与该邻居建立临接关系。
- 在OSPF路由器接收到来自邻居的`Hello`数据包而本地路由器ID并未在接收到的邻居字段the received Neighbor field中列出时就到了`Init`状态。如OSPF`Hello`数据包的参数不匹配比如各种计时器值等那么OSPF路由器就再也不会进到此状态之后的状态了。
- `2-way`状态表明OSPF邻居之间的双向通信各台路由器已看到其它路由器的`Hello`数据包。在该状态中本地路由器已接收到一个在邻居字段中有着其自己的路由器ID的`Hello`数据包,同时两台路由器上的`Hello`数据包参数也是一致的。在此状态时,路由器就确定是否与这个邻居成为临接。在多路访问网络上,指定与后备指定路由器在此阶段得以选举出来。
- `Exstart`状态用于数据库同步过程的初始化。本地路由器与其邻居在这个阶段确立何者负责数据库同步过程。在该状态中主从路由器被选举出来同时在该阶段DBD交换的首个顺序编号有主路由器确定下来。
- `Exchange`状态就是路由器使用DBD数据包对它们的数据库内容进行描述的地方。各个DBD序列被显式的确认同时一次只允许一个突出的DBD。在此期间LSR数据包已被发出以请求LSA的一个新的实例Each DBD sequence is explicitly acknowledged, and only one outstanding DBD is allowed at a time. During this phase, LSR packets are also sent to request a new instance of the LSA。在此阶段`M`更多位被用于请求缺失的信息The `M`(More) bit is used to request missing information during this stage。在两台路由器都完成了其完整数据库的交换后它们将把该`M`位设置为`0`。
- 在`Loading`状态OSPF构造出一个LSR与链路状态重传清单。LSR数据包被发出以请求某个LSA的较近期的、尚未在`Exchange`过程中接收到的实例。在此阶段发出的更新被置于链路状态重传清单之上直到本地路由器接收到确认为止。如本地路由器在阶段又接收到LSR那么它将以包含了所请求信息的链路状态更新予以响应。
- `Full`状态表明OSPF的邻居们已经完成了它们整个数据库的交换且都达成一致也就是它们有着网络的同样视图。处于该状态的两台路由器就将该临接关系加入到它们的本地数据库并就此关系在链路状态更新数据包中加以通告。到这里路由表被计算出来或在临接关系被重置后被重新计算出来。`Full`正是一台OSPF路由器的正常状态。如果某台路由器被卡在了另一状态那么就表明临接关系的形成中存在故障。对此的唯一例外就是`2-way`状态,该状态对于其中路由器仅到达指定或后备指定的`Full`状态的广播与非广播多路访问网络,就是所谓的正常状态。其它邻居总是将各自视为`2-way`的。
- `Down`状态就是所有 OSPF 路由器的开始状态。然而,即便在所指定的路由器死亡间隔,那个接口尚未接收到`Hello`数据包本地路由器仍可在此状态中显示出一个邻居However, the local router may also show a neighbour in this state when no Hello packets have been recieved within the specified router dead interval for that interface
- `Attempt`状态仅对那些非广播多路访问网络上的 OSPF 邻居有效。在该状态中,已发出了一个`Hello`数据包,但尚未在死亡间隔中接收到来自静态配置的邻居的信息;但会尽力与该邻居建立临接关系。
- 在 OSPF 路由器接收到来自邻居的`Hello`数据包,而本地路由器 ID 并未在接收到的邻居字段the received Neighbor field中列出时就到了`Init`状态。如OSPF`Hello`数据包的参数不匹配,比如各种计时器值等,那么 OSPF 路由器就再也不会进到此状态之后的状态了。
- `2-way`状态表明 OSPF 邻居之间的双向通信(各台路由器已看到其它路由器的`Hello`数据包)。在该状态中,本地路由器已接收到一个在邻居字段中有着其自己的路由器 ID 的`Hello`数据包,同时两台路由器上的`Hello`数据包参数也是一致的。在此状态时,路由器就确定是否与这个邻居成为临接。在多路访问网络上,指定与后备指定路由器在此阶段得以选举出来。
- `Exstart`状态用于数据库同步过程的初始化。本地路由器与其邻居在这个阶段确立何者负责数据库同步过程。在该状态中主从路由器被选举出来,同时在该阶段 DBD 交换的首个顺序编号有主路由器确定下来。
- `Exchange`状态就是路由器使用 DBD 数据包对它们的数据库内容进行描述的地方。各个 DBD 序列被显式的确认,同时一次只允许一个突出的 DBD 。在此期间, LSR 数据包已被发出,以请求 LSA 的一个新的实例Each DBD sequence is explicitly acknowledged, and only one outstanding DBD is allowed at a time. During this phase, LSR packets are also sent to request a new instance of the LSA。在此阶段`M`更多位被用于请求缺失的信息The `M`(More) bit is used to request missing information during this stage。在两台路由器都完成了其完整数据库的交换后它们将把该`M`位设置为`0`。
- 在`Loading`状态, OSPF 构造出一个 LSR 与链路状态重传清单。 LSR 数据包被发出,以请求某个 LSA 的较近期的、尚未在`Exchange`过程中接收到的实例。在此阶段,发出的更新被置于链路状态重传清单之上,直到本地路由器接收到确认为止。如本地路由器在阶段又接收到 LSR ,那么它将以包含了所请求信息的链路状态更新予以响应。
- `Full`状态表明 OSPF 的邻居们已经完成了它们整个数据库的交换,且都达成一致(也就是它们有着网络的同样视图)。处于该状态的两台路由器就将该临接关系加入到它们的本地数据库,并就此关系在链路状态更新数据包中加以通告。到这里,路由表被计算出来,或在临接关系被重置后被重新计算出来。`Full`正是一台 OSPF 路由器的正常状态。如果某台路由器被卡在了另一状态,那么就表明临接关系的形成中存在故障。对此的唯一例外就是`2-way`状态,该状态对于其中路由器仅到达指定或后备指定的`Full`状态的广播与非广播多路访问网络,就是所谓的正常状态。其它邻居总是将各自视为`2-way`的。
为了成功建立临接关系,两台路由器上的一些参数必须匹配。包括以下这些参数:
- 接口的MTU值可被配置为忽略
- 接口的 MTU 值(可被配置为忽略)
- `Hello`与死亡计时器
- 区域ID
- 认证类型与口令
- 末梢区域标志The Stub Area flag
- 兼容的网络类型Compatible network types
本课程模块将陆续对这些参数进行介绍。如这些参数不匹配那么OSPF的临接关系将绝不会完整建立。
本课程模块将陆续对这些参数进行介绍。如这些参数不匹配,那么 OSPF 的临接关系将绝不会完整建立。
> **注意:** 处理不匹配的参数,还要记住在多路访问网络上,如两台路由器都配置了优先级值`0`那么临接关系也不会建立。在这类网络上必须要有指定路由器The DR must be present on such network types
@ -507,10 +507,10 @@ Summary traffic statistics for process ID 4:
**OSPF LSAs and the Link State Database(LSDB)**
如同前面的小节中指出的OSPF用到好几种类型的链路状态通告。每种链路状态通告都以标准的20字节链路状态通告头部开始。该标准LSA头部包括下面这些字段
如同前面的小节中指出的, OSPF 用到好几种类型的链路状态通告。每种链路状态通告都以标准的 20 字节链路状态通告头部开始。该标准 LSA 头部包括下面这些字段:
- 链路状态的老化时间Link State Age
- 选项Options
- 选项( Options
- 链路状态的类型
- 链路状态的ID
- 通告的路由器
@ -518,35 +518,35 @@ Summary traffic statistics for process ID 4:
- 链路状态的校验和
- 长度
两字节的链路状态老化时间字段指出自该LSA生成开始所历经的时间以秒计。LSA的最大老化时间是3600秒1小时这就意味着LSA的老化时间达到3600秒时其就被移除数据库。为避免被移除每隔1800秒对LSA进行更新。
两字节的链路状态老化时间字段,指出自该 LSA 生成开始所历经的时间(以秒计)。 LSA 的最大老化时间是 3600 秒( 1 小时),这就意味着 LSA 的老化时间达到 3600 秒时,其就被移除数据库。为避免被移除,每隔 1800 秒对 LSA 进行更新。
一字节的选项字段包含了与OSPF`Hello`数据包同样的选项。
一字节的链路状态类型字段表示LSA的类型。LSA数据包不同的类型在后面的小节中介绍。
一字节的链路状态类型字段,表示 LSA 的类型。 LSA 数据包不同的类型,在后面的小节中介绍。
四字节的链路状态ID字段标识出由该LSA所描述的网络的一部分。该字段的内容取决于通告的链路状态类型。
四字节的链路状态 ID 字段,标识出由该 LSA 所描述的网络的一部分。该字段的内容,取决于通告的链路状态类型。
四字节的通告路由器字段表示了产生该LSA的路由器的路由器ID。
四字节的通告路由器字段,表示了产生该 LSA 的路由器的路由器 ID
四字节的链路状态顺序编号字段,对旧的或重复的链路状态通告进行探测。第一个顺序编号`0x80000000`是保留的;因此实际的第一个顺序编号总是`0x80000001`。该值随着数据包的不断发出而增加。最大的顺序编号为`0x7FFFFFFF`。
> **注意:** 这里使用了补码表示有正负的整数,因此`0x80000000`就是整数`0``0x80000001`就是整数`1`。
两字节的链路状态校验和字段对LSA的包括LSA头部的全部内容执行弗莱彻校验和运算the Fletcher checksum, 参见[wikipedia:Fletcher's checksum](https://en.wikipedia.org/wiki/Fletcher%27s_checksum)。链路状态老化时间字段未包含在校验和中。进行校验和计算的原因是因为在LSA存储于内存中期间可能由于路由器软件或硬件问题或在LSA泛洪期间由于物理层错误等原因而造成LSA的失准。
两字节的链路状态校验和字段,对 LSA 的包括 LSA 头部的全部内容执行弗莱彻校验和运算the Fletcher checksum, 参见[wikipedia:Fletcher's checksum](https://en.wikipedia.org/wiki/Fletcher%27s_checksum))。链路状态老化时间字段未包含在校验和中。进行校验和计算的原因,是因为在 LSA 存储于内存中期间,可能由于路由器软件或硬件问题,或在 LSA 泛洪期间,由于物理层错误等原因,而造成 LSA 的失准。
> **注意:** 在LSA被生成或接收到时就会进行校验和的计算。此外每个`CheckAge`间隔也就是10分钟也会进行校验和计算。如该字段的值为`0`,那就是说没有进行校验和计算。
> **注意:** LSA 被生成或接收到时,就会进行校验和的计算。此外,每个`CheckAge`间隔,也就是 10 分钟,也会进行校验和计算。如该字段的值为`0`,那就是说没有进行校验和计算。
两字节的长度字段是头部最后的字段包含了该LSA的长度值以字节计。长度值包含了20字节的LSA头部。下图39.13对LSA头部进行了演示
两字节的长度字段,是头部最后的字段,包含了该 LSA 的长度值(以字节计)。长度值包含了 20 字节的 LSA 头部。下图39.13对 LSA 头部进行了演示:
![链路状态通告的头部](images/3913.png)
*图 39.13 - 链路状态通告的头部*
尽管OSPF支持11中不同类型的链路状态通告但仅有LSA类型`1`、`2`与`3`用于计算内部路由而LSA类型`4`、`5`及`7`则是用于计算外部路由从而超出了CCNA考试要求范围。因为出于CCNA考试目的没有必要深入其它类型LSA的细节所以这些LSA不会在本手册中进行介绍。但可在[in60days.com](http://www.in60days.com)上找到有关它们的一个简要提纲与可打印手册。
尽管 OSPF 支持 11 中不同类型的链路状态通告,但仅有 LSA 类型`1`、`2`与`3`用于计算内部路由,而 LSA 类型`4`、`5`及`7`,则是用于计算外部路由,从而超出了 CCNA 考试要求范围。因为出于 CCNA 考试目的没有必要深入其它类型 LSA 的细节,所以这些 LSA 不会在本手册中进行介绍。但可在[in60days.com](http://www.in60days.com)上找到有关它们的一个简要提纲与可打印手册。
在思科IOS软件中要查看链路状态数据库的内容就使用`show ip ospf database`命令。在不带关键字使用此命令时将打印出路由器连接的所有区域的LSA汇总。该命令支持几个有着更高的粒度的关键字从而允许管理员将输出限制到仅特定类型LSA、仅由本地路由器通告的LSA甚至OSPF中其它路由器通告的LSA。
在思科 IOS 软件中,要查看链路状态数据库的内容,就使用`show ip ospf database`命令。在不带关键字使用此命令时,将打印出路由器连接的所有区域的 LSA 汇总。该命令支持几个有着更高的粒度的关键字,从而允许管理员将输出限制到仅特定类型 LSA 、仅由本地路由器通告的 LSA ,甚至 OSPF 中其它路由器通告的 LSA
尽管对每个关键字用法的输出进行演示是不现实的但下面的小节仍对不同类型的LSA以及与`show ip ospf database`命令结合使用从而查看到这些LSA的详细信息的一些常见关键字进行了介绍。该命令所支持的关键字在下面的输出中进行了演示
尽管对每个关键字用法的输出进行演示是不现实的,但下面的小节仍对不同类型的 LSA ,以及与`show ip ospf database`命令结合使用从而查看到这些 LSA 的详细信息的一些常见关键字,进行了介绍。该命令所支持的关键字,在下面的输出中进行了演示:
```console
R3#show ip ospf database ?
@ -566,53 +566,53 @@ R3#show ip ospf database ?
<cr>
```
### 路由器链路状态通告类型1
### 路由器链路状态通告(类型 1
**Router Links State Advertisements(Type 1)**
类型1的LSA是由各台路由器为其所属的各个区域所生成的。路由器LSA列出了始发路由器的路由器IDThe router LSA lists the originating router's router ID。每台单个的路由器都将为其所处的区域生成一条类型1的LSA。路由器LSA是`show ip ospf database`命令输出中最先打印出的LSA类型。
类型 1 LSA ,是由各台路由器为其所属的各个区域所生成的。路由器 LSA 列出了始发路由器的路由器 ID The router LSA lists the originating router's router ID。每台单个的路由器都将为其所处的区域生成一条类型 1 LSA 。路由器 LSA 是`show ip ospf database`命令输出中最先打印出的 LSA 类型。
### 网络链路状态通告类型2
### 网络链路状态通告(类型 2
**Network Link State Advertisements(Type 2)**
OSPF使用网络链路状态通告类型2的LSA来在多路访问网段上对路由器进行通告OSPF uses the Network Link State Advertisement(Type 2 LSA) to advertise the routers on the Multi-Access segment。此类LSA是由指定路由器生成的且仅在区域中传播flooded。因为其它非指定/后备指定路由器并不在相互之间建立临接关系所以网络LSA就令到这些路由器对该多路访问网络上的其它路由器有所知悉。
OSPF使用网络链路状态通告类型 2 LSA 来在多路访问网段上对路由器进行通告OSPF uses the Network Link State Advertisement(Type 2 LSA) to advertise the routers on the Multi-Access segment。此类 LSA 是由指定路由器生成的,且仅在区域中传播( flooded )。因为其它非指定/后备指定路由器并不在相互之间建立临接关系,所以网络 LSA 就令到这些路由器对该多路访问网络上的其它路由器有所知悉。
### 网络汇总链路状态通告类型3
### 网络汇总链路状态通告(类型 3
**Network Summary Link State Advertisement(Type 3)**
网络汇总LSA是一条本地区域之外但仍出于OSPF域中的目的网络的汇总。也就是说此类LSA同时对区域间及区域内的路由信息进行通告The Network Summary(Type 3) LSA is a summary of destinations outside of the local area but within the OSPF domain. In other words, this LSA advetises both inter-area and intra-area routing information。网络汇总LSA没有携带任何的拓扑信息。而是在该类型的LSA中唯一包含的信息就是一个IP前缀an IP prefix。类型3的LSA是由区域边界路由器生成的并被泛洪到所有临接区域adjacent areas。默认情况下每条类型3的LSA都与一条单独的路由器或网络LSA以一一对应的形式相匹配By default, each Type 3 LSA matches a single Router or Network LSA on a one-for-one basis。也就是说对于每条单独的类型1及类型2的LSA都存在着一条类型3的LSA。特别要留意这些LSA是如何在与OSPF骨干区域的联系下被传播的。此种传播或泛洪按照下面这样进行Special attention must be paid to how these LSAs are propagated in relation to the OSPF backbone. This propagation or flooding is performed as follows
网络汇总 LSA 是一条本地区域之外,但仍出于 OSPF 域中的目的(网络)的汇总。也就是说,此类 LSA 同时对区域间及区域内的路由信息进行通告The Network Summary(Type 3) LSA is a summary of destinations outside of the local area but within the OSPF domain. In other words, this LSA advetises both inter-area and intra-area routing information。网络汇总 LSA 没有携带任何的拓扑信息。而是在该类型的 LSA 中唯一包含的信息,就是一个 IP 前缀an IP prefix。类型 3 LSA 是由区域边界路由器生成的并被泛洪到所有临接区域adjacent areas。默认情况下每条类型 3 LSA 都与一条单独的路由器或网络 LSA 以一一对应的形式相匹配By default, each Type 3 LSA matches a single Router or Network LSA on a one-for-one basis。也就是说对于每条单独的类型 1 及类型 2 LSA ,都存在着一条类型 3 LSA 。特别要留意这些 LSA 是如何在与 OSPF 骨干区域的联系下被传播的。此种传播或泛洪按照下面这样进行Special attention must be paid to how these LSAs are propagated in relation to the OSPF backbone. This propagation or flooding is performed as follows
- 对于区域内的路由也就是对于类型1及类型2的LSAs网络汇总类型3的LSA自非骨干区域被通告至OSPF骨干区域Network Summary(Type 3) LSAs are advertised from a non-backbone area to the OSPF backbone for intra-area routes(i.e., for Type 1 and Type 2 LSAs)
- 对于区域内(也就是区域`0`的类型1与类型2 LSAs及区域间路由也就是由其它区域边界路由器泛洪到骨干区域的类型3 LSAs的网络汇总类型3LSAs被同时从OSPF骨干区域通告到其它非骨干区域。
- 对于区域内的路由(也就是对于类型 1 及类型 2 LSAs ),网络汇总(类型 3 )的 LSA 自非骨干区域被通告至 OSPF 骨干区域Network Summary(Type 3) LSAs are advertised from a non-backbone area to the OSPF backbone for intra-area routes(i.e., for Type 1 and Type 2 LSAs)
- 对于区域内(也就是区域`0`的类型 1 与类型2 LSAs及区域间路由也就是由其它区域边界路由器泛洪到骨干区域的类型3 LSAs的网络汇总类型 3 LSAs ,被同时从 OSPF 骨干区域,通告到其它非骨干区域。
后面的三种链路状态通告类型4、类型5与类型7, 用于外部路由器计算。类型4与类型5将在接着的小节介绍类型7将在本课程模块后面于对不同的OSPF区域进行讨论时介绍。
后面的三种链路状态通告,类型 4 、类型 5 与类型7, 用于外部路由器计算。类型 4 与类型 5 将在接着的小节介绍,类型 7 将在本课程模块后面,于对不同的 OSPF 区域进行讨论时介绍。
### 自治系统边界汇总链路状态通告类型4
### 自治系统边界汇总链路状态通告(类型 4
**ASBR Summary Link State Advertisements(Type 4)**
类型4的LSA对有关自治系统边界路由器的信息进行描述The Type 4 LSA describes information regarding the Autonomous System Boundry Router(ASBR)。此类LSA包含了与类型3 LSA的相同数据包格式并以一些显著的差异完成同样的基本功能。与类型3的LSA类似类型4的LSA是由区域边界路由器生成的。两种LSAs的通告路由器字段the Advertising Router field都包含着生成该汇总LSA的区域边界路由器的路由器ID。但是类型4的LSA使用区域边界路由器为仅有某条路由器LSA可达的各台自治系统边界路由器所创建的。随后该区域边界路由器将该类型4的LSA注入到相应区域。此类LSA提供到有关该自治系统边界路由器本身的可靠性信息。你应熟知的类型3与类型4 LSAs的关键不同在下表39.2中有列出:
类型 4 LSA 对有关自治系统边界路由器的信息进行描述The Type 4 LSA describes information regarding the Autonomous System Boundry Router(ASBR))。此类 LSA 包含了与类型3 LSA的相同数据包格式并以一些显著的差异完成同样的基本功能。与类型 3 LSA 类似,类型 4 LSA 是由区域边界路由器生成的。两种 LSAs 的通告路由器字段the Advertising Router field都包含着生成该汇总 LSA 的区域边界路由器的路由器 ID 。但是,类型 4 LSA 使用区域边界路由器,为仅有某条路由器 LSA 可达的各台自治系统边界路由器所创建的。随后该区域边界路由器将该类型 4 LSA 注入到相应区域。此类 LSA 提供到有关该自治系统边界路由器本身的可靠性信息。你应熟知的类型 3 与类型4 LSAs的关键不同在下表39.2中有列出:
*表 39.2 - 类型3与类型4汇总LSAs*
*表 39.2 - 类型 3 与类型 4 汇总LSAs*
| 类型3的汇总LSA | 类型4的汇总LSA |
| 类型 3 的汇总LSA | 类型 4 的汇总LSA |
| --- | --- |
| 提供有关网络链路的信息。 | 提供有关自治系统边界路由器的信息。 |
| 网络掩码字段The Network Mask field包含了该网络的子网掩码。 | 网络掩码字段将总是包含值`0.0.0.0`或简单的就是`0`。 |
| 链路状态ID字段The Link State ID field包含了真实的网络编号。 | 链路状态ID字段包含了自治系统边界路由器的路由器ID。 |
| 链路状态 ID 字段The Link State ID field包含了真实的网络编号。 | 链路状态 ID 字段包含了自治系统边界路由器的路由器 ID 。 |
### 自治系统外部链路状态通告类型5
### 自治系统外部链路状态通告(类型 5
**AS External Link State Advertisements(Type 5)**
外部链路状态通过用于对那些该自治系统的外部目的网络进行描述The External Link State Advertisement is used to describe destinations that are external to the autonomous system。也就是说类型5的LSAs提供了要抵达外部网络的必要信息。除了外部路由外某个OSPF路由域an OSPF routing domain的默认路由也可作为类型5的链路状态通告而加以注入。
外部链路状态通过用于对那些该自治系统的外部目的网络进行描述The External Link State Advertisement is used to describe destinations that are external to the autonomous system。也就是说类型 5 LSAs 提供了要抵达外部网络的必要信息。除了外部路由外,某个 OSPF 路由域an OSPF routing domain的默认路由也可作为类型 5 的链路状态通告,而加以注入。
## OSPF的各种区域OSPF Areas
除了在本课程模块之前的小节中描述并用到的骨干区域(`Area 0`及其它非骨干区域外OSPF规格还定义了记住“特殊”类型的区域。这些区域的配置主要是为了通过阻止不同类型的LSAs主要是类型5的LSAs诸如到确切区域而减小出于这些区域中的路由器上的链路状态数据库的大小这些其它区域包括
除了在本课程模块之前的小节中描述并用到的骨干区域(`Area 0`)及其它非骨干区域外, OSPF 规格还定义了记住“特殊”类型的区域。这些区域的配置,主要是为了通过阻止不同类型的 LSAs (主要是类型 5 LSAs )诸如到确切区域,而减小出于这些区域中的路由器上的链路状态数据库的大小,这些其它区域包括:
- 次末梢区域Not-So-Stubby Areas, NSSAs
- 完全的次末梢区域Totally Not-So-Stubby Areas, TNSSAs
@ -621,55 +621,55 @@ OSPF使用网络链路状态通告类型2的LSA来在多路访问网段
### 次末梢区域Not-So-Stubby Areas, NSSAs
次末梢区域是OSPF末梢区域的一种其允许自治系统边界路由器使用NSSA外部LSA类型7注入外部路由信息。如同在前面的小节中所指出的类型4、类型5与类型7的LSAs是用于外部路由的计算。这里不会就类型7的LSAs的细节或它们在NSSAs中的使用方式进行检视。
次末梢区域是 OSPF 末梢区域的一种,其允许自治系统边界路由器使用 NSSA 外部 LSA (类型 7 ),注入外部路由信息。如同在前面的小节中所指出的,类型 4 、类型 5 与类型 7 LSAs 是用于外部路由的计算。这里不会就类型 7 LSAs 的细节,或它们在 NSSAs 中的使用方式,进行检视。
### 完全次末梢区域Totally Not-So-Stubby Areas, TNSSAs
完全次末梢区域是次末梢区域的一个扩展。与次末梢区域类似类型5的LSAs不被允许进入TNSSAs与NSSAs不同的是汇总LSAs也不允许进入到TNSSAs中。此外在配置了某个TNSSA时默认路由就作为类型7的LSA注入到该区域。TNSSAs有着以下特性
完全次末梢区域是次末梢区域的一个扩展。与次末梢区域类似,类型 5 LSAs 不被允许进入 TNSSAs ;与 NSSAs 不同的是,汇总 LSAs 也不允许进入到 TNSSAs 中。此外,在配置了某个 TNSSA 时,默认路由就作为类型 7 LSA 注入到该区域。 TNSSAs 有着以下特性:
- 类型7的LSAs在该NSSA的区域边界路由器处被转换为类型5的LSAs
- 它们不允许网络汇总LSAsThey do not allow Network Summary LSAs
- 类型 7 LSAs 在该 NSSA 的区域边界路由器处被转换为类型 5 的LSAs
- 它们不允许网络汇总 LSAs They do not allow Network Summary LSAs
- 它们不允许外部LSAs
- 默认路由是以一条汇总LSA被注入的
- 默认路由是以一条汇总 LSA 被注入的
### 末梢区域Stub Areas
末梢区域与NSSAs有些类似主要的例外就是不允许外部路由类型5或类型7进入到末梢区域Stub areas are somewhat similar to NSSAs, with the major exception being that external routes(Type 5 or Type 7) are not allowed into Stub Areas。重要的是对末梢在OSPF何EIGRP中的功能是完全不同的。在OSPF中某个区域作为末梢区域的配置通过阻止外部LSAs被通告到这些区域在无需额外配置下就可减小这些区域中路由器的路由表及OSPF数据库的大小。末梢区域有着以下特性
末梢区域与 NSSAs 有些类似,主要的例外就是不允许外部路由(类型 5 或类型 7 进入到末梢区域Stub areas are somewhat similar to NSSAs, with the major exception being that external routes(Type 5 or Type 7) are not allowed into Stub Areas。重要的是对末梢在 OSPF EIGRP 中的功能是完全不同的。在 OSPF 中,某个区域作为末梢区域的配置,通过阻止外部 LSAs 被通告到这些区域,在无需额外配置下,就可减小这些区域中路由器的路由表及 OSPF 数据库的大小。末梢区域有着以下特性:
- 默认路由是通过区域边界路由器以一条类型3的LSA注入到末梢区域的
- 来自其它区域的类型3的LSAs允许进入到这些区域
- 外部路由的LSAs也就是类型4及类型5的LSAs不被允许
- 默认路由是通过区域边界路由器,以一条类型 3 LSA 注入到末梢区域的
- 来自其它区域的类型 3 LSAs 允许进入到这些区域
- 外部路由的 LSAs (也就是类型 4 及类型 5 LSAs )不被允许
### 完全末梢区域Totally Stubby Areas
完全末梢区域是末梢区域的一个扩展。但与末梢区域不同的是完全末梢区域通过限制外部LSAs外还限制了类型3的LSAs从而进一步地减小了完全末梢区域中路由器上的链路状态数据库Link State Database, LSDB的大小。通常将TSAs配置在那些有着到网络比如在传统的分支网络的单个入口及出口点的路由器上TSAs are typically configured on routers that have a single ingress and egress point into the network, for example in a traditional hub-and-spoke network。该区域的路由器将所有外部流量转发到区域边界路由器。同时该区域边界路由器也是所有骨干区域及区域间流量到完全末梢区域的出口点The ABR is also the exit point for all backbone and inter-area traffice to the TSA其有着以下特性
完全末梢区域是末梢区域的一个扩展。但与末梢区域不同的是,完全末梢区域通过限制外部 LSAs 外,还限制了类型 3 LSAs 从而进一步地减小了完全末梢区域中路由器上的链路状态数据库Link State Database, LSDB的大小。通常将 TSAs 配置在那些有着到网络比如在传统的分支网络的单个入口及出口点的路由器上TSAs are typically configured on routers that have a single ingress and egress point into the network, for example in a traditional hub-and-spoke network。该区域的路由器将所有外部流量转发到区域边界路由器。同时该区域边界路由器也是所有骨干区域及区域间流量到完全末梢区域的出口点The ABR is also the exit point for all backbone and inter-area traffice to the TSA其有着以下特性
- 默认路由是作为类型3的网络汇总LSA注入到末梢区域的
- 自其它区域的类型3、类型4及类型5 LSAs不被允许进入到这些区域
- 默认路由是作为类型 3 的网络汇总 LSA 注入到末梢区域的
- 自其它区域的类型 3 、类型 4 及类型5 LSAs不被允许进入到这些区域
## 路由度量值与最优路由选取
**Route Metrics and Best Route Selection**
在以下小节中将学到有关OSPF度量值及其运算的知识。
在以下小节中,将学到有关 OSPF 度量值及其运算的知识。
### OSPF度量值的计算Calculating the OSPF Metric
OSPF度量值通常被成为开销The OSPF metric is commonly referred to as the cost。开销是从链路的带宽使用公式`10^8 / 带宽`(其中“带宽”以`bps`计)得到的。这就意味着依据不同链路的带宽,而赋予了它们不同的开销值。使用此公式,一个`10Mbps`的以太网接口的OSPF开销将像下面这样计算出来
OSPF度量值通常被成为开销The OSPF metric is commonly referred to as the cost。开销是从链路的带宽使用公式`10^8 / 带宽`(其中“带宽”以`bps`计)得到的。这就意味着依据不同链路的带宽,而赋予了它们不同的开销值。使用此公式,一个`10Mbps`的以太网接口的 OSPF 开销,将像下面这样计算出来:
- 开销 = `10^8 / 带宽(bps`
- 开销 = `10^8 / 带宽( bps `
- 开销 = `100 000 000 / 10 000 000`
- 开销 = `10`
使用同样的公式,一条`T1`链路的OSPF开销将像下面这样计算出来
使用同样的公式,一条`T1`链路的 OSPF 开销,将像下面这样计算出来:
- 开销 = `10^8 / 带宽(bps`
- 开销 = `10^8 / 带宽( bps `
- 开销 = `100 000 000 / 1 544 000`
- 开销 = `64.77`
> **注意:** 在计算OSPF的度量值时不会用到小数。因此这样的小数总是会向下取整到最接近的整数。那么对于上一示例一条`T1`链路的实际开销将向下取整到`64`。
> **注意:** 在计算 OSPF 的度量值时,不会用到小数。因此这样的小数总是会向下取整到最接近的整数。那么对于上一示例,一条`T1`链路的实际开销将向下取整到`64`。
如先前所演示的那样,可使用`show ip ospf interface [name]`来查看到某个接口的OSPF开销。在度量值计算中用到的默认参考带宽可在`show ip protocols`命令的输出中查看到,如下面的输出中所演示的那样:
如先前所演示的那样,可使用`show ip ospf interface [name]`来查看到某个接口的 OSPF 开销。在度量值计算中用到的默认参考带宽,可在`show ip protocols`命令的输出中查看到,如下面的输出中所演示的那样:
```console
R4#show ip protocols
@ -688,15 +688,15 @@ Reference bandwidth unit is 100 mbps
Distance: (default is 110)
```
而在OSPF中使用的默认参考带宽则可使用路由器配置命令`auto-cost reference-bandwidth <1-4294967>`,并指定出以`Mbps`计的参考带宽值,而进行调整。这样做在那些有着具有超过`100Mbps`带宽值的链路,比如`GigabitEthernet`链路的网络中尤为重要。在这些网络中,赋予给`GigabitEthernet`的默认开销值将与`FastEthernet`链路的开销值一样。大多数情况下这样的结果当然是不可取的尤其是在OSPF尝试在这些链路上进行负载均衡时。
而在 OSPF 中使用的默认参考带宽,则可使用路由器配置命令`auto-cost reference-bandwidth <1-4294967>`,并指定出以`Mbps`计的参考带宽值,而进行调整。这样做在那些有着具有超过`100Mbps`带宽值的链路,比如`GigabitEthernet`链路的网络中尤为重要。在这些网络中,赋予给`GigabitEthernet`的默认开销值将与`FastEthernet`链路的开销值一样。大多数情况下,这样的结果当然是不可取的,尤其是在 OSPF 尝试在这些链路上进行负载均衡时。
要阻止这种开销值计算偏差,就应在路由器上执行该路由器配置命令`auto-cost reference-bandwidth 1000`命令。这会引发使用新的参考带宽值,对路由器上的个开销值的重新计算。比如,依据该配置,某条`T1`链路的开具将如下进行重新计算:
- 开销 = `10^9 / 带宽(bps`
- 开销 = `10^9 / 带宽( bps `
- 开销 = `1 000 000 000 / 1 544 000`
- 开销 = `647.7`
> **注意:** 再次因为OSPF度量值不支持小数该值将被向下取整到简单的`647`的度量值,如下面的输出所示:
> **注意:** 再次,因为 OSPF 度量值不支持小数,该值将被向下取整到简单的`647`的度量值,如下面的输出所示:
```console
R4#show ip ospf interface Serial0/0
@ -716,7 +716,7 @@ Serial0/0 is up, line protocol is up
Suppress Hello for 0 neighbor(s)
```
在执行了路由器配置命令`auto-cost reference-bandwidth 1000`后思科IOS软件就打印出下面的消息表明应将此同样的值应用该OSPF域中的所有路由器上。这在下面的输出中进行了演示
在执行了路由器配置命令`auto-cost reference-bandwidth 1000`后,思科 IOS 软件就打印出下面的消息,表明应将此同样的值,应用该 OSPF 域中的所有路由器上。这在下面的输出中进行了演示:
```console
R4(config)#router ospf 4
@ -727,18 +727,18 @@ R4(config-router)#auto-cost reference-bandwidth 1000
尽管这一点可能看起来像一条重要的警告消息,但请记住该命令的使用,仅影响到本地路由器。在所有路由器上配置这条命令并不是强制性的;但为考试目的,应确保在所有路由器上应用了一个一致的配置。
### 对OSPF的度量值计算施加影响Influencing OSPF Metric Calculation
### 对 OSPF 的度量值计算施加影响Influencing OSPF Metric Calculation
可通过执行下面的操作来对OSPF度量值的计算施加直接的影响
可通过执行下面的操作,来对 OSPF 度量值的计算,施加直接的影响:
- 使用`bandwidth`命令,对接口带宽进行调整
- 使用`ip ospf cost`命令,手动指定开销
在对EIGRP的度量值计算进行讨论时的先前课程模块中对`bandwidth`命令的使用进行了介绍。如先前指出的那样默认OSPF的开销是通过以参考带宽`10^8`,也就是`100Mbps`除以链路带宽计算出来的。那么不论是提升还是降低链路带宽都直接影响到该特定链路的OSPF开销。这是一种典型的用于确保某条路径优先于另一路径而被选用的 **路径控制机制**a path control mechanism
在对 EIGRP 的度量值计算进行讨论时的先前课程模块中,对`bandwidth`命令的使用进行了介绍。如先前指出的那样,默认 OSPF 的开销,是通过以参考带宽`10^8`,也就是`100Mbps`除以链路带宽计算出来的。那么不论是提升还是降低链路带宽,都直接影响到该特定链路的 OSPF 开销。这是一种典型的用于确保某条路径优先于另一路径而被选用的 **路径控制机制**a path control mechanism
但是,如同在先前的课程模块中所描述的那样,`bandwidth`命令的影响不仅限于路由协议。正是由于这个原因作为第二种办法的手动指定开销值就是推荐的对OSPF度量值计算施加影响的做法。
但是,如同在先前的课程模块中所描述的那样,`bandwidth`命令的影响,不仅限于路由协议。正是由于这个原因,作为第二种办法的手动指定开销值,就是推荐的对 OSPF 度量值计算施加影响的做法。
接口配置命令`ip ospf cost <1-65535>`,被用于手动指定某条链路的开销。链路的开销值越低,其就比到相同目的网络的、有着更高开销值的其它链路,越有可能被优先选用。下面的示例演示了如何为某条串行(`T1`链路配置上一个OSPF开销`5`
接口配置命令`ip ospf cost <1-65535>`,被用于手动指定某条链路的开销。链路的开销值越低,其就比到相同目的网络的、有着更高开销值的其它链路,越有可能被优先选用。下面的示例演示了如何为某条串行(`T1`)链路配置上一个 OSPF 开销`5`
```console
R1(config)#interface Serial0/0
@ -768,13 +768,13 @@ Serial0/0 is up, line protocol is up
## OSPF的默认路由OSPF Default Routing
与EIGRP支持好几种生成与通告默认路由的方式不同OSPF仅使用路由器配置命令`default-information originate [always] [metric <value>] [metric-type <1|2>] [route-map <name>]`,来动态地通告默认路由。
EIGRP 支持好几种生成与通告默认路由的方式不同, OSPF 仅使用路由器配置命令`default-information originate [always] [metric <value>] [metric-type <1|2>] [route-map <name>]`,来动态地通告默认路由。
其所使用的`default-information originate`命令将把该路由器配置为仅在路由表中已出现一条默认路由的情况下通告一条默认路由The `default-information originate` command used by itself will configure the router to advertise a default route only if a default route is already present in the routing table。但可将`[always]`关键字追加到该命令从而强制该路由器在路由表中尚不存在默认路由的情况下生成一条默认路由。应小心使用这个关键字因为它可能导致OSPF域中的流量黑洞或者导致将所有位置目的地的数据包转发到所配置的路由器。
其所使用的`default-information originate`命令将把该路由器配置为仅在路由表中已出现一条默认路由的情况下通告一条默认路由The `default-information originate` command used by itself will configure the router to advertise a default route only if a default route is already present in the routing table。但可将`[always]`关键字追加到该命令,从而强制该路由器在路由表中尚不存在默认路由的情况下,生成一条默认路由。应小心使用这个关键字,因为它可能导致 OSPF 域中的流量黑洞,或者导致将所有位置目的地的数据包,转发到所配置的路由器。
关键字`[metric <value>]`用于指定所生成的默认路由的路由度量值。而关键字`[metric-type <1|2>]`可用于修改默认路由的度量值类型the metric type for the default route。最后`[route-map <name>]`关键字将路由器配置为仅在该命名的路由器地图中所指定的条件满足时,生成一条默认路由。
下面的配置示例演示了如何将一台开启OSPF的路由器配置为在路由表中存在一条默认路由时生成一条默认路由并对其进行通告。既有的默认路由可以是一条静态路由甚至为在该路由器上配置了多种路由协议时从另一种路由协议产生的一条默认路由。下面的输出演示的是基于一条配置的静态默认路由的此种配置
下面的配置示例,演示了如何将一台开启 OSPF 的路由器,配置为在路由表中存在一条默认路由时,生成一条默认路由并对其进行通告。既有的默认路由可以是一条静态路由,甚至为在该路由器上配置了多种路由协议时,从另一种路由协议产生的一条默认路由。下面的输出演示的是基于一条配置的静态默认路由的此种配置:
```console
R4(config)#ip route 0.0.0.0 0.0.0.0 FastEthernet0/0 172.16.4.254
@ -784,22 +784,22 @@ R4(config-router)#default-information originate
R4(config-router)#exit
```
默认情况下默认路由是作为类型5的LSA进行通告的。
默认情况下,默认路由是作为类型 5 LSA 进行通告的。
## OSPF的配置Configuring OSPF
以一行配置就可以在路由器上开启基本的OSPF并于随后通过添加 **网络语句**来指明希望在哪些接口上运行OSPF对于那些不打算通告的网络则不予添加Basic OSPF can be enabled on the router with one line of configuration, and then by adding the network statement that specifies on which interfaces you want to run OSPF, not necessarily networks you wish to advertise:
以一行配置,就可以在路由器上开启基本的 OSPF ,并于随后通过添加 **网络语句**,来指明希望在哪些接口上运行 OSPF 对于那些不打算通告的网络则不予添加Basic OSPF can be enabled on the router with one line of configuration, and then by adding the network statement that specifies on which interfaces you want to run OSPF, not necessarily networks you wish to advertise:
1. `router ospf 9`,其中 `9` 是本地有意义的编号
2. `network 10.0.0.0 0.255.255.255 area 0`
在至少一个接口处于`up/up`状态之前OSPF都不会成为活动状态并请记住要至少有一个区域必须为`Area 0`。下图39.14演示了一个示例性的OSPF网络
在至少一个接口处于`up/up`状态之前, OSPF 都不会成为活动状态,并请记住要至少有一个区域必须为`Area 0`。下图39.14演示了一个示例性的 OSPF 网络:
![一个示例性OSPF网络](images/3914.png)
![一个示例性 OSPF 网络](images/3914.png)
*图 39.14 - 一个示例性OSPF网络*
*图 39.14 - 一个示例性 OSPF 网络*
其中路由器A的配置为
其中路由器 A 的配置为:
```console
router ospf 20
@ -808,7 +808,7 @@ network 192.168.1.0 0.0.0.255 area 0
router-id 4.4.4.4
```
路由器B的配置为
路由器 B 的配置为:
```console
router ospf 22
@ -817,7 +817,7 @@ network 192.168.1.0 0.0.0.255 area 0
router-id 192.168.1.2
```
路由器C的配置为
路由器 C 的配置为:
```console
router ospf 44
@ -838,26 +838,26 @@ O 192.168.1.0/24 [110/128] via 172.16.1.1, 00:10:39, Serial0/0/0
## OSPF的故障排除Troubleshooting OSPF
这里再度说明一下,开放路径优先协议,是一种就其链路状态进行通告的,开放标准的链路状态路由协议。在一台链路状态路由器于某条网络链路上开始运作时,那个逻辑网络的相关信息,就被添加到该路由器的本地的链路状态数据库中。随后该本地路由器就在其可用的那些链路上,发送`Hello`报文来判断是否其它链路状态路由器也在接口上运行。OSPF使用IP编号`89`,直接允许在互联网协议上。
这里再度说明一下,开放路径优先协议,是一种就其链路状态进行通告的,开放标准的链路状态路由协议。在一台链路状态路由器于某条网络链路上开始运作时,那个逻辑网络的相关信息,就被添加到该路由器的本地的链路状态数据库中。随后该本地路由器就在其可用的那些链路上,发送`Hello`报文,来判断是否其它链路状态路由器也在接口上运行。 OSPF 使用 IP 编号`89`,直接允许在互联网协议上。
尽管要深入到所有潜在的OSPF故障场景是不可能的不过接下来的小节仍就在将OSPF部署为IGP的选择the IGP of choice, [Interior Gateway Protocol](https://zh.wikipedia.org/wiki/%E5%86%85%E9%83%A8%E7%BD%91%E5%85%B3%E5%8D%8F%E8%AE%AE))时,一些最为常见的故障场景进行了讨论。
尽管要深入到所有潜在的 OSPF 故障场景是不可能的,不过接下来的小节,仍就在将 OSPF 部署为 IGP 的选择the IGP of choice, [Interior Gateway Protocol](https://zh.wikipedia.org/wiki/%E5%86%85%E9%83%A8%E7%BD%91%E5%85%B3%E5%8D%8F%E8%AE%AE))时,一些最为常见的故障场景进行了讨论。
### 邻居关系的故障排除
**Troubleshooting Neighbour Relationships**
运行OSPF的路由器在建立临接关系前会度过好几种状态。这些不同状态分别是`Down`、`Attempt`、`Init`、`2-way`、`Exstart`、`Exchange`、`Loading`以及`Full` 状态。OSPF临接关系的首选状态是`Full`状态。该状态表明邻居已经完成了各自完整数据库的交换,并有着对网络的相同视图。但尽管`Full`状态是首选的临接状态,在临接关系建立的过程中,邻居们可能会“卡在”其它的某种状态中。由于这个原因,那么为了排除故障,就有必要掌握需要查找什么。
运行 OSPF 的路由器在建立临接关系前,会度过好几种状态。这些不同状态分别是`Down`、`Attempt`、`Init`、`2-way`、`Exstart`、`Exchange`、`Loading`以及`Full` 状态。 OSPF 临接关系的首选状态是`Full`状态。该状态表明邻居已经完成了各自完整数据库的交换,并有着对网络的相同视图。但尽管`Full`状态是首选的临接状态,在临接关系建立的过程中,邻居们可能会“卡在”其它的某种状态中。由于这个原因,那么为了排除故障,就有必要掌握需要查找什么。
### 邻居表为空的情况The Neighbour Table Is Empty
对于邻居表可能为空的原因(也就是为何`show ip ospf neighbor`命令可能不产生任何输出),有好几种。常见的原因如下所示:
- 基础的OSPF错误配置misconfigurations
- 1层与2层故障
- 基础的 OSPF 错误配置( misconfigurations
- 1层与 2 层故障
- 访问控制清单过滤掉了ACL filtering
- 接口的错误配置
基本的OSPF错误配置涵盖了很多东西。其可以包括比如不匹配的计时器、区域IDs、认证参数及末梢配置等。思科IOS中有大量的工具可用于对基本的OSPF错误配置进行故障排除。比如可使用`show ip protocols`命令来判断信息比如有关那些开启了OSPF的网络可使用`show ip ospf`命令,来判断区域配置及各区域的接口;以及使用`show ip ospf interface brief`命令来判断哪些接口位处哪些区域中以及在假定接口已开启了OSPF时判断出这些接口已对哪些OSPF进程开启了。
基本的 OSPF 错误配置,涵盖了很多东西。其可以包括比如不匹配的计时器、区域 IDs 、认证参数及末梢配置等。思科 IOS 中有大量的工具,可用于对基本的 OSPF 错误配置进行故障排除。比如,可使用`show ip protocols`命令来判断信息(比如有关那些开启了 OSPF 的网络);可使用`show ip ospf`命令,来判断区域配置及各区域的接口;以及使用`show ip ospf interface brief`命令来判断哪些接口位处哪些区域中,以及在假定接口已开启了 OSPF 时,判断出这些接口已对哪些 OSPF 进程开启了。
另一个常见的错误配置就是将接口指定为了被动接口Another common misconfiguration is specifying the interface as passive。如果真这样做了那么该接口就不会发出`Hello`数据包,同时使用那个接口就不会建立邻居关系。既可使用`show ip protocols`,也可使用`show ip ospf interface`命令,来检查哪些接口被配置或指定为了被动接口。下面是在某个被动接口上的后一个命令的示例输出:
@ -879,11 +879,11 @@ Serial0/0 is up, line protocol is up
Suppress hello for 0 neighbor(s)
```
最后当在帧中继这样的非广播多路访问技术上开启OSPF时请记住必须静态地定义出邻居因为对于默认的非广播网络类型的邻居发现OSPF不使用多播传输。在部署OSPF这是一种常见的邻居表为空的原因。
最后,当在帧中继这样的非广播多路访问技术上开启 OSPF 时,请记住必须静态地定义出邻居,因为对于默认的非广播网络类型的邻居发现, OSPF 不使用多播传输。在部署 OSPF ,这是一种常见的邻居表为空的原因。
1层与2层故障也能导致OSPF临接关系的不形成。在先前的课程模块中就曾详细介绍了1层与2层的故障排除。使用诸如`show interfaces`这样的命令来对接口状态即线路协议以及接口上接收到的任何错误进行检查。在开启OSPF的路由器处于跨越多台交换机的VLAN中时比如应就该VLAN中有着端到端的连通性end-to-end connectivity以及所有端口或接口都处于正确的生成树状态进行检查。
1层与 2 层故障,也能导致 OSPF 临接关系的不形成。在先前的课程模块中,就曾详细介绍了 1 层与 2 层的故障排除。使用诸如`show interfaces`这样的命令来对接口状态(即线路协议),以及接口上接收到的任何错误进行检查。在开启 OSPF 的路由器处于跨越多台交换机的 VLAN 中时,比如应就该 VLAN 中有着端到端的连通性end-to-end connectivity以及所有端口或接口都处于正确的生成树状态进行检查。
访问控制清单过滤是另一种常见的造成临接关系建立失败的原因。为排除此类故障重要的是熟悉网络拓扑。比如在建立某个临接关系失败的路由器是通过不同物理交换机进行连接的时就可能为ACL过滤是以先前为安全目的而已配置在交换机上的VACLVLAN ACL的形式部署的。`show ip ospf traffic`命令就是一个可找出OSPF数据包是被阻塞了还是被丢弃了的有用工具其会打印出如下输出所演示的有关发出的OSPF数据包的信息
访问控制清单过滤,是另一种常见的造成临接关系建立失败的原因。为排除此类故障,重要的是熟悉网络拓扑。比如,在建立某个临接关系失败的路由器是通过不同物理交换机进行连接的时,就可能为 ACL 过滤是以先前为安全目的,而已配置在交换机上的 VACL VLAN ACL的形式部署的。`show ip ospf traffic`命令,就是一个可找出 OSPF 数据包是被阻塞了还是被丢弃了的有用工具,其会打印出如下输出所演示的,有关发出的 OSPF 数据包的信息:
```console
R1#show ip ospf traffic Serial0/0
@ -903,22 +903,22 @@ OSPF LSA errors
Type 0, Length 0, Data 0, Checksum 0,
```
在上面的输出中留意到本地路由器在发送OSPF`Hello`数据包但没有接收到任何东西。在路由器上的配置正确的情况下就要对路由器或中间设备进行检查以确保OSPF数据包未被过滤或丢弃。
在上面的输出中留意到本地路由器在发送OSPF`Hello`数据包但没有接收到任何东西。在路由器上的配置正确的情况下,就要对路由器或中间设备进行检查,以确保 OSPF 数据包未被过滤或丢弃。
空白邻居表的另一个常见原因就是接口的不当配置。与EIGRP类似OSPF不会使用从接口地址建立邻居关系。但与EIGRP不同在接口子网掩码不一致时OSPF也不会建立邻居关系。
空白邻居表的另一个常见原因,就是接口的不当配置。与 EIGRP 类似, OSPF 不会使用从接口地址建立邻居关系。但与 EIGRP 不同,在接口子网掩码不一致时, OSPF 也不会建立邻居关系。
就是接口子网掩码不同开启了EIGRP的路由器也会建立邻居关系。比如有这样的两台路由器其一有着使用地址`10.1.1.1/24`的一个接口,而另一台有着一个使用地址`10.1.1.2/30`的接口它们被配置为背靠背的EIGRP实现back-to-back EIGRP implementation那么它们将成功地建立邻居关系。但应注意此类实现可能导致路由器之间的路由环回。处理不匹配的子网掩码开启EIGRP的路由器也忽略最大传输单元MTU配置而甚至在接口最大传输单元不同的情况下建立邻居关系。使用`show ip interfaces`与`show interfaces`命令就可对IP地址与掩码配置进行检查。
就是接口子网掩码不同,开启了 EIGRP 的路由器也会建立邻居关系。比如有这样的两台路由器,其一有着使用地址`10.1.1.1/24`的一个接口,而另一台有着一个使用地址`10.1.1.2/30`的接口,它们被配置为背靠背的 EIGRP 实现back-to-back EIGRP implementation那么它们将成功地建立邻居关系。但应注意此类实现可能导致路由器之间的路由环回。处理不匹配的子网掩码开启 EIGRP 的路由器也忽略最大传输单元( MTU )配置,而甚至在接口最大传输单元不同的情况下,建立邻居关系。使用`show ip interfaces`与`show interfaces`命令,就可对 IP 地址与掩码配置进行检查。
### 路由通告的故障排除Troubleshooting Route Advertisement
就像EIGRP的情况一样有的时候可能会注意到OSPF没有对某些路由进行通告。大多数情况下这都是由于一些错误配置而非协议故障造成的For the most part, this is typically due to some misconfigurations versus a protocol failure。此类故障的一些常见原因包括下面这些
就像 EIGRP 的情况一样,有的时候可能会注意到 OSPF 没有对某些路由进行通告。大多数情况下这都是由于一些错误配置而非协议故障造成的For the most part, this is typically due to some misconfigurations versus a protocol failure。此类故障的一些常见原因包括下面这些
- 接口上没有开启OSPF
- 接口宕掉了
- 接口地址出于不同的区域
- OSPF的错误配置
OSPF之所以不对路由器进行通告的一个常见原因就是该网络未通过OSPF进行通告。在当前的思科IOS软件中使用路由器配置命令`network`或接口配置命令`ip ospf`,就可使网络得以通告。不管使用哪种方式,都可以使用`show ip protocols`命令来查看将OSPF配置为对哪些网络进行通告就如同下面的输出中所看到的
OSPF之所以不对路由器进行通告的一个常见原因就是该网络未通过 OSPF 进行通告。在当前的思科 IOS 软件中,使用路由器配置命令`network`或接口配置命令`ip ospf`,就可使网络得以通告。不管使用哪种方式,都可以使用`show ip protocols`命令,来查看将 OSPF 配置为对哪些网络进行通告,就如同下面的输出中所看到的:
```console
R2#show ip protocols
@ -940,7 +940,7 @@ Routing Protocol is “ospf 1”
Distance: (default is 110)
```
此外,请记住还可以使用`show ip ospf interfaces`命令来找出那些接口开启了OSPF及其它一些信息。除了网络配置若接口宕掉OSPF也不会对路由器进行通告。可使用`show ip ospf interfaces`命令,来确定接口状态,如下所示:
此外,请记住还可以使用`show ip ospf interfaces`命令来找出那些接口开启了 OSPF ,及其它一些信息。除了网络配置,若接口宕掉, OSPF 也不会对路由器进行通告。可使用`show ip ospf interfaces`命令,来确定接口状态,如下所示:
```console
R1#show ip ospf interface brief
@ -960,7 +960,7 @@ Loopback100 is administratively down, line protocol is down
Loopback interface is treated as a stub Host
```
如使用`debug ip routing`命令对IP路由事件IP routing events进行调试并于随后在`Loopback100`接口下执行`no shutdown`命令,那么就可以看到下面的输出:
如使用`debug ip routing`命令对 IP 路由事件IP routing events进行调试并于随后在`Loopback100`接口下执行`no shutdown`命令,那么就可以看到下面的输出:
```console
R1#debug ip routing
@ -981,7 +981,7 @@ R1#
[Truncated Output]
```
当有多个地址配置在某个接口下时所有次要地址都必须位处与主要地址相同的区域中否则OSPF不会对这些网络进行通告。比如考虑下图39.15中所演示的网络拓扑:
当有多个地址配置在某个接口下时,所有次要地址都必须位处与主要地址相同的区域中;否则 OSPF 不会对这些网络进行通告。比如考虑下图39.15中所演示的网络拓扑:
![OSPF的次要子网通告](images/3915.png)
@ -1003,7 +1003,7 @@ speed auto
end
```
在`R1`与`R2`上都开启了OSPF。`R1`上部署的配置如下所示:
在`R1`与`R2`上都开启了 OSPF 。`R1`上部署的配置如下所示:
```console
R1#show running-config | section ospf
@ -1025,7 +1025,7 @@ log-adjacency-changes
network 10.0.0.2 0.0.0.0 Area 0
```
默认情况下,因为`R1`上的次要子网已被放入到一个不同的OSPF区域所以它们不会被该路由器通告。这一点在`R2`上可以看到,在执行了`show ip route`命令时,就显示下面的输出:
默认情况下,因为`R1`上的次要子网已被放入到一个不同的 OSPF 区域,所以它们不会被该路由器通告。这一点在`R2`上可以看到,在执行了`show ip route`命令时,就显示下面的输出:
```console
R2#show ip route
@ -1069,11 +1069,11 @@ C 10.0.0.0 is directly connected, FastEthernet0/0
O 10.0.1.0 [110/2] via 10.0.0.1, 00:01:08, FastEthernet0/0
```
除了上书三种常见原因不良的设计、实现以及错误配置也是导致OSPF不如预期的那样对网络进行通告的一个原因。导致此类故障常见的设计问题包括一个不连续或分区的骨干区域a discontiguous or partitioned backbone以及区域类型的错误配置比如将区域配置为完全末梢的区域。对于这种原因就要对OSPF的工作原理及其在自己的环境中如何部署有扎实掌握。这样的掌握将极大地简化故障排除过程因为在故障排除之前就已经赢得了战斗的一半了。
除了上书三种常见原因,不良的设计、实现,以及错误配置,也是导致 OSPF 不如预期的那样对网络进行通告的一个原因。导致此类故障常见的设计问题包括一个不连续或分区的骨干区域a discontiguous or partitioned backbone以及区域类型的错误配置比如将区域配置为完全末梢的区域。对于这种原因就要对 OSPF 的工作原理及其在自己的环境中如何部署有扎实掌握。这样的掌握将极大地简化故障排除过程,因为在故障排除之前,就已经赢得了战斗的一半了。
### OSPF路由故障的调试Debugging OSPF Routing Issues
在本课程模块的最后一节将看看一些较为常用的OSPF调试命令。OSPF的调试是通过使用`debug ip ospf`命令来开启的。该命令可结合下面这些额外关键字一起使用:
在本课程模块的最后一节,将看看一些较为常用的 OSPF 调试命令。 OSPF 的调试,是通过使用`debug ip ospf`命令来开启的。该命令可结合下面这些额外关键字一起使用:
```console
R1#debug ip ospf ?
@ -1091,7 +1091,7 @@ R1#debug ip ospf ?
tree OSPF database tree
```
命令`debug ip osfp adj`将打印有关临接事件的实时信息。在对OSPF的邻居临接故障进行故障排除时这是一个有用的故障排除工具。下面是一个由该命令打印的信息示例。下面的示例演示了如何使用该命令来判断MTU不匹配而导致的无法到达`Full`状态,从而阻止了邻居临接的建立:
命令`debug ip osfp adj`将打印有关临接事件的实时信息。在对 OSPF 的邻居临接故障进行故障排除时,这是一个有用的故障排除工具。下面是一个由该命令打印的信息示例。下面的示例演示了如何使用该命令,来判断 MTU 不匹配而导致的无法到达`Full`状态,从而阻止了邻居临接的建立:
```console
R1#debug ip ospf adj
@ -1117,9 +1117,9 @@ R1#
[Truncated Output]
```
从上面的输出可以推断出本地路由器上的MTU高于`1480`字节因为该调试输出显示邻居有着较低的MTU值。推荐的解决方案将是调整该较低的MTU值以令到两个邻居有着同样的接口MTU值。这就可以允许该临接达到`Full`状态。
从上面的输出,可以推断出本地路由器上的 MTU 高于`1480`字节,因为该调试输出显示邻居有着较低的 MTU 值。推荐的解决方案将是调整该较低的 MTU 值,以令到两个邻居有着同样的接口 MTU 值。这就可以允许该临接达到`Full`状态。
命令`debug ip ospf lsa-generation`将打印出有关OSPF链路状态通告的信息。该命令可用于在使用OSPF时对路由通告的故障排除。下面是由该命令所打印的输出信息的一个示例
命令`debug ip ospf lsa-generation`将打印出有关 OSPF 链路状态通告的信息。该命令可用于在使用 OSPF 时对路由通告的故障排除。下面是由该命令所打印的输出信息的一个示例:
```console
R1#debug ip ospf lsa-generation
@ -1152,7 +1152,7 @@ R1#debug ip ospf spf ?
<cr>
```
与所有`debug`命令一样在对SPF事件进行调试之前都应对诸如网络大小及路由器上资源占用等因素加以考虑。下面是自`debug ip ospf spf statistic`命令的输出示例:
与所有`debug`命令一样,在对 SPF 事件进行调试之前,都应对诸如网络大小及路由器上资源占用等因素加以考虑。下面是自`debug ip ospf spf statistic`命令的输出示例:
```console
R1#debug ip ospf spf statistic
@ -1172,9 +1172,9 @@ R1#
*Mar 18 23:37:32.863: SPF suspends: 0 intra, 0 total
```
> **注意:** 在开始故障排除流程时在开启SPF的`debug`命令之前,请优先考虑使用`show`命令,比如`show ip ospf statistics`与`show ip ospf`命令。
> **注意:** 在开始故障排除流程时,在开启 SPF 的`debug`命令之前,请优先考虑使用`show`命令,比如`show ip ospf statistics`与`show ip ospf`命令。
## 第39天问题
## 第 39 天问题
1. OSPF operates over IP number `_______`.
2. OSPF does NOT support VLSM. True or false?
@ -1188,7 +1188,7 @@ R1#
10. Which command would set the router ID to `1.1.1.1`?
11. Name the common troubleshooting issues for OSPF.
## 第39天答案
## 第 39 天答案
1. `89`.
2. False.
@ -1203,23 +1203,23 @@ R1#
11. Neighbour relationships and route advertisement.
## 第39天实验
## 第 39 天实验
### OSPF实验
__拓扑__
![39天实验的拓扑](images/39_lab.png)
![ 39 天实验的拓扑](images/39_lab.png)
__实验目的__
学习如何配置基本的OSPF。
学习如何配置基本的 OSPF
__实验步骤__
1. 基于上面的拓扑配置上所有的IP地址。确保可经由那个串行链路进行Ping操作。
1. 基于上面的拓扑,配置上所有的 IP 地址。确保可经由那个串行链路进行 Ping 操作。
2. 将OSPF添加到路由器`A`。将`Loopback0`上的网络放入到`Area 1`,将那个`10`网络放入到`Area 0`。
2. 将 OSPF 添加到路由器`A`。将`Loopback0`上的网络放入到`Area 1`,将那个`10`网络放入到`Area 0`。
```console
@ -1245,7 +1245,7 @@ __实验步骤__
Distance: (default is 110)
```
3. 将OSPF添加到路由器`B`。将该环回网络放入到OSPF的`Area 40`。
3. 将 OSPF 添加到路由器`B`。将该环回网络放入到 OSPF 的`Area 40`。
```console
@ -1272,7 +1272,7 @@ __实验步骤__
Distance: (default is 110)
```
4. 对两台路由器上的路由表进行检查。查找那些OSPF通告的网络。将见到一个`IA`也就是OSPF的区域间inter-area。还将见到OSPF的`AD`也就是管理距离Administrative Distance`110`。
4. 对两台路由器上的路由表进行检查。查找那些 OSPF 通告的网络。将见到一个`IA`,也就是 OSPF 的区域间inter-area。还将见到 OSPF 的`AD`也就是管理距离Administrative Distance`110`。
```console
@ -1288,7 +1288,7 @@ __实验步骤__
RouterA#
```
5. 在两台路由器上分别执行一些可用的OSPF命令。
5. 在两台路由器上分别执行一些可用的 OSPF 命令。
```console

View File

@ -1,4 +1,4 @@
# 第40天 Syslog、SNMP与Netflow
# 第 40 天 Syslog、 SNMP 与Netflow
__Syslog, SNMP and Netflow__
@ -17,20 +17,20 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第40天任务
## 第 40 天任务
- 阅读今天的课文(下面)
- 复习昨天的课文
- 完成今天的实验
- 阅读ICND2补充指南
- 在[subnetting.org](http://www.subnetting.org)网站上花15分钟
- 阅读 ICND2 补充指南
- 在[subnetting.org](http://www.subnetting.org)网站上花 15 分钟
系统消息或事件在本地或某台syslog服务器上进行记录是一项核心的维护任务。Syslog是一种允许主机将事件通知消息经由IP网络发送到事件消息收集器event message collectors也叫做syslog服务器或syslog守候程序daemon的协议。也就是说某台主机或设备可被配置为生成一条syslog消息并将该消息转发到某个特定的syslog守候程序服务器的方式。
将(系统)消息或事件在本地或某台 syslog 服务器上进行记录,是一项核心的维护任务。 Syslog 是一种允许主机将事件通知消息,经由 IP 网络发送到事件消息收集器event message collectors也叫做 syslog 服务器或 syslog 守候程序( daemon ),的协议。也就是说,某台主机或设备可被配置为,生成一条 syslog 消息,并将该消息转发到某个特定的 syslog 守候程序(服务器)的方式。
简单网络管理协议则是一种广泛使用的管理协议其定义了一套用于连接到IP网络设备通信的标准。SNMP提供了一种用于对网络设备进行监视与控制的方法。与思科IOS的IP SLA操作IP Service Level Agreement, IP 网络服务等级协议该特性通过使用活动流量监视来测量网络性能而允许客户对IP服务等级进行分析一样SNMP可用于收集统计数据、监测设备性能以及提供到网络的一个基线a baseline of the network且SNMP是使用最为广泛的网络维护与监测工具之一。
简单网络管理协议,则是一种广泛使用的管理协议,其定义了一套用于连接到 IP 网络设备通信的标准。 SNMP 提供了一种用于对网络设备进行监视与控制的方法。与思科 IOS 的IP SLA操作IP Service Level Agreement, IP 网络服务等级协议,该特性通过使用活动流量监视来测量网络性能,而允许客户对 IP 服务等级进行分析)一样, SNMP 可用于收集统计数据、监测设备性能以及提供到网络的一个基线a baseline of the network SNMP 是使用最为广泛的网络维护与监测工具之一。
尽管SNMP可以提供流量统计但其无法区分各种数据流While SNMP can provide traffic statistics, SNMP cannot differentiate between individual flows。不过思科IOS的Netflow就可以做到。数据流A flow简单地就是一系列的、有着同样源与目的地址、源与目的端口、协议接口以及同样的服务参数类Class of Service parameters的数据包。
尽管 SNMP 可以提供流量统计但其无法区分各种数据流While SNMP can provide traffic statistics, SNMP cannot differentiate between individual flows。不过思科 IOS Netflow 就可以做到。数据流A flow简单地就是一系列的、有着同样源与目的地址、源与目的端口、协议接口以及同样的服务参数类Class of Service parameters的数据包。
今天将学到有关以下方面的知识:
@ -39,41 +39,41 @@ ___
- Netflow
此课程对应了以下CCNA大纲要求
此课程对应了以下 CCNA 大纲要求:
+ 配置并验证Syslog
- `syslog`输出的使用
- 对SNMP版本2与版本3进行描述
- 对 SNMP 版本 2 与版本 3 进行描述
- `netflow`数据的使用
## 日志记录Logging
## 日志记录( Logging
所谓某个`syslog`守候程序或某台`syslog`服务器,就是一个对发送给它的`syslog`消息进行监听的实体。将某个`syslog`守候程序配置为请求某台特定设备向其发送`syslog`报文,是不可行的。也就是说,在某台特定设备无法生成`syslog`报文的情况下,那么`syslog`守候程序就什么也不能做。真实世界中,集团公司通常采用`SolarWinds`(或类似)软件来做`syslog`的捕获。此外,诸如`Kiwi Syslog daemon`这类自由软件,也可用于`syslog`的捕获。
`Syslog`使用用户数据报协议User Datagram Protocol, UDP作为所采用的传输机制因此数据包没有被排序与确认。因为UDP没有包含在TCP中的额外开销the overhead included in TCP这意味着在某些重度使用的网络中一些数据包可能被丢弃而因此导致记录的信息丢失。不过思科IOS软件允许管理员出于冗余目的配置多台`syslog`服务器。`syslog`方案由两个主要元素构成:`syslog`服务器与`syslog`客户端。
`Syslog`使用用户数据报协议User Datagram Protocol, UDP作为所采用的传输机制因此数据包没有被排序与确认。因为 UDP 没有包含在 TCP 中的额外开销the overhead included in TCP这意味着在某些重度使用的网络中一些数据包可能被丢弃而因此导致记录的信息丢失。不过思科 IOS 软件允许管理员出于冗余目的,配置多台`syslog`服务器。`syslog`方案由两个主要元素构成:`syslog`服务器与`syslog`客户端。
`syslog`客户端将`syslog`报文使用UDP作为传输层协议指定一个`513`目的端口,发送给`syslog`服务器。这些报文的大小不能超过`1024`字节;不过没有最小长度的限制。所有`syslog`报文,都包含三个不同的部分:优先级、头部与报文。
`syslog`客户端将`syslog`报文,使用 UDP 作为传输层协议,指定一个`513`目的端口,发送给`syslog`服务器。这些报文的大小不能超过`1024`字节;不过没有最小长度的限制。所有`syslog`报文,都包含三个不同的部分:优先级、头部与报文。
`syslog`报文的优先级同时表示了设施与报文的严重程度The priority of a syslog message represents both the facility and the severity of the message。此数字是一个8位的数字。前3个最低有效位The first 3 least significant bits表示报文的严重程度在3位的情况下可表示8中不同的严重程度其它5位表示了某项设施。可使用这些值来对`syslog`守候程序中的事件进行过滤。
`syslog`报文的优先级同时表示了设施与报文的严重程度The priority of a syslog message represents both the facility and the severity of the message。此数字是一个 8 位的数字。前 3 个最低有效位The first 3 least significant bits表示报文的严重程度 3 位的情况下,可表示 8 中不同的严重程度),其它 5 位表示了某项设施。可使用这些值,来对`syslog`守候程序中的事件进行过滤。
> **注意:** 请注意这些值是由那些生成事件的应用产生的,而不是由`syslog`服务器本身产生的。
下表40.1中列出并介绍了思科IOS设备所设置的值请记住这些严查程度级别与它们的名称
下表40.1中列出并介绍了思科 IOS 设备所设置的值(请记住这些严查程度级别与它们的名称):
*表 40.1 - 思科IOS软件`syslog`的优先级分级与定义*
*表 40.1 - 思科 IOS 软件`syslog`的优先级分级与定义*
| 严重程度级别 | 严查程度级别名称 | `syslog`的定义 | 介绍 |
| :---: | :---: | :---: | :--- |
| `0` | 紧急Emergencies | `LOG_EMERG` | 此级别用于那些将导致系统不可用的最严重的错误情景。 |
| `1` | 告警Alerts | `LOG_ALERT` | 此级别用于表示那些需要管理员立即注意的情况。 |
| `2` | 严重Critical | `LOG_CRIT` | 此级别用于表明那些严重性低于告警,但仍需管理员介入的严重情况。 |
| `3` | 错误Errors | `LOG_ERR` | 此级别用于表明系统中有错误发生,但这些错误并不会导致系统不可用。 |
| `4` | 警告Warnings | `LOG_WARNING` | 此级别用于表示有关系统操作未能成功完成的警告情况。 |
| `5` | 通知Notifications | `LOG_NOTICE` | 此级别用于表示系统中的状态改变(比如路由协议临接关系过渡到`down`状态)。 |
| `6` | 消息Informational | `LOG_INFO` | 此级别用于表示有关系统正常运行的消息。 |
| `7` | 调试Debugging | `LOG_DEBUG` | 此级别用于表示通常用于故障排除目的的实时的(调试的)信息。 |
| `0` | 紧急( Emergencies | `LOG_EMERG` | 此级别用于那些将导致系统不可用的最严重的错误情景。 |
| `1` | 告警( Alerts | `LOG_ALERT` | 此级别用于表示那些需要管理员立即注意的情况。 |
| `2` | 严重( Critical | `LOG_CRIT` | 此级别用于表明那些严重性低于告警,但仍需管理员介入的严重情况。 |
| `3` | 错误( Errors | `LOG_ERR` | 此级别用于表明系统中有错误发生,但这些错误并不会导致系统不可用。 |
| `4` | 警告( Warnings | `LOG_WARNING` | 此级别用于表示有关系统操作未能成功完成的警告情况。 |
| `5` | 通知( Notifications | `LOG_NOTICE` | 此级别用于表示系统中的状态改变(比如路由协议临接关系过渡到`down`状态)。 |
| `6` | 消息( Informational | `LOG_INFO` | 此级别用于表示有关系统正常运行的消息。 |
| `7` | 调试( Debugging | `LOG_DEBUG` | 此级别用于表示通常用于故障排除目的的实时的(调试的)信息。 |
在`syslog`中设施the facility用于表示生成消息的源。源可以是某个本地设备上的进程、应用或者甚至操作系统本身。设施是以数字整数表示的。在思科IOS软件中有八个本地使用设施可由进程及应用以及设备本身用于发送`syslog`消息。默认思科IOS设备使用设施`local7`来发送`syslog`报文。但要注意大多数思科设备提供了改变默认设施级别的选项。在思科IOS软件中可使用全局配置命令`loggin facility [facility]`来指定`syslog`的设施。该命令可用的选项如下所示:
在`syslog`中设施the facility用于表示生成消息的源。源可以是某个本地设备上的进程、应用或者甚至操作系统本身。设施是以数字整数表示的。在思科 IOS 软件中,有八个本地使用设施可由进程及应用(以及设备本身)用于发送`syslog`消息。默认思科 IOS 设备使用设施`local7`来发送`syslog`报文。但要注意大多数思科设备提供了改变默认设施级别的选项。在思科 IOS 软件中,可使用全局配置命令`loggin facility [facility]`来指定`syslog`的设施。该命令可用的选项如下所示:
```console
R1(config)#logging facility ?
@ -105,15 +105,15 @@ R1(config)#logging facility ?
要通过`syslog`来发送消息,就必须在设备上执行以下顺序的步骤:
1. 使用`logging on`配置命令在路由器或交换机上全局性开启日志记录功能。默认在思科IOS软件中日志记录是开启的但仅开启了将消息发送到控制台。对于要将消息发到除控制台外的其它任何目的地`logging on`命令都是强制要求的。
1. 使用`logging on`配置命令在路由器或交换机上全局性开启日志记录功能。默认在思科 IOS 软件中,日志记录是开启的;但仅开启了将消息发送到控制台。对于要将消息发到除控制台外的其它任何目的地,`logging on`命令都是强制要求的。
2. 使用全局配置命令`logging trap [severity]`,指定出要发送到`syslog`服务器的消息的严重程度。可使用数字或使用等价的严重性名称,来指定发送消息的严重程度。
3. 使用全局配置命令`logging [address]`或`logging host [address]`,指定一个或多个的`syslog`服务器目的地址。
4. 作为可选项,使用`logging source-interface [name]`指定在`syslog`报文中的源IP地址。在有着配置的多个接口的设备上这是普遍的做法。乳未指定此命令则`syslog`报文将包含路由器或交换机用于抵达服务器的接口的IP地址。而在出于冗余目的有着多个接口时该地址就会在主要路径接口宕掉时发生改变。因此通常将其设置为某个环回接口。
4. 作为可选项,使用`logging source-interface [name]`指定在`syslog`报文中的源 IP 地址。在有着配置的多个接口的设备上,这是普遍的做法。乳未指定此命令,则`syslog`报文将包含路由器或交换机用于抵达服务器的接口的 IP 地址。而在出于冗余目的有着多个接口时,该地址就会在主要路径(接口)宕掉时发生改变。因此,通常将其设置为某个环回接口。
下面的配置实例演示了如何将所有信息informational(level6)及以下的报文发送到一台有着IP地址`192.168.1.254`的`syslog`服务器:
下面的配置实例演示了如何将所有信息informational(level6))及以下的报文,发送到一台有着 IP 地址`192.168.1.254`的`syslog`服务器:
```console
R2(config)#logging on
@ -136,7 +136,7 @@ No active filter modules.
Logging to 192.168.1.254(global) (udp port 514, audit disabled, link up), 2 message lines logged, xml disabled, filtering disabled
```
一般在配置日志记录时重要的是要确保路由器或交换机的时钟反映的是真实的当前时间这可实现与错误数据的关联。日志消息上的不准确或不正确时间戳会令到使用过滤或关联流程来做错误与问题隔离十分困难并十分耗时。在思科IOS软件中系统时钟可手动配置或者将设备配置为自动将其时钟与网络时间协议服务器进行同步。在后面的小节将对这两种方法进行讨论。在网络中仅有少数互联网络设备时手动的时钟或时间配置没有问题。在思科IOS软件中系统时间是通过使用`clock set hh:mm:ss [day & month | month & day] [year]`特权`EXEC`命令进行配置的。其不是在全局配置模式下配置或指定的。下面的配置示例,演示了如何将系统时钟设置为 2010 年 10 月 20 日上午12:15
一般在配置日志记录时,重要的是要确保路由器或交换机的时钟反映的是真实的当前时间,这可实现与错误数据的关联。日志消息上的不准确或不正确时间戳,会令到使用过滤或关联流程,来做错误与问题隔离十分困难,并十分耗时。在思科 IOS 软件中,系统时钟可手动配置,或者将设备配置为自动将其时钟与网络时间协议服务器进行同步。在后面的小节将对这两种方法进行讨论。在网络中仅有少数互联网络设备时,手动的时钟或时间配置没有问题。在思科 IOS 软件中,系统时间是通过使用`clock set hh:mm:ss [day & month | month & day] [year]`特权`EXEC`命令进行配置的。其不是在全局配置模式下配置或指定的。下面的配置示例,演示了如何将系统时钟设置为 2010 年 10 月 20 日上午12:15
```console
R2#clock set 12:15:00 20 october 2010
@ -155,9 +155,9 @@ r2#show clock
12:15:19.419 utc wed oct 20 2010
```
观察到一个有趣现象,就是在使用`clock set`命令手动配置或设置了系统时间是其默认到GMTUTC时区如上面所看到的。为了确保系统始终反映对于不在GMT时区的那些正确时区就必须使用全局配置命令`clock timezone [time zone name] [GMT offset]`。比如美国有六个不同的时区每个时区都有不同的GMT偏移量。这些时区分别是东部时间Eastern Time中部时间Central Time山区时间Mountain Time太平洋时间Pacific Time、夏威夷时间Hawaii Time以及阿拉斯加时间Alaska Time
观察到一个有趣现象,就是在使用`clock set`命令手动配置或设置了系统时间是,其默认到 GMT UTC )时区,如上面所看到的。为了确保系统始终反映对于不在 GMT 时区的那些正确时区,就必须使用全局配置命令`clock timezone [time zone name] [GMT offset]`。比如,美国有六个不同的时区,每个时区都有不同的 GMT 偏移量。这些时区分别是东部时间Eastern Time中部时间Central Time山区时间Mountain Time太平洋时间Pacific Time、夏威夷时间Hawaii Time以及阿拉斯加时间Alaska Time
此外一些地方使用标准时间Standard Time与夏令时间Dayligh Saving Time。考虑这个因素那么在手动配置系统时钟时确保于所有设备上正确设置系统时间标准还是夏令时就很重要了。下面的配置实例演示了如何将系统时钟设置为比GMT晚6个小时的中部标准时间Central Standard Time, CST时区的2010年10月20日上午12点40分
此外一些地方使用标准时间Standard Time与夏令时间Dayligh Saving Time。考虑这个因素那么在手动配置系统时钟时确保于所有设备上正确设置系统时间标准还是夏令时就很重要了。下面的配置实例演示了如何将系统时钟设置为比 GMT 6 个小时的中部标准时间Central Standard Time, CST时区的 2010 10 20 日上午 12 40 分:
```console
R2#config t
@ -186,28 +186,28 @@ R2(config)#clock timezone CST -6
R2(config)#end
```
因为这里`clock set`命令先使用,所以路由器上的`show clock`命令将显示偏移了6小时的系统时钟就如使用`clock timezone`命令所指定的那样。在同样的路由器的以下输出对此行为进行了演示:
因为这里`clock set`命令先使用,所以路由器上的`show clock`命令将显示偏移了 6 小时的系统时钟,就如使用`clock timezone`命令所指定的那样。在同样的路由器的以下输出对此行为进行了演示:
```console
R2#show clock
06:40:52.181 CST Wed Oct 20 2010
```
> **注意:** 使用全局配置命令`clock summer-time zone recurring [week day month hh:mm week day month hh:mm [offset]]`可将思科IOS的路由器与交换机可配置为自动切换到夏令时间summertime, Daylight Saving Time。这样做可消除标准时间与夏令时期间在所有手动配置的设备上手动调整系统时钟的需要。
> **注意:** 使用全局配置命令`clock summer-time zone recurring [week day month hh:mm week day month hh:mm [offset]]`,可将思科 IOS 的路由器与交换机可配置为自动切换到夏令时间summertime, Daylight Saving Time。这样做可消除标准时间与夏令时期间在所有手动配置的设备上手动调整系统时钟的需要。
第二种设置或同步系统时钟的方法就是使用网络时间协议服务器作为参考时间源了。在那些有着多余几台设备的较大网络中这是首选方法。NTP是一个设一用于机器网络时间同步的协议。在[RFC 1305](https://tools.ietf.org/html/rfc1305)中对NTP进行了文档说明其运行在UDP上。
第二种设置或同步系统时钟的方法,就是使用网络时间协议服务器作为参考时间源了。在那些有着多余几台设备的较大网络中,这是首选方法。 NTP 是一个设一用于机器网络时间同步的协议。在[RFC 1305](https://tools.ietf.org/html/rfc1305)中对 NTP 进行了文档说明,其运行在 UDP 上。
NTP网络通常是从权威的时间源处比如无线电时钟或连接某台时间服务器的原子钟获取它的时间。NTP随后经由网络对此时间进行分发。NTP是相当高效的每分钟不多于一个数据包就可以将两台机器同步到一毫秒之内。
NTP网络通常是从权威的时间源处比如无线电时钟或连接某台时间服务器的原子钟获取它的时间。 NTP 随后经由网络对此时间进行分发。 NTP 是相当高效的;每分钟不多于一个数据包,就可以将两台机器同步到一毫秒之内。
NTP使用层的概念a concept of a stratum来描述某台机器距离权威时间源有多少跳。请记住这不是路由或交换的条数而是NTP跳数这是一个完全不同的概念。一台层`1`的时间服务器A stratum 1 time server通常具有一个直接安装的无线电或原子钟同时一台层`2`的时间服务器a stratum 2 time server则是通过NTP从层`1`的时间服务器接收其时间如此等等。在某台设备被配置了多台NTP参考服务器时它将自动选择有着配置为通过NTP进行通信的最低层编号的机器作为其时间源When a device is configured with multiple NTP reference servers, it will automatically choose as its time source the machine with the lowest stratum number that it is configured to communicate with via NTP
NTP使用层的概念a concept of a stratum来描述某台机器距离权威时间源有多少跳。请记住这不是路由或交换的条数而是 NTP 跳数,这是一个完全不同的概念。一台层`1`的时间服务器A stratum 1 time server通常具有一个直接安装的无线电或原子钟同时一台层`2`的时间服务器a stratum 2 time server则是通过 NTP 从层`1`的时间服务器接收其时间,如此等等。在某台设备被配置了多台 NTP 参考服务器时,它将自动选择有着配置为通过 NTP 进行通信的最低层编号的机器作为其时间源When a device is configured with multiple NTP reference servers, it will automatically choose as its time source the machine with the lowest stratum number that it is configured to communicate with via NTP
在思科IOS软件中使用全局配置命令`ntp server [address]`来将某台设备配置带有一台或多台NTP服务器的IP地址。如先前指出的那样可通过重复使用同样的命令指定多个NTP参考地址。此外该命令还可用于配置服务器与客户端之间的安全及其它特性。下面的配置实例演示了如何将某台设备配置为将其时间与一台有着IP地址`10.0.0.1`的NTP进行同步
在思科 IOS 软件中,使用全局配置命令`ntp server [address]`,来将某台设备配置带有一台或多台 NTP 服务器的 IP 地址。如先前指出的那样,可通过重复使用同样的命令,指定多个 NTP 参考地址。此外,该命令还可用于配置服务器与客户端之间的安全及其它特性。下面的配置实例,演示了如何将某台设备配置为将其时间与一台有着 IP 地址`10.0.0.1`的 NTP 进行同步:
```console
R1(config)#ntp server 10.0.0.1
```
根据此配置,可使用`show ntp accociations`命令来对NTP设备之间的通信进行检查如下面的输出所示
根据此配置,可使用`show ntp accociations`命令来对 NTP 设备之间的通信进行检查,如下面的输出所示:
```console
R2#show ntp associations
@ -216,9 +216,9 @@ address ref clock st when poll reach delay offset disp
* master (synced), # master (unsynced), + selected, - candidate, ~ configured
```
`address`字段表示NTP服务器的IP地址如同该字段下所指出的值`10.0.0.1`所确认的那样。而`ref clock`字段则表示了那台NTP服务器所使用的参考时钟。在此实例中IP地址`127.127.7.1`表示该设备使用的是一个内部时钟(`127.0.0.0/8`子网)作为其参考时间源。如该字段包含了另一个值,比如`192.168.1.254`那么那将是该服务器用作其参考的IP地址。
`address`字段表示 NTP 服务器的 IP 地址,如同该字段下所指出的值`10.0.0.1`所确认的那样。而`ref clock`字段则表示了那台 NTP 服务器所使用的参考时钟。在此实例中, IP 地址`127.127.7.1`表示该设备使用的是一个内部时钟(`127.0.0.0/8`子网)作为其参考时间源。如该字段包含了另一个值,比如`192.168.1.254`,那么那将是该服务器用作其参考的 IP 地址。
接着的`st`字段表示该参考的层the stratum of the reference。从上面的打印输出可以看到`10.0.0.1`的NTP设备有着`5`的层数。本地设备的层数,将增加`1`到值`6`,如下所示,因为其是从有着层`5`的服务器出接收到的时间源。如有另一台设备被同步到该本地路由器,那么它将反应出一个`7`的层数如此等等。用于检查NTP配置的第二个命令就是`show ntp status`命令了,其输出如下面所示:
接着的`st`字段表示该参考的层the stratum of the reference。从上面的打印输出可以看到`10.0.0.1`的 NTP 设备有着`5`的层数。本地设备的层数,将增加`1`到值`6`,如下所示,因为其是从有着层`5`的服务器出接收到的时间源。如有另一台设备被同步到该本地路由器,那么它将反应出一个`7`的层数,如此等等。用于检查 NTP 配置的第二个命令,就是`show ntp status`命令了,其输出如下面所示:
```console
R2#show ntp status
@ -229,9 +229,9 @@ clock offset is 4.6267 msec, root delay is 3.16 msec
root dispersion is 4.88 msec, peer dispersion is 0.23 msec
```
该`show ntp status`命令的输出表示时钟是被同步到所配置的NTP服务器`10.0.0.1`)。此服务器有着层数`5`,因此本地设备反应了一个层数`6`。在配置了NTP是一个观察到的一个有意思的事情就是本地时间将默认到GMT如在上面的输出中所看到的那样。为确保该设备显示正确的时区就必须在该设备上执行`clock time-zone`命令。
该`show ntp status`命令的输出表示时钟是被同步到所配置的 NTP 服务器(`10.0.0.1`)。此服务器有着层数`5`,因此本地设备反应了一个层数`6`。在配置了 NTP 是一个观察到的一个有意思的事情,就是本地时间将默认到 GMT ,如在上面的输出中所看到的那样。为确保该设备显示正确的时区,就必须在该设备上执行`clock time-zone`命令。
在不论是通过手动还是NTP设置好系统时钟之后都要确保发送给服务器的日志包含正确的时间戳。这是通过使用全局配置命令`service timestamp log [datetime | uptime]`执行的。关键字`[datetime]`支持下面这些字面的额外子关键字:
在不论是通过手动还是 NTP 设置好系统时钟之后,都要确保发送给服务器的日志包含正确的时间戳。这是通过使用全局配置命令`service timestamp log [datetime | uptime]`执行的。关键字`[datetime]`支持下面这些字面的额外子关键字:
```console
R2(config)#service timestamps log datetime ?
@ -270,43 +270,43 @@ Oct 20 02:14:11.521 CST: %SYS-6-LOGGINGHOST_STARTSTOP: Logging to host 150.1.1.2
## 简单网络管理协议Simple Network Management Protocol
简单网络管理协议,是一个应用层(`Layer 7`协议使用UDP端口`161`与`162`促进网络设备之间管理信息的交换。一个SNMP管理的网络由管理系统、代理程序及所管理的设备构成An SNMP-managed network consists of a management system, agents, and managed devices。其中管理系统执行监控应用及对所管理的设备进行控制。其也执行大多数的管理流程并提供了用于网络管理的大部分存储资源。某个网络科恩该是由一套或多套的管理系统所管理。
简单网络管理协议,是一个应用层(`Layer 7`)协议,使用 UDP 端口`161`与`162`,促进网络设备之间管理信息的交换。一个 SNMP 管理的网络由管理系统、代理程序及所管理的设备构成An SNMP-managed network consists of a management system, agents, and managed devices。其中管理系统执行监控应用及对所管理的设备进行控制。其也执行大多数的管理流程并提供了用于网络管理的大部分存储资源。某个网络科恩该是由一套或多套的管理系统所管理。
代理程序则是出于各个受管理的设备之上而对本地管理信息数据比如性能信息或事件与软件装置中捕获到的错误信息error information caught in software traps转换为管理系统可读取的形式。SNMP代理程序使用将数据传输到网络管理软件的[SNMP`get-request`指令](pdfs/06-ch06.pdf)。SNMP代理程序从管理信息库Management Information Bases, MIBs或从错误或修改陷阱设置处捕获数据而管理信息库则是设备参数与网络数据存放的地方SNMP agents capture data from Management Information Bases(MIBs), which are device parameters and network data repositories, or from error or change **traps**)。
代理程序则是出于各个受管理的设备之上而对本地管理信息数据比如性能信息或事件与软件装置中捕获到的错误信息error information caught in software traps转换为管理系统可读取的形式。 SNMP 代理程序使用将数据传输到网络管理软件的[SNMP`get-request`指令](pdfs/06-ch06.pdf)。 SNMP 代理程序从管理信息库Management Information Bases, MIBs或从错误或修改陷阱设置处捕获数据而管理信息库则是设备参数与网络数据存放的地方SNMP agents capture data from Management Information Bases(MIBs), which are device parameters and network data repositories, or from error or change **traps**)。
而受管理元素比如路由器、交换机、计算机或防火墙是通过SNMP代理程序进行管理的。受管理设备对管理信息进行收集与存储从而令到这些信息通过SNMP对其它有着相同协议兼容性的管理系统可用。下图40.2演示了SNMP管理的网络的三个主要部件之间的交互
而受管理元素,比如路由器、交换机、计算机或防火墙,是通过 SNMP 代理程序进行管理的。受管理设备对管理信息进行收集与存储,从而令到这些信息通过 SNMP 对其它有着相同协议兼容性的管理系统可用。下图40.2演示了 SNMP 管理的网络的三个主要部件之间的交互:
![SNMP网络组件的交互](images/4002.png)
*图 40.2 - SNMP网络组件的交互*
参考图40.2, `R1`就是SNMP管理的设备。逻辑上出于该设备上的就是SNMP代理程序。SNMP代理程序将存储在受管理设备的管理数据库中的本地管理信息数据转化为这里称为网络管理站Network Management Station, NMS的管理系统可读取的形式。
参考图40.2, `R1`就是 SNMP 管理的设备。逻辑上出于该设备上的,就是 SNMP 代理程序。 SNMP 代理程序将存储在受管理设备的管理数据库中的本地管理信息数据转化为这里称为网络管理站Network Management Station, NMS的管理系统可读取的形式。
在使用SNMP时使用三种常见的SNMP命令`read`、`write`与`trap`,使得受管理的设备得以被监视与控制。网络管理站所使用的`read`命令用于监视受管理的设备。这是通过NMS对由受管理设备所维护的不同变量进行检查完成的。而`write`命令则是由NMS用于对受管理设备进行控制的。NMS使用该命令可对存储在受管理设备上的变量的值进行修改。最后SNMP的`trap`命令是由受管理设备用来将事件报告给NMS的。设备可配置为将SNMP陷阱或通知发送给NMS。所发送的陷阱或通知取决于设备上所运行的思科IOS软件版本以及设备的平台。
在使用 SNMP 时,使用三种常见的 SNMP 命令:`read`、`write`与`trap`,使得受管理的设备得以被监视与控制。网络管理站所使用的`read`命令,用于监视受管理的设备。这是通过 NMS 对由受管理设备所维护的不同变量进行检查完成的。而`write`命令,则是由 NMS 用于对受管理设备进行控制的。 NMS 使用该命令可对存储在受管理设备上的变量的值,进行修改。最后, SNMP 的`trap`命令,是由受管理设备,用来将事件报告给 NMS 的。设备可配置为将 SNMP 陷阱或通知,发送给 NMS 。所发送的陷阱或通知,取决于设备上所运行的思科 IOS 软件版本,以及设备的平台。
SNMP陷阱简单地就是就网络上的某个状况通知SNMP管理器的消息SNMP traps are simply messages that alert the SNMP manager of a condition on the network。一个SNMP陷阱的实例可能包含了某个接口从`up`状态过渡到了`down`状态。SNMP的主要问题在于它们是无确认的。这就意味着发出设备无法确定该陷阱是否被NMS接收到。
SNMP陷阱简单地就是就网络上的某个状况通知 SNMP 管理器的消息SNMP traps are simply messages that alert the SNMP manager of a condition on the network。一个 SNMP 陷阱的实例,可能包含了某个接口从`up`状态过渡到了`down`状态。 SNMP 的主要问题在于它们是无确认的。这就意味着发出设备无法确定该陷阱是否被 NMS 接收到。
而SNMP通知命令则是包含了来自SNMP管理器的接收确认的SNMP陷阱。这些消息可用于表示诸如失败的认证尝试或失去到邻居路由器的连接等消息。管理器在没有接收到通知请求的情况下它就不发送响应。而发送者在从没有接收到响应的情况下通知请求可被再度发送。因此SNMP的通知更可能抵达其想要的目的Thus, informs are more likely to reach their intended destination
SNMP 通知命令,则是包含了来自 SNMP 管理器的接收确认的 SNMP 陷阱。这些消息可用于表示诸如失败的认证尝试,或失去到邻居路由器的连接等消息。管理器在没有接收到通知请求的情况下,它就不发送响应。而发送者在从没有接收到响应的情况下,通知请求可被再度发送。因此, SNMP 的通知更可能抵达其想要的目的Thus, informs are more likely to reach their intended destination
尽管通知比陷阱更为可靠但不利支出在于它们在路由器上与网络中与消耗了更多的资源。与发出后就丢弃的陷阱不同在接收到一个响应或请求超时之前通知请求an inform request必须要驻留在内存中。此外陷阱仅发送一次而通知在没有接收到一个来自SNMP服务器的响应之前必须多次发送。
尽管通知比陷阱更为可靠但不利支出在于它们在路由器上与网络中与消耗了更多的资源。与发出后就丢弃的陷阱不同在接收到一个响应或请求超时之前通知请求an inform request必须要驻留在内存中。此外陷阱仅发送一次而通知在没有接收到一个来自 SNMP 服务器的响应之前,必须多次发送。
下图40.3演示了SNMP管理器与SNMP代理程序之间发送陷阱与通知的通信
下图40.3演示了 SNMP 管理器与 SNMP 代理程序之间,发送陷阱与通知的通信:
![由网络管理站与SNMP管理的元素所使用的UDP端口](images/4003.png)
![由网络管理站与 SNMP 管理的元素所使用的 UDP 端口](images/4003.png)
*图 40.3 - 由网络管理站与SNMP管理的元素所使用的UDP端口*
*图 40.3 - 由网络管理站与 SNMP 管理的元素所使用的 UDP 端口*
SNMP的三个版本分别是版本`1`、`2`与`3`。版本`1`,或`SNMPv1`是SNMP协议的最初实现。`SNMPv1`运行在诸如用户数据报协议UDP、互联网协议IP以及开放系统互联的无连接网络服务OSI Connectionless Network Service, CLNS之上。
SNMP的三个版本分别是版本`1`、`2`与`3`。版本`1`,或`SNMPv1`,是 SNMP 协议的最初实现。`SNMPv1`运行在诸如用户数据报协议( UDP )、互联网协议( IP 以及开放系统互联的无连接网络服务OSI Connectionless Network Service, CLNS之上。
`SNMPv1`是广泛使用的,且是互联网社区中使用的事实上的网络管理协议。
`SNMPv2`对`SNMPv1`进行了修订,包含了在性能、安全性、保密性及管理器到管理器通信等方面的提升。`SNMPv2`还定义了两种新的操作命令、operations`GetBulk`与`Inform`。`GetBulk`用于有效地获取大块的数据large blocks of data。`Inform`操作允许一个网络管理站发送陷阱信息到另一网络管理站,并于随后接收一个响应。在`SNMPv2`中,如某个对`GetBulk`操作进行响应的代理程序无法在一个清单中提供所有变量的值,那么它就提供部分结果。
`SNMPv2`对`SNMPv1`进行了修订,包含了在性能、安全性、保密性及管理器到管理器通信等方面的提升。`SNMPv2`还定义了两种新的操作(命令、 operations `GetBulk`与`Inform`。`GetBulk`用于有效地获取大块的数据large blocks of data。`Inform`操作允许一个网络管理站发送陷阱信息到另一网络管理站,并于随后接收一个响应。在`SNMPv2`中,如某个对`GetBulk`操作进行响应的代理程序无法在一个清单中提供所有变量的值,那么它就提供部分结果。
`SNMPv3`提供了先前版本的SNMP所不具备的以下三项额外安全服务消息完整性、认证及加密。`SNMPv3`使用消息完整性来确保数据包在传输过程中不被篡改。`SNMPv3`还使用了用于判断消息是否是来自有效的源。最后`SNMPv3`提供了用于打乱scramble数据包内容以防止其被未授权的源看到的加密机制。
`SNMPv3`提供了先前版本的 SNMP 所不具备的以下三项额外安全服务:消息完整性、认证及加密。`SNMPv3`使用消息完整性来确保数据包在传输过程中不被篡改。`SNMPv3`还使用了用于判断消息是否是来自有效的源。最后`SNMPv3`提供了用于打乱( scramble )数据包内容,以防止其被未授权的源看到的加密机制。
在思科IOS软件中使用`snmp-server host [hostname | address]`命令来指定本地设备将发送陷阱或通知的目的主机名或IP地址。为实现网络管理站对本地设备的轮询`SNMPv1`与`SNMPv2`要求使用全局配置命令`snmp-server community <name> [ro | rw]`为只读或读写访问指定一个共有字符串a community string
在思科 IOS 软件中,使用`snmp-server host [hostname | address]`命令,来指定本地设备将发送陷阱或通知的目的主机名或 IP 地址。为实现网络管理站对本地设备的轮询,`SNMPv1`与`SNMPv2`要求使用全局配置命令`snmp-server community <name> [ro | rw]`为只读或读写访问指定一个共有字符串a community string
`SNMPv3`蜜柑有使用这种同样的基于共有的安全形式the same community-based form of security而是使用了用户与组的安全user and group security。下面的配置实例演示了如何配置带有两个共有字符串的本地设备其一用于只读访问另一个用于读写访问。此外该本地设备还配置了为思科IOS的SLAService Level Agreement, 服务级别协议)操作/命令与`syslog`而使用只读共有字符串将SNMP陷阱发送到`1.1.1.1`
`SNMPv3`蜜柑有使用这种同样的基于共有的安全形式the same community-based form of security而是使用了用户与组的安全user and group security。下面的配置实例演示了如何配置带有两个共有字符串的本地设备其一用于只读访问另一个用于读写访问。此外该本地设备还配置了为思科 IOS SLA Service Level Agreement, 服务级别协议)操作/命令与`syslog`,而使用只读共有字符串,将 SNMP 陷阱发送到`1.1.1.1`
```console
R2#config t
@ -317,75 +317,75 @@ R2(config)#snmp-server community safe RW
R2(config)#snmp-server host 1.1.1.1 traps readonlypassword rtr syslog
```
下图40.4演示了一个基于SNMP轮询SNMP polling的、使用ManageEngine OpManager网络监控软件的设备资源使用情况与可用性的示例报告
下图40.4演示了一个基于 SNMP 轮询SNMP polling的、使用ManageEngine OpManager网络监控软件的设备资源使用情况与可用性的示例报告
![有关设备资源使用情况的示例SNMP报告](images/4004.png)
![有关设备资源使用情况的示例 SNMP 报告](images/4004.png)
*图 40.4 - 有关设备资源使用情况的示例SNMP报告*
*图 40.4 - 有关设备资源使用情况的示例 SNMP 报告*
## 思科IOS的NetFlowCisco IOS NetFlow
## 思科 IOS NetFlow Cisco IOS NetFlow
与SNMP一样思科IOS的NetFlow是一个强大的维护与监控工具可用于对网络性能进行基准测量及辅助故障排除。但其与SNMP之间有着一些显著的区别。第一个不同就是SNMP主要报告的是有关设备统计数据比如资源使用情况等而思科IOS的NetFlow则是就流量统计数据进行报告比如数据包与字节
SNMP 一样,思科 IOS NetFlow 是一个强大的维护与监控工具,可用于对网络性能进行基准测量及辅助故障排除。但其与 SNMP 之间有着一些显著的区别。第一个不同就是 SNMP 主要报告的是有关设备统计数据(比如资源使用情况等),而思科 IOS NetFlow 则是就流量统计数据进行报告(比如数据包与字节)。
这两个工具之间的第二个不同就是SNMP是一种基于轮询的协议a poll-based protocol意味着受管理设备被轮询信息。在那些SNMP设备发送陷阱甚至报告even report到管理站的实例中也可认为它是基于推送的push-based。而思科IOS的NetFlow则是基于推送的技术意味着配置了NetFlow的设备是将其收集的信息发送出来到某个中心存储库的。由于这个原因NetFlow与SNMP互为补充可作为标准网络维护与监控工具套件the standard network maintenance and monitoring toolkit的组成部分。但它们并非各自的替代这是一个常被误解的概念重要的是记住这一点。
这两个工具之间的第二个不同,就是 SNMP 是一种基于轮询的协议a poll-based protocol意味着受管理设备被轮询信息。在那些 SNMP 设备发送陷阱甚至报告even report到管理站的实例中也可认为它是基于推送的push-based。而思科 IOS NetFlow ,则是基于推送的技术,意味着配置了 NetFlow 的设备,是将其收集的信息发送出来,到某个中心存储库的。由于这个原因, NetFlow SNMP 互为补充可作为标准网络维护与监控工具套件the standard network maintenance and monitoring toolkit的组成部分。但它们并非各自的替代这是一个常被误解的概念重要的是记住这一点。
IP数据流基于五个上至七个的一套IP数据包属性它们可能包含下面这些
IP数据流基于五个上至七个的一套 IP 数据包属性,它们可能包含下面这些:
- 目的IP地址
- 源IP地址
- 目的 IP 地址
- 源 IP 地址
- 源端口
- 目的端口
- `Layer 3`的协议类型
- 服务类Class of Service
- 路由器或交换机的接口
除了这些IP属性外数据流还包含了其它一些额外信息。这些额外信息包括对于计算每秒数据包与字节数有用的时间戳。时间戳还提供了有关某个数据流生命周期持续时间的信息。数据流还包括下一跳IP地址的信息其包含了边界网关协议的路由器自治系统信息。除了TCP流量的标志外数据流源与目的地址的子网掩码信息也有包含而TCP流量的诸多标志则可用于对TCP握手进行检查。
除了这些 IP 属性外,(数据)流还包含了其它一些额外信息。这些额外信息包括对于计算每秒数据包与字节数有用的时间戳。时间戳还提供了有关某个数据流生命周期(持续时间)的信息。数据流还包括下一跳 IP 地址的信息,其包含了边界网关协议的路由器自治系统信息。除了 TCP 流量的标志外,数据流源与目的地址的子网掩码信息也有包含,而 TCP 流量的诸多标志,则可用于对 TCP 握手进行检查。
> **译者注**总的来说思科IOS的NetFlow中的数据流包含了数据包属性七种、时间戳、包含BGP路由自治系统的下一跳IP地址信息、TCP流量的诸多标志以及源与目的地址的子网掩码信息。
> **译者注**:总的来说,思科 IOS NetFlow 中的数据流,包含了数据包属性(七种)、时间戳、包含 BGP 路由自治系统的下一跳 IP 地址信息、 TCP 流量的诸多标志,以及源与目的地址的子网掩码信息。
简要地讲思科IOS的NetFlow特性除了可用于提供有关网络用户与网络应用、峰值用量时间与流量路由之外还可用于有关的信息网络流量记账、基于用量的网络计费、网络规划、安全、拒绝服务攻击的监视能力以及网络监控。所有的这些用途令到其成为一个非常强大的维护、监控与故障排除工具。
简要地讲,思科 IOS NetFlow 特性,除了可用于提供有关网络用户与网络应用、峰值用量时间,与流量路由之外,还可用于有关的信息网络流量记账、基于用量的网络计费、网络规划、安全、拒绝服务攻击的监视能力,以及网络监控。所有的这些用途,令到其成为一个非常强大的维护、监控与故障排除工具。
思科IOS的NetFlow软件对数据流数据进行收集并将其存储在一个名为“NetFlow缓存”或简单地说就是“数据流缓存”的数据库中。数据流信息会留存到该数据流终止或停止、超时或缓存溢出为止。有两种方式来访问存储在数据流中的数据使用命令行界面也就是使用`show`命令或导出该数据并通过使用某种类型的报告工具对导出的数据进行查看。下图40.5演示了在思科IOS路由器上的NetWork操作以及数据流缓存的生成方式
思科 IOS NetFlow 软件,对数据流数据进行收集,并将其存储在一个名为“ NetFlow 缓存”或简单地说就是“数据流缓存”的数据库中。数据流信息会留存到该数据流终止或停止、超时或缓存溢出为止。有两种方式来访问存储在数据流中的数据:使用命令行界面(也就是使用`show`命令或导出该数据并通过使用某种类型的报告工具对导出的数据进行查看。下图40.5演示了在思科 IOS 路由器上的 NetWork 操作,以及数据流缓存的生成方式:
![基本的NetFlow操作与数据流缓存的生成](images/4005.png)
![基本的 NetFlow 操作与数据流缓存的生成](images/4005.png)
*图 40.5 - 基本的NetFlow操作与数据流缓存的生成*
*图 40.5 - 基本的 NetFlow 操作与数据流缓存的生成*
参考图40.5在本地路由器上入口流量被接收到。该流量被路由器加以探测且IP属性信息被用于创建一个数据流。随后该数据流信息被存储在流缓存中。该信息可使用命令行界面进行查看或被导出到某个称为NetFlow收集器的外部目的地随后在NetFlow收集器出该同样的信息可使用某种应用报告工具an application reporting tool进行查看。要实现将NetFlow数据报告给NetFlow收集器需要使用以下步骤
参考图40.5,在本地路由器上入口流量被接收到。该流量被路由器加以探测,且 IP 属性信息被用于创建一个数据流。随后该数据流信息被存储在流缓存中。该信息可使用命令行界面进行查看,或被导出到某个称为 NetFlow 收集器的外部目的地,随后在 NetFlow 收集器出该同样的信息可使用某种应用报告工具an application reporting tool进行查看。要实现将 NetFlow 数据报告给 NetFlow 收集器,需要使用以下步骤:
1. 在设备上要配置思科IOS的NetFlow特性以将数据流捕获到NetFlow缓存。
1. 在设备上要配置思科 IOS NetFlow 特性,以将数据流捕获到 NetFlow 缓存。
2. 要配置好NetFlow导出功能以将数据流发送到收集器。
2. 要配置好 NetFlow 导出功能,以将数据流发送到收集器。
3. 就那些已经有一段时间不活动的、以被终止的或者仍活动但超出了活动计时器的数据流对NetFlow进行搜索The NetFlow cache is searched for flows that have been inactive for a certain period of time, have been terminated, or, for active flows, that last greater than the active timer
3. 就那些已经有一段时间不活动的、以被终止的,或者仍活动但超出了活动计时器的数据流,对 NetFlow 进行搜索The NetFlow cache is searched for flows that have been inactive for a certain period of time, have been terminated, or, for active flows, that last greater than the active timer
4. 将这些已标识出的数据流导出至NetFlow收集器服务器Those identified flows are exported to the NetFlow Collector server
4. 将这些已标识出的数据流导出至 NetFlow 收集器服务器Those identified flows are exported to the NetFlow Collector server
5. 将接近30到50个数据流打包在一起并通常经由UPD进行传送。
5. 将接近 30 50 个数据流打包在一起,并通常经由 UPD 进行传送。
6. NetFlow收集器软件从数据创建出实时或历史性的报告。
在配置思科IOS的NetFlow特性时需要三个主要步骤如下所示
在配置思科 IOS NetFlow 特性时,需要三个主要步骤,如下所示:
1. 在那些希望对信息进行捕获并在流缓存中存储的所有接口上,使用接口配置命令`ip flow ingress`把接口配置为将数据流捕获进入NetFlow缓存。重要的是记住NetFlow仅在每个接口的基础上配置的Configure the interface to capture flows into the NetFlow cache using the `ip flow ingress` interface configuration command on all interfaces for which you want information to be captured and stored in the flow cache. It is important to remember that NetFlow is configured on a per-interface basis only
1. 在那些希望对信息进行捕获并在流缓存中存储的所有接口上,使用接口配置命令`ip flow ingress`,把接口配置为将数据流捕获进入 NetFlow 缓存。重要的是记住 NetFlow 仅在每个接口的基础上配置的Configure the interface to capture flows into the NetFlow cache using the `ip flow ingress` interface configuration command on all interfaces for which you want information to be captured and stored in the flow cache. It is important to remember that NetFlow is configured on a per-interface basis only
> **Dario先生的提醒**:命令`ip route-cache flow`可在物理接口及其下的所有子接口上开启NetFlow数据流the `ip route-cache flow` command will enable flows on the physical interface and all subinterfaces associated with it
> 而`ip flow ingress`命令则将开同一接口上的单个子接口、而非所有子接口上开启NetFlow数据流。这在对观看某个接口的子接口`X`、`Y`及`Z`上的数据流不感兴趣,而真正想要观看同一接口上的子接口`A`、`B`与`C`子接口上的数据流时,此命令就很好用。
> 此外在NetFlow版本5下唯一选项是使用`ip flow ingress`命令来监视上传统计数据with NetFlow v5, the only option was to monitor inbound statistics using the `ip flow ingress` command。不过随着NetFlow版本9的发布现在就了使用`ip flow egress`命令,来对离开各个接口的流量进行监控的选择了。
> **Dario先生的提醒**:命令`ip route-cache flow`可在物理接口及其下的所有子接口上,开启( NetFlow 数据流the `ip route-cache flow` command will enable flows on the physical interface and all subinterfaces associated with it
> 而`ip flow ingress`命令则将开同一接口上的单个子接口、而非所有子接口上,开启( NetFlow )数据流。这在对观看某个接口的子接口`X`、`Y`及`Z`上的数据流不感兴趣,而真正想要观看同一接口上的子接口`A`、`B`与`C`子接口上的数据流时,此命令就很好用。
> 此外,在 NetFlow 版本 5 下,唯一选项是使用`ip flow ingress`命令来监视上传统计数据with NetFlow v5, the only option was to monitor inbound statistics using the `ip flow ingress` command。不过随着 NetFlow 版本 9 的发布,现在就了使用`ip flow egress`命令,来对离开各个接口的流量进行监控的选择了。
> **注意:** 从思科IOS版本`12.4(2)T`及`12.2(18)SXD`起,已将命令`ip flow ingress`替换为`ip route-cache flow`命令。而从思科IOS版本`12.2(25)S`起,命令`show running configuration` 的输出已被修改,因此命令`ip route-cache flow`命令,以及`ip flow ingress`命令,将在二者之一被配置后,出现在`show running-configuration`的输出中。
> **注意:** 从思科 IOS 版本`12.4(2)T`及`12.2(18)SXD`起,已将命令`ip flow ingress`替换为`ip route-cache flow`命令。而从思科 IOS 版本`12.2(25)S`起,命令`show running configuration` 的输出已被修改,因此命令`ip route-cache flow`命令,以及`ip flow ingress`命令,将在二者之一被配置后,出现在`show running-configuration`的输出中。
随后NetFlow信息就存储在本地路由器上同时可在本地设备上使用`show ip cache flow`查看到。
随后 NetFlow 信息就存储在本地路由器上,同时可在本地设备上,使用`show ip cache flow`查看到。
在打算将数据导出到NetFlow收集器的情况下将需要两个额外任务如下
在打算将数据导出到 NetFlow 收集器的情况下,将需要两个额外任务,如下:
2. 使用全局配置命令`ip flow-export version [1 | 5 | 9]`配置思科IOS NetFlow的版本或格式。NetFlow版本`1``v1`是在首个NetFlow发布中所支持的最初格式。在用于分析导出的NetFlow数据的应用仅支持该版本时才应使用此版本。相比版本`1`,版本`5`导出更多的字段,同时也是应用最广泛的版本。而版本`9`则是最新的思科IOS NetFlow版本也是一个新的IETF标准的基础。版本`9`是一个灵活的导出格式版本。
2. 使用全局配置命令`ip flow-export version [1 | 5 | 9]`配置思科IOS NetFlow的版本或格式。 NetFlow 版本`1``v1`)是在首个 NetFlow 发布中所支持的最初格式。在用于分析导出的 NetFlow 数据的应用仅支持该版本时,才应使用此版本。相比版本`1`,版本`5`导出更多的字段,同时也是应用最广泛的版本。而版本`9`则是最新的思科IOS NetFlow版本也是一个新的 IETF 标准的基础。版本`9`是一个灵活的导出格式版本。
3. 使用全局配置命令`ip flow-export destination [hostname | address] <port> [udp]`配置并指定NetFlow收集器的IP地址并于随后指定NetFlow收集器用于接收来自思科设备的UDP输出的UDP端口。其中的`[udp]`关键字是可选的且在使用该命令是不需要指定因为在将数据发送到NetFlow收集器时用户数据报协议是默认使用的传输协议。
3. 使用全局配置命令`ip flow-export destination [hostname | address] <port> [udp]`,配置并指定 NetFlow 收集器的 IP 地址,并于随后指定 NetFlow 收集器用于接收来自思科设备的 UDP 输出的 UDP 端口。其中的`[udp]`关键字是可选的,且在使用该命令是不需要指定,因为在将数据发送到 NetFlow 收集器时,用户数据报协议是默认使用的传输协议。
以下实例演示了如何为某个指定的路由器接口开启NetFlow
以下实例演示了如何为某个指定的路由器接口开启 NetFlow
```console
R1#config t
@ -436,7 +436,7 @@ Se0/0 150.1.1.254 Local 10.0.0.1 01 0000 0800 271
Se0/0 10.0.0.2 Local 1.1.1.1 06 C0B3 0017 59
```
下面的示例演示了如何配置并开启指定路由器接口的NetFlow数据收集并于随后使用NetFlow版本`5`的数据格式将数据导出到某台有着IP地址`150.1.1.254`的NetFlow收集器
下面的示例演示了如何配置并开启指定路由器接口的 NetFlow 数据收集,并于随后使用 NetFlow 版本`5`的数据格式,将数据导出到某台有着 IP 地址`150.1.1.254`的 NetFlow 收集器:
```console
R1(config)#interface Serial0/0
@ -454,25 +454,25 @@ R1(config)#exit
根据此配置就可在那台NetFlow Collector上使用某种应用报告工具查看到收集的信息。而尽管有数据的导出仍然可以在本地设备上使用`show ip cache flow`命令来查看统计数据,在对网络故障进行排除或报告问题时,此命令可作为一个有用的工具。
### 使用NetFlow的数据进行故障排除Troubleshooting Utilising NetFlow Data
### 使用 NetFlow 的数据进行故障排除Troubleshooting Utilising NetFlow Data
典型的企业网络有着成千上万的、仅在很短时间内就生成海量NetFlow数据的连接。NetFlow数据可转换为帮助管理员弄清楚网络中正在发生什么的有用图形与表格。NetFlow数据可辅助于以下方面
典型的企业网络,有着成千上万的、仅在很短时间内就生成海量 NetFlow 数据的连接。 NetFlow 数据可转换为帮助管理员弄清楚网络中正在发生什么的,有用图形与表格。 NetFlow 数据可辅助于以下方面:
- 提升整体网络性能
- 对一些诸如网络电话VoIP的应用提供支持
- 对一些诸如网络电话( VoIP )的应用提供支持
- 更好地对峰值流量进行管理Better manage traffic spikes
- 加强网络规定的执行Enforce network policies
- 揭示出那些指向恶意行为的流量模式Expose trffic patterns that point to malicious activities
NetFlow信息还可帮助管理员掌握到任何时候各种数据类型所消耗的网络资源百分比。一眼就可以发现由电邮、计费与ERP系统及其它应用等使用了多少带宽以及工作日期间有多少用户在观看YouTube视频或在打互联网电话。
NetFlow信息还可帮助管理员掌握到任何时候各种数据类型所消耗的网络资源百分比。一眼就可以发现由电邮、计费与 ERP 系统及其它应用等使用了多少带宽,以及工作日期间有多少用户在观看 YouTube 视频,或在打互联网电话。
NetFlow数据可以易于理解的形式进行呈现这就使得管理员能够轻易地对更多细节信息进行研究。他们可以就用户、应用、部门、对话、接口与协议等所产生的流量进行检查。使用NetFlow数据可以解决的一些情况示例包括
NetFlow数据可以易于理解的形式进行呈现这就使得管理员能够轻易地对更多细节信息进行研究。他们可以就用户、应用、部门、对话、接口与协议等所产生的流量进行检查。使用 NetFlow 数据可以解决的一些情况示例,包括:
- 网络容量问题Capacity issuesNetFlow可清楚地显示什么应用使用了最多的带宽及它们在何时使用了最多的带宽。此信息有助于改变应用流量模式从而提升网络性能。通用的做法对用户进行应用。
- 安全问题Security issuesNetFlow数据可对网络上的未授权流量模式进行探测并可在对网络造成任何危害之前阻止威胁。
- 网络语言故障比如低质量VoIP problems(poor quality, for example)在使用NetFlow分析识别出原因后这方面的问题可被矫正。NetFlow报告可给出对网络语音通话造成影响的带宽不足insufficient bandwidth、延迟或网络抖动等因素。
- 网络容量问题Capacity issues NetFlow 可清楚地显示什么应用使用了最多的带宽,及它们在何时使用了最多的带宽。此信息有助于改变应用流量模式,从而提升网络性能。通用的做法对用户进行应用。
- 安全问题Security issues NetFlow 数据可对网络上的未授权流量模式进行探测,并可在对网络造成任何危害之前阻止威胁。
- 网络语言故障比如低质量VoIP problems(poor quality, for example)):在使用 NetFlow 分析识别出原因后,这方面的问题可被矫正。 NetFlow 报告可给出对网络语音通话造成影响的带宽不足insufficient bandwidth、延迟或网络抖动等因素。
## 第40天问题
## 第 40 天问题
1. What underlying protocol does syslog use?
2. The syslog client sends syslog messages to the syslog sever using UDP as the Transport Layer protocol, specifying a destination port of `_______`.
@ -485,7 +485,7 @@ NetFlow数据可以易于理解的形式进行呈现这就使得管理员能
9. On which ports does SNMP operate?
10. Name the command you can use to change the NetFlow version.
## 第40天答案
## 第 40 天答案
1. UDP.
2. `514`.
@ -498,7 +498,7 @@ NetFlow数据可以易于理解的形式进行呈现这就使得管理员能
9. UDP `161` and `162`.
10. The `ip flow-export version x` global configuration command.
## 第40天实验
## 第 40 天实验
### 日志记录实验
@ -507,28 +507,28 @@ NetFlow数据可以易于理解的形式进行呈现这就使得管理员能
- 选择日志记录设施`local3``logging facility local2`
- 执行全局的`logging on`命令
- 选择日志记录的严重程度`informational`
- 在一台PC机上配置一个自由的`syslog`服务器并将其连接到路由器
- 在一台 PC 机上配置一个自由的`syslog`服务器并将其连接到路由器
- 执行`logging [address]`命令来指定该`syslog`服务器
- 指定`logging source-interface`命令
- 验证命令`show logging`
- 配置`service timestamp log datetime localtime msec show-timezone`命令
- 在PC机上检查`syslog`消息
- 在 PC 机上检查`syslog`消息
### SNMP实验
在思科路由器上配置SNMP
在思科路由器上配置 SNMP
- 使用`snmp-server host`命令配置SNMP服务器
- 使用`snmp-server community`命令配置SNMP的只读RO与读写RW共有字符串Configure SNMP RO and RW communities using the `snmp-server community` command
- 使用`snmp-server host`命令配置 SNMP 服务器
- 使用`snmp-server community`命令,配置 SNMP 的只读( RO )与读写( RW 共有字符串Configure SNMP RO and RW communities using the `snmp-server community` command
### NetFlow实验
在思科路由器上配置NetFlow
在思科路由器上配置 NetFlow
- 在某个路由器接口上开启IP数据流的入口与出口Enable IP flow ingress and egress on a router interface
- 在某个路由器接口上开启 IP 数据流的入口与出口Enable IP flow ingress and egress on a router interface
- 在有流量通过路由器后,对`show ip cache flow`命令进行检查
- 使用`ip flow-export`命令对NetFlow的版本进行配置
- 使用`ip flow-export`命令配置一台外部NetFlow服务器
- 使用`ip flow-export`命令对 NetFlow 的版本进行配置
- 使用`ip flow-export`命令配置一台外部 NetFlow 服务器
请访问[www.in60days.com](http://www.in60days.com)网站,免费观看作者完成此实验。

View File

@ -1,4 +1,4 @@
# 第41天 广域组网
# 第 41 天 广域组网
**Wide Area Networking**
@ -16,60 +16,60 @@ Gitbook[ccna60d.xfoss.com](https://ccna60d.xfoss.com/)
___
## 第41天任务
## 第 41 天任务
- 约定今天的课文(下面)
- 复习昨天的课文
- 完成自主选择的实验
- 阅读ICND2记诵指南
- 在[subnetting.org](http://www.subnetting.org)网站上花15分钟
- 阅读 ICND2 记诵指南
- 在[subnetting.org](http://www.subnetting.org)网站上花 15 分钟
思科将WAN有关的概念拆分到了ICND1与ICND2考试中后者关注的是帧中继及PPP协议Frame Relay and PPP protocols。因此本手册将看看基本的WAN概念、技术及协议。
思科将 WAN 有关的概念拆分到了 ICND1 ICND2 考试中,后者关注的是帧中继及 PPP 协议Frame Relay and PPP protocols。因此本手册将看看基本的 WAN 概念、技术及协议。
今天,将学习以下知识:
- 关于WAN的组件WAN components
- 关于WAN的协议WAN protocols
- 关于 WAN 的组件WAN components
- 关于 WAN 的协议WAN protocols
- 基本的串行线路的配置
- WAN连接的故障排除
此课程模块对应了以下ICND2考试大纲的有关有求
此课程模块对应了以下 ICND2 考试大纲的有关有求:
+ 认识不同的广域网技术
- 城域以太网Metro Ethernet
- 甚小孔径终端Very Small Aperture TerminalVSAT参考[维基百科](https://en.wikipedia.org/wiki/Very-small-aperture_terminal)
- 甚小孔径终端Very Small Aperture Terminal VSAT ,参考[维基百科](https://en.wikipedia.org/wiki/Very-small-aperture_terminal)
- T1/E1参考[维基百科T-carrier](https://en.wikipedia.org/wiki/T-carrier)[维基百科E-carrier](https://en.wikipedia.org/wiki/E-carrier)
- T3/E3
- 综合业务数字网Integrated Services Digital NetworkISDN
- 数字用户线路Digital Subscriber Line缩写DSL
- 综合业务数字网Integrated Services Digital Network ISDN
- 数字用户线路Digital Subscriber Line缩写 DSL
- 同轴线组网
- 第3代/第4代蜂窝网络Celluar 3G/4G, 基站蜂窝网络)
- 虛拟私人/专用网络Virtual Private NetworkVPN
- 多协议标签交换Multi-Protocol Label SwitchingMPLS
- 第 3 代/第 4 代蜂窝网络Celluar 3G/4G, 基站蜂窝网络)
- 虛拟私人/专用网络Virtual Private Network VPN
- 多协议标签交换Multi-Protocol Label Switching MPLS
- 配置并验证一条基本的WAN串行连接
- 对PPPoE进行部署与故障排除
- 配置并验证一条基本的 WAN 串行连接
- 对 PPPoE 进行部署与故障排除
## 广域网概述WAN Overview
为了提供网络设施不同部分的连通性广域网跨越极大的地理范围。与局域网环境不同并非所有的WAN组件都是由其所服务的特定企业保有的。相反WAN设备或连通性可从服务提供商处进行短期或长期租用rended, 短期、口头、临时的租用leased, 长期、书面、固定期限的租用)。
为了提供网络设施不同部分的连通性,广域网跨越极大的地理范围。与局域网环境不同,并非所有的 WAN 组件都是由其所服务的特定企业保有的。相反, WAN 设备或连通性可从服务提供商处进行短期或长期租用rended, 短期、口头、临时的租用leased, 长期、书面、固定期限的租用)。
大多数服务提供商都有良好培训,以确保它们可同时在极大的地理范围上,适当地支持传统数据流量,以及语音与视频业务(这些对延迟都更为敏感)。
有关WANs的另一个有趣的地方即与LANs不同这里通常有某种初期固定的投入以及某种周期性的经常业务费用Another interesting thing about WANs is that, unlike LANs, there is typically some initial fixed cost and some periodic recurring fees for the services。在广域组网下用户既不会拥有连接与某些设备还将必须持续付费给服务提供商。这就是应避免高配即购买仅需的带宽的原因之一。这就带来对部署有效的服务质量机制implementing effective Quality of Service mechanisms以避免购买额外WAN带宽的需求。靠开销通常与带宽高配中出现的经常性开支有关The high costs are usually associated with the recurring fees that might appear in the case of over-provisioning the bandwidth
有关 WANs 的另一个有趣的地方,即与 LANs 不同这里通常有某种初期固定的投入以及某种周期性的经常业务费用Another interesting thing about WANs is that, unlike LANs, there is typically some initial fixed cost and some periodic recurring fees for the services。在广域组网下用户既不会拥有连接与某些设备还将必须持续付费给服务提供商。这就是应避免高配即购买仅需的带宽的原因之一。这就带来对部署有效的服务质量机制implementing effective Quality of Service mechanisms以避免购买额外 WAN 带宽的需求。靠开销通常与带宽高配中出现的经常性开支有关The high costs are usually associated with the recurring fees that might appear in the case of over-provisioning the bandwidth
有关WAN技术设计方面的要求通常派生自以下这些方面
有关 WAN 技术设计方面的要求,通常派生自以下这些方面:
- 应用的类型Application type
- 应用的可用性Application availability
- 应用的可靠性Application reliability
- 与某种特定WAN技术有关的成本情况Costs associatedd with a particular WAN technology
- 与某种特定 WAN 技术有关的成本情况Costs associatedd with a particular WAN technology
- 应用的使用级别Usage levels for the application
## 广域网的类别WAN Categories
WAN分类中的一个必要概念就是电路交换技术该技术最为相关的实例就是公众交换电话网络了An essential concept in WAN categorisation is circuit-switched technology the most relevant example of this technology being the Public Switched Telephone Network, PSTN。而归入此类别的一种技术就是综合业务数字网。电路交换WAN连接的工作方式是在需要连接时变为连接建立状态并在连接不需要时连接终止。反映这种电路交换行为的另一个实例就是老式的拨号连接仅有PSTN的拨号调制解调器的模拟信号访问
WAN分类中的一个必要概念就是电路交换技术该技术最为相关的实例就是公众交换电话网络了An essential concept in WAN categorisation is circuit-switched technology the most relevant example of this technology being the Public Switched Telephone Network, PSTN。而归入此类别的一种技术就是综合业务数字网。电路交换 WAN 连接的工作方式,是在需要连接时变为连接建立状态,并在连接不需要时连接终止。反映这种电路交换行为的另一个实例,就是老式的拨号连接(仅有 PSTN 的拨号调制解调器的模拟信号访问)。
> **注意:** 就在不久之前,拨号技术都还是访问互联网资源的唯一方式,这种方式提供到平均`40kbps`的可用带宽。如今这种技术几乎绝迹了。
@ -77,15 +77,15 @@ WAN分类中的一个必要概念就是电路交换技术该技术最为相
WAN技术的另一种流行分类涉及包交换网络packet-switched networks。在包交换设施中共享带宽利用了虚拟电路技术in a packet-switched infrastruture, shared bandwidth utilises virtual circuits。客户可通过服务提供商的设施云创建出一条虚拟路径与长租线路类似。此虚拟电路有着专属的带宽但技术上将虚拟电路并非一条真实的长租线路。帧中继就是此种技术类型的一个实例。
包括作为帧中继前身的`X.25`在内的一些古早WAN技术。这种技术在某些实现中仍有出现但已经很罕见了如今帧中继也很少见了
包括作为帧中继前身的`X.25`在内的一些古早 WAN 技术。这种技术在某些实现中仍有出现,但已经很罕见了(如今帧中继也很少见了)。
另一种可能听过的WAN类别就是单元交换技术cell-switched technology了。这种WAN类型通常包含在包交换技术中因为它们非常类似。一种单元交换技术的实例就是异步传输模式Asynchronous Transfer Mode, ATM这种技术如今也相当罕见了。ATM是以固定大小的数据单元运作的而不是使用数据包如同在帧中继网络中所用的。单元交换技术构成一个共享带宽的环境因此服务提供商可确保客户有着通过其设施的固定水平的带宽。
另一种可能听过的 WAN 类别就是单元交换技术cell-switched technology了。这种 WAN 类型通常包含在包交换技术中因为它们非常类似。一种单元交换技术的实例就是异步传输模式Asynchronous Transfer Mode, ATM这种技术如今也相当罕见了 ATM 是以固定大小的数据单元运作的,而不是使用数据包(如同在帧中继网络中所用的)。单元交换技术构成一个共享带宽的环境,因此服务提供商可确保客户有着通过其设施的固定水平的带宽。
宽带Broadband接入是另一种正在增长中的WAN类别这种WAN接入方式包含了诸如以下这些技术
宽带( Broadband )接入是另一种正在增长中的 WAN 类别,这种 WAN 接入方式包含了诸如以下这些技术:
- 数字订户线路Digital Subscriber Line, DSL
- 同轴线网络Cable
- 无线接入Wireless
- 同轴线网络( Cable
- 无线接入( Wireless
宽带接入有着此种能力:采用如老式传输电视信号的同轴线的某种连接,并解决如何充分使用该既有带宽的不同方面的能力。比如通过将一个额外的、可与原先的电视信号一同传输的数据信号进行复用。
@ -97,15 +97,15 @@ WAN技术的另一种流行分类涉及包交换网络packet-switched netw
## 非广播多路复用技术NBMA Technologies
出现在广域组网中的一种特殊技术就是非广播多路复用了。所谓非广播多路复用技术表示某些在传统广播组网中没有的挑战。当某个需要经由同一网络进行通信系统分组不支持原生的广播时就出现了非广播多路访问的需求The need for NBMA arises when there is no native Broadcast support for a group of systems that want to communicate over the same network。在设备无法原生地发送以多路访问网段上的所有设备为目的的数据包时问题也就出现了。帧中继、ATM与ISDN默认就是非广播多路访问技术的实例。
出现在广域组网中的一种特殊技术就是非广播多路复用了。所谓非广播多路复用技术表示某些在传统广播组网中没有的挑战。当某个需要经由同一网络进行通信系统分组不支持原生的广播时就出现了非广播多路访问的需求The need for NBMA arises when there is no native Broadcast support for a group of systems that want to communicate over the same network。在设备无法原生地发送以多路访问网段上的所有设备为目的的数据包时问题也就出现了。帧中继、 ATM ISDN 默认就是非广播多路访问技术的实例。
所有这些技术都不具备支持广播的任何能力。这一点阻止了它们在其运作中运行那些用到广播的路由协议。在非广播网络中原生的多播支持也是没有的。在某种路由协议情景下参与的所有节点都必须接收到多播更新In the case of a routing protocol, all the nodes that participate must receive Multicast updates。对于使用非广播多路访问网络的这个问题一种办法就是作为重复的单播数据包来发送多播或广播数据包。在这种方式下广播/多播帧,是单独地发送到拓扑中的各节点的。此场景中的变通部分,就是设备必须想办法找到一种解决`Layer 3`到`Layer 2`解析的办法。特定数据包必须投送到需要接收到它们的特定机器上。
接着这个`Layer 3`到`Layer 2`的解析问题的方法必须存在才行。`Layer 3`的地址通常是IP地址而`Layer 2`的地址有通常根据所使用的技术而有所不同。在帧中继的情况下,`Layer 2`地址将由数据链路连接标识符Data Link Connection Identifier, DLCI编号构成那么就必须找到一种将DLCI解析到IP地址的方法。
接着这个`Layer 3`到`Layer 2`的解析问题的方法必须存在才行。`Layer 3`的地址通常是 IP 地址,而`Layer 2`的地址有通常根据所使用的技术而有所不同。在帧中继的情况下,`Layer 2`地址将由数据链路连接标识符Data Link Connection Identifier, DLCI编号构成那么就必须找到一种将 DLCI 解析到 IP 地址的方法。
在广播网络的情况下,`Layer 3`的解析使用MAC地址作为`Layer 2`的地址且MAC地址也必须被解析到IPv4地址。这是通过地址解析协议Address Resolution Protocol, ARP完成的。在基于广播的网络中设备通过指定其想要与其进行通信的设备通常经由DNS学习到及询问特定于那些设备的MAC地址而广播出解析请求。对地址解析请求的响应是经由单播并包含了所请求的MAC地址In a Broadcast-based network, the devices broadcast the requests by specifying the devices it wants to communicate with(typically learned via DNS) and asking for the MAC addresses specific to those devices. The reply is via Unicast and includes the requested MAC addresses
在广播网络的情况下,`Layer 3`的解析,使用 MAC 地址作为`Layer 2`的地址,且 MAC 地址也必须被解析到 IPv4 地址。这是通过地址解析协议Address Resolution Protocol, ARP完成的。在基于广播的网络中设备通过指定其想要与其进行通信的设备通常经由 DNS 学习到),及询问特定于那些设备的 MAC 地址,而广播出解析请求。对地址解析请求的响应,是经由单播并包含了所请求的 MAC 地址In a Broadcast-based network, the devices broadcast the requests by specifying the devices it wants to communicate with(typically learned via DNS) and asking for the MAC addresses specific to those devices. The reply is via Unicast and includes the requested MAC addresses
在非广播多路访问环境中,仍需要将`Layer 3`地址IP地址绑定到`Layer 2`地址数据链路连接标识符。这可通过使用反向ARP的一种自动化方式完成This can be done in an automated fashion using Inverse ARP。此操作用于将远端的`Layer 3`地址解析到`Layer 2`地址并仅用于本地。反向ARP可用在帧中继环境中。反向ARP作为一种在非广播多路复用环境中`Layer 3`到`Layer 2`解析的方案问题在于其受限于直接连接的设备。这就造成在部分网状网络partial-mesh networks其中并非所有设备都是直接连接的中的问题。
在非广播多路访问环境中,仍需要将`Layer 3`地址( IP 地址)绑定到`Layer 2`地址(数据链路连接标识符)。这可通过使用反向 ARP 的一种自动化方式完成This can be done in an automated fashion using Inverse ARP。此操作用于将远端的`Layer 3`地址解析到`Layer 2`地址,并仅用于本地。反向 ARP 可用在帧中继环境中。反向 ARP 作为一种在非广播多路复用环境中`Layer 3`到`Layer 2`解析的方案问题在于其受限于直接连接的设备。这就造成在部分网状网络partial-mesh networks其中并非所有设备都是直接连接的中的问题。
非广播多路服务的接口有两种 -- 多点与点对点接口如下图41.2所示。多点接口要求某种`Layer 3`到`Layer 2`的解析方法。顾名思义,多点接口可作为多个`Layer 2`电路的端节点As its name implies, it can be the termination point of multiple Layer 2 circuits
@ -115,22 +115,22 @@ WAN技术的另一种流行分类涉及包交换网络packet-switched netw
在设备的主要物理接口上配置了帧中继时那个接口将默认成为多点的。而在某个帧中继物理接口上创建了一个子接口时创建它的选项就意味着多点存在了If a subinterface is created on a Frame Relay physical interface, the option of creating it as Multipoint exists。对于物理接口与子接口逻辑接口都必须配置上`Layer 3`到`Layer 2`的解析。在帧中继中,有两个选项来完成此解析:
- 反向ARPInverse ARP
- 反向 ARP Inverse ARP
- 静态映射Statically map
`Layer 3`到`Layer 2`的解析并不总是NBMA接口上的问题因为可创建出点对点广域网接口Point-to-Point WAN interfaces。点对点接口仅能端接单个的`Layer 2`电路,因此在接口仅与单个设备通信时,`Layer 3`到`Layer 2`的解析就无必要。在只有一条电路上,进行通信的就只有一个`Layer 2`地址。在比如运行一个帧中继的点对点子接口或一个ATM的点对点子接口时`Layer 3`到`Layer 2`的解析问题会消失。
`Layer 3`到`Layer 2`的解析,并不总是 NBMA 接口上的问题因为可创建出点对点广域网接口Point-to-Point WAN interfaces。点对点接口仅能端接单个的`Layer 2`电路,因此在接口仅与单个设备通信时,`Layer 3`到`Layer 2`的解析就无必要。在只有一条电路上,进行通信的就只有一个`Layer 2`地址。在比如运行一个帧中继的点对点子接口,或一个 ATM 的点对点子接口时,`Layer 3`到`Layer 2`的解析问题会消失。
## 广域网组件WAN Components
广域网需要一些物理组件来建立连接WAN requires a number of physical components to enable a connection。依据所使用的连接类型比如ISDN、ADSL、帧中继、长租线路等与其它因素诸如后备连接与传入网络数目等这些组件会有所不同。
广域网需要一些物理组件来建立连接WAN requires a number of physical components to enable a connection。依据所使用的连接类型比如 ISDN ADSL 、帧中继、长租线路等)与其它因素,诸如后备连接与传入网络数目等,这些组件会有所不同。
![基本的广域网组件](images/4103.png)
*图 41.3 - 基本的广域网组件*
上图41.3展示了一个基本的接到ISP的串行连接Figure 41.3 above shows a basic serial connection going out to an ISP。作为用户要负责数据终端设备Data Terminal Equipment, DTE也就是接受传入链路的用户路由器接口。用户还将负责连接到用户的信道服务单元/数据业务单元Channel Service Unit(CSU)/Data Service Unit(DSU)的电线CSU/DSU将用户数据转换成ISP可传输的格式。CSU/DSU通常已被内建到用户路由器的WAN接口卡WAN interface card, WIC中。上图中的CPE为客户驻地设备Customer Premise Equipment, CPE由用户负责。
上图41.3展示了一个基本的接到 ISP 的串行连接Figure 41.3 above shows a basic serial connection going out to an ISP。作为用户要负责数据终端设备Data Terminal Equipment, DTE也就是接受传入链路的用户路由器接口。用户还将负责连接到用户的信道服务单元/数据业务单元Channel Service Unit(CSU)/Data Service Unit(DSU)的电线CSU/DSU将用户数据转换成 ISP 可传输的格式。CSU/DSU通常已被内建到用户路由器的 WAN 接口卡WAN interface card, WIC中。上图中的 CPE 为客户驻地设备Customer Premise Equipment, CPE由用户负责。
从这一点开始通常就是ISP或电信公司来负责连接了。它们铺设电缆并提供将数据在其网络上传输的交换站From this point on, your ISP or Telco is usually responsible for the connection. They lay the cables and provide switching stations, which transport the data across their network。ISP保有作为连接末端、提供时钟的数据通信设备Data Communication Equipment, DCE所谓时钟指的是在线路上数据可以何种速率进行传递。
从这一点开始,通常就是 ISP 或电信公司来负责连接了。它们铺设电缆并提供将数据在其网络上传输的交换站From this point on, your ISP or Telco is usually responsible for the connection. They lay the cables and provide switching stations, which transport the data across their network ISP 保有作为连接末端、提供时钟的数据通信设备Data Communication Equipment, DCE所谓时钟指的是在线路上数据可以何种速率进行传递。
常见的广域网连接类型包含下面这些:
@ -142,21 +142,21 @@ WAN技术的另一种流行分类涉及包交换网络packet-switched netw
## 广域网的协议WAN Protocols
常见的广域网协议包括点对点协议Point-to-Point Protocol, PPP、高级别数据链路控制协议High-level Data Link ControlHDLC与帧中继协议Frame Relay。当然也有许多其它协议只是这里需要重点关注CCNA大纲中所包含的这三个协议。
常见的广域网协议包括点对点协议Point-to-Point Protocol, PPP、高级别数据链路控制协议High-level Data Link Control HDLC 与帧中继协议Frame Relay。当然也有许多其它协议只是这里需要重点关注 CCNA 大纲中所包含的这三个协议。
点对点协议PPP可用于思科设备连接到一台非思科设备时。PPP同样具备包含认证的优势。其可在多种连接类型包括数字订户线路DSL连接、电路交换连接以及异步/同步连接等上使用。
点对点协议( PPP )可用于思科设备连接到一台非思科设备时。 PPP 同样具备包含认证的优势。其可在多种连接类型,包括数字订户线路( DSL )连接、电路交换连接以及异步/同步连接等上使用。
思科的高级数据链路控制High-level Data Link Control, HDLC是思科对开放标准HDLC的实现。HDLC需要数据终端设备DTE与数据通信设备DCE并是思科路由器串行接口上默认的封装类型。为对链路状态进行检查会从DCE发出保持活动报文保持活动报文是由一台设备往另一台设备发送的用于检查二者之间运作或阻止链路破坏的报文
思科的高级数据链路控制High-level Data Link Control, HDLC是思科对开放标准 HDLC 的实现。 HDLC 需要数据终端设备( DTE )与数据通信设备( DCE ),并是思科路由器(串行接口)上默认的封装类型。为对链路状态进行检查,会从 DCE 发出保持活动报文(注:保持活动报文是由一台设备往另一台设备发送的,用于检查二者之间运作,或阻止链路破坏的报文)。
如同早前所讨论的帧中继是一种近年来以日渐式微的包交换技术因为数字订户链路接入已成为相较帧中继更为经济及更可行的WAN连接方式。帧中继工作在从`56Kbps`到`2Mbps`的速度上并在每次连接需要时建立起虚拟电路。没有将安全考量构建到帧中继中不过请参阅下面Farai的补充内容。后面将详细介绍到帧中继。
如同早前所讨论的,帧中继是一种近年来以日渐式微的包交换技术,因为数字订户链路接入已成为相较帧中继更为经济及更可行的 WAN 连接方式。帧中继工作在从`56Kbps`到`2Mbps`的速度上,并在每次连接需要时,建立起虚拟电路。没有将安全考量构建到帧中继中(不过请参阅下面 Farai 的补充内容)。后面将详细介绍到帧中继。
> Farai先生谈到 -- “虽然帧中继可以使用按需创建的交换虚拟电路Switched Virtual Circuits, SVCs但其一般使用总是存在的永久虚拟电路Permanent Virtual Circuits, PVCs。永久虚拟电路是虚拟专用网络的一种a type of Virtual Private Network(VPN)。不过有人在帧中继上运行PPP从而实现帧中继连接的PPP安全性。”
> Farai先生谈到 -- “虽然帧中继可以使用按需创建的交换虚拟电路Switched Virtual Circuits, SVCs但其一般使用总是存在的永久虚拟电路Permanent Virtual Circuits, PVCs。永久虚拟电路是虚拟专用网络的一种a type of Virtual Private Network(VPN))。不过有人在帧中继上运行 PPP ,从而实现帧中继连接的 PPP 安全性。”
## 城域以太网Metro Ethernet
城域以太网Metro Ethernet技术涉及在城域网上运营商以太网的运用Metro Ethernet technologies involve the use of carrier Ethernet in Metropolitan Area Networks(MANs)。城域以太网可将公司局域网或个人终端用户连接到广域网或互联网。公司通常使用城域以太网将其分支机构连接到内部网Companies often use Metro Ethernet to connect branch offices to an intranet
典型的城域以太网部署通常采用铜缆或光缆使用以互联的网络节点的星形或网状拓扑A typical Metro Ethernet deployment uses a star or a mesh topology with interconnected network nodes using copper or fibre optic cables。在城域以太网部署中采用标准及广泛应用的以太网技术与同步光网络Synchronous Optical Networking, SONET/同步数字体系Synchronous Digital HierarchySDH或多协议标签交换Multi-Protocol Label Switching, MPLS相比可提供到诸多优势
典型的城域以太网部署通常采用铜缆或光缆使用以互联的网络节点的星形或网状拓扑A typical Metro Ethernet deployment uses a star or a mesh topology with interconnected network nodes using copper or fibre optic cables。在城域以太网部署中采用标准及广泛应用的以太网技术与同步光网络Synchronous Optical Networking, SONET/同步数字体系Synchronous Digital Hierarchy SDH 或多协议标签交换Multi-Protocol Label Switching, MPLS相比可提供到诸多优势
- 较少的成本Less expensive
- 更容易部署Easier to implement
@ -166,12 +166,12 @@ WAN技术的另一种流行分类涉及包交换网络packet-switched netw
典型的城域网,可在接入/聚合/核心标准设计一种思科的设计模式the access/aggregation/core standard design,)下进行结构化,如下所示:
- 接入层 - 通常位于客户驻地处。这一层可能包含一台办公室路由器或家用网关Access Layer -- usually at the customer's premises. This may include an office router or residential gateway
- 聚合层 - 通常由微波、数字订户线路DSL技术或点对点以太网链路等构成Aggregation Layer -- usually comprises microwave, DSL technologies, or Point-to-Point Ethernet links
- 聚合层 - 通常由微波、数字订户线路( DSL 技术或点对点以太网链路等构成Aggregation Layer -- usually comprises microwave, DSL technologies, or Point-to-Point Ethernet links
- 核心层 - 可能使用多协议标签交换技术来对不同城域网进行互联Core Layer -- may use MPLS to interconnect different MANs
在城域网中以使用实现数据包区分的以太网VLAN标签的方式客户流量隔离通常得以确保Customer traffic separation is usually ensured in a MAN by using Ethernet VLAN tags that allow the differentiation of packets
在城域网中,以使用实现数据包区分的以太网 VLAN 标签的方式客户流量隔离通常得以确保Customer traffic separation is usually ensured in a MAN by using Ethernet VLAN tags that allow the differentiation of packets
## 甚小口径终端VSAT
## 甚小口径终端( VSAT
甚小口径终端Very Small Aperture Terminal, VSAT技术是一种基于无线卫星技术的电讯系统。甚小口径终端是由小型卫星地球站与一个典型的天线构成如下图41.4所示:
@ -185,7 +185,7 @@ WAN技术的另一种流行分类涉及包交换网络packet-switched netw
- 远端地球站Remote earth station
- 卫星
主地球站是整个VSAT网络的网络控制中心。于主地球控制站于完成整个网络的配置、管理与监测。
主地球站是整个 VSAT 网络的网络控制中心。于主地球控制站于完成整个网络的配置、管理与监测。
远端地球站则是安装在客户驻地的硬件设备,包含以下这些:
@ -201,7 +201,7 @@ VSAT网络可以下面的拓扑之一进行配置
- 网状网络Mesh topology
- 星形网状拓扑Star-mesh topology
使用卫星技术来确保WAN的连通性一般要比使用传统的地面网络连接要昂贵Using satellite technology to ensure WAN connectivity is generally more expensive than using a traditional terrestrial network connection。此类连接所提供到的速度可达`5Mbps`的下载与`1Mbps`的上传,对于远端站点这通常是足够的。
使用卫星技术来确保 WAN 的连通性一般要比使用传统的地面网络连接要昂贵Using satellite technology to ensure WAN connectivity is generally more expensive than using a traditional terrestrial network connection。此类连接所提供到的速度可达`5Mbps`的下载与`1Mbps`的上传,对于远端站点这通常是足够的。
使用卫星连通性的一个显著不足,就是流量延迟的增加,延迟可达单向(天线到卫星或卫星到天线)`250ms`,这是由于在极远距离上无线电信号的使用造成的。在规划安装卫星广域网连接时,延迟就应予以仔细分析,因为延迟增加可能导致那些对延迟敏感的应用停摆,当然对其它应用并没有什么影响。
@ -209,87 +209,87 @@ VSAT网络可以下面的拓扑之一进行配置
## `T1`/`E1`
`T1`与`E1`的广域组网标准已存在相当长时间了。`T1`代表T-载波级别1T-carrier Level 1`T1`其为一条使用了基于时间的、与不同信道相关的数字信号的市分复用的线路a line that uses Time Division Multiplexing with digital signals associated with different channels based on time。`T1`使用`24`个分立信道、运行在`1.544Mbps`的线路传输速率,那么每个单独信道分配的就是`64Kbps``T1` operates using `24` separate channels at a `1.544Mbps` line rate, thus allocating `64Kbps` per individual channel。这`24`个信道可以想怎么用就怎么用,设置可根据需要从服务提供商那里只购买其中的几个信道。笼而统之,可将一条`T1`连接,看作是一个有着`24`条分立线路的中继/捆绑In general terms, consider a `T1` connection as a trunk/bundle carrying `24` separate lines。在以下地区`T1`作为一项经常使用的标准:
`T1`与`E1`的广域组网标准已存在相当长时间了。`T1`代表T-载波级别 1 T-carrier Level 1`T1`其为一条使用了基于时间的、与不同信道相关的数字信号的市分复用的线路a line that uses Time Division Multiplexing with digital signals associated with different channels based on time。`T1`使用`24`个分立信道、运行在`1.544Mbps`的线路传输速率,那么每个单独信道分配的就是`64Kbps``T1` operates using `24` separate channels at a `1.544Mbps` line rate, thus allocating `64Kbps` per individual channel。这`24`个信道可以想怎么用就怎么用,设置可根据需要从服务提供商那里只购买其中的几个信道。笼而统之,可将一条`T1`连接,看作是一个有着`24`条分立线路的中继/捆绑In general terms, consider a `T1` connection as a trunk/bundle carrying `24` separate lines。在以下地区`T1`作为一项经常使用的标准:
- 北美
- 日本
- 韩国
`E1`E-载波级别1是一种与`T1`类似的标准,不过仅在欧洲使用。`E1`与`T1`的主要区别在于,`E1`使用了`32`个信道,而不是`24`个,这些信道仍然运行在`64Kbps`,因此提供到共计`2.048Mbps`的线路速率。与`T1`一样,`E1`也是基于时分复用的,因此二者之间的所有其它功能都一样。
`E1`E-载波级别 1 )是一种与`T1`类似的标准,不过仅在欧洲使用。`E1`与`T1`的主要区别在于,`E1`使用了`32`个信道,而不是`24`个,这些信道仍然运行在`64Kbps`,因此提供到共计`2.048Mbps`的线路速率。与`T1`一样,`E1`也是基于时分复用的,因此二者之间的所有其它功能都一样。
## `T3`/`E3`
`T3`/`E3`标准提供到相较它们的`T1`与`E1`前辈更高的带宽。`T3`表示T-载波级别3T-carrier Level 3且是一种通常基于同轴电缆与BNC连接器英语Bayonet Neill-Concelman直译为“尼尔-康塞曼卡口”)的连接类型。这一点与通过双绞线介质进行提供的`T1`有所不同。
`T3`/`E3`标准提供到相较它们的`T1`与`E1`前辈更高的带宽。`T3`表示T-载波级别 3 T-carrier Level 3且是一种通常基于同轴电缆与 BNC 连接器英语Bayonet Neill-Concelman直译为“尼尔-康塞曼卡口”)的连接类型。这一点与通过双绞线介质进行提供的`T1`有所不同。
`T3`连接通常被称为数字信号3Digital Signal 3, `DS3`有贝尔实验室所涉及的T载波信号发送方案连接而`DS3`连接则与在`T3`线路上所传递的数据有关。因为`T3`使用相当于`28`条的`T1`电路,也就是`672`个`T1`信道,从而提供到额外的吞吐量。这就提供了总共`44.736Mbps`的线路速率。
`T3`连接通常被称为数字信号 3 Digital Signal 3, `DS3`,有贝尔实验室所涉及的 T 载波信号发送方案)连接,而`DS3`连接则与在`T3`线路上所传递的数据有关。因为`T3`使用相当于`28`条的`T1`电路,也就是`672`个`T1`信道,从而提供到额外的吞吐量。这就提供了总共`44.736Mbps`的线路速率。
`E3`除了等价于`16`条的`E1`电路,也就是`512`个`E1`信道,及总计`33.368Mbps`的线路速率外,`E3`连接与那些`T3`类似。
因为`T3`/`E3`提供了在需要时增加吞吐总量的能力,因此`T3`/`E3`连接通常用在大型数据中心里。
## 数字综合业务网ISDN
## 数字综合业务网( ISDN
数字综合业务网Integrated Services Digital Network, ISDN是一种在传统模拟电话线路上实现数字通信的技术从而语音与数据都可在公众交换电话网Public Switched Telephone Network, PSTN上进行数字传输。因为其生不逢时诞生之时恰逢其它替代技术也在开发所以ISDN从来也没有如预期的那样得到广泛应用。
数字综合业务网Integrated Services Digital Network, ISDN是一种在传统模拟电话线路上实现数字通信的技术从而语音与数据都可在公众交换电话网Public Switched Telephone Network, PSTN上进行数字传输。因为其生不逢时诞生之时恰逢其它替代技术也在开发所以 ISDN 从来也没有如预期的那样得到广泛应用。
数字综合业务网有两种流派There are two flavours of ISDN
- 数字综合业务网的基本速率接口ISDN Basic Rate Interface
- 主速率接口ISDN Primary Rate Interface
采用ISDN协议设备被成为 **终端仿真设备**而这类设备又可分类为原生ISDN与非原生ISDN设备The ISDN-speaking devices are called terminal enulation equipment and the devices can be categorised into native ISDN and non-native ISDN equipment。原生ISDN设备又制作为ISDN就绪的装置构成且这些设备被称为`TE1`终端设备一Terminal Equipment 1装置。非原生ISDN设备则是由`TE2`装置构成。非原生ISDN设备可使用特别的终端适配器Terminal Adapters, `TAs`与原生ISDN设备进行集成也就是说只有`TE2`的装置,才需要终端适配器模块。
采用 ISDN 协议设备被成为 **终端仿真设备**,而这类设备又可分类为原生 ISDN 与非原生 ISDN 设备The ISDN-speaking devices are called terminal enulation equipment and the devices can be categorised into native ISDN and non-native ISDN equipment。原生 ISDN 设备又制作为 ISDN 就绪的装置构成,且这些设备被称为`TE1`终端设备一Terminal Equipment 1装置。非原生 ISDN 设备,则是由`TE2`装置构成。非原生 ISDN 设备可使用特别的终端适配器Terminal Adapters, `TAs`)与原生 ISDN 设备进行集成,也就是说只有`TE2`的装置,才需要终端适配器模块。
移步到ISDN服务提供商处将找到网络端接二Network Termination 2, `NT2`设备及网络端接一Network Termination 1, `NT1`)设备。这些设备是传输介质的转换设备,将五线连接,转换成两线连接(本地环回)。本地环回就是用户连接线路,且它是一条两条线的链路。
移步到 ISDN 服务提供商处将找到网络端接二Network Termination 2, `NT2`设备及网络端接一Network Termination 1, `NT1`)设备。这些设备是传输介质的转换设备,将五线连接,转换成两线连接(本地环回)。本地环回就是用户连接线路,且它是一条两条线的链路。
网络端接装置the network termination devices的一个有趣的地方在于在北美是由客户负责`NT1`设备,而在世界上的其它地方,则是由服务提供商负责`NT1`设备的。因为这个问题,一些思科路由器提供了内建的`NT1`功能,而这些路由器将在端口编号下标注一个可见的`U`字符,这样用户就可以很快注意到路由器的此项能力。`U`这个记号是来自于ISDN的参考点命名法the ISDN reference points terminology该命名法对ISDN设施中的何处可能有故障进行了描述如下图41.5中所示:
网络端接装置the network termination devices的一个有趣的地方在于在北美是由客户负责`NT1`设备,而在世界上的其它地方,则是由服务提供商负责`NT1`设备的。因为这个问题,一些思科路由器提供了内建的`NT1`功能,而这些路由器将在端口编号下标注一个可见的`U`字符,这样用户就可以很快注意到路由器的此项能力。`U`这个记号,是来自于 ISDN 的参考点命名法the ISDN reference points terminology该命名法对 ISDN 设施中的何处可能有故障进行了描述如下图41.5中所示:
![ISDN的参考点](images/4105.png)
*图 41.5 - ISDN的参考点*
在某个ISDN网络的故障排除或维护过程中这些参考点尤为重要。ISDN交换机通常位于服务提供商处。这些不同的ISDN参考点就是下面这些
在某个 ISDN 网络的故障排除或维护过程中,这些参考点尤为重要。 ISDN 交换机通常位于服务提供商处。这些不同的 ISDN 参考点就是下面这些:
- `U`参考点 - 位于ISDN交换机与`NT1`装置之间
- `U`参考点 - 位于 ISDN 交换机与`NT1`装置之间
- `T`参考点 - 位于`NT2`与`NT1`装置之间
- `S`参考点 - 位于终端(`TE1`或`TA`)与`NT2`之间
- `R`参考点 - 位于非ISDN原生设备`TE2`)与`TAs`之间
- `R`参考点 - 位于非 ISDN 原生设备(`TE2`)与`TAs`之间
> **注** 1、TE2` + `TA` === `TE1`2、大多数`NT1`设备都包含了`NT2`设备的功能,因此`S`与`T`一般合并为`S/T`3、在北美`NT1`设备属于用户自备设备,用户必须自己来维护,因此电话公司提供给用户`U`接口。在其他国家,`NT1`设备由电信公司维护,他们提供给客户`S/T`接口。
> **注** 1、TE2` + `TA` === `TE1` 2 、大多数`NT1`设备都包含了`NT2`设备的功能,因此`S`与`T`一般合并为`S/T` 3 、在北美,`NT1`设备属于用户自备设备,用户必须自己来维护,因此电话公司提供给用户`U`接口。在其他国家,`NT1`设备由电信公司维护,他们提供给客户`S/T`接口。
ISDN的基本速率接口Basic Rate Interface, BRI连通性包含两个用于传递数据的`B` _Bearer_, 承载?)信道,与一个用于信号与控制(也能用于数据)的`D` _Delta_ )信道。基本速率接口被缩写为`2B+D`以对每个接口所提供的信道数目进行提示。ISDN中的每个承载信道都将以`64Kbps`进行运作。可在这些接口上配置多链路的点对点协议Multilink Point-to-Point Protocol以允许用户达到`128Kbps`的带宽。与当今网络需求相比,此带宽被认为是相当低的。
ISDN的基本速率接口Basic Rate Interface, BRI连通性包含两个用于传递数据的`B` _Bearer_, 承载?)信道,与一个用于信号与控制(也能用于数据)的`D` _Delta_ )信道。基本速率接口被缩写为`2B+D`,以对每个接口所提供的信道数目进行提示。 ISDN 中的每个承载信道都将以`64Kbps`进行运作。可在这些接口上配置多链路的点对点协议Multilink Point-to-Point Protocol以允许用户达到`128Kbps`的带宽。与当今网络需求相比,此带宽被认为是相当低的。
BRI ISDN中的`D`信道,专用于`16Kbps`的控制流量。在ISDN环境中还有全部用于组帧控制及其它额外开销的`48Kbps`带宽那么BRI的总ISDN带宽就是`192Kbps`(来自`B`信道的`128Kbps` + `D`信道的`16Kbps` + 额外开销`48Kbps`the _delta_ channel in BRI ISDN is dedicated to 16Kbps for control traffic. There are also `48Kbps` overall for framing control and other overhead in the ISDN environment, meaning the total ISDN bandwidth for BRI is `192Kbps`(`128Kbps` from the `B` channels + `16Kbps` from the `D` channel + `48Kbps` overhead))。
BRI ISDN中的`D`信道,专用于`16Kbps`的控制流量。在 ISDN 环境中还有全部用于组帧控制及其它额外开销的`48Kbps`(带宽),那么 BRI 的总 ISDN 带宽就是`192Kbps`(来自`B`信道的`128Kbps` + `D`信道的`16Kbps` + 额外开销`48Kbps`the _delta_ channel in BRI ISDN is dedicated to 16Kbps for control traffic. There are also `48Kbps` overall for framing control and other overhead in the ISDN environment, meaning the total ISDN bandwidth for BRI is `192Kbps`(`128Kbps` from the `B` channels + `16Kbps` from the `D` channel + `48Kbps` overhead))。
在美国和日本ISDN主速率接口Primary Rate Interface, PRI有着`23`个`B`承载信道及一个`D`控制( _delta_ )信道。所有承载与控制信道都支持`64Kbps`。在包含了额外开销后总的PRI带宽为`1.544Mbps`。在世界上的其它地方即欧洲与澳大利亚PRI包含`30`个承载信道与一个控制信道。
在美国和日本, ISDN 主速率接口Primary Rate Interface, PRI有着`23`个`B`承载信道及一个`D`控制( _delta_ )信道。所有承载与控制信道都支持`64Kbps`。在包含了额外开销后,总的 PRI 带宽为`1.544Mbps`。在世界上的其它地方(即欧洲与澳大利亚), PRI 包含`30`个承载信道与一个控制信道。
ISDN PRI连接通常用作从公众交换电话网到大型电话系统<电话>专用交换分机专用电话总机private branch (telephone) exchange, PBX的连通性。`23`或`32`个`B`信道中的每个都可用作单独电话线路因此可将整个的PRI连接看作是传递多条线路的中继线路a trunk that carries multiple lines。使用PRI连接而不是多条独立线路的优势在于其更易于管理且提供了伸缩性。
ISDN PRI连接通常用作从公众交换电话网到大型电话系统<电话>专用交换分机专用电话总机private branch (telephone) exchange, PBX的连通性。`23`或`32`个`B`信道中的每个,都可用作单独电话线路,因此可将整个的 PRI 连接看作是传递多条线路的中继线路a trunk that carries multiple lines。使用 PRI 连接而不是多条独立线路的优势在于,其更易于管理且提供了伸缩性。
上面所介绍的技术叫做时分复用技术。时分复用市值可将多个信道经由单一完整的传输介质进行结合并将这些不同信道分别用于语音、视频及数据。时分指的是将连接分切为不同通信信道的、小的时间窗口TDM refers to being able to combine multiple channels over a single overall transimission medium and using these differenct channels for voice, video, and data. Time Division refers to splitting the connection into small windows of time for the various communication channels
在某个公众交换电话网中,就需要沿同一传输介质,传输多个通话,因此就使用时分复用来达到此目标。实际上在电报时期,时分复用就开始了,并于随后在传真机及其它使用到时分复用的设备上广泛使用。
在拥有长租线路购买的专用带宽所售卖的电路是以带宽的名义进行计量的。北美的一条数字信号1Digital Signal 1, `DS1`或T载波级别1T-carrier Level 1, `T1`)电路提供了`24`个、每个`64Kbps`的时间槽(`24` time slots of `64Kbps` each。以及一个`9Kbps`的控制时间槽a `9Kbps` control time slot如先前所提到的总共`1.544Mbps`。时分复用的术语与长租线路采购流程紧密的联系在一起TDM terminology is tightly connected with the leased-line pruchasing process
在拥有长租线路(购买的专用带宽)时,所售卖的电路是以带宽的名义进行计量的。北美的一条数字信号 1 Digital Signal 1, `DS1`)或 T 载波级别 1 T-carrier Level 1, `T1`)电路提供了`24`个、每个`64Kbps`的时间槽(`24` time slots of `64Kbps` each。以及一个`9Kbps`的控制时间槽a `9Kbps` control time slot如先前所提到的总共`1.544Mbps`。时分复用的术语与长租线路采购流程紧密的联系在一起TDM terminology is tightly connected with the leased-line pruchasing process
## 数字订户线路Digital Subscriber Line, DSL
数字订户线路用作家庭用户的ISDN的替代方案DSL is used as an alternative to ISDN for home users。DSL连接的类型有数种但最重要的几种包括下面这些
数字订户线路用作家庭用户的 ISDN 的替代方案DSL is used as an alternative to ISDN for home users DSL 连接的类型有数种,但最重要的几种包括下面这些:
- ADSL(Asymmetric DSL非对称DSL)
- HDSLHigh-bit-rate DSL高速DSL
- VDSLVery-high-bit-rate DSL, 甚高速DSL
- SDSLSymmetric DSL对称DSL
- HDSLHigh-bit-rate DSL高速 DSL
- VDSLVery-high-bit-rate DSL, 甚高速 DSL
- SDSLSymmetric DSL对称 DSL
非对称DSL是经由标准电话线路运作的DSL连接的最常见形式。其被成为非对称的原因就是其提供了不相等的下载和上传吞吐量其中下载速率要高于上传速率。一条标准的非对称DSL连接通常提供到在最远3公里的最大`24Mbps`的下载吞吐量与最大`3.5Mbps`的上传吞吐量。
非对称 DSL 是经由标准电话线路运作的 DSL 连接的最常见形式。其被成为非对称的原因,就是其提供了不相等的下载和上传吞吐量,其中下载速率要高于上传速率。一条标准的非对称 DSL 连接,通常提供到在最远 3 公里的,最大`24Mbps`的下载吞吐量与最大`3.5Mbps`的上传吞吐量。
在非对称DSL下客户是连接到位处服务提供商处的DSL访问服用器DSL Access Multiplexer, DSLAM上的。DSL访问服用器是一台对来自多个用户的连接进行聚合的DSL汇聚设备DSLAM is a DSL concentrator device that aggregates connections from multiple users
在非对称 DSL 下,客户是连接到位处服务提供商处的 DSL 访问服用器DSL Access Multiplexer, DSLAM上的。 DSL 访问服用器是一台对来自多个用户的连接,进行聚合的 DSL 汇聚设备DSLAM is a DSL concentrator device that aggregates connections from multiple users
> **注意:** ADSL的一个问题在于订户与DSLAM的距离受限。
> **注意:** ADSL的一个问题在于订户与 DSLAM 的距离受限。
高速DSLHigh Bitrate DSL, HDSL与甚高速DSLVery High Bitrate DSL, VDSL是其它大规模使用的DSL技术提供了与ADSL相比增加了的吞吐量。甚高速率DSL可运行在最高`100Mbps`的速率。
高速 DSL High Bitrate DSL, HDSL与甚高速 DSL Very High Bitrate DSL, VDSL是其它大规模使用的 DSL 技术,提供了与 ADSL 相比增加了的吞吐量。甚高速率 DSL 可运行在最高`100Mbps`的速率。
对称DSL提供同样的下载与上传吞吐量但其从未被标准化抑或得到大规模使用。
对称 DSL 提供同样的下载与上传吞吐量,但其从未被标准化,抑或得到大规模使用。
## 同轴线Cable
## 同轴线( Cable
家庭用户也可经由标准电视同轴线连接接收到数字信号。通过使用有线电视数据服务接口规范the Data Over Cable Service Interface Specification, DOCSIS标准可经由同轴线提供互联网访问。此方式通常是一种廉价的服务因为服务提供商不需要为数据服务安装新的设施。对既有网络的唯一升级就是在客户驻地安装一台廉价的同轴线调制解调器该调制解调器通常为用户设备提供了`RJ45`的数据连通性。
@ -297,7 +297,7 @@ ISDN PRI连接通常用作从公众交换电话网到大型电话系统<电
> **注意:** 除开电视和数据信号,同轴线连接还可传递语音流量。
可与同轴线结合使用的另一种技术就是以太网上的点对点协议Point-to-Point Protocol over Ethernet, PPPoE。这种连接方式可在同轴线调制解调器与端点设备the endpoint devices之间使用以为同轴线调制解调器设施添加安全性。这种连接方式允许用户登录并提供为了获取要使用的同轴线业务而必须加以认证的用户名与口令。登录凭据是通过到同轴线调制解调器的以太网连接并晚于对运行在以太网上的PPP的使用之前进行传递The credentials are carried across the Ethernet connection to the cable modem and beyond by using the PPP running over the Ethernet。后面后简短地对PPPoE进行介绍。
可与同轴线结合使用的另一种技术就是以太网上的点对点协议Point-to-Point Protocol over Ethernet, PPPoE。这种连接方式可在同轴线调制解调器与端点设备the endpoint devices之间使用以为同轴线调制解调器设施添加安全性。这种连接方式允许用户登录并提供为了获取要使用的同轴线业务而必须加以认证的用户名与口令。登录凭据是通过到同轴线调制解调器的以太网连接并晚于对运行在以太网上的 PPP 的使用之前进行传递The credentials are carried across the Ethernet connection to the cable modem and beyond by using the PPP running over the Ethernet。后面后简短地对 PPPoE 进行介绍。
## 蜂窝网络Celluar Networks
@ -321,11 +321,11 @@ ISDN PRI连接通常用作从公众交换电话网到大型电话系统<电
`GSM 3G`(第三代third generation)是一个对具备提供可达数兆several `Mbps`传输速率的网络的泛称。可通过提升信道的分配带宽the channels' allocated bandwidth, 请参考[这里](https://en.wikipedia.org/wiki/Channel_allocation_schemes),及[这里](https://en.wikipedia.org/wiki/Bandwidth_allocation)),并同时使用包交换技术,来达到这种传输速率。
`GSM 4G`(第四代fourth generation)则是GSM相关标准的最新补充the latest addition to the GSM portfolio同时在大多数国家其仍处于部署阶段。`4G`提供到超过`100Mbps`的、适合高速宽带互联网访问的传输速率。`GSM 4G`完全基于IP通信且原先`3G`中所使用的扩频视频技术the spread spectrum radio technology在`4G`中被正交频分多路复用多载波技术Orthogonal Frequency Division Multiplex Access multi-carrier, OFDMA所取代从而可确保更高的传输速率。
`GSM 4G`(第四代fourth generation),则是 GSM 相关标准的最新补充the latest addition to the GSM portfolio同时在大多数国家其仍处于部署阶段。`4G`提供到超过`100Mbps`的、适合高速宽带互联网访问的传输速率。`GSM 4G`完全基于 IP 通信,且原先`3G`中所使用的扩频视频技术the spread spectrum radio technology在`4G`中被正交频分多路复用多载波技术Orthogonal Frequency Division Multiplex Access multi-carrier, OFDMA所取代从而可确保更高的传输速率。
## 虚拟专用网技术VPN Technologies
虚拟专用网是一种覆盖于通信网络之上给予到这些通信网络业务所需的安全性与可管理性的技术。在VPN技术下在享受到低成本与互联网可用的同时还可建立起安全关系、自动连接、认证及加密等特性VPN is a technology that overlays communications networks and gives them the security and manageability required by businesses. With VPN technology, you can set up secure relationships, automated connections, authorizations, and encryption, while still enjoying the low cost and availability of the Internet
虚拟专用网是一种覆盖于通信网络之上,给予到这些通信网络业务所需的安全性与可管理性的技术。在 VPN 技术下在享受到低成本与互联网可用的同时还可建立起安全关系、自动连接、认证及加密等特性VPN is a technology that overlays communications networks and gives them the security and manageability required by businesses. With VPN technology, you can set up secure relationships, automated connections, authorizations, and encryption, while still enjoying the low cost and availability of the Internet
虚拟专用网对跨越互联网传输的或公司内部范围的数据进行保护VPNs protect data while in transit across the Internet, or within a company's enclave。虚拟专用网有着多种能力但其主要功能包括这些
@ -335,38 +335,38 @@ ISDN PRI连接通常用作从公众交换电话网到大型电话系统<电
- 确保数据是准确的且以其最初形式呈现具有不可抵赖性Ensure data is accurate and in its original form(non-reudiation)
- 防止数据包被反复发送可防止回放Guard against packets being sent over and over(replay prevention)
虽然虚拟专用网概念大多数时间默认就带有了安全性但仍存在不安全的虚拟专用网Even though the VPN concept implies security most of the time, unsecured VPNs still exists。帧中继就是不安全虚拟专用网的一个实例因为它提供了两个地点之间的专用通信但却可能在其上没有任何的安全特性。是否应将安全性添加到VPN连接取决于该连接的特定需求。
虽然虚拟专用网概念大多数时间默认就带有了安全性但仍存在不安全的虚拟专用网Even though the VPN concept implies security most of the time, unsecured VPNs still exists。帧中继就是不安全虚拟专用网的一个实例因为它提供了两个地点之间的专用通信但却可能在其上没有任何的安全特性。是否应将安全性添加到 VPN 连接,取决于该连接的特定需求。
而因为在服务提供商设施中缺乏可见性VPN的故障排除难于进行VPN troubleshooting is difficult to manage because of the lack of visibility in the service provider infrastructure。通常将服务提供商视为聚合了全部网络地点的连接的云。在执行VPN的故障排除时应首先确定故障不在自己的设备上随后才联系服务提供商。
而因为在服务提供商设施中缺乏可见性, VPN 的故障排除难于进行VPN troubleshooting is difficult to manage because of the lack of visibility in the service provider infrastructure。通常将服务提供商视为聚合了全部网络地点的连接的云。在执行 VPN 的故障排除时,应首先确定故障不在自己的设备上,随后才联系服务提供商。
虚拟专业网的类型有很多,包括下面这些:
- 站点到站点的VPNs或内部网VPNsSite-to-Site VPNs, or Intranet VPNs 比如覆盖式VPN如帧中继`Overlay VPN`(like Frame Relay)或对等点到对等点VPN如同多协议标签交换Peer-to-Peer VPNs(like MPLS)。在将不同地点经由公共设施进行连接时必须使用这些类型。在使用对等点到对等点设施时可在站点之间无缝通信而不必担心IP地址分配的重复。
- 远程访问VPNsRemote Access VPNs比如虚拟专用的拨号网络Virtual Private Dial-up Network, VPDN是一种通常考虑到安全性的VPN的拨号方式which is a dial-up approach for the VPN that is usually done with security in mind
- 外部网VPNsExtranet VPNs在要连接到业务伙伴或客户的网络时需要使用此种VPN。
- 站点到站点的 VPNs ,或内部网 VPNs Site-to-Site VPNs, or Intranet VPNs ),比如覆盖式 VPN (如帧中继,`Overlay VPN`(like Frame Relay))或对等点到对等点 VPN 如同多协议标签交换Peer-to-Peer VPNs(like MPLS))。在将不同地点经由公共设施进行连接时,必须使用这些类型。在使用对等点到对等点设施时,可在站点之间无缝通信,而不必担心 IP 地址分配的重复。
- 远程访问 VPNs Remote Access VPNs比如虚拟专用的拨号网络Virtual Private Dial-up Network, VPDN是一种通常考虑到安全性的 VPN 的拨号方式which is a dial-up approach for the VPN that is usually done with security in mind
- 外部网 VPNs Extranet VPNs在要连接到业务伙伴或客户的网络时需要使用此种 VPN
在使用VPNs时就通常是将流量进行隧道化处理以将其经由某项设施加以发送When you use VPNs, you are often tunnelling traffic in order to send it over an infrastructure。一种`Layer 3`的隧道化方法被叫做通用路由封装Generic Routing Encapsulation, GRE。通用路由封装实现了流量的隧道传输但其并不提供安全性。为了在对流量进行隧道化传输的同时提供到安全性可使用一种名为IP安全IP Security, `IPSec`)的技术。`IPSec`是`IPv6`的一项强制实现的组件,但对`IPv4`来说却不是。`IPSec`同时与认证、授权与计费Authentication, Authorisation and Accounting, AAA服务一同使用实现对用户行为的追踪。
在使用 VPNs 就通常是将流量进行隧道化处理以将其经由某项设施加以发送When you use VPNs, you are often tunnelling traffic in order to send it over an infrastructure。一种`Layer 3`的隧道化方法被叫做通用路由封装Generic Routing Encapsulation, GRE。通用路由封装实现了流量的隧道传输但其并不提供安全性。为了在对流量进行隧道化传输的同时提供到安全性可使用一种名为 IP 安全IP Security, `IPSec`)的技术。`IPSec`是`IPv6`的一项强制实现的组件,但对`IPv4`来说却不是。`IPSec`同时与认证、授权与计费Authentication, Authorisation and Accounting, AAA服务一同使用实现对用户行为的追踪。
VPNs带来的主要好处如下
- 可伸缩性可将更多站点持续加入到VPNScalability(you can contiously add more sites to the VPN)
- 灵活性可使用如MPLS这样的非常灵活的技术Flexibility(you can use very flexible technologies like MPLS)
- 可伸缩性(可将更多站点持续加入到 VPN Scalability(you can contiously add more sites to the VPN)
- 灵活性(可使用如 MPLS 这样的非常灵活的技术Flexibility(you can use very flexible technologies like MPLS)
- 成本低可以较低代价经由互联网实现流量的隧道化传送Cost(You can tunnel traffic through the Internet without much expense)
## 多协议标签交换技术Multiple Protocol Label Switching, MPLS
多协议标签交换是通过将一个标签追加到任意类型的数据包上而运作的Multiprotocol Label Switching(MPLS) functions by appending a label to any type of packet。随后数据包就根据该标签的值而非任何`Layer 3`信息经由网络设施得以转发。给数据包打上标签提供了非常高效的转发且令到MPLS可工作在极大范围的现有技术上。通过简单地将一个标签添加到数据包头部中MPLS就可在许多物理与数据链路层的广域网实现中使用The labeling of the packet provides very efficient forwarding and allows MPLS to work with a wide range of undelying technologies. By simply adding a label in the packet header, MPLS can be used in many Physical and Data Link Layer WAN implementations
多协议标签交换是通过将一个标签追加到任意类型的数据包上而运作的Multiprotocol Label Switching(MPLS) functions by appending a label to any type of packet。随后数据包就根据该标签的值而非任何`Layer 3`信息,经由网络设施得以转发。给数据包打上标签,提供了非常高效的转发,且令到 MPLS 可工作在极大范围的现有技术上。通过简单地将一个标签添加到数据包头部中, MPLS 就可在许多物理与数据链路层的广域网实现中使用The labeling of the packet provides very efficient forwarding and allows MPLS to work with a wide range of undelying technologies. By simply adding a label in the packet header, MPLS can be used in many Physical and Data Link Layer WAN implementations
MPLS的标签是放在`Layer 2`头部与`Layer 3`头部之间的。使用MPLS技术仅在数据包进入服务提供商云时才会加入额外开销。在进入MPLS网络后相比传统的`Layer 3`网络数据包交换的完成要快得多因为MPLS的包交换只是基于MPLS标签的交换而不是要拆封整个的`Layer 3`头部By using MPLS, overhead is added only when the packet enters the service provider cloud. After entering the MPLS network, packet switching is done much faster than in traditional Layer 3 networks because it is based only on swapping the MPLS label, instead of stripping the entire Layer 3 header
MPLS的标签是放在`Layer 2`头部与`Layer 3`头部之间的。使用 MPLS 技术,仅在数据包进入服务提供商云时,才会加入额外开销。在进入 MPLS 网络后,相比传统的`Layer 3`网络,数据包交换的完成要快得多,因为 MPLS 的包交换只是基于 MPLS 标签的交换,而不是要拆封整个的`Layer 3`头部By using MPLS, overhead is added only when the packet enters the service provider cloud. After entering the MPLS network, packet switching is done much faster than in traditional Layer 3 networks because it is based only on swapping the MPLS label, instead of stripping the entire Layer 3 header
MPLS有两种不同样式MPLS comes in two different flavours
- 帧模式的MPLSFrame Mode MPLS
- 数据单元模式的MPLSCell Mode MPLS
- 帧模式的 MPLS Frame Mode MPLS
- (数据)单元模式的 MPLS Cell Mode MPLS
帧模式的MPLS是最为流行的MPLS类型而在此场景中标签是放在`Layer 2`头部与`Layer 3`头部之间的因此MPLS通常被视为一种`Layer 2.5`的技术。单元模式的MPLS用在`ATM`网络中,并使用`ATM`头部中的一些字段,作为标签。
帧模式的 MPLS 是最为流行的 MPLS 类型,而在此场景中,标签是放在`Layer 2`头部与`Layer 3`头部之间的(因此 MPLS 通常被视为一种`Layer 2.5`的技术)。单元模式的 MPLS 用在`ATM`网络中,并使用`ATM`头部中的一些字段,作为标签。
兼容MPLS的路由器MPLS-capable routers也被叫做标签交换路由器Label Switched Routers, LSRs同时这些路由器也有两种样式
兼容 MPLS 的路由器MPLS-capable routers也被叫做标签交换路由器Label Switched Routers, LSRs同时这些路由器也有两种样式
- 边沿标签交换路由器服务提供商边沿路由器Edge LSR(PE<Provider Edge> routers)
- 服务提供商标签交换路由器P(Provider) LSR
@ -377,9 +377,9 @@ MPLS有两种不同样式MPLS comes in two different flavours
## 基本的串行线路配置Basic Serial Line Configuration
在不打算改变默认的`HDLC`High-level Data Link Control高级数据链路控制思科专有封装时那么为建立WAN连接仅需完成下面的步骤
在不打算改变默认的`HDLC`High-level Data Link Control高级数据链路控制思科专有封装时那么为建立 WAN 连接,仅需完成下面的步骤:
1. 给接口添加一个IP地址
1. 给接口添加一个 IP 地址
2. 开启接口(以`no shutdown`命令)
3. 确保在数据通信设备侧有一个时钟速率Ensure there is a clock rate on the DCE side
@ -401,22 +401,22 @@ Router#
要实现客户部署非对称数字订户线路,他们就必须支持在极大安装基数的老旧桥接的客户处设备上的点对点样式的认证与授权。`PPPoE`技术提供了将主机网络经由简单的桥接访问设备连接到远端访问集中器或聚合集中器的能力As customers deploy ADSL, they must support PPP-style authentication and authorisation over a large installed base of legacy bridging customer premises equipment(CPE). PPPoE provides the ability to connect a network of hosts over a simple bridging access device to a remote access concentrator or aggregation concentrator。在此模型下每台主机都使用其自身的点对点协议栈因此呈现给用户的是一个熟悉的用户界面。访问控制、计费与服务类型type of service可基于每名用户而不是基于每个地点完成。
如同在[RFC 2516](http://man.chinaunix.net/develop/rfc/RFC2516.txt)中所指明的那样PPPoE有两个不同阶段发现阶段与会话阶段As specified in RFC 2516, PPPoE has two distinct stages: a discovery stage and a session stage。在主机发起一个PPPoE会话时其必须首先进行发现以找到可满足客户端请求的服务器并找到对等点的以太网MAC地址而建立一个PPPoE会话ID。在PPP定义一个对等点到对等点的关系时发现本质上就是一个客户端服务器的关系While PPP defines a peer-to-peer relationship, discovery is inherently a client-server relationship
如同在[RFC 2516](http://man.chinaunix.net/develop/rfc/RFC2516.txt)中所指明的那样, PPPoE 有两个不同阶段发现阶段与会话阶段As specified in RFC 2516, PPPoE has two distinct stages: a discovery stage and a session stage。在主机发起一个 PPPoE 会话时,其必须首先进行发现,以找到可满足客户端请求的服务器,并找到对等点的以太网 MAC 地址而建立一个 PPPoE 会话 ID 。在 PPP 定义一个对等点到对等点的关系时发现本质上就是一个客户端服务器的关系While PPP defines a peer-to-peer relationship, discovery is inherently a client-server relationship
### PPPoE的配置
下面的小节涵盖了服务器互联网服务提供商处与客户端PPPoE的配置。之所以包含此内容是因为现在CCNA大纲强制要求考生知道如何配置PPPoE。
下面的小节涵盖了服务器(互联网服务提供商处)与客户端 PPPoE 的配置。之所以包含此内容,是因为现在 CCNA 大纲强制要求考生知道如何配置 PPPoE
#### 服务器的配置
创建PPPoE服务器配置的第一步是定义一个将对传入连接进行管理的宽带聚合组broadband aggregation group, BBA group。该宽带聚合组必须关联到某个虚拟模板
创建 PPPoE 服务器配置的第一步是定义一个将对传入连接进行管理的宽带聚合组broadband aggregation group, BBA group。该宽带聚合组必须关联到某个虚拟模板
```console
Router(config)#bba-group pppoe GROUP
Router(config-bba-group)#virtual-template 1
```
下一步为面向客户端的接口创建出一个虚拟模板。在虚拟模板上需要配置一个IP地址以及一个可从中为客户端分配到协商地址的地址池The next step is to create a virtual template for the customer-facing interface. On the virtual template you need to configure an IP address and a pool of address from which clients are assigned a negotiated address
下一步为面向客户端的接口,创建出一个虚拟模板。在虚拟模板上,需要配置一个 IP 地址以及一个可从中为客户端分配到协商地址的地址池The next step is to create a virtual template for the customer-facing interface. On the virtual template you need to configure an IP address and a pool of address from which clients are assigned a negotiated address
```console
Router(config)#interface virtual-template 1
@ -424,13 +424,13 @@ Router(config-if)#ip address 10.10.10.1 255.255.255.0
Router(config-if)#peer default ip address pool POOL
```
该IP地址池是在全局配置模式中定义的。这与DHCP地址池的配置类似
IP 地址池是在全局配置模式中定义的。这与 DHCP 地址池的配置类似:
```console
Router(config)#ip local pool POOL 10.10.10.2 10.10.10.254
```
最后一步就是在面向客户端的接口上开启该PPPoE分组
最后一步就是在面向客户端的接口上开启该 PPPoE 分组:
```console
Router(config)#interface FastEthernet0/0
@ -441,7 +441,7 @@ Router(config-if)#no shutdown
#### 客户端的配置Client Configuration
在客户端侧上必须创建出一个拨号器接口On the client side a dialer interface has to be created。拨号器接口将对PPPoE连接进行管理。可将手动IP地址分配给拨号器接口或将其设置为从服务器请求一个IP地址使用`ip address negotiated`命令):
在客户端侧上必须创建出一个拨号器接口On the client side a dialer interface has to be created。拨号器接口将对 PPPoE 连接进行管理。可将手动 IP 地址分配给拨号器接口,或将其设置为从服务器请求一个 IP 地址(使用`ip address negotiated`命令):
```console
Router(config)#interface dialer1
@ -454,9 +454,9 @@ Router(config-if)#pppoe-client dial-pool-number 1
Router(config-if)#no shutdown
```
### 关于认证Authentication
### 关于认证( Authentication
为了令到PPPoE连接安全可使用两种方法
为了令到 PPPoE 连接安全,可使用两种方法:
- 口令认证协议Password Authentication Protocol, PAP - 不安全的、以明文方式发送凭据(包含用户名与口令)
- 询问握手协议Challenge Handshake Authentication Protocol, CHAP - 安全的(明文的用户名与经`MD5`散列化的口令),是首选方式
@ -501,7 +501,7 @@ Client(config-if)#ppp authentication chap
### PPPoE的验证与故障排除PPPoE Verification and Troubleshooting
在PPPoE会话成功形成后客户端控制台上将出现下面的消息
PPPoE 会话成功形成后,客户端控制台上将出现下面的消息:
```console
%DIALER-6-BIND: Interface Vi1 bound to profile Di1
@ -509,7 +509,7 @@ Client(config-if)#ppp authentication chap
%LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state to up
```
在客户端路由器上使用下面的命令可对拨号器接口以及从PPPoE服务器处获取到的协商到的IP地址进行检查
在客户端路由器上使用下面的命令,可对拨号器接口,以及从 PPPoE 服务器处获取到的(协商到的) IP 地址进行检查:
```console
Router#show ip interface brief
@ -518,7 +518,7 @@ Virtual-Access1 unassigned YES unset up/up
Dialer1 10.10.10.2 YES IPCP up/up
```
在客户端路由器上可使用下面的命令显示出PPPoE会话的状态
在客户端路由器上可使用下面的命令,显示出 PPPoE 会话的状态:
```console
Router#show pppoe session
@ -529,7 +529,7 @@ N/A 16 ca00.4843.0008 Fa0/0 Di1 Vi1 UP
ca01.4843.0008 UP
```
一些对于PPPoE连接进行故障排除有用的命令如下
一些对于 PPPoE 连接进行故障排除有用的命令如下:
```console
Router#debug ppp ?
@ -547,7 +547,7 @@ Router#debug ppp ?
## WAN连接的故障排除Troubleshooting WAN Connections
在试图启动一条广域网连接现在先不管PPP与帧中继连接可运用开放系统互联模型
在试图启动一条广域网连接(现在先不管 PPP 与帧中继连接)时,可运用开放系统互联模型:
`Layer 1` -- 对线缆进行检查,以确保其连接正确。其外还要检查一下有没有执行`no shutdown`命令,以及在数据通信设备侧有没有应用一个时钟速率。
@ -584,7 +584,7 @@ MTU 1500 bytes, BW 1544 Kbit, DLY 1000 usec, rely 255/255, load 1/255
Encapsulation HDLC, loopback not set, keepalive set (10 sec)
```
## 第41天问题
## 第 41 天问题
1. Name at least three WAN categories.
2. The need for NBMA appears when there is no native `_______` support for a group of systems that want to communicate over the same network.
@ -598,7 +598,7 @@ Encapsulation HDLC, loopback not set, keepalive set (10 sec)
10. `_______` functions by appending a label to any type of packet.
## 第41天答案
## 第 41 天答案
1. Circuit-switched, cell-switched, broadband, leased-line, and packet-switched.
2. Broadcast.
@ -612,11 +612,11 @@ Encapsulation HDLC, loopback not set, keepalive set (10 sec)
10. MPLS.
## 第41天实验
## 第 41 天实验
### PPPoE实验
在两台路由器之间以本课程模块中所给出的信息配置带有CHAP的PPPoE
在两台路由器之间,以本课程模块中所给出的信息,配置带有 CHAP PPPoE
__服务器配置__
@ -646,7 +646,7 @@ Router(config-if)#pppoe-client dial-pool-number 1
Router(config-if)#no shutdown
```
__询问握手认证协议CHAP配置__:
__询问握手认证协议 CHAP 配置__:
```console
Server(config)#username Client password Password

View File

@ -1,4 +1,4 @@
# 第42天 帧中继与点对点协议
# 第 42 天 帧中继与点对点协议
__Frame Relay and PPP__
@ -21,10 +21,10 @@ ___
- 阅读今天的课文(下面)
- 复习昨天的课文
- 完成今天的实验
- 阅读ICND2的记诵指南
- 在[subnetting.org](https://subnetting.org/)网站上花15分钟
- 阅读 ICND2 的记诵指南
- 在[subnetting.org](https://subnetting.org/)网站上花 15 分钟
多年来帧中继都是CCNA甚至CCIE大纲的重要部分但由于公司数字订户线路的广泛可用与长租专线的价格越来越亲民从而导致帧中继技术的流行度近来日渐式微。这里之所以要涉及是因为其包含在CCNA大纲中。点对点协议仍有广泛使用。
多年来,帧中继都是 CCNA 甚至 CCIE 大纲的重要部分;但由于公司数字订户线路的广泛可用与长租专线的价格越来越亲民,从而导致帧中继技术的流行度近来日渐式微。这里之所以要涉及,是因为其包含在 CCNA 大纲中。点对点协议仍有广泛使用。
今天将学到以下内容:
@ -35,7 +35,7 @@ ___
- 点对点协议的配置
- 点对点协议的故障排除
本课程对应了以下CCNA大纲要求
本课程对应了以下 CCNA 大纲要求:
+ 识别不同的广域网技术
- 帧中继技术
@ -45,7 +45,7 @@ ___
__Frame Relay Operations__
帧中继是基于较早的名为`X.25`协议的一个`Layer 2`广域网协议,`X.25`协议因为其全面的错误检查能力也仍被ATM技术所使用which is still used by ATMs due to its extensive error-checking capatibilities。帧中继由一条其上可形成许多逻辑电路物理电路构成。帧中继的连接是按需建立的。下图演示了一个帧中继网络的实例
帧中继是基于较早的名为`X.25`协议的一个`Layer 2`广域网协议,`X.25`协议因为其全面的错误检查能力,也仍被 ATM 技术所使用which is still used by ATMs due to its extensive error-checking capatibilities。帧中继由一条其上可形成许多逻辑电路物理电路构成。帧中继的连接是按需建立的。下图演示了一个帧中继网络的实例
![一个帧中继网络](images/4201.png)
@ -103,7 +103,7 @@ RouterA#debug frame-relay lmi
当数据链路连接标识符为活动状态时那么端到端连接将按以下步骤形成When your DLCI is active, an end-to-end connection forms in the following order
1. 活动的DLCI发出反向地址解析协议请求Active DLCI sends Inverse ARP request
1. 活动的 DLCI 发出反向地址解析协议请求Active DLCI sends Inverse ARP request
2. DLCI等待带有网络地址的应答DLCI waits for reply with network address
3. 远端路由器地址的映射建立起来Map created of remote router address
4. DLCI经历`Active/Inactive/Deleted`状态DLCI status of `Active/Inactive/Deleted`
@ -116,7 +116,7 @@ RouterA#debug frame-relay lmi
帧中继是一种非广播多路访问Non-Broadcast Multi-Access, NBMA技术。这就意味着必须应付地址解析的问题除非在使用点对点接口的情形下Frame Relay is a Non-Broadcast Multi-Access(NBMA) technology. This means that you have to deal with address resolution issues, except for the situations in which you use Point-to-Point interfaces
帧中继中的`Layer 2`地址被称作数据链路连接标识符Data Link Connection Identifier, DLCI而这是本地有意义的。比如在轴辐hub-and-spoke, 中心分支环境中中心设备应有着与其各个分支进行通信的唯一DLCIFor example, in a hub-and-spoke environment, the hub device should have a unique DLCI to communicate to each of its spokes
帧中继中的`Layer 2`地址被称作数据链路连接标识符Data Link Connection Identifier, DLCI而这是本地有意义的。比如在轴辐hub-and-spoke, 中心分支)环境中,中心设备应有着与其各个分支进行通信的唯一 DLCI For example, in a hub-and-spoke environment, the hub device should have a unique DLCI to communicate to each of its spokes
在对思科设备上的帧中继永久虚拟电路状态进行检查时,将看到一个由本地管理接口所定义的状态代码,该代码可以是下列的任意一种:
@ -130,7 +130,7 @@ RouterA#debug frame-relay lmi
- `ANSI`美国国家标准学会LMI
- `Q.933a`, 国际电信联盟电信标准委员会LMI
思科路由器已被配置为自动尝试所有这三种的LMI类型从`CISCO`LMI开始并使用与服务提供商匹配的那个类型因此在设计阶段有关LMI类型方面无需过多考虑Cisco routers are configured to automatically try all three of these LMI types(starting with `CISCO` LMI) and use the one that matches whatever the service provider is using, so this should not be of much concern in the design phase
思科路由器已被配置为自动尝试所有这三种的 LMI 类型(从`CISCO`LMI开始并使用与服务提供商匹配的那个类型因此在设计阶段有关 LMI 类型方面无需过多考虑Cisco routers are configured to automatically try all three of these LMI types(starting with `CISCO` LMI) and use the one that matches whatever the service provider is using, so this should not be of much concern in the design phase
在设计阶段需要考虑的最重要方面之一,就是要用到的地址解析方法。如设计中用到多点接口(也就是可端接多个`Layer 2`电路的接口),那么就需要找到某种提供`Layer 3`到`Layer 2`解析的方式One of the most important aspects that need to be considered in the design phase is the address resolution methodology used. If you are utilising Multipoint interfaces in your design(i.e., interfaces that can terminate multiple `Layer 2` circuits), you need to find a way to provide the `Layer 3` to `Layer 2` resolution。如同先前所讨论的有两个选项可帮助实现三层到二层的解析
@ -139,11 +139,11 @@ RouterA#debug frame-relay lmi
> **注意**:为检查`Layer 3`到`Layer 2`的成功解析,可使用`show frame-relay map`命令。
在多点接口a Multipoint interface反向ARP将自动发生。此功能将于给配置为帧中继的接口添加IP地址后立即启用。在给配置为帧中继的接口添加IP地址那一刻所有该接口所运行的、被支持的协议的反向ARP请求就开始从分配到那个特定接口的所有电路上发出On a Multipoint interface, Inverse ARP would happen automatically. This functionality is enabled right after adding an IP address on an interface configured for Frame Relay. At that moment, requests start being sent out all of the circuits assigned to that specific interface for any supported protocol the interface is running
在多点接口a Multipoint interface反向 ARP 将自动发生。此功能将于给配置为帧中继的接口添加 IP 地址后,立即启用。在给配置为帧中继的接口添加 IP 地址那一刻,所有该接口所运行的、被支持的协议的反向 ARP 请求就开始从分配到那个特定接口的所有电路上发出On a Multipoint interface, Inverse ARP would happen automatically. This functionality is enabled right after adding an IP address on an interface configured for Frame Relay. At that moment, requests start being sent out all of the circuits assigned to that specific interface for any supported protocol the interface is running
该自动请求过程可通过`no frame-relay inverse-arp`命令关闭但不能设计一个停止对请求进行响应的网络。经由设计是无法关闭反向ARP应答的因此帧中继设备总是会通过帧中继反向ARP尝试协助其它尝试进行`Layer 3`到`Layer 2`解析的设备The request process can be disabled with the `no frame-relay inverse-arp` command, but you can never design a network that will stop responding to requests. By design, Inverse ARP replies cannot be disabled, so the Frame Relay speaker will always attempt to assist somebody that attempts to do a `Layer 3` to `Layer 2` resolution via Frame Relay Inverse ARP
该自动请求过程可通过`no frame-relay inverse-arp`命令关闭,但不能设计一个停止对请求进行响应的网络。经由设计,是无法关闭反向 ARP 应答的,因此帧中继设备总是会通过帧中继反向 ARP ,尝试协助其它尝试进行`Layer 3`到`Layer 2`解析的设备The request process can be disabled with the `no frame-relay inverse-arp` command, but you can never design a network that will stop responding to requests. By design, Inverse ARP replies cannot be disabled, so the Frame Relay speaker will always attempt to assist somebody that attempts to do a `Layer 3` to `Layer 2` resolution via Frame Relay Inverse ARP
帧中继设计中的反向地址解析协议行为将自动协助先前讨论过的经由重复单播方法的广播The Inverse ARP behaviour in the Frame Relay design will automatically assist with Broadcast through the replicated Unicast approach discussed before。在使用反向ARP时广播支持默认就有。
帧中继设计中的反向地址解析协议行为将自动协助先前讨论过的经由重复单播方法的广播The Inverse ARP behaviour in the Frame Relay design will automatically assist with Broadcast through the replicated Unicast approach discussed before。在使用反向 ARP 时,广播支持默认就有。
在将两台路由器经由物理接口连接到帧中继云时就意味着从帧中继角度讲那些特定接口就是多点的了因为默认物理帧中继接口就是多点结构。就算两台路由器之间的连接可能看起来是点对点的但该连接仍是帧中继的多点连接If you connect two routers to the Frame Relay cloud using physical interfaces, this means that the specific interfaces are Multipoint from a Frame Relay perspective, because a physical Frame Relay interface by default is a Multipoint structure. Even though the connection between the two routers may appear to be Point-to-Point, it is a Frame Relay Multipoint connection
@ -151,11 +151,11 @@ RouterA#debug frame-relay lmi
*图 42.5 - 帧中继多点实例*
因为两台路由器使用多点接口所以默认这两台设备将通过使用反向ARP动态处理三层到二层的解析。如打算设计不使用反向ARP的方案就可在各台设备上关闭动态映射行为并于随后配置上静态的帧中继映射。
因为两台路由器使用多点接口,所以默认这两台设备将通过使用反向 ARP 动态处理三层到二层的解析。如打算设计不使用反向 ARP 的方案,就可在各台设备上关闭动态映射行为,并于随后配置上静态的帧中继映射。
对于三层到二层的解析点对点配置就是理想的选择因为解析过程在使用这类接口时不会发生。在配置点对点帧中继时可使用点对点子接口而这些子接口不会从LMI获取到DLCI编号分配这就与多点情况一样Point-to-point configurations are the ideal choice when it comes to `Layer 2` to `Layer 2` resolution because this process does not occur when using such interface types. When configuring Point-to-Point Frame Relay, you would use Point-to-Point subinterfaces and these subinterfaces would not get the DLCI assignments from LMI, like in the Multipoint situation
对于三层到二层的解析,点对点配置就是理想的选择,因为解析过程在使用这类接口时不会发生。在配置点对点帧中继时,可使用点对点子接口,而这些子接口不会从 LMI 获取到 DLCI 编号分配这就与多点情况一样Point-to-point configurations are the ideal choice when it comes to `Layer 2` to `Layer 2` resolution because this process does not occur when using such interface types. When configuring Point-to-Point Frame Relay, you would use Point-to-Point subinterfaces and these subinterfaces would not get the DLCI assignments from LMI, like in the Multipoint situation
另一选项将是创建子接口并将这些创建出来的子接口声明为多点。这类接口将与物理多点接口一样运作因此需确定要使用的解析方法也就是反向ARP或静态映射。也可使用两种解析方法的结合比如在连接的一端部署反向ARP并在另一端定义静态映射Another option would be to create subinterfaces and declaring them as Multipoint. These types of interfaces behave exactly like the physical Multipoint interfaces, so you need to decide on the resolution method to be used, either Inverse ARP or static mappings. A combination of these methods can be used, for example, by implementing Inverse ARP on one end of the connection and defining static maps on the other end
另一选项将是创建子接口,并将这些创建出来的子接口声明为多点。这类接口将与物理多点接口一样运作,因此需确定要使用的解析方法,也就是反向 ARP 或静态映射。也可使用两种解析方法的结合,比如在连接的一端部署反向 ARP 并在另一端定义静态映射Another option would be to create subinterfaces and declaring them as Multipoint. These types of interfaces behave exactly like the physical Multipoint interfaces, so you need to decide on the resolution method to be used, either Inverse ARP or static mappings. A combination of these methods can be used, for example, by implementing Inverse ARP on one end of the connection and defining static maps on the other end
接口类型设置与所选的三层到二层解析方法仅本地有意义。这意味着在帧中继设计中可以有各种变化The interface type settings and the selected Layer 3 to Layer 2 resolution method is only locally significant. This means that you can have all kinds of variations in your Frame Relay design比如下图表42.1中所列出的这些:
@ -195,19 +195,19 @@ RouterA#debug frame-relay lmi
部分网状网络的设计与配置将是最具挑战性的。部分网状网络就意味着在所有涉及帧中继环境的端点之间并不会全都提供二层电路Partial-mesh designs and configurations will be the most challenging. This implies that Layer 2 circuits will not be provisioned between all endpoints involved in the Frame Relay environment
在轴辐(中心-分支hub-and-spoke环境中分支之间没有直接相连因此就意味着它们无法通过反向ARP进行彼此解析。为解决这些问题可执行以下措施
在轴辐(中心-分支hub-and-spoke环境中分支之间没有直接相连因此就意味着它们无法通过反向 ARP 进行彼此解析。为解决这些问题,可执行以下措施:
- 提供额外的静态映射Provide additional static mappings
- 配置点对点的子接口Configure Point-to-Point subinterfaces
- 对轴辐设施加以设计使得三层路由的设计可解决解析的问题比如通过使用OSPF的点对多点网络类型Design the hub-and-spoke infrastructure so that the Layer 3 routing design can solve the resolution problems(e.g., by using the OSPF Point-to-Multipoint network type)
- 对轴辐设施加以设计,使得三层路由的设计可解决解析的问题(比如通过使用 OSPF 的点对多点网络类型Design the hub-and-spoke infrastructure so that the Layer 3 routing design can solve the resolution problems(e.g., by using the OSPF Point-to-Multipoint network type)
帧中继支持可对服务质量Quality of Service, QoS施加影响的标记。比如帧中继头部就包含了一个丢弃资质为a DE(Discard Eligible) bit。对于QoS的帧中继环境数据包可籍由丢弃资质位加以标记而这就告诉服务提供商那些特定数据包不是非常重要在壅塞时可被丢弃。这样做将令到那些没有设置丢弃资质位的数据包优先。
帧中继支持可对服务质量Quality of Service, QoS施加影响的标记。比如帧中继头部就包含了一个丢弃资质为a DE(Discard Eligible) bit。对于 QoS 的帧中继环境,数据包可籍由丢弃资质位加以标记,而这就告诉服务提供商那些特定数据包不是非常重要,在壅塞时可被丢弃。这样做将令到那些没有设置丢弃资质位的数据包优先。
在帧中继环境中可配置其它参数就是向前显式壅塞通知与向后显式壅塞通知Forward Explicit Congestion Notifications(FECNs) and Backward Explicit Congestion Notifications(BECNs)这通常会是一个突如其来的考试问题which commonly crops up as an exam question。帧中继设备在配置了FECNs或BECNs时就可通知壅塞设备并可导致发送速率的下降The Frame Relay equipment, if configured to do so, can notify devices of congestion and can cause the slowing down of the sending rates
在帧中继环境中可配置其它参数就是向前显式壅塞通知与向后显式壅塞通知Forward Explicit Congestion Notifications(FECNs) and Backward Explicit Congestion Notifications(BECNs)这通常会是一个突如其来的考试问题which commonly crops up as an exam question。帧中继设备在配置了 FECNs BECNs 就可通知壅塞设备并可导致发送速率的下降The Frame Relay equipment, if configured to do so, can notify devices of congestion and can cause the slowing down of the sending rates
## 配置帧中继Configuring Frame Relay
不幸的是配置帧中继较为棘手这是因为不同的网络类型要求不同的命令Unfortunately, it can be somewhat tricky to configure Frame Relay, and this is because different network types require different commands。这一点的原因在于要解决WAN上网络地址解析方法以及路由协议如何运作的问题。配置帧中继的步骤如下所示
不幸的是配置帧中继较为棘手这是因为不同的网络类型要求不同的命令Unfortunately, it can be somewhat tricky to configure Frame Relay, and this is because different network types require different commands。这一点的原因在于要解决 WAN 上网络地址解析方法,以及路由协议如何运作的问题。配置帧中继的步骤如下所示:
1. 设置封装方式Set encapsulation
2. 设置本地管理接口类型可选的Set LMI type(optional)
@ -250,7 +250,7 @@ Router#show frame-relay route
## 帧中继故障排除
如早先指出的那样在电信公司将你的DLCI映射到错误端口或其得到的编号是错误的时候他们常常会搞错映射信息。此时就需要在给电信公司打电话或保修之前证实他们搞错了那么就要用到下面的命令
如早先指出的那样,在电信公司将你的 DLCI 映射到错误端口,或其得到的编号是错误的时候,他们常常会搞错映射信息。此时就需要在给电信公司打电话或保修之前,证实他们搞错了,那么就要用到下面的命令:
- `show frame-relay pvc`
- `show frame-relay lmi`
@ -268,7 +268,7 @@ Router#show frame-relay route
## 点对点协议的运作
由于下面这些因素点对点协议Point-to-Poinit ProtocolPPP被认为是一种互联网友好的协议
由于下面这些因素点对点协议Point-to-Poinit Protocol PPP )被认为是一种互联网友好的协议:
- 其支持数据压缩
- 内建了认证(`PAP`及`CHAP`
@ -288,7 +288,7 @@ Router#show frame-relay route
- `LCP` -- 链路建立、链路认证以及对链路质量进行测试服务物理层estalishes, authenticates, and tests link quality
- `HDLC` -- 对链路上的数据报进行封装
掌握上面这些知识将在CCNA考试中大有裨益
掌握上面这些知识,将在 CCNA 考试中大有裨益!
## 点对点协议的配置
@ -314,7 +314,7 @@ R2(config-if)#no shut
## 点对点协议的认证
点对点协议有着内建的口令认证协议PAP, Password Authentication Protocol或询问握手认证协议CHAP, Challenge Handshake Authentication Protocol形式的认证。口令认证协议将口令以明文形式在链路上发送这有着安全风险而询问握手认证协议则是发送使用了MD5加密的散列值。下面是询问握手认证协议的配置
点对点协议有着内建的口令认证协议PAP, Password Authentication Protocol或询问握手认证协议CHAP, Challenge Handshake Authentication Protocol形式的认证。口令认证协议将口令以明文形式在链路上发送这有着安全风险而询问握手认证协议则是发送使用了 MD5 加密的散列值。下面是询问握手认证协议的配置:
![带有询问握手认证协议的点对点协议](images/4208.png)
@ -348,7 +348,7 @@ R2(config-if)#ppp authentication chap ppp
## PPP的故障排除
执行一下`show interface serial 0/0`命令或以其他相应的接口编号以将IP地址、接口状态及封装类型等参数显示出来如下面的输出所示
执行一下`show interface serial 0/0`命令,或以其他相应的接口编号,以将 IP 地址、接口状态及封装类型等参数显示出来,如下面的输出所示:
```console
RouterA#show interface Serial0/0
@ -364,7 +364,7 @@ Serial0 is up, line protocol is up
在使用了询问握手认证协议时,就要检查用户名是否与所呼叫的路由器是否匹配,同时记住这里的主机名是区分大小写的。使用`debug ppp authentication`与`debug ppp negotiation`两个命令来对点对点协议会话的建立进行故障排除。
## 第42天问题
## 第 42 天问题
1. Frame Relay is based on which older protocol?
2. What are the three types of LMIs available?
@ -377,7 +377,7 @@ Serial0 is up, line protocol is up
9. Which command will show you the encapsulation type on your Serial interface?
10. `_______` sends the passwords over the link in clear text, which poses a security risk, whereas `_______` sends a hashed value using MD5 security.
## 第42天答案
## 第 42 天答案
1. The X.25 protocol.
2. CISCO, ANSI, and Q933a.