Назад | Перейти на главную страницу

Переход с IPv6 на IPv4

В настоящее время я подключен к Интернету через IPv4, я использую туннель от sixxs.net, и у меня есть подсеть и один из IPv6, назначенных моему интерфейсу eth0.

Итак, у eth0 есть IPv4 и IPv6:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:02:XX:XX:61:36 brd ff:ff:ff:ff:ff:ff
    inet XXX.XXX.0.22/24 brd XXX.XXX.0.255 scope global eth0
    inet6 2a01:XXXX:XXXX::1/64 scope global 
       valid_lft forever preferred_lft forever

Когда я пытаюсь подключиться к некоторым, например. веб-сайт, который готов к IPv6, это нормально, IPv6 предпочтительнее, но если что-то случится, а IPv6 недоступен, я бы хотел вернуться к IPv4. Это возможно?

Или можно временно принудительно использовать IPv4 вместо IPv6, даже если программа не поддерживает (например, с помощью опции -4)?

Это уже должно произойти, так как это (должно быть) поведение вашей сети по умолчанию.

Однако на практике есть одна или две мелочи, которые могут помешать. Вот как это работает:

  1. Вы хотите получить доступ к URL-адресу, скажем www.kame.net. Ваш DNS должен запросить AAAA а также A запись.

  2. Если AAAA запись возвращается, затем он пытается подключиться к IPv6-адресу.

  3. Если соединение не может быть установлено (хост отключен, соединение IPv6 не работает и т. Д.) Или нет AAAA запись существует, вместо нее используется IPv4.

Проблемы могут возникнуть в следующих случаях:

  1. Неправильно настроенный или старый DNS-сервер, который не возвращает AAAA адреса будут означать, что IPv6 никогда не используется.

  2. Неправильно настроенная сеть IPv6 (например, с маршрутизируемым IPv6-адресом (не локальным адресом канала), но не обнаружены RA или RA не обнаружены фактически подключенный к Интернету, стек TCP / IP может занять до 90 секунд для ожидания и возврата к IPv4, что делает его практически бесполезным.

Если вы пишете свое собственное приложение, которое выполняет свой собственный поиск в DNS, это также поведение, которое вы должны записать в свое приложение. Если это тоже так, то поддержка IPv6 немного сложнее, чем просто это (например, наш парсер журнала, построенный на IPv4, имел фиксированное 32-битное поле для IP-адреса. Это, конечно, сломалось, когда мы реализовали нашу первую сеть IPv6).