比较 Linux 主机之间的路由

比较 Linux 主机之间的路由

我有一些主机组,每个组需要特定的路由。

路由时不时地被修改,我想编写一个脚本来检查同一组中主机之间的差异。

我尝试比较命令的输出ip r,但每个主机之间存在细微差异(例如接口名称和指标),这会导致误报。

例如,假设我有以下主机、路由和 VLAN(全部为本示例而制作):

Host 1:
10.0.0.30 via 192.168.0.1 VLAN 1 
100.50.10.10 via 10.0.0.1 VLAN 2

而主机2只有以下内容:

Host 2:
10.0.0.30 via 192.168.0.1 VLAN 1 

我希望脚本能够抱怨缺少的100.50.10.10 via 10.0.0.1 VLAN 2.

我不介意接口名称或指标,只是10.50.10.10通过一台服务器到达该地址VLAN2,而不是另一台服务器。

我真的很感激解决这个问题的任何想法和方向。

谢谢你!

答案1

您对完整的产品线不感兴趣。因此,过滤掉您感兴趣的部分。作为针对您所描述内容的快速而肮脏的解决方案,

sed -n 's/ via [0-9\.]* /;/p'

将提供您感兴趣的领域。

但是,最好参考一下路由表应该是什么样子,并将主机的路由表与该表进行比较。有可能所有主机上都缺少所需的路由,然后您将得到漏报。

相关内容