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

ОС на заметку: Windows Server 2008+

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

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

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

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

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

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

2
задан 5 March 2017 в 16:33
1 ответ

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

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

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

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

0
ответ дан 3 December 2019 в 14:12

Теги

Похожие вопросы