本文介绍怎么使用C/C++从Linux路由表中添加移除无效的(Null Route)路由条目。
我们首先看一下怎么从命令行操作Linux路由表。
Linux路由表是在内核中的;查看:
$ sudo route -n
你也可以查看 /proc/net/route 文件。
添加Null Routes
Null routes简单的忽略和它相匹配的包。使用它可以有效的屏蔽某个有问题的IP。
例如:
$ sudo route add 123.123.123.123 reject
现在你不能和IP(123.123.123.123) 发送、接收数据包。
移除Null Routes
$ route del 123.123.123.123 reject
在操作路由表时要格外小心;如果你不小心移除了和SSH相关的远程主机路由,你只能通过访问物理主机解决。
使用C/C++更改路由表
要使用程序添加null route,你需要使用ioctl,控制参数SIOCADDRT:
#include </