Memaksa * BSD untuk menerima lalu lintas IPv4 dan IPv6 pada satu soket

8

Saya telah mencoba banyak hal dan terus datang dengan tangan kosong.

Izinkan saya untuk membingkai situasi:

Saya memiliki pengaturan * BSD Jail di FreeNAS yang menjalankan Plex Media Server (Plexpass). Ini memiliki akses IPv6 dan dikonfigurasi untuk menggunakannya. Plex saat ini dibangun untuk menggunakan soket tunggal (yang masih dalam standar karena ada RFC yang mendukung perilaku ini). Saya tahu BSD, karena masalah keamanan, melarang mendengarkan kedua protokol pada soket tunggal sehingga aplikasi apa pun yang tidak diprogram secara eksplisit untuk menggunakan soket yang berbeda untuk IPv4 dan IPv6 tidak akan dapat berkomunikasi di mana protokol soket tidak pernah terikat.

Saya dapat mengakses halaman manajemen menggunakan alamat IPv6 literal di browser web saya. MyPlex tidak dapat mengakses server untuk akses jarak jauh (MyPlex saat ini hanya mendukung IPv4).

Informasi tambahan:

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

Saya sudah mencoba yang berikut ini:

  • Mengatur ipv6_ipv4mapping = "YES" di rc.conf
  • Pengaturan sysctl net.inet6.ip6.v6only = 0
  • Menggunakan socat ke proksi TCP4 pada port ke 32400 ke TCP6 pada alamat [:: 1]: 32400
  • Menggunakan socat ke proksi TCP4 pada port ke 32400 ke TCP6 pada alamat [Public-IPv6-Address]: 32400
  • Campuran di atas

Saya benar-benar bingung. Saya tahu ini adalah masalah utama bagi banyak orang di Eropa karena ISP mulai beralih ke IPv6 secara massal. Bagi saya hal itu sangat membuat frustrasi, meskipun tidak separah bagi mereka. Saya tidak dapat menemukan informasi tentang status mendapatkan perbaikan permanen di Plex untuk masalah ini. Perbaikan terbaik, sejauh yang saya tahu, adalah untuk mengikat beberapa port dan untuk MyPlex untuk menarik keduanya dan membuat keputusan protokol mana yang akan digunakan berdasarkan apakah bisa mendapatkan traffic melalui atau tidak. Ini adalah masalah bagi forum mereka.

Pertanyaan saya di sini adalah apakah ada cara lain untuk memaksa * BSD untuk mematuhi standar RFC tentang soket IPv6 atau jika mereka telah sepenuhnya kehilangan dukungan untuk itu.

Hargai segala bantuan yang bisa saya dapatkan.

Nathanial Meek
sumber
Apakah ini pertanyaan yang lebih baik ditanyakan pada Server Fault?
Nathanial Meek
Kemungkinan terkait: stackoverflow.com/questions/5587935/…
kasperd
Saya tidak sepenuhnya yakin situs mana yang terbaik untuk pertanyaan ini. Ada juga unix.stackexchange.com , yang mungkin menjadi tempat terbaik untuk mendapatkan jawaban tentang apa perbedaan yang tepat antara berbagai varian unix. Upaya pertama saya untuk mencari informasi ternyata hasil khusus Linux, dan tampaknya ada beberapa perbedaan antara Linux dan BSD dalam menangani soket dual stack.
kasperd

Jawaban: