Первый грех интернета: как NAT убил прямые соединения
Internet centralization and the original sin of NAT
Автор разбирает, как NAT, предложенный в 1994 году как временное решение проблемы нехватки IP-адресов, стал причиной централизации интернета. Из-за NAT сложно запускать серверы дома, а обходные пути — проброс портов, UPnP, STUN, TURN и ICE — не восстанавливают исходную P2P-связь. Даже IPv6 не решает проблему, так как операторы продолжают использовать NAT по инерции и из ложных соображений безопасности.
NAT приучил всех думать, что клиент-серверная модель — это естественно: «Мое устройство общается с облаком, которое общается с другими устройствами» — это ощущение возникло как артефакт нехватки адресов.
- smalltorch
Запуск сервера раньше был тривиальной задачей: запустил исполняемый файл, сообщил людям свой адрес — и готово.
Именно это привлекает меня в onionv3-сервисах. Там всё до сих пор точно так же.
На днях я написал пост, размышляя, почему они не намного популярнее, чем сейчас. Может, большинство просто не знает? Это довольно приятная возможность.
Особенно в мире, где очень легко создавать собственные утилиты, это идеальный способ вернуть себе немного суверенитета над своими вычислениями в эпоху CGNAT.
Конечно, это не молниеносно быстро или что-то такое... но этого вполне достаточно для 90% задач.
- solatic
> Есть много вещей, которые можно обвинить в убийстве открытого интернета, но я думаю, что NAT был одним из самых ранних. Запуск сервера раньше был тривиальной задачей: запустил исполняемый файл, сообщил людям свой адрес — и готово... Это также приучило всех думать, что клиент-серверная модель — это естественно. «Мое устройство общается с облаком, которое общается с другими устройствами» кажется нормальным, хотя это ощущение возникло как артефакт нехватки адресов.
Многое из этого похоже на реквием по временам, когда в интернете были только люди с высоким уровнем компьютерных навыков. Большинство людей будут тяготеть к «дружелюбным» решениям: Gmail и другие управляемые почтовые провайдеры были популярны, потому что они не переставали работать, когда вы выключали компьютер, чтобы сэкономить электричество, когда падал жесткий диск вашего сервера, когда вы обновляли компьютер до чего-то с более быстрым процессором, большим объемом ОЗУ и более новой операционной системой. Было достаточно сложно объяснить обычным людям, что такое URL-адреса и адреса электронной почты (помните ключевые слова AOL?), не говоря уже о комбинации случайных чисел в IP-адресе или убеждении людей регистрировать доменные имена.
Да, NAT вбил заборы в сеть, которая была создана для соединения всех. Но мы всё равно пришли бы к серверно-клиентским облачным архитектурам, даже если бы начали с IPv6 с самого начала. Интернет-провайдеры просто продавали бы строгие межсетевые экраны как часть своих базовых домашних комплектов, и мы всё равно получили бы эти заборы.
- elric
Называть NAT первородным грехом — серьезное преувеличение. Carrier Grade NAT (CGNAT) — это по-настоящему злая концепция, которая ограничивает свободы пользователей CGNAT. Но обычный NAT — это нормально, пока вы можете его контролировать. «Никто не хочет возиться с пробросом портов» — это в значительной степени проблема плохого UX на домашнем шлюзе и лени оператора. То же самое с UPnP.
Если уж на то пошло, NAT спас миллионы крайне небезопасных устройств, работающих на старых непропатченных версиях Windows, от взлома в ту же секунду, как они подключались к открытому интернету.
- miki123211
Проектировщики интернета совершили одну фундаментальную ошибку, а именно применили нормы физического мира к киберпространству.
В «реальном мире» вам не нужно особой безопасности. Ваша реальная безопасность исходит из того факта, что все самые опасные преступники уже сидят в тюрьме, большинство потенциальных преступников боятся попасть в тюрьму, и если кто-то действительно совершает преступление, он будет пойман и не сможет повторить это в течение долгого времени. Многое в безопасности реального мира сводится к обнаружению постфактум (подумайте о сигнализациях, камерах видеонаблюдения, тревожных кнопках и т. д.), потому что в реальном мире обнаружение и предотвращение — две стороны одной медали.
Это работает только потому, что если преступление происходит в реальном мире, преступник по определению находится в том же месте, что и жертва, и правоохранительные органы больше всего заботятся о сообществе, которому они служат. Если преступник находится на другом конце мира, как это часто бывает в киберпространстве, даже если это дружественная страна, это часто «не их проблема». Это означает, что интернет-системы нуждаются в реальной безопасности, и NAT обеспечивает именно это.
Если бы не NAT, нам всем понадобился бы межсетевой экран, и всё было бы почти или совсем так же. В реальном мире стратегия «оставить всё относительно открытым, потому что замки в основном для того, чтобы честные люди оставались честными» — это приемлемая стратегия. Эта стратегия не работает в интернете.
- mittensc
Я помню времена до NAT и SSL.
Можно было легко делиться вещами, конечно, но любого можно было довольно легко взломать, и очень целенаправленно.
После NAT делиться было всё еще легко: куча «пиратских» приложений, разные мессенджеры с NAT-пробросом.
И до, и после требовались технические знания: вы не можете попросить человека, который не разбирается в компьютерах, настроить FTP-сервер, а если бы он это сделал, это был бы кошмар, и он, скорее всего, расшарил бы весь свой диск.
То же самое касается и всего остального.
В любом случае, мы получим полный отказ от NAT с IPv6, посмотрим, что это даст.
- cm2187
NAT — это также межсетевые экраны. Я думаю, люди забывают, что до NAT, когда вы устанавливали Windows, как только вы подключали его к интернету, вам приходилось спешить с обновлением, прежде чем вирус заразит его. Операционные системы 90-х были недостаточно безопасны, чтобы быть открытыми для WAN.
- g023
Я скучаю по старым временам ICQ, когда можно было просто перетащить файл на человека, которому ты его отправляешь, и — бам, готово.
- thomastjeffery
Последствия гораздо более значительны, чем люди, кажется, осознают.
Из-за NAT иерархия (централизованные серверы) стала основополагающим шаблоном проектирования интернета, и любой, кто хочет хоть какого-то подобия анархии (децентрализованных сетей), должен использовать обходной путь, который сам по себе иерархичен и дорог. Мы все взаимосвязаны, но по-настоящему говорить первым могут лишь немногие богатые.