01
BGP 的状态机怎么样的?opensent 状态下参数协商失败怎么办?
BGP 对等体的交互过程中存在 6 种状态机:
空闲状态(Idle)、连接状态(Connect)、 活跃(Ative)、 Open 报文已发送(OpenSent)、Open 报文已确认(OpenConfirm)和连接已建立(Established)。opensent 状态下参数协商失败转至 Idle。
02
open 报文协商些什么参数?AS号怎么影响邻居关系建立?什么场景?
Open 报文中协 商的 AS 号、版本 号、地址簇,可选项能力、认证码等。EBGP 邻居 AS 号不同,IBGP 建立邻居时 AS 相同。
03
Route ID 冲突直连会出现什么情况?非直连出现什么情况?
Route ID 冲突直连时无法建立 BGP 邻居。非直连是可以建立邻居关系,但是在 IBGP 中,如果有 RR,两个Client的Router ID 如果相同,会由于originator id相同造成两个client 间的路由无法正常传递。
04
connect 状态和 active 什么区别?什么时候会停留 connect?什么进入 active?active 会不会发起 TCP 连接?
connect 状态是主动发起 TCP 连接,而 active 状态是被动等待 TCP 连接.
如果onnectRetry Timer 超时,BGP 将重新开始 ConnectRetry Timer 计时,并再尝试与对等体建立 TCP 连接,此时 BGP 继续保持在 Connect 状态.active 状态不会主动发起 TCP 连接。
05
Idle 状态停留 32S 有什么用?/什么原因会导致邻居关系停留在 Idle 状态?
状态停留 32S 是留给管理员配置的时间。比如邻居的 BGP 版本号不同,AS 号不同、RID 冲突、或者邻居关系被主动关闭,以及配置了 peer ignore、邻居没有开启 BGP、无邻居的路由都会停留在 idle 状态。
06
哪些原因 会导致 TCP 建立失败?建立失败,哪些原因会进入 active,哪些原因会停留在 connect
TCP 连接超时会停留在 connect 状态,比如邻居不可达(有路由)、认证失败、ACL 过滤了 TCP 179,对端没有配置 BGP 等。如果没有指定更新源,BGP 邻居停留在 Active 状态。
07
update 报文会在什么状态下发送?update 报文的格式?什么时候发送 update 报文?
update 报文是在 establish 状态发送的。格式如下:
向邻居通告路由或者撤销路由的时候都会发送 update 报文,发送路由的增量更新
08
open 报文的作用?携带哪些参数?AFI/SAFI 的作用?notification 和 keepaleave 有 什么用?
1、open 报文是用来协商 BGP 的参数,用于建立 BGP 对等体连接。参数包括 AS 版本,AS 号,Router ID,Hold Time,支持的地址簇,以及可选项能力。AFI/SAFI 协商 BGP 邻居支 持哪种地址簇的路由。
2、当 BGP 检测到差错的时候就会发送 notifiaction 消息,中断 BGP 连接。如:邻居地 址不可达,RID 冲突等。
3、keepalive 用于检测 TCP 连接是否正常。默认是 60 秒发送一次。
4、refresh 报文用于向对等体重新发送路由信息,且不中断 BGP 连接。
09
refresh 报文什么时候发送?Bgp refresh all 后面接 export 和 import 有什么差别?
两种情况下会发送 refresh 报文:
一是使用命令:refresh bgp all import,路由器 会向 BGP 邻居发送 refresh 报文,请求邻居向自己发送 update 报文。
二是在 ORF 场景中路由器将本地配置的基于前缀的入口策略打包到 Route-refresh 报文中发送给邻居, 邻居根据接收到的路由刷新报文构造出口策略。使用命令:refresh bgp all export 后,路由器会直接向邻居发送 update 报文通告路由
010
BGP 怎么撤销路由的?撤销路由的时候携不携带属性?IPv6 的 BGP 路由又怎么撤 销?会不会携带其它属性?
BGP 撤销路由使用的是 Update 报文。撤销路由的时候不携带属性。IPv6 路由撤销时 是通过新定义的可选非过渡属性 MP_UNRECH_NLRI 携带路由信息,撤销时也不携带其它属性
011
OSPF 怎么撤销路由的?发送序列号 1 和 3600S 分别什么含义?1LSA 会不会出现 3600s 的情况?为什么?
1 类 LSA 中的路由是由通过发送序列号 1 的 LSA 来实现路上撤销的。2 类 LSA 是通过 发送 AGE 为 3600 的 LSA 来实现路由撤销的。3.5.7 也是通过发送 AGE 为 3600LSA 来撤销 路由的。根据模拟器的实验结果 1 类 LSA 不会出现 3600 的情况。1 类 LSA 携带了路由器 上的 stubnet 的路由信息,如果要撤销掉一条路由,不能将 LSA 的 AGE 设为 3600,否则 所有路由信息都会消失。
012
OSPFv3 又是怎么撤销路由的?修改 loopback 的路由 1LSA 不会不会变化?修改接口 网段信息2LSA会不会发生变化?8LSA会不会变化?一条9LSA能携带几条路由信息?一个路由器能产生几条 9LSA?loopback 口产生的 9LSA 和 DR 产生的 9LSA 有什么区别?
OSPFv3 中路由传递是通过 LSA9 携带的,所以路上撤销时是通过发送更新的 LSA9 来 撤销的。修改 loopback 的路由 1LSA 不会变化,修改接口网段信息 2LSA 不会发生变化, 8LSA 会变化。一条 9LSA 能携带很多条路由信息。依附于 1 类 LSA 的路由信息会产生一条 9LSA,如果路由器的某个接口被选为 DR 也可能 会产生一条 9 类 LSA。loopback 口产生的 9LSA 就属于依附于 1 类 LSA 的路由
013
ISIS 会不会出现 age=0 的 LSP,什么情况出现?loopback 口消失会怎么撤销路由?Age=0 还是序列号 1?为什么?
当对引入的路由执行 undo import 命令的时候,ISIS 就会产生一条 age=0 的 LSP, 清除原来引入的所有路由。loopback 口消失产生序列号 1 的 LSP。因为它的信息是在路 由器产生的 LSP 中,此 LSP 还包括其它路由信息以及拓扑信息等内容,不能发送 age=0 的 LSP。