linux 内核路由添加三种方式

来源:互联网 发布:万方学术论文数据库 编辑:程序博客网 时间:2024/06/16 10:51

Linux路由添加有三种方式 

一、用ioctl系统调用

int ip_rt_ioctl(struct net *net, unsigned int cmd, void __user *arg)

ioctl()->sys_ioctl()->do_vfs_ioctl()->vfs_ioctl()->sock->ioctl()->inet_ioctl()->ip_rt_ioctl()

二、netlilnk套接字

rtnl_register(PF_INET, RTM_NEWROUTE, inet_rtm_newroute, NULL);

三、通知链(addr和dev)

       可增加本地路由到路由表里面,如下所示:

register_netdevice_notifier(&fib_netdev_notifier);
register_inetaddr_notifier(&fib_inetaddr_notifier);

        调用fib_magic

0 0