LSDB(Link State DataBase,链路状态数据库)
通过路由间的路由信息交换,自治系统内部可以达到信息同步,即 LSDB 描述的网络拓扑同步。
LSDB 唯一 ID 的三个参数
LSDB 中每份 LSA 都有唯一的身份证 ID, 由三个参数构成:
・LSA 类型
・链路状态 ID (Link State ID)
・通告路由器的 RouterlD
例如:R1 产生的 LSA1,它的类型为 RouterLSA, LinkStatelD 为 1.1.1.1,通告路由器 1.1.1.1。
LSDB 中的每份 LSA 都靠这个 “身份证 ID” 来唯一标识。
・泛洪是可靠的、周期性(30min)或触发产生的 LSA 通告过程。
・泛洪是把 LSA 向区域中的每条链路复制并通告的过程。
・全区域的泛洪会致路由器收到多份相同的 LSA, LSDB 中仅保留最新的。
・路由器仅泛洪最新的 LSA, 相同 ID 的 “旧的” LSA 会被 “新的” LSA 所覆盖。
・一旦最新的 LSA 被所有路由器收到,泛洪就结束了。
・区域中会有周期产生的新的 LSA 所致的泛洪或触发产生的新的 LSA 导致的泛洪行为。
判断相同 ID 的 LSA “新的”条件次序
判断相同 ID 的 “新的” LSA 要依次比较以下内容:
・LSA 序列号 (Sequence Number)
・LSA 报文校验和 (Checksum)
・LSA 年龄 (LSA Age)
说明如下
・序列号:有符号 32 位整数,采用线性递增的序列号,初始序列号从 0x80000001 到最大值 0x7FFFFFFF, 序列号越大代表越新,LSA 会周期 (30min) 产生新的 LSA, 每次产生的 LSA 序列号都会增加 Io
・Checksum: 16 位数,对刚收到的 LSA 做计算,Age 字域不在计算内。即使 LSA 存放在 LSDB 中,路由器也会每 5 分钟重新计算一次。
・Age: 16 位无符号整数。LSA 的最大年龄是 3600s, LSA 在路由器间泛洪时每经过一跳年龄增加 1, 在 LSDB 中存放时年龄也增加 1。若 LSA 的年龄达到 3600s (即 MaxAge), 路由器会从 LSDB 中清除该 LSA。在拓扑稳定的场合下,每份存放在 LSDB 中的 LSA 间隔 30min 都会被周期产生的新 LSA 刷新。
泛洪机制把 LSA 向区域中的每条链路通告,不论 LSA 从哪条链路泛洪到当前路由器,在路由器的 LSDB 中仅保存一份最新的 LSA。若路由器收到多份相同 “ID” 的 LSA,则依次比较序列号、Checksum & LSA Age,来判定是否继续泛洪该 LSA,还是终止泛洪。
・如果收到的 LSA 本地数据库中没有,则接收该 LSA 并继续泛洪。
・如果收到的 LSA 本地有,但收到的 LSA 比自己当前已有的 LSA 要新,则更新 LSDB 并泛洪新的 LSA。
・如果收到的 LSA 比自己已有的 LSA 旧,则不接收该 LSA。
・如果收到的 LSA 和自己路由器的