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

Добавление поддержки IPv6 в клиент-серверное приложение. Распространено ли отключение стека IPv4 на уровне ОС на производственных серверах «Чистый IPv6»?

ОС в соображениях: Windows Server 2008+

Мы добавляем поддержку IPv6 в сложное сетевое приложение клиент-сервер. Сервер открывает множество портов для прослушивания, и разные типы клиентов подключаются к разным портам.

Мы рассматриваем несколько сценариев, в том числе:

Что касается серверной машины, мой вопрос: можно ли предположить, что на производственных машинах, которые Pure IPv6 все еще будет IPv4 работает на уровне ОС? Перефразируя, производственные машины, которые Pure IPv6, все еще будет IPv4 петлевой адрес работает в системе?

Что касается IPv6 Я нашел заявленное Вот что это обязательная часть ОС, и, по крайней мере, нет возможности отключить IPv6 петля. Но это возможно для IPv4 с помощью netsh команда.

У меня есть две проблемы:

  1. Приложение My Server написано на Java. И если я отключу IPv4 на уровне ОС с помощью netsh interface ipv4 uninstall, большинство сетевых API Java перестают работать, поскольку они еще не поддерживают эту конфигурацию. Ссылка на сайт.

  2. В моем серверном приложении есть несколько прослушивающих портов 127.0.0.1 потому что они должны быть доступны с одной машины. Так следует ли мне беспокоиться о них, если я проверю, что код подключается к этим сокетам, используя 127.0.0.1 только и не используя localhost или ::1 ?

Редко можно сделать «безопасные» предположения о чем-либо. Изучите сеть и программное обеспечение, которое вы в ней развертываете.

Отключение IPv4 до его удаления - очень редкость. Это очевидно, когда при этом полностью нарушается сетевой стек различного программного обеспечения, когда сетевые функции не могут работать.

Вы все равно можете попробовать свое программное обеспечение с адресацией только IPv6, чтобы увидеть, не сломается ли что-нибудь.

Для прослушивателя loopback попробуйте использовать константу в среде программирования, которая поддерживает оба. Для Java это может быть InetAddress.getLoopbackAddress ()