ОС в соображениях: Windows Server 2008+
Мы добавляем поддержку IPv6 в сложное сетевое приложение клиент-сервер. Сервер открывает множество портов для прослушивания, и разные типы клиентов подключаются к разным портам.
Мы рассматриваем несколько сценариев, в том числе:
Что касается серверной машины, мой вопрос: можно ли предположить, что на производственных машинах, которые Pure IPv6
все еще будет IPv4
работает на уровне ОС? Перефразируя, производственные машины, которые Pure IPv6
, все еще будет IPv4
петлевой адрес работает в системе?
Что касается IPv6
Я нашел заявленное Вот что это обязательная часть ОС, и, по крайней мере, нет возможности отключить IPv6
петля. Но это возможно для IPv4
с помощью netsh
команда.
У меня есть две проблемы:
Приложение My Server написано на Java. И если я отключу IPv4 на уровне ОС с помощью netsh interface ipv4 uninstall
, большинство сетевых API Java перестают работать, поскольку они еще не поддерживают эту конфигурацию. Ссылка на сайт.
В моем серверном приложении есть несколько прослушивающих портов 127.0.0.1
потому что они должны быть доступны с одной машины. Так следует ли мне беспокоиться о них, если я проверю, что код подключается к этим сокетам, используя 127.0.0.1
только и не используя localhost
или ::1
?
Редко можно сделать «безопасные» предположения о чем-либо. Изучите сеть и программное обеспечение, которое вы в ней развертываете.
Отключение IPv4 до его удаления - очень редкость. Это очевидно, когда при этом полностью нарушается сетевой стек различного программного обеспечения, когда сетевые функции не могут работать.
Вы все равно можете попробовать свое программное обеспечение с адресацией только IPv6, чтобы увидеть, не сломается ли что-нибудь.
Для прослушивателя loopback попробуйте использовать константу в среде программирования, которая поддерживает оба. Для Java это может быть InetAddress.getLoopbackAddress ()