* BSD muss IPv4- und IPv6-Verkehr auf einem einzigen Socket akzeptieren

906
Nathanial Meek

Ich habe eine Menge Zeug ausprobiert und komme immer mit leeren Händen auf.

Gestatten Sie mir, die Situation zu bestimmen:

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

Ich kann auf die Verwaltungsseite über eine wörtliche IPv6-Adresse in meinem Webbrowser zugreifen. MyPlex kann für den Fernzugriff nicht 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:

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

Ich bin absolut ratlos. Ich weiß, dass dies für eine große Anzahl von Menschen in Europa ein großes Problem ist, weil ISPs auf IPv6 en-mass umsteigen. Für mich ist das unendlich frustrierend, wenn auch nicht annähernd so schlimm wie für sie. Ich konnte keine Informationen zum Status einer dauerhaften Problembehebung in Plex finden. Soweit ich das beurteilen kann, wäre die beste Lösung die Bindung an mehrere Ports und MyPlex, um beide zu ziehen und zu entscheiden, welches Protokoll verwendet werden soll, je nachdem, ob es Datenverkehr durchläuft oder nicht. Dies ist jedoch ein Thema für ihre Foren.

Meine Frage hier ist, ob es andere Wege gibt, um * BSD zur Einhaltung des RFC-Standards in Bezug auf IPv6-Sockets zu zwingen, oder ob sie die Unterstützung dafür vollständig eingestellt haben.

Ich schätze jede Hilfe, die ich bekommen kann.

8
Wäre dies eine Frage, die bei Serverfehlern besser gestellt wurde? Nathanial Meek vor 9 Jahren 0
Möglicherweise verwandt: http://stackoverflow.com/questions/5587935/cant-turn-off-socket-option-ipv6-v6only kasperd vor 9 Jahren 0
Ich bin nicht ganz sicher, welche Seite für diese Frage am besten geeignet ist. Es gibt auch http://unix.stackexchange.com/. Dies ist der beste Ort, 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 ein Unterschied zwischen Linux und BSD in der Handhabung von Dual-Stack-Sockets zu bestehen. kasperd vor 9 Jahren 0

1 Antwort auf die Frage

-2
Chronophylos

vielleicht hilft das:

ipv6_ipv4mapping="YES" 

aber ich weiß nicht, ob das was Sie wollen src: https://www.freebsd.org/doc/handbook/network-ipv6.html