Установка IPv4 в качестве предпочтительного протокола по IPv6

19

Я использую как IPv6, так и IPv4 в локальной сети, содержащей блоки Slackware 13.0. Как я могу установить IPv4 в качестве предпочтительного протокола на рабочих станциях в этой сети? Я хочу использовать IPv6 либо явно, либо когда доступны только записи AAAA. Например, если я пытаюсь открыть http://ipv6.org/ с Firefox, я всегда буду подключаться через IPv6. Ситуация такая же с другими приложениями. Я попытался создать /etc/gai.conf и добавить к нему следующее:

precedence ::ffff:0:0/96  100

Это должно контролировать поведение getaddrinfo (3) по крайней мере в Debian, но это не помогло в Slackware.

Любые идеи будут оценены. Заранее спасибо!

Георги Христозов
источник
1
Большое спасибо за указание на /etc/gai.conf! Я искал его около полугода! :)
Колыпто

Ответы:

18

Согласно man-странице, вставка precedenceзначения в gai.conf отключает все остальные правила по умолчанию. Попробуйте установить все правила, перечисленные в RFC 3484 (10.3):

  Prefix        Precedence Label
  ::1/128               50     0
  ::/0                  40     1
  2002::/16             30     2
  ::/96                 20     3
  ::ffff:0:0/96        100     4
Лука Теттаманти
источник
1

ipv6 на самом деле не моя область знаний, но на странице руководства resolver(5)есть несколько вариантов, /etc/resolv.confкоторые могут быть связаны:

options inet6Наборы RES_USE_INET6в _res.options. Это приводит к попытке запроса AAAA перед запросом A внутри gethostbyname(3) функции и отображению ответов IPv4 в «туннелированной форме» IPv6, если записи AAAA не найдены, но существует набор записей A.

Может быть, ваши клиенты имеют эту опцию?

Андерс Линдал
источник