3

如果我有一个包含以下两个命令的脚本来修改路由

/sbin/route add -host pandora.com -interface ppp0 /sbin/route add -host internal-tuner.pandora.com -interface ppp0

有没有办法用 *.pandora.com 之类的东西创建一个独特的命令路由?

4

1 回答 1

2

我认为答案是否定的。当您使用 dns 名称而不是 ip 地址添加路由时,route 命令所做的第一件事就是查找它并将其转换为 ip 地址。因此,如果 pandora.com 目前解析为 172.16.0.1,那么机器真正在做的是通过 ppp0 添加到 172.16.0.1/32 的路由。当机器决定如何路由数据包时,它会使用您设置的 IP 地址和掩码来执行此操作,而您使用的任何域名在那个阶段早已被遗忘。

为了给域中的所有机器添加路由,你必须知道所有的 IP 地址,这意味着你需要知道所有的主机名。如果您的 DNS 服务器设置为允许此类事情,您可以向它询问 pandora.com 域中的所有内容,但如今很少有 dns 服务器会允许此类事情。

但是...如果您知道 pandora.com 中的所有内容都有一个从 172.16.0.0 到 172.16.0.255 (所谓的网络块,您可以使用 whois 获得的东西)之间开始的 IP 地址,您可以添加整个网络的路由,例如:

ip route add 172.16.0.0/24 dev ppp0

另请注意,我在那里使用了 iproute2 命令,而不是 /sbin/route。

于 2013-04-25T08:30:22.127 回答