交付:一个查下一跳的小工具
场景:说明里给了一个示例目标。 任务:写一个 ~/路由.py,用法 python3 路由.py 机器A.txt 目标地址,打印正好一行:「下一跳 …」(有 via 的行)、「直连 …」(直连行,写接口
交一份路由报告
场景:~/机器A.txt 是机器 A 的路由表;实验机自己的主表也要看一眼。 任务:写一份 ~/报告.txt,正好四行:「默认网关 …」「直连网段 …」「下一跳行数 …」「实验机主表 …」(前三行按机
哪些目标发不出去
场景:~/机器B.txt 是另一台机器的路由表,它没有默认路由;~/目标.txt 列了八个地址。对照表列了八个数。 任务:数一数八个目标里有几个在机器 B 上「没有任何一行匹配」(发不出去),到对照表
两行一样长比度量
场景:~/机器A.txt 是机器 A 的路由表,里面有两行前缀一样长、度量不同;说明里给了一个目标地址。对照表列了八个地址。 任务:算出去那个目标时的下一跳地址,到对照表里查它对应的标记。 可操作范围
实验机自己的两张表
场景:实验机只有回环接口。除了主表,系统还有一张 local 表。对照表列了八个「主表条数/local表条数」。 任务:用 ip route 看主表有几行,再用 ip route show table
几行要交给别人
场景:~/机器A.txt 是机器 A 的路由表。对照表列了八个数。 任务:数一数表里有几行是「交给下一跳」的(有 via 的),到对照表里查这个数对应的标记。 可操作范围:只在分给你的这台实验机上操作
去这个地址交给谁
场景:~/机器A.txt 是机器 A 的路由表;说明里给了一个目标地址。对照表列了八个地址。 任务:按机器 A 的表,算出去那个目标时的下一跳地址,到对照表里查它对应的标记。⚠️ 表里有好几行都包含它
那台机器的默认网关
场景:~/机器A.txt 是另一台机器上 ip route 的输出。对照表列了八个地址。 任务:找出机器 A 的默认网关(去任何没有更具体路由的目标时交给谁),到对照表里查它对应的标记。 可操作范围:
从 ip route 的一行里抠出下一跳
真机上 ip route 的一行长这样:10.20.0.0/16 via 192.168.37.253 dev eth0 metric 100。要在脚本里取出前缀和下一跳,先在这里练: line =
真机上先看什么
拿到一台机器要弄清「它的包往哪儿发」。第一条该敲的命令是【0】。