Маршрутизация и коммутации

Трансляция адресов

Разбить на страницы
Показывать лекцию целиком

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.

(рис 9.1) Сеть с транслятором 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.

(рис 9.2) Пример трансляции адресов NAT

В приведенном примере внутренний (Inside) локальный адрес - это частный IP-адрес 192.168.10.11, назначенный администратором на конечный узел внутренней сети.

) транслятор NAT преобразует внутренний локальный адрес источника192.168.10.11 во внутренний глобальный 222.100.100.60, который выбирает транслятор NAT из таблицы перевода (NAT Table). Если транслятор не находит соответствующей строки в таблице перевода, то пакет уничтожается.

). В некоторых случаях адресат назначения может находиться в частной сети, поэтому также может потребоваться транслятор 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.

(рис 9.3) Пример функционирования PAT

При этом комплексный адрес назначения (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.

(рис 9.4) Изменение номера порта источника транслятором РАТ

Поэтому транслятор РАТ на граничном маршрутизаторе R-В изменит во внутреннем глобальном адресе источника номер порта второго пакета на 1259. Если доступных номеров портов больше нет, то транслятор РАТ попытается использовать следующий IP-адрес из пула доступных для транслятора адресов.

9.2. Конфигурирование трансляторов

Статический транслятор NAT

При создании статического транслятора необходимо определить соответствующие внутренние и внешние адреса и сконфигурировать NAT на требуемых для трансляции интерфейсах. На рис 9.5 приведена схема фрагмента внутренней сети, где на маршрутизаторе R-A требуется установить транслятор NAT для доступа к внешней сети провайдера ISP.

(рис 9.5) Внутренняя сеть и сеть провайдера ISP

Для нормального функционирования сети необходимо сконфигурировать все интерфейсы маршрутизаторов R-A и R-ISP, все конечные узлы сети, а также сконфигурировать маршрутизирующий протокол, например, RIP. Ниже приведены результаты конфигурирования, отображаемые командами sh run и sh ip route.

R-A#sh run
...
interface FastEthernet0/1
 ip address 10.20.20.1 255.255.255.0
!
interface Serial1/1
 ip address 200.5.5.1 255.255.255.252
 clock rate 64000

router rip
 network 200.5.5.0
 network 220.20.20.0
!
    

Следует обратить внимание, что при конфигурировании протокола RIP в качестве непосредственно присоединенной дается описание сети network 220.20.20.0/24, а не локальной сети 10.20.20.0/24 с тем, чтобы из внешней сети не было видно конфигурации внутренней локальной сети. При этом таблица маршрутизации R-A содержит в качестве непосредственно присоединенной сеть 10.20.20.0:

R-A#sh ip route
...
   10.0.0.0/24 is subnetted, 1 subnets
C    10.20.20.0 is directly connected, FastEthernet0/1
R    192.168.30.0/24 [120/1] via 200.5.5.2, 00:00:11, Serial1/1
R    192.168.40.0/24 [120/1] via 200.5.5.2, 00:00:11, Serial1/1
   200.5.5.0/30 is subnetted, 1 subnets
C    200.5.5.0 is directly connected, Serial1/1
    

Информация о сети 220.20.20.0 в маршрутизаторе R-ISP отсутствует, поэтому в таблице конфигурации маршрутизатора R-ISP нет маршрута ни к сети 10.20.20.0, ни к сети 220.20.20.0. Поэтому в маршрутизаторе R-ISP сформирован статический маршрут к сети 220.20.20.0, что отражено в распечатках команд show run, show ip route.

R-ISP#sh run
...
interface FastEthernet0/0
 ip address 192.168.30.1 255.255.255.0
!
interface FastEthernet0/1
 ip address 192.168.40.1 255.255.255.0
!
interface Serial1/2
 ip address 200.5.5.2 255.255.255.252
!
router rip
 network 192.168.30.0
 network 192.168.40.0
 network 200.5.5.0
!
ip classless
ip route 220.20.20.0 255.255.255.0 Serial1/2

R-ISP#sh ip route
...
C    192.168.30.0/24 is directly connected, FastEthernet0/0
C    192.168.40.0/24 is directly connected, FastEthernet0/1
   200.5.5.0/30 is subnetted, 1 subnets
C    200.5.5.0 is directly connected, Serial1/2
S    220.20.20.0/24 is directly connected, Serial1/2
    

Ниже приведен пример конфигурирования статического транслятора NAT, который транслирует внутренний адрес, например, 10.20.20.12 во внешний публичный адрес 220.20.20.12 при обращении к серверу сети ISP (192.168.40.11), а при ответе на запрос из сети Интернет - переводит внешний публичный адрес 220.20.20.12 во внутренний адрес 10.20.20.12.

R-А(config)#ip nat inside source static 10.20.20.12 220.20.20.12
R-А(config)#int f0/0
R-А(config-if)#ip nat inside
R-А(config-if)#int s1/1
R-А(config-if)#ip nat outside
    

Первая команда приведенной последовательности формирует сам транслятор. Транслятор устанавливается на внутренний (inside) и внешний (outside) интерфейсы маршрутизатора R-А. В приведенном примере внутренним интерфейсом является F0/0с адресом 10.20.20.1, внешний интерфейс - s1/1 с адресом 200.5.5.1.Поэтому вторая и третья строка устанавливают внутренний интерфейс, четвертая и пятая - устанавливают внешний интерфейс.

Проверка, проводимая с помощью команд ping, подтверждает работоспособность транслятора:

PC1>ping 192.168.40.11

Pinging 192.168.40.11 with 32 bytes of data:

Reply from 192.168.40.11: bytes=32 time=160ms TTL=126
Reply from 192.168.40.11: bytes=32 time=176ms TTL=126
Reply from 192.168.40.11: bytes=32 time=187ms TTL=126
Reply from 192.168.40.11: bytes=32 time=189ms TTL=126
    

Для того чтобы транслятор позволил реализовать запросы из внешней сети к серверу 10.20.20.11 внутренней сети, необходимо сконфигурировать еще одну строку транслятора:

R-А(config)#ip nat inside source static 10.20.20.11 220.20.20.11
    

Проверка дает следующий положительный результат:

PC2>ping 220.20.20.11
Pinging 220.20.20.11 with 32 bytes of data:
Reply from 220.20.20.11: bytes=32 time=131ms TTL=126
Reply from 220.20.20.11: bytes=32 time=133ms TTL=126
Reply from 220.20.20.11: bytes=32 time=127ms TTL=126
Reply from 220.20.20.11: bytes=32 time=114ms TTL=126
    

"Прозвонка" узла внутренней сети PC2>ping 10.20.20.11 показывает недостижимость (unreachable) узла, т.е. внутренняя сеть скрыта от внешней, что повышает безопасность.

Конфигурирование динамического транслятора NAT

Процесс конфигурирования динамического транслятора NAT рассмотрен на примере сети рис 9.6.

(рис 9.6) Сеть с динамическим транслятором NAT

Статический NAT обеспечивает постоянные пары локального и глобального адресов. В случае динамического NAT внутренние локальные адреса (обычно частные) преобразуются в глобальные адреса (обычно публичные), которые берутся из набора (пула) адресов, выдаваемых Интернет сервис-провайдером (ISP) администратору. При передаче сообщений в обратную сторону, из внешней сети во внутреннюю, публичные глобальные адреса назначения преобразуются NAT в частные локальные адреса. Таким образом, один локальный адрес транслируется в один глобальный и наоборот. Поэтому пул должен содержать столько адресов, сколько внутренних устройств одновременно могут потребовать доступ к внешним. Если все доступные адреса пула использованы, то внутреннее устройство должно дожидаться освобождения глобального адреса.

Для конфигурирования динамического NAT на маршрутизаторе необходимо установить список доступа ACL, разрешающий трансляцию подлежащих переводу адресов и пул глобальных адресов. В схеме (рис 9.6) транслятор позволяет переводить внутренние частные адреса диапазона, например 192.168.0.0/16 в публичные адреса диапазона 220.5.5.227 - 220.5.5.229. При этом в данном примере свободных адресов для трансляции всего 3, т.е. только 3 устройства из внутренней сети могут одновременно передавать сообщения во внешнюю сеть.

Создание списка доступа производится по команде:

R-А(config)#access-list 11 permit 192.168.0.0 0.0.255.255
    

Следующая команда определяет набор (пул) адресов с 220. 5.5.227 по 220.5.5.229, который назван по имени NAT-P:

R-А(config)#ip nat pool NAT-P220.5.5.227 220.5.5.229 netmask 255.255.255.224
    

Затем задается команда, связывающая список доступа с пулом адресов:

R-А(config)#ip nat inside source list 11 pool NAT-P
    

Создание транслятора NAT завершается определением внутреннего и внешнего интерфейсов

R-А(config)#int f0/0
R-А(config-if)#ip nat inside
R-А(config)#int f0/1
R-А(config-if)#ip nat inside
R-А(config-if)#int s1/1
R-А(config-if)#ip nat outside
    

Работоспособность транслятора можно проверить путем посылки эхо запросов (ping) с узлов РС1, РС2, РС3, РС4 внутренней сети на сервер 200.4.4.44 внешней сети. Проверка по команде show ip nat translations показывает, что в процессе трансляции участвовали IP-адреса только трех узлов РС1, РС2, РС3:

R-A#show ip nat translations
Pro   Inside global    Inside local      Outside local   Outside global
icmp  220.5.5.229:65  192.168.10.10:65  200.4.4.44:65   200.4.4.44:65
icmp  220.5.5.229:66  192.168.10.10:66  200.4.4.44:66   200.4.4.44:66
icmp  220.5.5.229:67  192.168.10.10:67  200.4.4.44:67   200.4.4.44:67
icmp  220.5.5.229:68  192.168.10.10:68  200.4.4.44:68   200.4.4.44:68
icmp  220.5.5.228:77  192.168.10.11:77  200.4.4.44:77   200.4.4.44:77
icmp 220.5.5.228:78  192.168.10.11:78  200.4.4.44:78   200.4.4.44:78
icmp 220.5.5.228:79  192.168.10.11:79  200.4.4.44:79   200.4.4.44:79
icmp 220.5.5.228:80  192.168.10.11:80  200.4.4.44:80   200.4.4.44:80
icmp 220.5.5.227:81  192.168.20.21:81  200.4.4.44:81   200.4.4.44:81
icmp 220.5.5.227:82  192.168.20.21:82  200.4.4.44:82   200.4.4.44:82
icmp220.5.5.227:83  192.168.20.21:83  200.4.4.44:83   200.4.4.44:83
icmp220.5.5.227:84  192.168.20.21:84  200.4.4.44:84   200.4.4.44:84

R-A#
    

Узел РС4 не смог передать эхо запросы протокола ICMP на сервер 200.4.4.44, поскольку все адреса пула были использованы узлами РС1, РС2, РС3.

Каждый адрес в вышеприведенной распечатке дополнен порядковым номером пересылаемого пакета, который записан через двоеточие, например 192.168.10.10:65.

Конфигурирование транслятора номера порта PAT

На рис 9.7 приведен пример фрагмента сети, в которой транслятор РАТ (NAT Overload) переводит множество частных IP-адресов диапазона 192.168.0.0/16 внутренней сети в публичные адреса из диапазона 220.5.5.231 - 220.5.5.233.

(рис 9.7) Сеть с транслятором PAT

Ниже приведена последовательность команд конфигурирования транслятора NAT Overload (РАТ) на маршрутизаторе R-А для случая, когда провайдер выделил набор (pool) из трех адресов. Последовательность команд конфигурирования будет следующей:

R-А(config)#access-list 12 permit 192.168.0.0 0.0.255.255
R-А(config)#ip nat pool PAT-P220.5.5.231 220.5.5.233 netmask 255.255.255.224
R-A(config)#ip nat inside source list 12 pool PAT-P overload
R-А(config)#int f0/0
R-А(config-if)#ip nat inside
R-А(config)#int f0/1
R-А(config-if)#ip nat inside
R-А(config-if)#int s1/1
R-А(config-if)#ip nat outside
    

В этом примере транслятор РAT переводит частные адреса узлов сети 192.168.0.0/16 в публичные адреса с добавлением номера порта. "Прозвонка" сервера 200.4.4.44 с узлов внутренней сети и последующая проверка дали следующий результат:

R-A#show ip nat translations
Pro  Inside global     Inside local     Outside local  Outside global
icmp 220.5.5.231:1    192.168.10.10:1   200.4.4.44:1   200.4.4.44:1
icmp 220.5.5.231:2      192.168.10.10:2   200.4.4.44:2  200.4.4.44:2
icmp 220.5.5.231:3      192.168.10.10:3   200.4.4.44:3   200.4.4.44:3
icmp 220.5.5.231:4     192.168.10.10:4   200.4.4.44:4   200.4.4.44:4
icmp 220.5.5.231:1024  192.168.10.11:1   200.4.4.44:1   200.4.4.44:1024
icmp 220.5.5.231:1025  192.168.10.11:2   200.4.4.44:2   200.4.4.44:1025
icmp 220.5.5.231:1026  192.168.10.11:3   200.4.4.44:3   200.4.4.44:1026
icmp 220.5.5.231:1027  192.168.10.11:4   200.4.4.44:4   200.4.4.44:1027
icmp 220.5.5.231:1028  192.168.10.12:1   200.4.4.44:1   200.4.4.44:1028
icmp 220.5.5.231:1029  192.168.10.12:2   200.4.4.44:2   200.4.4.44:1029
icmp 220.5.5.231:1032  192.168.20.21:1   200.4.4.44:1   200.4.4.44:1032
icmp 220.5.5.231:1033  192.168.20.21:2   200.4.4.44:2   200.4.4.44:1033
icmp 220.5.5.231:1034  192.168.20.21:3   200.4.4.44:3   200.4.4.44:1034
icmp 220.5.5.231:1036  192.168.20.21:4   200.4.4.44:4   200.4.4.44:1036
icmp 220.5.5.231:1035  192.168.20.22:1   200.4.4.44:1   200.4.4.44:1035
icmp 220.5.5.231:1037  192.168.20.22:2   200.4.4.44:2   200.4.4.44:1037
icmp 220.5.5.231:1038  192.168.20.22:3   200.4.4.44:3   200.4.4.44:1038
icmp 220.5.5.231:1039  192.168.20.22:4   200.4.4.44:4   200.4.4.44:1039

R-A#
    

В данном примере не три, а все узлы внутренней сети, определенные списком доступа access-list 12, посылают трафик во внешнюю сеть через маршрутизатор R-А. При этом внутренние частные адреса (192.168.10.10, 192.168.10.11, 192.168.10.12, 192.168.20.21, 192.168.20.22) транслируются в один публичный адрес 220.5.5.231, который дополняется номером порта (1024, 1025, …, 1039). IP-адреса и номера портов образуют глобальные адреса источников (Inside global). При адресации узла назначения те же номера порта используются при формировании внешних глобальных адресов (Outside global) передаваемых пакетов. Причем, первые 4 эхо запроса использовали IP-адрес 220.5.5.231 без формирования сокета, а для остальных запросов к IP-адресу добавлен номер порта.

При дефиците публичных IP-адресов можно не задавать пул, а использовать адрес внешнего интерфейса маршрутизатора R-A:

R-А(config)# access-list 12 permit 192.168.0.0 0.0.255.255
R-A(config)#ip nat inside source list 12int s1/1 overload
R-А(config)#int f0/0
R-А(config-if)#ip nat inside
R-А(config)#int f0/1
R-А(config-if)#ip nat inside
R-А(config-if)#int s1/1
R-А(config-if)#ip nat outside
    

Информацию о трансляторе можно посмотреть по команде show run. Статистику работы транслятора отображает команда:

R-A#show ip nat statistics,
    

распечатка которой приводит общее число активных трансляций, параметры конфигурации транслятора, количество адресов в пуле и др.

По умолчанию динамические записи транслятора сохраняются 24 часа. В некоторых случаях динамические записи требуется очистить скорее. Для этого используется команда очистки:

R-А#clear ip nat translation,
    

которая удаляет все динамически созданные строки транслятора.

Статические записи удаляются только при удалении самого транслятора.

Переадресация портов

Транслятор адресов NAT повышает информационную безопасность, поскольку запрещает доступ из Интернета к узлам внутренней сети, в том числе к серверам. Однако в ряде случаев такой доступ необходим. Технология переадресации порта (порт продвижения - Port forwarding) позволяет клиентам из внешней сети получать доступ к узлам (серверам) во внутренней сети через специального сконфигурированный транслятор адресов NAT. На рис 9.8 приведен пример фрагмента сети, позволяющей пояснить принцип действия переадресации порта.

(рис 9.8) Принцип действия переадресации порта

Для того, чтобы клиент из внешней сети, например 200.5.5.15, получил доступ к находящемуся во внутренней локальной сети веб серверу 192.168.10.11 с номером порта 80, на маршрутизаторе R-A необходимо сделать статическую переадресацию порта по команде:

R-A(config)#ip nat inside source static tcp 192.168.10.11 80 200.5.5.1 8008
    

Также как во всех предыдущих примерах, на маршрутизаторе R-A необходимо сконфигурировать внутренний и внешний интерфейсы.

Получив пакет с адресом назначения 200.5.5.1:8008, маршрутизатор обращается к таблице транслятора NAT, находит соответствующую строку и перенаправляет пакет по адресу 192.168.10.11:80. То есть, клиент (200.5.5.15) получает доступ к серверу во внутренней сети через глобальный адрес 200.5.5.1 интерфейса S1/1 маршрутизатора R-A с номером порта 8008. При ответе на запрос транслятор NAT маршрутизатора выполняет обратные преобразования.

Трансляция адресов в сетях IPv6

Протокол IPv6 обеспечивает адресацию $$2^{128}$$ узлов, поэтому проблема дефицита адресов и необходимости транслятора NAT отсутствует. Однако на период перехода от сетей IPv4 к сетям IPv6 наряду с технологией двойного стека и туннелированием используется технология трансляции адресов NAT64 (рис 9.9).

(рис 9.9) Транслятор NAT64

Транслятор NAT64 конфигурируется статически или динамически на маршрутизаторе R-A. При этом формируются соответствующие пары адресов IPv6 и IPv4, что обеспечивает перевод адресов IPv6 в IPv4 и обратно. Поскольку адресов IPv6 во много раз больше IPv4, то реализовать симметричный перевод невозможно. Статические трансляторы NAT64 рекомендуется использовать для известных серверов IPv4. Для клиентов IPv6 может быть использована автоматическая трансляция адресов.

Уникальные локальные адреса IPv6

Уникальные локальные адреса IPv6 (Unique Local Addresses - ULA) диапазона FC00 - FDFF выделены документом RFC 4193 для взаимодействия узлов в пределах некоторой локальной сети. В этом отношении ULA похожи на частные адреса RFC 1918 сетей IPv4. Однако, если частные адреса RFC 1918 и трансляторы NAT, PAT создавались для экономии адресов IPv4 и, попутно, для повышения уровня безопасности, то ULA таких целей не преследуют. Уникальные локальные адреса не зависят от провайдера и полностью определяются администратором.

Краткие итоги

  • Частные адреса ослабляют проблему нехватки публичных адресов IPv4.
  • Транслятор сетевых адресов NAT переводит один частный адрес в один публичный. Он транслирует внутренний (inside) локальный (частный) IP-адрес клиента во внутренний глобальный (публичный) адрес
  • Транслятор PAT (NAT Overload) комбинирует один общедоступный IP-адрес с набором номеров порта узла источника, т.е. формирует совокупность комплексных адресов, называемых сокетами.
  • NAT повышает безопасность сети, т.к. скрывает внутренние (частные) IP-адреса от внешних сетей.
  • Статический NAT обеспечивает постоянные пары локального и глобального адресов. При создании статического транслятора используется команда, строки которой создают пары внутренних (inside) частных IP-адресов и внутренних глобальных (публичных) адресов
    R-А(config)#ip nat inside source static 10.20.20.12 220.20.20.12
       
  • В случае динамического NAT внутренние локальные адреса преобразуются в глобальные адреса (обычно публичные), которые берутся из набора (пула) адресов.
  • Для конфигурирования динамического NAT на маршрутизаторе необходимо установить список доступа ACL, разрешающий трансляцию подлежащих переводу адресов и пул глобальных адресов
    R-А(config)#access-list 11 permit 192.168.0.0 0.0.255.255
       
  • На следующем этапе нужно определить набор (пул) адресов и задать ему имя R-А(config)#ip nat pool NAT-P 220.5.5.227 220.5.5.229 netmask 255.255.255.224
  • Затем необходимо связать список доступа с пулом адресов R-А(config)#ip nat inside source list 11 pool NAT-P
  • Создание динамического транслятора NAT завершается определением внутреннего и внешнего интерфейсов
    R-А(config)#int  < тип номер>
    R-А(config-if)#ip nat inside
    R-А(config-if)#int <тип номер>
    R-А(config-if)#ip nat outside
       
  • При создании транслятора РАТ связь списка доступа с пулом адресов определяет команда R-A(config)#ip nat inside source list 12 pool PAT-P overload
  • Технология переадресации порта позволяет клиентам из внешней сети получать доступ к узлам (серверам) во внутренней сети через специального сконфигурированный транслятор адресов NAT.
  • На период перехода от сетей IPv4 к сетямIPv6 используется технология трансляции адресов NAT64.
  • Вопросы

  • Какие блоки частных адресов введены документом RFC 1918?
  • Какие типы трансляторов частных адресов в публичные используются на практике?
  • Почему трансляторы NAT повышают безопасность сети?
  • Где обычно устанавливаются трансляторы NAT?
  • Что отражают термины внутренний локальный адрес, внутренний глобальный адрес, внешний глобальный адрес?
  • Как функционируют статический и динамический трансляторы?
  • Как конфигурируются статический и динамический трансляторы?
  • Сколько адресов должен содержать пул динамического транслятора?
  • В чем состоят особенности конфигурирования транслятора NAT Overload (РАТ) на маршрутизаторе?
  • Какие команды используются для проверки функционирования трансляторов?
  • Для чего используется технология переадресации порта?
  • В каких случаях используется технология трансляции адресов NAT 64?
  • Упражнения

    Для нижеприведенной схемы сети последовательно сконфигурируйте:

  • статический транслятор NAT;
  • динамический транслятор NAT;
  • транслятор РАТ.
  • Проведите проверку функционирования трансляторов.

    Заключение

    Среди проблем в области сетевых технологий важное место занимают подготовка и переподготовка кадров. Это обусловлено повсеместным переходом аналоговых и цифровых АТС на использование сетей с пакетной коммутацией, а также развитием сети Интернет, который становится всеобъемлющим (IoE). В связи с переходом на сети с пакетной коммутацией, в настоящее время происходит интенсивная переподготовка кадров, работающих в области телекоммуникаций. Требования знания основ технологий сетей пакетной коммутации работодатели предъявляют и к поступающим на работу выпускникам вузов.

    Автор надеется, что материал настоящего учебника представлен в доступной форме, что облегчит читателям задачу овладения технологиями современных сетей пакетной коммутации. Студенты и слушатели курсов, освоившие технологии локальных и глобальных сетей с коммутацией пакетов, основы обеспечения безопасности сетей на коммутаторах и маршрутизаторах, смогут эффективно создавать защищенные сети, как локальные, так и распределенные. Знание и учет особенностей построения и функционирования сети, конкретных стандартов и протоколов является основой успешного решения этой задачи.

    Страницы:

    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.

    (рис 9.1) Сеть с транслятором 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.

    (рис 9.2) Пример трансляции адресов NAT

    В приведенном примере внутренний (Inside) локальный адрес - это частный IP-адрес 192.168.10.11, назначенный администратором на конечный узел внутренней сети.

    ) транслятор NAT преобразует внутренний локальный адрес источника192.168.10.11 во внутренний глобальный 222.100.100.60, который выбирает транслятор NAT из таблицы перевода (NAT Table). Если транслятор не находит соответствующей строки в таблице перевода, то пакет уничтожается.

    ). В некоторых случаях адресат назначения может находиться в частной сети, поэтому также может потребоваться транслятор 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.

    (рис 9.3) Пример функционирования PAT

    При этом комплексный адрес назначения (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.

    (рис 9.4) Изменение номера порта источника транслятором РАТ

    Поэтому транслятор РАТ на граничном маршрутизаторе R-В изменит во внутреннем глобальном адресе источника номер порта второго пакета на 1259. Если доступных номеров портов больше нет, то транслятор РАТ попытается использовать следующий IP-адрес из пула доступных для транслятора адресов.

    9.2. Конфигурирование трансляторов

    Статический транслятор NAT

    При создании статического транслятора необходимо определить соответствующие внутренние и внешние адреса и сконфигурировать NAT на требуемых для трансляции интерфейсах. На рис 9.5 приведена схема фрагмента внутренней сети, где на маршрутизаторе R-A требуется установить транслятор NAT для доступа к внешней сети провайдера ISP.

    (рис 9.5) Внутренняя сеть и сеть провайдера ISP

    Для нормального функционирования сети необходимо сконфигурировать все интерфейсы маршрутизаторов R-A и R-ISP, все конечные узлы сети, а также сконфигурировать маршрутизирующий протокол, например, RIP. Ниже приведены результаты конфигурирования, отображаемые командами sh run и sh ip route.

    R-A#sh run
    ...
    interface FastEthernet0/1
     ip address 10.20.20.1 255.255.255.0
    !
    interface Serial1/1
     ip address 200.5.5.1 255.255.255.252
     clock rate 64000
    
    router rip
     network 200.5.5.0
     network 220.20.20.0
    !
        

    Следует обратить внимание, что при конфигурировании протокола RIP в качестве непосредственно присоединенной дается описание сети network 220.20.20.0/24, а не локальной сети 10.20.20.0/24 с тем, чтобы из внешней сети не было видно конфигурации внутренней локальной сети. При этом таблица маршрутизации R-A содержит в качестве непосредственно присоединенной сеть 10.20.20.0:

    R-A#sh ip route
    ...
       10.0.0.0/24 is subnetted, 1 subnets
    C    10.20.20.0 is directly connected, FastEthernet0/1
    R    192.168.30.0/24 [120/1] via 200.5.5.2, 00:00:11, Serial1/1
    R    192.168.40.0/24 [120/1] via 200.5.5.2, 00:00:11, Serial1/1
       200.5.5.0/30 is subnetted, 1 subnets
    C    200.5.5.0 is directly connected, Serial1/1
        

    Информация о сети 220.20.20.0 в маршрутизаторе R-ISP отсутствует, поэтому в таблице конфигурации маршрутизатора R-ISP нет маршрута ни к сети 10.20.20.0, ни к сети 220.20.20.0. Поэтому в маршрутизаторе R-ISP сформирован статический маршрут к сети 220.20.20.0, что отражено в распечатках команд show run, show ip route.

    R-ISP#sh run
    ...
    interface FastEthernet0/0
     ip address 192.168.30.1 255.255.255.0
    !
    interface FastEthernet0/1
     ip address 192.168.40.1 255.255.255.0
    !
    interface Serial1/2
     ip address 200.5.5.2 255.255.255.252
    !
    router rip
     network 192.168.30.0
     network 192.168.40.0
     network 200.5.5.0
    !
    ip classless
    ip route 220.20.20.0 255.255.255.0 Serial1/2
    
    R-ISP#sh ip route
    ...
    C    192.168.30.0/24 is directly connected, FastEthernet0/0
    C    192.168.40.0/24 is directly connected, FastEthernet0/1
       200.5.5.0/30 is subnetted, 1 subnets
    C    200.5.5.0 is directly connected, Serial1/2
    S    220.20.20.0/24 is directly connected, Serial1/2
        

    Ниже приведен пример конфигурирования статического транслятора NAT, который транслирует внутренний адрес, например, 10.20.20.12 во внешний публичный адрес 220.20.20.12 при обращении к серверу сети ISP (192.168.40.11), а при ответе на запрос из сети Интернет - переводит внешний публичный адрес 220.20.20.12 во внутренний адрес 10.20.20.12.

    R-А(config)#ip nat inside source static 10.20.20.12 220.20.20.12
    R-А(config)#int f0/0
    R-А(config-if)#ip nat inside
    R-А(config-if)#int s1/1
    R-А(config-if)#ip nat outside
        

    Первая команда приведенной последовательности формирует сам транслятор. Транслятор устанавливается на внутренний (inside) и внешний (outside) интерфейсы маршрутизатора R-А. В приведенном примере внутренним интерфейсом является F0/0с адресом 10.20.20.1, внешний интерфейс - s1/1 с адресом 200.5.5.1.Поэтому вторая и третья строка устанавливают внутренний интерфейс, четвертая и пятая - устанавливают внешний интерфейс.

    Проверка, проводимая с помощью команд ping, подтверждает работоспособность транслятора:

    PC1>ping 192.168.40.11
    
    Pinging 192.168.40.11 with 32 bytes of data:
    
    Reply from 192.168.40.11: bytes=32 time=160ms TTL=126
    Reply from 192.168.40.11: bytes=32 time=176ms TTL=126
    Reply from 192.168.40.11: bytes=32 time=187ms TTL=126
    Reply from 192.168.40.11: bytes=32 time=189ms TTL=126
        

    Для того чтобы транслятор позволил реализовать запросы из внешней сети к серверу 10.20.20.11 внутренней сети, необходимо сконфигурировать еще одну строку транслятора:

    R-А(config)#ip nat inside source static 10.20.20.11 220.20.20.11
        

    Проверка дает следующий положительный результат:

    PC2>ping 220.20.20.11
    Pinging 220.20.20.11 with 32 bytes of data:
    Reply from 220.20.20.11: bytes=32 time=131ms TTL=126
    Reply from 220.20.20.11: bytes=32 time=133ms TTL=126
    Reply from 220.20.20.11: bytes=32 time=127ms TTL=126
    Reply from 220.20.20.11: bytes=32 time=114ms TTL=126
        

    "Прозвонка" узла внутренней сети PC2>ping 10.20.20.11 показывает недостижимость (unreachable) узла, т.е. внутренняя сеть скрыта от внешней, что повышает безопасность.

    Конфигурирование динамического транслятора NAT

    Процесс конфигурирования динамического транслятора NAT рассмотрен на примере сети рис 9.6.

    (рис 9.6) Сеть с динамическим транслятором NAT

    Статический NAT обеспечивает постоянные пары локального и глобального адресов. В случае динамического NAT внутренние локальные адреса (обычно частные) преобразуются в глобальные адреса (обычно публичные), которые берутся из набора (пула) адресов, выдаваемых Интернет сервис-провайдером (ISP) администратору. При передаче сообщений в обратную сторону, из внешней сети во внутреннюю, публичные глобальные адреса назначения преобразуются NAT в частные локальные адреса. Таким образом, один локальный адрес транслируется в один глобальный и наоборот. Поэтому пул должен содержать столько адресов, сколько внутренних устройств одновременно могут потребовать доступ к внешним. Если все доступные адреса пула использованы, то внутреннее устройство должно дожидаться освобождения глобального адреса.

    Для конфигурирования динамического NAT на маршрутизаторе необходимо установить список доступа ACL, разрешающий трансляцию подлежащих переводу адресов и пул глобальных адресов. В схеме (рис 9.6) транслятор позволяет переводить внутренние частные адреса диапазона, например 192.168.0.0/16 в публичные адреса диапазона 220.5.5.227 - 220.5.5.229. При этом в данном примере свободных адресов для трансляции всего 3, т.е. только 3 устройства из внутренней сети могут одновременно передавать сообщения во внешнюю сеть.

    Создание списка доступа производится по команде:

    R-А(config)#access-list 11 permit 192.168.0.0 0.0.255.255
        

    Следующая команда определяет набор (пул) адресов с 220. 5.5.227 по 220.5.5.229, который назван по имени NAT-P:

    R-А(config)#ip nat pool NAT-P220.5.5.227 220.5.5.229 netmask 255.255.255.224
        

    Затем задается команда, связывающая список доступа с пулом адресов:

    R-А(config)#ip nat inside source list 11 pool NAT-P
        

    Создание транслятора NAT завершается определением внутреннего и внешнего интерфейсов

    R-А(config)#int f0/0
    R-А(config-if)#ip nat inside
    R-А(config)#int f0/1
    R-А(config-if)#ip nat inside
    R-А(config-if)#int s1/1
    R-А(config-if)#ip nat outside
        

    Работоспособность транслятора можно проверить путем посылки эхо запросов (ping) с узлов РС1, РС2, РС3, РС4 внутренней сети на сервер 200.4.4.44 внешней сети. Проверка по команде show ip nat translations показывает, что в процессе трансляции участвовали IP-адреса только трех узлов РС1, РС2, РС3:

    R-A#show ip nat translations
    Pro   Inside global    Inside local      Outside local   Outside global
    icmp  220.5.5.229:65  192.168.10.10:65  200.4.4.44:65   200.4.4.44:65
    icmp  220.5.5.229:66  192.168.10.10:66  200.4.4.44:66   200.4.4.44:66
    icmp  220.5.5.229:67  192.168.10.10:67  200.4.4.44:67   200.4.4.44:67
    icmp  220.5.5.229:68  192.168.10.10:68  200.4.4.44:68   200.4.4.44:68
    icmp  220.5.5.228:77  192.168.10.11:77  200.4.4.44:77   200.4.4.44:77
    icmp 220.5.5.228:78  192.168.10.11:78  200.4.4.44:78   200.4.4.44:78
    icmp 220.5.5.228:79  192.168.10.11:79  200.4.4.44:79   200.4.4.44:79
    icmp 220.5.5.228:80  192.168.10.11:80  200.4.4.44:80   200.4.4.44:80
    icmp 220.5.5.227:81  192.168.20.21:81  200.4.4.44:81   200.4.4.44:81
    icmp 220.5.5.227:82  192.168.20.21:82  200.4.4.44:82   200.4.4.44:82
    icmp220.5.5.227:83  192.168.20.21:83  200.4.4.44:83   200.4.4.44:83
    icmp220.5.5.227:84  192.168.20.21:84  200.4.4.44:84   200.4.4.44:84
    
    R-A#
        

    Узел РС4 не смог передать эхо запросы протокола ICMP на сервер 200.4.4.44, поскольку все адреса пула были использованы узлами РС1, РС2, РС3.

    Каждый адрес в вышеприведенной распечатке дополнен порядковым номером пересылаемого пакета, который записан через двоеточие, например 192.168.10.10:65.

    Конфигурирование транслятора номера порта PAT

    На рис 9.7 приведен пример фрагмента сети, в которой транслятор РАТ (NAT Overload) переводит множество частных IP-адресов диапазона 192.168.0.0/16 внутренней сети в публичные адреса из диапазона 220.5.5.231 - 220.5.5.233.

    (рис 9.7) Сеть с транслятором PAT

    Ниже приведена последовательность команд конфигурирования транслятора NAT Overload (РАТ) на маршрутизаторе R-А для случая, когда провайдер выделил набор (pool) из трех адресов. Последовательность команд конфигурирования будет следующей:

    R-А(config)#access-list 12 permit 192.168.0.0 0.0.255.255
    R-А(config)#ip nat pool PAT-P220.5.5.231 220.5.5.233 netmask 255.255.255.224
    R-A(config)#ip nat inside source list 12 pool PAT-P overload
    R-А(config)#int f0/0
    R-А(config-if)#ip nat inside
    R-А(config)#int f0/1
    R-А(config-if)#ip nat inside
    R-А(config-if)#int s1/1
    R-А(config-if)#ip nat outside
        

    В этом примере транслятор РAT переводит частные адреса узлов сети 192.168.0.0/16 в публичные адреса с добавлением номера порта. "Прозвонка" сервера 200.4.4.44 с узлов внутренней сети и последующая проверка дали следующий результат:

    R-A#show ip nat translations
    Pro  Inside global     Inside local     Outside local  Outside global
    icmp 220.5.5.231:1    192.168.10.10:1   200.4.4.44:1   200.4.4.44:1
    icmp 220.5.5.231:2      192.168.10.10:2   200.4.4.44:2  200.4.4.44:2
    icmp 220.5.5.231:3      192.168.10.10:3   200.4.4.44:3   200.4.4.44:3
    icmp 220.5.5.231:4     192.168.10.10:4   200.4.4.44:4   200.4.4.44:4
    icmp 220.5.5.231:1024  192.168.10.11:1   200.4.4.44:1   200.4.4.44:1024
    icmp 220.5.5.231:1025  192.168.10.11:2   200.4.4.44:2   200.4.4.44:1025
    icmp 220.5.5.231:1026  192.168.10.11:3   200.4.4.44:3   200.4.4.44:1026
    icmp 220.5.5.231:1027  192.168.10.11:4   200.4.4.44:4   200.4.4.44:1027
    icmp 220.5.5.231:1028  192.168.10.12:1   200.4.4.44:1   200.4.4.44:1028
    icmp 220.5.5.231:1029  192.168.10.12:2   200.4.4.44:2   200.4.4.44:1029
    icmp 220.5.5.231:1032  192.168.20.21:1   200.4.4.44:1   200.4.4.44:1032
    icmp 220.5.5.231:1033  192.168.20.21:2   200.4.4.44:2   200.4.4.44:1033
    icmp 220.5.5.231:1034  192.168.20.21:3   200.4.4.44:3   200.4.4.44:1034
    icmp 220.5.5.231:1036  192.168.20.21:4   200.4.4.44:4   200.4.4.44:1036
    icmp 220.5.5.231:1035  192.168.20.22:1   200.4.4.44:1   200.4.4.44:1035
    icmp 220.5.5.231:1037  192.168.20.22:2   200.4.4.44:2   200.4.4.44:1037
    icmp 220.5.5.231:1038  192.168.20.22:3   200.4.4.44:3   200.4.4.44:1038
    icmp 220.5.5.231:1039  192.168.20.22:4   200.4.4.44:4   200.4.4.44:1039
    
    R-A#
        

    В данном примере не три, а все узлы внутренней сети, определенные списком доступа access-list 12, посылают трафик во внешнюю сеть через маршрутизатор R-А. При этом внутренние частные адреса (192.168.10.10, 192.168.10.11, 192.168.10.12, 192.168.20.21, 192.168.20.22) транслируются в один публичный адрес 220.5.5.231, который дополняется номером порта (1024, 1025, …, 1039). IP-адреса и номера портов образуют глобальные адреса источников (Inside global). При адресации узла назначения те же номера порта используются при формировании внешних глобальных адресов (Outside global) передаваемых пакетов. Причем, первые 4 эхо запроса использовали IP-адрес 220.5.5.231 без формирования сокета, а для остальных запросов к IP-адресу добавлен номер порта.

    При дефиците публичных IP-адресов можно не задавать пул, а использовать адрес внешнего интерфейса маршрутизатора R-A:

    R-А(config)# access-list 12 permit 192.168.0.0 0.0.255.255
    R-A(config)#ip nat inside source list 12int s1/1 overload
    R-А(config)#int f0/0
    R-А(config-if)#ip nat inside
    R-А(config)#int f0/1
    R-А(config-if)#ip nat inside
    R-А(config-if)#int s1/1
    R-А(config-if)#ip nat outside
        

    Информацию о трансляторе можно посмотреть по команде show run. Статистику работы транслятора отображает команда:

    R-A#show ip nat statistics,
        

    распечатка которой приводит общее число активных трансляций, параметры конфигурации транслятора, количество адресов в пуле и др.

    По умолчанию динамические записи транслятора сохраняются 24 часа. В некоторых случаях динамические записи требуется очистить скорее. Для этого используется команда очистки:

    R-А#clear ip nat translation,
        

    которая удаляет все динамически созданные строки транслятора.

    Статические записи удаляются только при удалении самого транслятора.

    Переадресация портов

    Транслятор адресов NAT повышает информационную безопасность, поскольку запрещает доступ из Интернета к узлам внутренней сети, в том числе к серверам. Однако в ряде случаев такой доступ необходим. Технология переадресации порта (порт продвижения - Port forwarding) позволяет клиентам из внешней сети получать доступ к узлам (серверам) во внутренней сети через специального сконфигурированный транслятор адресов NAT. На рис 9.8 приведен пример фрагмента сети, позволяющей пояснить принцип действия переадресации порта.

    (рис 9.8) Принцип действия переадресации порта

    Для того, чтобы клиент из внешней сети, например 200.5.5.15, получил доступ к находящемуся во внутренней локальной сети веб серверу 192.168.10.11 с номером порта 80, на маршрутизаторе R-A необходимо сделать статическую переадресацию порта по команде:

    R-A(config)#ip nat inside source static tcp 192.168.10.11 80 200.5.5.1 8008
        

    Также как во всех предыдущих примерах, на маршрутизаторе R-A необходимо сконфигурировать внутренний и внешний интерфейсы.

    Получив пакет с адресом назначения 200.5.5.1:8008, маршрутизатор обращается к таблице транслятора NAT, находит соответствующую строку и перенаправляет пакет по адресу 192.168.10.11:80. То есть, клиент (200.5.5.15) получает доступ к серверу во внутренней сети через глобальный адрес 200.5.5.1 интерфейса S1/1 маршрутизатора R-A с номером порта 8008. При ответе на запрос транслятор NAT маршрутизатора выполняет обратные преобразования.

    Трансляция адресов в сетях IPv6

    Протокол IPv6 обеспечивает адресацию $$2^{128}$$ узлов, поэтому проблема дефицита адресов и необходимости транслятора NAT отсутствует. Однако на период перехода от сетей IPv4 к сетям IPv6 наряду с технологией двойного стека и туннелированием используется технология трансляции адресов NAT64 (рис 9.9).

    (рис 9.9) Транслятор NAT64

    Транслятор NAT64 конфигурируется статически или динамически на маршрутизаторе R-A. При этом формируются соответствующие пары адресов IPv6 и IPv4, что обеспечивает перевод адресов IPv6 в IPv4 и обратно. Поскольку адресов IPv6 во много раз больше IPv4, то реализовать симметричный перевод невозможно. Статические трансляторы NAT64 рекомендуется использовать для известных серверов IPv4. Для клиентов IPv6 может быть использована автоматическая трансляция адресов.

    Уникальные локальные адреса IPv6

    Уникальные локальные адреса IPv6 (Unique Local Addresses - ULA) диапазона FC00 - FDFF выделены документом RFC 4193 для взаимодействия узлов в пределах некоторой локальной сети. В этом отношении ULA похожи на частные адреса RFC 1918 сетей IPv4. Однако, если частные адреса RFC 1918 и трансляторы NAT, PAT создавались для экономии адресов IPv4 и, попутно, для повышения уровня безопасности, то ULA таких целей не преследуют. Уникальные локальные адреса не зависят от провайдера и полностью определяются администратором.

    Краткие итоги

  • Частные адреса ослабляют проблему нехватки публичных адресов IPv4.
  • Транслятор сетевых адресов NAT переводит один частный адрес в один публичный. Он транслирует внутренний (inside) локальный (частный) IP-адрес клиента во внутренний глобальный (публичный) адрес
  • Транслятор PAT (NAT Overload) комбинирует один общедоступный IP-адрес с набором номеров порта узла источника, т.е. формирует совокупность комплексных адресов, называемых сокетами.
  • NAT повышает безопасность сети, т.к. скрывает внутренние (частные) IP-адреса от внешних сетей.
  • Статический NAT обеспечивает постоянные пары локального и глобального адресов. При создании статического транслятора используется команда, строки которой создают пары внутренних (inside) частных IP-адресов и внутренних глобальных (публичных) адресов
    R-А(config)#ip nat inside source static 10.20.20.12 220.20.20.12
       
  • В случае динамического NAT внутренние локальные адреса преобразуются в глобальные адреса (обычно публичные), которые берутся из набора (пула) адресов.
  • Для конфигурирования динамического NAT на маршрутизаторе необходимо установить список доступа ACL, разрешающий трансляцию подлежащих переводу адресов и пул глобальных адресов
    R-А(config)#access-list 11 permit 192.168.0.0 0.0.255.255
       
  • На следующем этапе нужно определить набор (пул) адресов и задать ему имя R-А(config)#ip nat pool NAT-P 220.5.5.227 220.5.5.229 netmask 255.255.255.224
  • Затем необходимо связать список доступа с пулом адресов R-А(config)#ip nat inside source list 11 pool NAT-P
  • Создание динамического транслятора NAT завершается определением внутреннего и внешнего интерфейсов
    R-А(config)#int  < тип номер>
    R-А(config-if)#ip nat inside
    R-А(config-if)#int <тип номер>
    R-А(config-if)#ip nat outside
       
  • При создании транслятора РАТ связь списка доступа с пулом адресов определяет команда R-A(config)#ip nat inside source list 12 pool PAT-P overload
  • Технология переадресации порта позволяет клиентам из внешней сети получать доступ к узлам (серверам) во внутренней сети через специального сконфигурированный транслятор адресов NAT.
  • На период перехода от сетей IPv4 к сетямIPv6 используется технология трансляции адресов NAT64.
  • Вопросы

  • Какие блоки частных адресов введены документом RFC 1918?
  • Какие типы трансляторов частных адресов в публичные используются на практике?
  • Почему трансляторы NAT повышают безопасность сети?
  • Где обычно устанавливаются трансляторы NAT?
  • Что отражают термины внутренний локальный адрес, внутренний глобальный адрес, внешний глобальный адрес?
  • Как функционируют статический и динамический трансляторы?
  • Как конфигурируются статический и динамический трансляторы?
  • Сколько адресов должен содержать пул динамического транслятора?
  • В чем состоят особенности конфигурирования транслятора NAT Overload (РАТ) на маршрутизаторе?
  • Какие команды используются для проверки функционирования трансляторов?
  • Для чего используется технология переадресации порта?
  • В каких случаях используется технология трансляции адресов NAT 64?
  • Упражнения

    Для нижеприведенной схемы сети последовательно сконфигурируйте:

  • статический транслятор NAT;
  • динамический транслятор NAT;
  • транслятор РАТ.
  • Проведите проверку функционирования трансляторов.

    Заключение

    Среди проблем в области сетевых технологий важное место занимают подготовка и переподготовка кадров. Это обусловлено повсеместным переходом аналоговых и цифровых АТС на использование сетей с пакетной коммутацией, а также развитием сети Интернет, который становится всеобъемлющим (IoE). В связи с переходом на сети с пакетной коммутацией, в настоящее время происходит интенсивная переподготовка кадров, работающих в области телекоммуникаций. Требования знания основ технологий сетей пакетной коммутации работодатели предъявляют и к поступающим на работу выпускникам вузов.

    Автор надеется, что материал настоящего учебника представлен в доступной форме, что облегчит читателям задачу овладения технологиями современных сетей пакетной коммутации. Студенты и слушатели курсов, освоившие технологии локальных и глобальных сетей с коммутацией пакетов, основы обеспечения безопасности сетей на коммутаторах и маршрутизаторах, смогут эффективно создавать защищенные сети, как локальные, так и распределенные. Знание и учет особенностей построения и функционирования сети, конкретных стандартов и протоколов является основой успешного решения этой задачи.

    Вернуться к учебному плану