Forcer * BSD à accepter le trafic IPv4 et IPv6 sur un seul socket

8

J'ai essayé une tonne de trucs et je continue à avoir les mains vides.

Permettez-moi de cadrer la situation:

J'ai une installation * BSD Jail dans FreeNAS qui exécute un serveur de médias Plex (Plexpass). Il a un accès IPv6 et est configuré pour l'utiliser. Plex est actuellement conçu pour utiliser une seule prise (ce qui est tout à fait conforme aux normes car il existe une RFC qui prend en charge ce comportement). Je sais que BSD, pour des raisons de sécurité, n'autorise pas l'écoute des deux protocoles sur une même socket. Ainsi, toute application non explicitement programmée pour utiliser des sockets différentes pour IPv4 et IPv6 ne pourra pas communiquer sur le protocole auquel la socket n'est pas liée.

Je peux accéder à la page de gestion en utilisant une adresse IPv6 littérale dans mon navigateur Web. MyPlex ne peut pas accéder au serveur pour un accès à distance (MyPlex ne prend actuellement en charge que IPv4).

Information additionnelle:

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

J'ai essayé ce qui suit:

  • Définition de ipv6_ipv4mapping = "YES" dans rc.conf
  • Définition de sysctl net.inet6.ip6.v6only = 0
  • Utilisation de socat pour proxy TCP4 sur le port 3264 à TCP6 sur adresse [:: 1]: 32400
  • Utilisation de socat pour proxy TCP4 sur le port 32400 vers TCP6 sur adresse [Adresse IPv6 publique]: 32400
  • Un mélange de ce qui précède

Je suis à une perte absolue. Je sais que c'est un problème majeur pour une tonne de personnes en Europe, car les FAI ont commencé à passer à IPv6 en masse. C'est infiniment frustrant pour moi, mais pas aussi désastreux que pour eux. Je n’ai trouvé aucune information sur l’obtention d’un correctif permanent dans Plex pour résoudre le problème. La meilleure solution, pour autant que je sache, serait de lier plusieurs ports et de permettre à MyPlex de les tirer tous les deux et de décider du protocole à utiliser en fonction de la capacité du trafic à transiter ou non. C'est un problème pour leurs forums cependant.

Ma question ici est de savoir s’il existe un autre moyen de forcer * BSD à se conformer à la norme RFC concernant les sockets IPv6 ou s’ils ont totalement abandonné la prise en charge.

J'apprécie toute l'aide que je peux obtenir.

Nathanial Meek
la source
Serait-ce une question mieux posée sur Server Fault?
Nathanial Meek
Peut-être liée: stackoverflow.com/questions/5587935/…
kasperd
Je ne suis pas tout à fait certain du site qui conviendrait le mieux pour cette question. Il existe également unix.stackexchange.com , qui peut être le meilleur endroit pour obtenir une réponse sur la différence exacte entre les différentes variantes unix. Ma première tentative de recherche d'informations a donné des résultats spécifiques à Linux, et il semble y avoir une différence entre Linux et BSD dans le traitement des sockets à double pile.
Kasperd

Réponses: