Конструкция маршрутизатора
Поскольку маршрутизаторы являются пограничными сетевыми устройствами, то есть устанавливаются на границе между двумя сетями или между локальной сетью и Интернетом, выполняя роль сетевого шлюза, то они должны иметь как минимум два порта (см. рисунок). К одному из этих портов подключается локальная сеть, и этот порт называется внутренним LAN-портом. Ко второму порту подключается внешняя сеть (Интернет), и этот порт называется внешним WAN-портом. Как правило, маршрутизаторы класса SOHO имеют один WAN-порт и несколько (от одного до четырех) внутренних LAN-портов, которые объединяются в коммутатор. В большинстве случаев WAN-порт коммутатора имеет интерфейс 10/100Base-TX, и к нему может подключаться xDSL-модем с соответствующим интерфейсом либо сетевой Ethernet-кабель.
Учитывая широкое распространение беспроводных сетей, создан целый класс так называемых беспроводных маршрутизаторов. Эти устройства, кроме классического маршрутизатора с WAN- и LAN-портами, содержат интегрированную точку беспроводного доступа, поддерживающую протокол IEEE 802.11a/b/g. Беспроводной сегмент сети, которую позволяет организовать точка доступа, относится к внутренней сети с точки зрения маршрутизатора, и в этом смысле компьютеры, подключаемые к маршрутизатору беспроводным образом, ничем не отличаются от компьютеров сети, подключенных к LAN-порту.
Любой маршрутизатор, как устройство сетевого уровня, имеет свой IP-адрес. Кроме того, IP-адрес есть и у его WAN-порта. К примеру, маршрутизатор может иметь следующий IP-адрес:
При этом у его WAN-порта может быть такой адрес:
Компьютеры, подключаемые к LAN-портам маршрутизатора, должны иметь IP-адрес той же подсети, что и сам маршрутизатор. Кроме того, в сетевых настройках этих ПК необходимо задать адрес шлюза по умолчанию, совпадающий с IP-адресом маршрутизатора. К примеру, в рассмотренном выше случае сетевые настройки ПК, подключаемого к LAN-порту, могут быть следующими:
Устройство, подключаемое к WAN-порту со стороны внешней сети, должно иметь IP-адрес из той же подсети, что и WAN-порт маршрутизатора. В нашем случае это могут следующие сетевые настройки:
В рассмотренном выше примере использовался так называемый статический способ задания IP-адреса (Static IP), который поддерживают все маршрутизаторы. Его следует применять для ознакомления с возможностями работы маршрутизатора или для его тестирования. Однако в реальных условиях чаще используется динамический (Dynamic IP) способ задания IP-адреса, когда маршрутизатор выступает в роли DHCP-клиента, автоматически получая IP-адрес, адрес шлюза по умолчанию и сервера DNS от провайдера (DHCP-сервера). Этот способ обеспечивает провайдеру достаточную гибкость при конфигурировании своей сети и поддерживается всеми провайдерами.
Протокол NAT
Большинство современных маршрутизаторов поддерживают протокол NAT (Network Address Translation), базирующийся на сеансовом уровне и по сути представляющий собой протокол трансляции сетевых адресов. NAT позволяет реализовать множественный доступ компьютеров локальной (частной) сети (каждый из которых имеет собственный внутренний IP-адрес) в Интернет, используя всего один внешний IP-адрес WAN-порта маршрутизатора. При этом все компьютеры во внутренней локальной сети становятся невидимыми извне, но для каждого из них внешняя сеть является доступной. Протокол NAT пропускает в сеть только те данные из Интернета, которые поступили в результате запроса от компьютера из локальной сети.
Протокол NAT решает две главные задачи:
Хотя протокол NAT не заменяет брандмауэр, он все же является важным элементом безопасности.
Принцип работы протокола NAT достаточно прост. Когда клиент внутренней сети устанавливает связь с сервером внешней сети, открывается сокет, определяемый IP-адресом источника, портом источника, IP-адресом назначения, портом назначения и сетевым протоколом. Когда приложение передает данные через этот сокет, то IP-адрес источника и порт источника вставляются в пакет в поля параметров источника. Поля параметров пункта назначения будут содержать IP-адрес сервера и портсервера.
Устройство NAT (маршрутизатор) перехватывает исходящий из внутренней сети пакет и заносит в свою внутреннюю таблицу сопоставления портов источника и получателя пакета, используя IP-адрес назначения, порт назначения, внешний IP-адрес устройства NAT, внешний порт, сетевой протокол, а также внутренние IP-адрес и порт клиента. Затем устройство NAT транслирует пакет, преобразуя в пакете поля источника: внутренние IP-адрес и порт клиента заменяются внешними IP-адресом и портом устройства NAT.
Преобразованный пакет пересылается по внешней сети и в итоге попадает на заданный сервер. Получив пакет, сервер будет направлять ответные пакеты на внешний IP-адрес и порт устройства NAT (маршрутизатора), указывая в полях источника свои собственные IP-адрес и порт.
Устройство NAT принимает эти пакеты от сервера и анализирует их содержимое на основе своей таблицы сопоставления портов. Если в таблице будет найдено сопоставление порта, для которого IP-адрес источника, порт источника, порт назначения и сетевой протокол из входящего пакета совпадают с IP-адресом удаленного узла, удаленным портом и сетевым протоколом, указанным в сопоставлении портов, то NAT выполнит обратное преобразование: заменит внешний IP-адрес и внешний порт в полях назначения пакета на IP-адрес и внутренний порт клиента внутренней сети. Однако если в таблице сопоставления портов не находится соответствия, то входящий пакет отвергается и соединение разрывается.
В некоторых маршрутизаторах возможно отключение NAT-протокола. Однако имеются модели, где NAT-протокол активирован и отключить его невозможно. При этом важно, чтобы маршрутизатор мог частично обойти ограничения NAT-протокола. Дело в том, что не все сетевые приложения пользуются протоколами, способными взаимодействовать с NAT. Поэтому все маршрутизаторы имеют функции, позволяющие наложить ограничения на использование протокола NAT. Сервер, устанавливаемый во внутренней сети и являющийся прозрачным для протокола NAT, называют виртуальным сервером (Virtual Server). Прозрачным для протокола NAT может быть не весь сервер, а лишь определенные приложения, запускаемые на нем. Для того чтобы реализовать виртуальный сервер во внутренней сети, на маршрутизаторе используется технология перенаправления портов.
Перенаправление портов (Port mapping)
Для того чтобы сделать доступными из внешней сети определенные приложения, запускаемые на сервере во внутренней сети (например, Web-сервер или ftp-сервер), в маршрутизаторе необходимо задать соответствие между портами, используемыми определенными приложениями, и IP-адресами тех виртуальных серверов внутренней сети, на которых эти приложения работают. В этом случае говорят о перенаправлении портов (Port mapping). В результате любой запрос из внешней сети на IP-адрес WAN-порта маршрутизатора (но не виртуального сервера) по указанному порту будет автоматически перенаправлен на указанный виртуальный сервер.
Существует несколько способов конфигурирования виртуального сервера. В простейшем случае задается статическое перенаправление портов, то есть IP-адрес виртуального сервера, разрешенный порт приложения на этом виртуальном сервере (Private Port) и порт запроса (Public Port). Если, к примеру, открыт доступ к Web-серверу (порт 80), расположенному во внутренней сети с IP-адресом 192.168.1.10, то при обращении из внешней сети по адресу 10.0.0.254 (адрес WAN-порта) по 80-му порту этот пакет будет перенаправлен маршрутизатором на Web-сервер. Если же происходит обращение по тому же адресу, но по 21-му порту, то такой пакет будет отвергнут маршрутизатором.
Маршрутизаторы позволяют создавать несколько статических перенаправлений портов. Так, на одном виртуальном сервере можно открыть сразу несколько портов или создать несколько виртуальных серверов с различными IP-адресами. Однако при статическом перенаправлении портов нельзя перенаправлять один порт на несколько IP-адресов, то есть порт может соответствовать только одному IP-адресу. Таким образом, невозможно, например, сконфигурировать несколько Web-серверов с разными IP-адресами — для этого придется менять порт Web-сервера по умолчанию и при обращении по 80-му порту в настройке маршрутизатора в качестве Private Port указывать измененный порт Web-сервера.
Большинство моделей маршрутизаторов позволяют также задавать статическое перенаправление группы портов, то есть ставить в соответствие IP-адресу виртуального сервера сразу группу портов. Такая возможность полезна в том случае, если необходимо обеспечить работу приложений, использующих большое количество портов, например игр или аудио/видеоконференций. Количество перенаправляемых групп портов в разных моделях маршрутизаторов различно, но, как правило, их не менее десяти.
Статическое перенаправление портов позволяет лишь отчасти решить проблему доступа из внешней сети к сервисам локальной сети, защищаемой NAT-устройством. Однако существует и обратная задача — обеспечить пользователям локальной сети доступ во внешнюю сеть через NAT-устройство. Дело в том, что некоторые приложения (например, Интернет-игры, видеоконференции, Интернет-телефония и другие, требующие одновременного установления множества сессий) не совместимы с NAT-технологией. Для того чтобы решить эту проблему, используется так называемое динамическое перенаправление портов, которое задается на уровне отдельных сетевых приложений.
В случае если маршрутизатор поддерживает данную функцию, необходимо задать номер внутреннего порта (или интервал портов), связанный с конкретным приложением (как правило, его обозначают Trigger Port), и номер внешнего порта (Public Port), который будет сопоставляться с внутренним портом.
При активации динамического перенаправления портов маршрутизатор следит за исходящим трафиком из внутренней сети и запоминает IP-адрес компьютера, от которого этот трафик исходит. При поступлении данных обратно в локальный сегмент включается перенаправление портов, и данные пропускаются внутрь. По завершении передачи перенаправление отключается, вследствие чего любой другой компьютер может создать новое перенаправление уже на свой IP-адрес.
Динамическое перенаправление портов используется в основном для служб, предусматривающих кратковременные запросы и передачу данных, поскольку если один компьютер применяет перенаправление данного порта, то другой в это же время перенаправление того же самого порта использовать не может. Если нужно настроить работу приложений, которым необходим постоянный поток данных и которые занимают порт на длительное время, то динамическое перенаправление помогает мало. Однако и в этом случае возможно решение проблемы, заключающееся в использовании демилитаризованной зоны.
DMZ-зона
Демилитаризованная зона (DMZ-зона) — это еще один способ перенаправления портов. Данную возможность предоставляет большинство современных маршрутизаторов. При размещении в зоне DMZ компьютера внутренней локальной сети он становится прозрачным для протокола NAT. Фактически это означает, что компьютер внутренней сети виртуально располагается до брандмауэра. Для ПК, находящегося в DMZ-зоне, осуществляется перенаправление всех портов на один внутренний IP-адрес, что позволяет организовать передачу данных из внешней сети во внутреннюю.
Если, к примеру, сервер с IP-адресом 192.168.1.10, находящийся во внутренней локальной сети, размещен в DMZ-зоне, а сама локальная сеть защищена NAT-устройством, то поступивший из внешней сети по адресу WAN-порта маршрутизатора запрос будет переадресован по любому порту на IP-адрес 192.168.1.10, то есть на адрес виртуального сервера в DMZ-зоне.
DHCP-сервер
Любой современный маршрутизатор не только может быть DHCP-клиентом, но и может иметь встроенный DHCP-сервер, что позволяет автоматически присваивать IP-адреса всем клиентам внутренней сети. В настройках DHCP-сервера, как правило, указываются начало и конец диапазона выделяемых IP-адресов. Кроме того, иногда в заданном диапазоне можно указать IP-адреса, которые не будут динамически присваиваться клиентам.
Виртуальные сети VPN
Большинство маршрутизаторов в той или иной степени поддерживают возможность создания виртуальных частных сетей (Virtual Private Networking, VPN), что позволяет организовывать защищенное соединение с локальной (внутренней) сетью извне.
Для создания VPN-сетей, как правило, используются три протокола: сквозной туннельный протокол (Point-to-Point Tunneling Protocol, PPTP), протокол IPsec и туннельный протокол второго уровня (Layer 2 Tunneling Protocol, L2TP).
PPTP
Сквозной туннельный протокол, созданный корпорацией Microsoft, никак не меняет протокол PPP, но предоставляет для него новое транспортное средство.
PPTP определяет протокол управления вызовами, который позволяет серверу управлять удаленным коммутируемым доступом через телефонные сети общего пользования (PSTN) или цифровые каналы (ISDN) либо инициализировать исходящие коммутируемые соединения. PPTP использует механизм общей маршрутной инкапсуляции (GRE) для передачи пакетов PPP, обеспечивая при этом контроль потоков и сетевых заторов. Безопасность данных в PPTP может обеспечиваться при помощи протокола IPsec.
L2TP
Туннельный протокол второго уровня — это своего рода объединение протокола PPTP и протокола эстафетной передачи на втором уровне (Layer 2 Forwarding, L2F), разработанного компанией Cisco. Протокол L2F обеспечивает туннелирование протоколов канального уровня с использованием протоколов более высокого уровня, например IP.
Протоколы L2F и PPTP имеют сходную функциональность, поэтому компании Cisco и Microsoft решили совместно разработать единый стандартный протокол, который и получил название туннельного протокола второго уровня.
IPsec
IPsec — это протокол защиты сетевого трафика путем использования алгоритмов шифрования на IP-уровне. Данный протокол предусматривает два режима функционирования: транспортный и туннельный. В транспортном режиме протокол IPsec применяется к содержимому IP-пакетов, при этом их исходные заголовки остаются видимыми. Туннельный режим инкапсулирует исходные IP-пакеты в IPsec-пакеты с новыми заголовками IP и позволяет эффективно скрывать исходные IP-пакеты. Режимы функционирования VPN
Существует два режима функционирования VPN: сквозной (Pass Through) и активный. В первом случае маршрутизатор без вмешательства передает входящий и исходящий VPN-трафики, пропуская через себя инкапсулированные пакеты данных без просмотра их содержимого. Если маршрутизатор поддерживает режим VPN Pass Through, то необходимо только настроить соединение на VPN-клиентах (компьютеры во внутренней сети) таким образом, чтобы клиенты из внутренней сети могли свободно подключаться к серверу VPN снаружи. Однако при совместном использовании NAT- и VPN-туннелей могут возникать проблемы.
В активном режиме маршрутизатор выступает в роли сервера и может устанавливать VPN-соединение с узлом локальной сети, с другими шлюзами и маршрутизаторами или же в обоих направлениях.