Материал из РУВИКИ — свободной энциклопедии

Промежуточное устройство

Промежуточное устройство (англ. middlebox) — это устройство компьютерной сети, выполняющее преобразование, инспектирование, фильтрацию и манипулирование трафиком для целей, отличных от обычной маршрутизации пакетов. Примеры промежуточных устройств включают межсетевые экраны (файрволы), устройства трансляции сетевых адресов (NAT), балансировщики нагрузки и устройства глубокой инспекции пакетов (DPI)[1].

Термин «middlebox» был предложен в 1999 году профессором информатики Калифорнийского университета в Лос-Анджелесе (UCLA) Ликсиа Чжан[2].

Применение

[править | править код]

Промежуточные устройства широко используются как в частных, так и в публичных сетях. Специализированное оборудование выполняет функции промежуточных устройств в корпоративных сетях, улучшая безопасность и производительность сети. Тем не менее, даже домашние маршрутизаторы часто интегрируют такие возможности, как межсетевой экран, NAT и другие функции промежуточных устройств. Согласно исследованию 2017 года, в автономных системах (AS) было выявлено более 1000 внедрённых промежуточных устройств в обоих направлениях потоков трафика и в различных типах сетей, включая мобильных операторов и центры обработки данных[1].

Примеры[править | править код]

Ниже приведены примеры часто применяемых промежуточных устройств:

  • Межсетевой экран (файрвол) фильтрует трафик на основе набора заданных администратором правил безопасности. IP-файрволы отклоняют пакеты «исключительно на основе полей в IP- и транспортных заголовках (например, запрещая входящий трафик на определённые номера портов или вообще на определённые подсети)». Существуют и более сложные межсетевые экраны, применяющие наборы правил для инспекции трафика на уровне сессии или приложения.
  • Системы обнаружения вторжений (IDS) контролируют трафик и собирают данные для последующего анализа на наличие аномалий, связанных с безопасностью. В отличие от файрволов, IDS не фильтруют пакеты в реальном времени, поскольку способны на более сложную инспекцию и должны принимать решения о допуске или отклонении каждого пакета по мере его поступления.
  • Устройства трансляции сетевых адресов (NAT) заменяют исходный и/или целевой IP-адресы пакетов. Обычно NAT применяются, чтобы несколько конечных устройств могли использовать один IP-адрес: устройства «за» NAT получают приватные IP-адреса, и их пакеты, направленные в публичный Интернет, проходят через NAT, который заменяет внутренний адрес на общий внешний. Они широко используются операторами сотовых сетей для эффективного управления ограниченными ресурсами[3].
  • Оптимизаторы WAN (Wide Area Network) уменьшают загрузку пропускной способности и улучшают задержки между конечными точками. Обычно такие устройства размещаются в крупных организациях возле отправляющей и получающей сторон; устройства координируются для кэширования и сжатия трафика, проходящего через Интернет.
  • Балансировщик нагрузки предоставляет одну точку входа к сервису, но распределяет потоки трафика между несколькими хостами, фактически оказывающими услугу.
  • В сотовых сетях используются промежуточные устройства для эффективного использования ресурсов и защиты пользовательских устройств.

Критика и проблемы

[править | править код]

Промежуточные устройства создают технические сложности для разработки приложений и вызывают «неудовольствие» и «разочарование» в профессиональном сообществе архитекторов сетей[4], поскольку нарушают принцип сквозного взаимодействия при проектировании компьютерных систем.

Вмешательство в работу приложений[править | править код]

Некоторые промежуточные устройства мешают корректной работе конечных приложений, ограничивая либо полностью препятствуя их функционированию.

В частности, устройства NAT создают проблему, так как делят трафик на несколько получателей, использующих единый внешний IP-адрес. Когда соединение между устройством в интернете и тем, что находится за NAT, инициируется последним, NAT «обучается», какому внутреннему хосту относится данный поток трафика. Таким образом, когда из Интернета приходят пакеты, адресованные публичному адресу и определённому порту, NAT способен перенаправить их нужному устройству. Однако если соединение инициируется снаружи, NAT не может определить нужный внутренний узел. Более того, внутреннее устройство зачастую даже не знает свой внешний адрес, чтобы сообщить его потенциальным клиентам. Для решения этих проблем были разработаны отдельные протоколы.

Кроме того, из-за того, что внедрение промежуточных устройств мобильными операторами (например, AT&T и T-Mobile) непрозрачно, разработчики приложений часто не осведомлены о применяемых политиках промежуточных устройств, а операторы не всегда знают требования приложений. Например, один из операторов установил «агрессивное значение тайм-аута для быстрой очистки ресурсов, занятых неактивными TCP-соединениями в файрволе», что привело к частым разрывам долгоживущих соединений для приложений вроде push-рассылки электронной почты и мгновенных сообщений[3].

Другие распространённые трудности, вызываемые промежуточными устройствами: веб-прокси возвращают устаревший контент, файрволы блокируют необходимые порты.

Расширяемость и проектирование Интернета[править | править код]

Одна из основных претензий к промежуточным устройствам — они могут ограничивать выбор транспортных протоколов и, соответственно, сами возможности приложений и новых сервисов. Такие устройства фильтруют или отбрасывают трафик, не соответствующий ожидаемым шаблонам, и новые/нетипичные протоколы часто блокируются. В частности, из-за невозможности хоста с приватным адресом «передать идентификаторы, позволяющие другим устанавливать соединение», сдерживается распространение новых протоколов, например, SIP, а также различных пиринговых систем[4][5]. Подобное жесткое закрепление протоколов принято называть застыванием протоколов[6][7].

Вместе с тем некоторые промежуточные устройства могут содействовать внедрению новых протоколов, преобразуя трафик между старым и новым стандартом. Например, IPv6 обычно применяется на публичных конечных точках — балансировщиках нагрузки, прокси или других устройствах NAT, тогда как внутренний трафик может быть передан через IPv4 либо IPv6.

Примечания

[править | править код]
  1. 1 2 Shan Huang. Middleboxes in the Internet: A HTTP perspective // 2017 Network Traffic Measurement and Analysis Conference (TMA) / Shan Huang, Steve Uhlig, Félix Cuadrado. — 2017. — P. 1–9. — ISBN 978-3-901882-95-1. — doi:10.23919/TMA.2017.8002906.
  2. Kromhout, Wileen Wong Lixia Zhang named to UCLA's Jonathan B. Postel Chair in Computer Science (англ.) (2 февраля 2012). Дата обращения: 14 июня 2015. Архивировано 25 апреля 2019 года.
  3. 1 2 Zhaoguang Wang; Zhiyun Qian; Qiang Xu; Z. Morley Mao; Ming Zhang (август 2011). “An Untold Story of Middleboxes in Cellular Networks” (PDF). ACM SIGCOMM Computer Communication Review [англ.]. Association for Computing Machinery. 41 (4): 374—385. DOI:10.1145/2043164.2018479. Проверьте дату в |date= (справка на английском)
  4. 1 2 Michael Walfish; Jeremy Stribling; Maxwell Krohn; Hari Balakrishnan; Robert Morris; Scott Shenker (2004). “Middleboxes No Longer Considered Harmful” (PDF). 6th Symposium on Operating Systems Design and Implementation [англ.]. USENIX Association: 215—230.
  5. Bryan Ford; Pyda Srisuresh; Dan Kegel (2005). “Peer-to-Peer Communication Across Network Address Translators” (PDF). 2005 USENIX Annual Technical Conference [англ.]. USENIX Association: 179—192. arXiv:cs/0603074. Bibcode:2006cs........3074F.
  6. Papastergiou, Giorgos; Fairhurst, Gorry; Ros, David; Brunstrom, Anna; Grinnemo, Karl-Johan; Hurtig, Per; Khademi, Naeem; Tuxen, Michael; Welzl, Michael; Damjanovic, Dragana; Mangiante, Simone (2017). “De-Ossifying the Internet Transport Layer: A Survey and Future Perspectives”. IEEE Communications Surveys & Tutorials [англ.]. 19 (1): 619—639. DOI:10.1109/COMST.2016.2626780. HDL:2164/8317. ISSN 1553-877X. S2CID 1846371.
  7. Corbet, Jonathan QUIC as a solution to protocol ossification (англ.). lwn.net (29 января 2018). Дата обращения: 14 марта 2020.

Литература

[править | править код]