是否有一个IP地址会导致任何发送的数据包被忽略(黑洞)?
我知道我总是可以用IP地址设置路由器,然后让它忽略发送给它的所有数据包,但是是否存在这样的事情来为我省去麻烦呢?
是否有一个IP地址会导致任何发送的数据包被忽略(黑洞)?
我知道我总是可以用IP地址设置路由器,然后让它忽略发送给它的所有数据包,但是是否存在这样的事情来为我省去麻烦呢?
Answers:
网络黑洞有这样的东西。
如果网络中没有IP地址为192.168.0.10的设备,则该IP地址是一个黑洞,它将仅由于不存在而“丢弃”所有流量。
跟踪连接状态(TCP)的协议可以检测到丢失的目标主机。UDP不会发生这种情况,而数据包只会在发送主机不会收到通知的情况下死亡。
您可以通过设置防火墙来设置黑洞,使其设置为默默地丢弃(或拒绝)来自特定(或许多)地址的数据包。
据我所知,没有这样的网络标准地址会在TCP / IP版本4中为您造成黑洞(感谢Bandrami)。
因此,您有两种选择:
netcat
:(如ultrasawblade所建议)。nc -vv -l 25 > /dev/null
将侦听TCP端口25上的入站连接,并将结果通过管道传递给/dev/null
。这里有更多示例。
整个子网也可以是一个黑洞(空路由)。
nc
(或netcat
)快速设置。正如@Nikolay所说,没有自动执行此操作的“黑洞” IP。
尽管这不是一个黑洞,但您可能还想考虑出于测试/示例目的而预留的IP (根据RFC 5737),特别是如果您的目标是“安全地不工作的默认值”时。
192.0.2.0/24
(TEST-NET-1),198.51.100.0/24
(TEST-NET-2)203.0.113.0/24
(TEST-NET-3) 网络运营商应将这些地址块添加到不可路由的地址空间列表中,如果部署了数据包过滤器,则应将此地址块添加到数据包过滤器中。
无法保证将阻止到这些地址的数据包(这取决于您的ISP等),但是肯定没有人应该已经在使用它们。
这样就没有“标准黑洞地址”,也没有任何要求。您没有说您实际要实现的目标,所以我不能为您提供帮助,但是这里有一些错误的解决方案,可以按您的要求回答:
iptables -I OUTPUT -d 254.0.0.0/8 -j DROP
将确保发送到该“网络”的所有内容都将被静默删除,而不会打扰任何网关,甚至不会在实际的网络接口上引起流量。同样,即使您认为这很方便,您实际上也可能根本不需要这些,这不是,它令人困惑且不明显,也不是解决您实际问题的好方法。
我可能会建议使用“ TEST-NET”地址范围之一,“用于文档和示例。不应公开使用”。
192.0.2.0/24 198.51.100.0/24 203.0.113.0/24
我不确定在这里要说的是什么,这似乎更像是Internet网关将提供的一种做法,而不是一种具体的方式来实现路由到不应出现的地方的数据包
也有回送地址范围127.0.0.0/8
,例如127.0.0.255
。尽管那里仍然有可能存在事物,特别是本地计算机上的任何服务,但至少您不会干扰网络上的任何计算机(除非您认为网络服务由其他网络服务支持)。
127.0.0.0/8
也许0.0.0.0
也可以使用非法地址,尽管0.0.0.0/8保留用于“用于向当前(“此”)广播消息”,因此存在广播的风险。
0.0.0.0/8
无效路线的维基百科页面指出:
空路由通常配置有特殊的路由标志,但是也可以通过将数据包转发到非法IP地址(例如0.0.0.0)或环回地址来实现。
localhost
在最高端口上使用65535
,因为我想确保没有流量离开主机。