Есть две причины.
(1) Во-первых, это более простая, сквозная связь . Если и источник, и пункт назначения имеют общедоступный адрес IPv4 (или, конечно, IPv6), они могут в любое время подключаться друг к другу в любом направлении.
Однако ваш IoT с частным IP-адресом 192.168.0.52
может использовать NAT ONLY для подключения к любому общедоступному IP-адресу в Интернете в любое время, но остальная часть Интернета не может подключиться к нему. Существовали такие клуджи, как DNAT и uPNP, которые позволяли вам указывать, что некоторые входящие соединения включены, но в настоящее время они ломаются все больше и больше из-за внедрения CGNAT из-за нехватки IPv4.
Распространенным (так называемым) «решением» этой проблемы является то, что все ваши (NATed) устройства подключаются к некоторому центральному местоположению с общедоступным IP-адресом (обычно размещаемым производителем устройства). Это делает его технически работоспособным , но включает проблему конфиденциальности (вы предоставляете все данные из своих IoT), проблему безопасности (поскольку вы широко открыты для них, нарушитель или недовольный сотрудник могут делать все, что может сделать ваше устройство IoT, и получать к ним доступ. ) и проблема с надежностью (когда производитель выходит из бизнеса или решает прекратить поддержку старых устройств или испытывает перебои в работе), все ваши (и все остальные) устройства перестают работать.
(2) вторая проблема заключается в том, что он в любом случае перестанет работать (даже для исходящих соединений) некоторое время в будущем (не через год или два, но все же. Чем больше IoT и услуг завоевывают популярность, тем раньше он начнет ломаться).
Это связано с тем, что NAT позволяет частным адресам, например, 192.168.0.52
достигать Интернета в целом. Это происходит путем изменения адреса источника 192.168.0.52
на общедоступный IP-адрес вашего маршрутизатора, но заменяет порт источника свободным портом из пула.
Например, ваше первое соединение может быть 192.168.0.52:1000
может быть (CG) -NATed к (общественной IP) 198.51.100.1:1000
, а ваш сосед192.168.0.77:1000
может получить к через NAT 198.51.100.1:1001
. 192.168.0.52:1001
Тогда ваше второе соединение будет преобразовано в NAT и 198.51.100.1:1002
т. Д.
Проблема в том, что даже такие простые вещи, как открытие веб-страницы, вероятно, откроют десятки соединений и будут использовать дюжину портов (для DNS-запросов, HTTP (S) -соединения для разных элементов, JS-аналитики на разных сайтах и т. Д.).
Более дорогие программы, такие как торрент-клиенты, могут легко использовать тысячи портов . И есть только для любого IP доступно 65535 портов.
Это означает, что несколько ваших соседей, использующих один и тот же IP-адрес CGNAT, используют большую долю соединений (и чем больше IoT, тем больше подключений), и внезапно используются все 65535 портов на этом общедоступном IP-адресе 198.51.100.1. Это означает, что новые соединения не могут быть установлены для вас и ваших соседей. Что в большем масштабе означает, что многие люди лишены своих IoT, и цивилизация, как мы ее знаем, рушится :-)
Поскольку мы хотели бы отложить этот коллапс цивилизации как можно дольше, мы вместо этого переходим на IPv6 . Пожалуйста, поддержите продолжение существования этой цивилизации, используя IPv6, если это возможно . Благодарность!