出于安全原因,OpenBSD不会将IPv4流量路由到AF_INET6套接字,并且不支持IPv4 mapped addresses,其中IPv4流量被视为来自IPv6地址,如:: ffff:10.1.1.1。如果需要接受IPv4和IPv6流量,请在两个插槽上进行监听。
但是,没有关于这些“安全原因”的解释。这些是什么?我无法想到与该映射相关的任何安全问题。
答案 0 :(得分:2)
我并不清楚OpenBSD使用了什么动机,但我知道至少有一个可能是安全问题的问题,即ACL,特别是黑名单。
请注意,您有来自10.1.1.1的传入连接。此地址在您的ACL中列入黑名单,因此您拒绝连接。但是,如果您使用的是映射地址,则它似乎来自:: ffff:10.1.1.1。您的黑名单可能无法捕捉到这一点,并可能让连接通过。
这可以通过应用程序逻辑解决,因为使用单个套接字可能会简化代码,我个人认为OpenBSD的决定是不幸的。可以将v4map默认设置为off,但允许通过setsockopt
启用它。
他们可能有更多的担忧,虽然我不知道。
答案 1 :(得分:1)
据我所知,主要原因是将IPv4和IPv6堆栈分开。处理一个堆栈中的数据包但由另一个堆栈处理导致安全风险的数据包是必需的。