强制* BSD在单个套接字上接受IPv4和IPv6流量


8

我尝试了很多东西,然后空手而归。

请允许我描述一下情况:

我在FreeNAS中有一个* BSD Jail安装程序,该安装程序运行Plex媒体服务器(Plexpass)。它具有IPv6访问权限,并配置为使用它。Plex当前被构建为使用单个套接字(这在标准范围内,因为有支持此行为的RFC)。我知道BSD,出于安全方面的考虑,不允许在单个套接字上侦听这两个协议,因此,未明确编程为将不同套接字用于IPv4和IPv6的任何应用程序都将无法通信该套接字未绑定到的协议。

我可以在Web浏览器中使用文字IPv6地址访问管理页面。MyPlex无法访问服务器以进行远程访问(MyPlex当前仅支持IPv4)。

附加信息:

root @ plexmediaserver_plexpass:/#netstat -a | grep 32400
tcp6 0 0 * .32400

我尝试了以下方法:

  • 在rc.conf中设置ipv6_ipv4mapping =“ YES”
  • 设置sysctl net.inet6.ip6.v6only = 0
  • 使用socat将端口上的TCP4代理到地址为[:: 1]:32400的TCP6的32400
  • 使用socat将端口上的TCP4代理到地址为[Public-IPv6-Address]:32400的TCP6的32400
  • 上面的混合物

我绝对不知所措。我知道这对欧洲许多人来说是一个重大问题,因为ISP已开始转向批量IPv6。这让我无比沮丧,尽管不像对他们那么可怕。我无法找到有关在Plex中获得针对此问题的永久修复的状态的任何信息。据我所知,最好的解决方法是绑定多个端口,并让MyPlex将它们都拉出,并根据是否可以通过任何流量来决定使用哪种协议。这是他们论坛的问题。

我的问题是,是否有其他方法可以强制* BSD遵守关于IPv6套接字的RFC标准,或者它们是否完全放弃了对它的支持。

感谢我可以获得的任何帮助。


请问这是服务器故障更好的问题吗?
纳撒尼尔·米克


我不能完全确定哪个网站最适合这个问题。还有unix.stackexchange.com,这可能是回答各种unix变体之间的确切区别的最佳位置。我第一次尝试搜索信息的结果是Linux特定的结果,并且Linux和BSD在处理双堆栈套接字方面似乎有所不同。
kasperd

Answers:


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.