Erzwingen, dass * BSD sowohl IPv4- als auch IPv6-Verkehr auf einem einzelnen Socket akzeptiert

8

Ich habe eine Menge Sachen ausprobiert und komme immer wieder mit leeren Händen hoch.

Gestatten Sie mir, die Situation zu erfassen:

Ich habe ein * BSD-Jail-Setup in FreeNAS, auf dem ein Plex Media Server (Plexpass) ausgeführt wird. Es verfügt über IPv6-Zugriff und ist für die Verwendung konfiguriert. Plex ist derzeit für die Verwendung eines einzelnen Sockets ausgelegt (was den Standards entspricht, da es einen RFC gibt, der dieses Verhalten unterstützt). Ich weiß, dass BSD aus Sicherheitsgründen das Abhören beider Protokolle auf einem einzelnen Socket nicht zulässt, sodass jede Anwendung, die nicht explizit für die Verwendung unterschiedlicher Sockets für IPv4 und IPv6 programmiert ist, nicht über das Protokoll kommunizieren kann, an das der Socket nicht gebunden ist.

Ich kann über eine wörtliche IPv6-Adresse in meinem Webbrowser auf die Verwaltungsseite zugreifen. MyPlex kann nicht für den Remotezugriff auf den Server zugreifen (MyPlex unterstützt derzeit nur IPv4).

Zusätzliche Information:

root @ plexmediaserver_plexpass: / # netstat -a | grep 32400
tcp6 0 0 * .32400 . HÖR MAL ZU

Ich habe folgendes versucht:

  • Setzen von ipv6_ipv4mapping = "YES" in rc.conf
  • Setzen Sie sysctl net.inet6.ip6.v6only = 0
  • Verwenden von socat zum Proxy von TCP4 auf Port 32400 auf TCP6 unter Adresse [:: 1]: 32400
  • Verwenden von socat zum Proxy von TCP4 am Port auf 32400 an TCP6 an der Adresse [Public-IPv6-Address]: 32400
  • Eine Mischung der oben genannten

Ich bin absolut ratlos. Ich weiß, dass dies ein großes Problem für eine Menge Menschen in Europa ist, da ISPs begonnen haben, auf IPv6 en-mass umzusteigen. Es ist unendlich frustrierend für mich, wenn auch nicht annähernd so schlimm wie für sie. Ich konnte keine Informationen zum Status der dauerhaften Behebung des Problems in Plex finden. Soweit ich das beurteilen kann, besteht die beste Lösung darin, mehrere Ports zu binden und MyPlex beide abzurufen und zu entscheiden, welches Protokoll verwendet werden soll, basierend darauf, ob Datenverkehr durchgelassen werden kann oder nicht. Dies ist jedoch ein Problem für ihre Foren.

Meine Frage hier ist, ob es andere Möglichkeiten gibt, * BSD zu zwingen, den RFC-Standard für IPv6-Sockets einzuhalten, oder ob die Unterstützung dafür vollständig eingestellt wurde.

Schätzen Sie jede Hilfe, die ich bekommen kann.

Nathanial Meek
quelle
Wäre dies eine Frage, die bei Serverfehler besser gestellt wird?
Nathanial Meek
Möglicherweise verwandt: stackoverflow.com/questions/5587935/…
kasperd
Ich bin mir nicht ganz sicher, welche Seite für diese Frage am besten geeignet ist. Es gibt auch unix.stackexchange.com , das möglicherweise der beste Ort ist, um eine Antwort auf den genauen Unterschied zwischen verschiedenen Unix-Varianten zu erhalten. Mein erster Versuch, nach Informationen zu suchen, ergab Linux-spezifische Ergebnisse, und es scheint einen Unterschied zwischen Linux und BSD beim Umgang mit Dual-Stack-Sockets zu geben.
Kasperd

Antworten: