diff --git a/d39-OSPF.md b/d39-OSPF.md index a7e7a9f..164ca2f 100644 --- a/d39-OSPF.md +++ b/d39-OSPF.md @@ -289,6 +289,28 @@ OSPF头部最后的64位认证数据字段,则是在开启了认证时,用 `Hello`数据包用于发现其它直接相连的OSPF路由器,以及在OSPF路由器之间建立OSPF临接关系(OSPF adjacencies between OSPF routers)。对于广播及点对点网络,OSPF使用多播来发送`Hello`数据包。这些数据包被投送到`AllSPFRouters`多播组地址`224.0.0.5`。对于非广播链路(比如帧中继),OSPF使用单播(Unicast)来将`Hello`数据包直接发送给那些静态配置的邻居。 -> **注意**:默认情况下,所有OSPF数据包(也就是包括多播与单播),都是以IP存活时间`1`发送的。这就将这些数据包限制到本地链路。也就是说,无法与距离远于一挑的另一台路由器建立OSPF临接关系。这一点也适用于EIGRP。 +> **注意**:默认情况下,所有OSPF数据包(也就是包括多播与单播),都是以IP存活时间(TTL, Time To Live)`1`发送的。这就将这些数据包限制到本地链路。也就是说,无法与距离远于一挑的另一台路由器建立OSPF临接关系。这一点也适用于EIGRP。 + +OSPF的`Hello`数据包,还在广播链路上用于指定路由器与后备指定路由器的选举。指定路由器仅侦听多播地址`224.0.0.6`(`AllDRRouters`)。本课程模块前面已经介绍了指定与后备指定路由器。下图39.8演示了OSPF`Hello`数据包中所包含的字段: + +![OSPF的`Hello`数据包](images/3908.png) + +*图 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`。 + +后面两字节的`Hello`字段,显示`Hello`时间间隔,也就是两个`Hello`数据包之间的秒数,通告路由器要求此字段。其取值范围为`1`到`255`。在广播与点对点介质上的默认值为`10`,在所有其它介质上的默认值为`30`。 + +随后1字节的选项字段(The 1-byte Options field)是由本地路由器用于通告可选功能(optional capatibilities)。选项字段中的每一位,都表示了不同的功能。深入了解这些位所对应的功能,超出了CCNA考试要求范围。 + +后面的1字节路由器优先级字段(The 1-byte Router Priority field)包含了本地路由器的优先级。默认该字段的值为`1`。该值用于指定与后备指定路由器的选举。可能的取值范围为`0`到`255`。优先级越高,那么该本地路由器就越有机会成为指定路由器。优先级值`0`就意味着该本地路由器不会参与指定或后备指定路由器的选举。 + +接下来的4字节指定路由器字段,列出指定路由器的IP地址。在比如某个点对点链路上,或当某台路由器已被显式地配置为不参与此选举时,于尚无指定路由器选出时,就使用值`0.0.0.0`。 + +其后的4字节后备指定路由器字段,标识出后备路由器,并列出当前后备指定路由器的接口地址。在没有选出后备指定路由器时,就使用值`0.0.0.0`。 + +最后的(活动)邻居字段(the (Active) Neighbour field)是一个可变长度的字段,显示网段上的所有已接收到`Hello`数据包的OSPF路由器。 + +### 数据库描述数据包(Database Description Packets) diff --git a/images/3908.png b/images/3908.png new file mode 100644 index 0000000..c21e410 Binary files /dev/null and b/images/3908.png differ