【FRRouting User Guide】【Basic 】(十)Kernel Interface

有几种不同的方法来读取内核路由表信息、更新内核路由表和查找接口。

  • ioctl

这种方法是沿ioctl读取或写入内核信息的一种非常传统的方法;可用于查找接口和修改接口地址、标志、mtu设置和其他类型的信息。另外,:<ioctl>可以插入和删除内核路由表条目。它几乎可以在zebra支持的任何平台上使用,但是到目前为止它有点难看,因此如果内核支持更好的方法,zebra将使用它。

  • sysctl

这是一个程序,可以使用MIB(管理信息库)语法查找内核信息。通常,它只提供从内核获取信息的方法。所以,通常人们希望使用另一种方法(比如沿ioctl)来更改内核信息。

  • proc filesystem

这是一种特殊的文件系统装载,提供了获取内核信息的简单方法。

  • routing socket / Netlink

在最新的Linux内核(2.0.x和2.2.x)上,有一个内核/用户通信支持,叫做Netlink。它使得内核和FRR之间的异步通信成为可能,类似于BSD系统上的路由套接字。
在使用此功能之前,请确保(在内核配置中)选择kernel/Netlink支持选项“kernel/User network link driver”和“Routing messages”。
今天,沿着特殊设备文件的*/dev/route已经过时了。Netlink通信是通过Netlink套接字读/写来完成的。
内核配置完成后,请重新配置并重建FRR。您可以使用Netlink作为FRR和内核之间的动态路由更新通道。

猜你喜欢

转载自blog.csdn.net/weixin_39094034/article/details/115166126
今日推荐