有时候在系统上配置一个32位掩码的IP地址是不错的,这样一来可以使系统路由表瘦身,二来可以防止显式路由之外的主机和本系统通信。这个怎么说呢?通过配置一个32位掩码的IP地址,就会发现在路由表的main表中,少了该地址的直连路由,因为它是32位的,本身不表征不携带任何网络,在路由表的local表中,少了该地址表征的网段的广播路由,因为它不表征任何网段,因此除非你显式地配置一条路由,否则该地址应该可以被看作是孤立的了。在单网卡机器上,如果配置eth0的地址为192.168.40.249/32,那么别指望用常规的方式添加任何路由,这是因为链路层直连路由已经不存在了,我们如下的尝试:route add -net 192.168.0.0/16 gw 192.168.40.254将失败,因为网关地址并不和本地地址同在任何一个网段,那么如何是好呢?Linux的iproute2工具包提供了一个onlink参数,可以满足这样的要求:ip route add 172.16.0.0/16 via 192.168.40.254 dev eth0 onlink之所以要指明dev参数是因为没有链路层直连路由,因而协议栈根本不知道从哪个网卡发出数据包,必须显式指明才可以,最后的一个onlink参数表明强制此网关是“在链路上”的(虽然并没有链路层路由)。除了路由之外的所有访问都将以“路由不可达”这种错误而告终。按照上述的配置,即使你访问192.168.40.0/24网段的,也会失败,因为192.168.40.249/32和谁都不在一个网段。那么onlink能表达什么呢?onlink的意义在于协议栈虽然找不到链路层直连路由,但是还是会发布针对via网关的arp请求的,仅此而已。如此一来,这种网络通信显得更加纯粹些。仅仅就是为了通信,不会因为通信本身而造出一个IP网段来。Linux Top命令详解使用iptables为何不能将外部进入的包NAT到127.0.0.1相关资讯 Linux使用教程
- 如何在 Linux 中安全擦除删除的文 (04/10/2014 06:12:05)
- Linux中profile的执行说明 (09/28/2012 06:16:01)
- Mac/Linux 多线程下载解决方案 (08/30/2012 07:39:07)
| - Linux下AutoTools工具集使用教程 (11/20/2012 12:13:57)
- Linux下根据端口号查询对应进程 (09/05/2012 06:14:34)
- Linux平台下HD 2000/3000/4000性能 (08/28/2012 06:28:48)
|
本文评论 查看全部评论 (0)