Поделитесь пожалуйста ► Первой частью курса. В первой лекции упоминается, цитирую: "В первой части настоящего курса отмечалось, что соединение локальных сетей LAN..." |
Трансляция адресов
9.1. Общие сведения о трансляции адресов
Управление общедоступными (публичными) IP-адресами реализуется международной организацией Internet Assigned Numbers Authority (IANA) и пятью Региональными Интернет Регистраторами адресов (Regional Internet Registry - RIR), которые выделяют адреса сетевым операторам и провайдерам, а те, в свою очередь, выделяют адреса сетевым администраторам и отдельным пользователям (см. курс "Основы построения сетей пакетной коммутации").
В связи с бурным ростом числа пользователей сети Интернет, обусловленным развитием мобильной связи, использованием сетевых технологий для управления технологическими процессами и бытовой техникой, в настоящее время наблюдается дефицит публичных адресов IPv4. Кардинальным решением данной проблемы является разработка и внедрение адресации версии IPv6. В связи со сложностью внедрения IPv6 в настоящее время для снижения остроты дефицита IP-адресов в сетях IPv4 используются различные методы и средства. В частности, широко используются частные адреса (см. курс "Основы построения сетей пакетной коммутации").
Использование частных адресов (Private IP addresses) несколько ослабляет проблему нехватки публичных адресов. Локальные частные сети, не подключенные к Интернету, могут иметь любые адреса, лишь бы они были уникальны внутри частной сети. Поэтому в разных частных сетях могут использоваться одни и те же частные адреса. Выход в Интернет пакетов с частными адресами блокируется маршрутизаторами. Таким образом, частные адреса не могут быть использованы непосредственно в сети Интернет.
Документ RFC 1918 устанавливает три блока частных адресов для использования внутри частных сетей (табл. 9.1).
№ | Диапазон адресов | Префикс |
---|---|---|
1 | 10.0.0.0 - 10.255.255.255 | /8 |
2 | 172.16.0.0 - 172.31.255.255 | /12 |
3 | 192.168.0.0 - 192.168.255.255 | /16 |
Для того чтобы узлы с частными адресами могли при необходимости подключаться к сети Интернет, используются специальные трансляторы частных адресов в публичные. Например, транслятор сетевых адресов (Network Address Translation - NAT) переводит один частный адрес в один публичный. Поэтому экономия IP-адресов может быть достигнута только за счет того, что не всем узлам частной сети разрешается выход в Интернет.
Второй тип транслятора Port Address Translation - PAT один общедоступный IP-адрес комбинирует с набором номеров порта узла источника, т.е. формируется совокупность комплексных адресов, называемых сокетами, например 192.168.10.17:1275, 192.168.10.17:1086, 192.168.10.17:2013. При этом один IP-адрес могут использовать сразу несколько узлов частной сети. Поэтому данный метод трансляции частных адресов в публичные эффективно экономит общедоступные IP-адреса. Транслятор PAT называют также NAT Overload, где один IP-адрес используется многими пользователями.
Когда клиент сети с частными адресами посылает пакеты в сеть Интернет, транслятор адресов NAT переводит внутренний (inside) локальный (частный) IP-адрес клиента во внутренний глобальный (публичный) адрес. Адрес назначения по отношению к клиенту, например, посылающему запрос серверу, является внешним (outside). В общем случае внешние адреса также могут быть локальными и глобальными.
Таким образом, NAT позволяет многим сетям использовать одни и те же частные IP-адреса. При этом публичные адреса используются только по мере необходимости при передаче информации в Интернет. Кроме того, NAT повышает безопасность сети, т.к. скрывает внутренние (частные) IP-адреса от внешних сетей.
На рис. 9.1 приведена схема сети, в которой используется транслятор адресов. Трансляторы NAT обычно устанавливаются на границе тупиковой сети. В нашем примере R-В - граничный маршрутизатор, через который все пользователи внутренних частных сетей на маршрутизаторах R-А, R-В подсоединяются к маршрутизатору R-ISP сети провайдера (поставщика) интернет-услуг. На маршрутизаторе R-В и установливается транслятор NAT.
При передаче пакета из внутренней (inside) сети, например из 192.168.10.0, в сеть Интернет граничный маршрутизатор транслирует внутренний частный адрес компьютера в публичный маршрутизируемый (routable) адрес внешней (outside) сети. Для реализации трансляции частных адресов в публичные провайдер выделяет администратору набор (пул) публичных адресов, например, пул адресов: 222.100.100.60 - 222.100.100.62.
На рис. 9.2 приведен пример передачи пакета с узла с IP-адресом 192.168.10.11 на веб-сервер сети провайдера с IP-адресом 210.4.4.18.
В приведенном примере внутренний (Inside) локальный адрес - это частный IP-адрес 192.168.10.11, назначенный администратором на конечный узел внутренней сети.
Внутренний (Inside) глобальный адрес - это публичный адрес, который назначается транслятором соответствующему внутреннему узлу, когда пакет выходит из NAT маршрутизатора. Это адрес, который виден из внешней сети. При передаче запроса с компьютера на сервер ( рис. 9.2) транслятор NAT преобразует внутренний локальный адрес источника192.168.10.11 во внутренний глобальный 222.100.100.60, который выбирает транслятор NAT из таблицы перевода (NAT Table). Если транслятор не находит соответствующей строки в таблице перевода, то пакет уничтожается.
Внешний (Outside) глобальный адрес - это адрес назначения в сети Интернет, например IP-адрес 210.4.4.18 ( рис. 9.2). В некоторых случаях адресат назначения может находиться в частной сети, поэтому также может потребоваться транслятор NAT.
Трансляторы NAT могут работать в динамическом или статическом режимах.
В динамическом режиме NAT автоматически назначает публичные адреса на передаваемые пакеты из заданного провайдером пула общедоступных публичных адресов. Когда конечный узел с частным IP-адресом запрашивает доступ в Интернет, динамический NAT выбирает из пула свободный IP-адрес, который не используется другими узлами.
В статическом режиме администратор создает таблицу соответствия частных и глобальных адресов, и записи в таблице не меняются. Статический NAT обычно используется для веб-серверов или узлов, которые должны иметь постоянный адрес, который доступен из Интернета. Эти внутренние узлы могут быть серверами предприятия или сетевыми устройствами.
Транслятор номера порта
Транслятор номера порта PAT или, по-другому, NAT Overload, переводит многие частные IP-адреса в один или несколько публичных адресов. Получив от провайдера один публичный адрес, можно обеспечить доступ в Интернет сразу нескольким конечным узлам с частными адресами. Это возможно только, если каждый частный адрес будет дополнительно помечен (идентифицирован) номером порта, который задается на 4-ом транспортном уровне модели OSI.
При открытии сессии TCP/IP, например, при посылке запроса на сервер, сообщению (сегменту) присваивается номер порта назначения из диапазона известных номеров в пределах от 0 до 1023, а также номер порта источника из диапазона зарегистрированных портов (от 1024 до 49151) или диапазона динамических портов (от 49151 до 65535).
Транслятор PAT в маршрутизаторе дополняет IP-адрес источника этим номером порта, формируя комплексный публичный адрес (сокет). Когда ответ возвращается с сервера, исходный номер порта узла клиента, который на обратном пути становится номером порта назначения, определяет, какому клиенту маршрутизатор должен направить пакеты.
На рис. 9.3 приведен пример, когда узлы с внутренними частными адресами источников информации 192.168.10.11 и 192.168.10.12 обращаются к веб-серверу с адресом 210.4.4.18. На транспортном уровне запросам конечных узлов назначаются номера портов источников, соответственно 192.168.10.11:1407 и 192.168.10.12:1258.
Транслятор PAT граничного маршрутизатора R-В изменяет внутренние локальные адреса источников на внутренние глобальные адреса с теми же самыми номерами портов, т.е. формирует соответствующие публичные комплексные адреса, например, 222.100.100.60:1407 и 222.100.100.60:1258.
При этом комплексный адрес назначения (DA) будет внешним IP-адресом с назначенным номером порта службы уровня приложений, в данном случае 210.4.4.18:80 веб-сервера HTTP.
В формате заголовка сегмента (см. рис. 9.1, 9.2 из курса "Основы построения сетей пакетной коммутации") номер порта задается 16-ти разрядным двоичным числом. Поэтому один внешний глобальный адрес теоретически может использоваться для адресации 64К узлов. На практике число узлов на один глобальный адрес не превышает 4000.
Пакеты, поступающие из публичной сети, направляются адресату назначения в частной сети, в соответствии с таблицей транслятора, где отображены пары публичных и частных адресов. Этот процесс называется прослеживанием связи (connection tracking).
В предыдущем примере номера портов двух источников 1407 и 1258 в граничном шлюзе не изменяются. Однако если эти номера портов уже используются в других текущих сессиях, то эти номера переназначаются на первое доступное число. Например ( рис. 9.4), одинаковый номер порта 1258 используется в пакете, пересылаемом с узла 192.168.10.12 и в пакете, передаваемом с узла 192.168.10.13.
Поэтому транслятор РАТ на граничном маршрутизаторе R-В изменит во внутреннем глобальном адресе источника номер порта второго пакета на 1259. Если доступных номеров портов больше нет, то транслятор РАТ попытается использовать следующий IP-адрес из пула доступных для транслятора адресов.