9.2.2.2 Настройка динамического NAT
На рис. 1 показаны шаги и команды, используемые для настройки динамического NAT.
Шаг 1. С помощью команды ip nat pool определите пул адресов, которые будут использоваться для преобразования. Данный пул адресов обычно является группой публичных адресов. Эти адреса определяются с помощью указания начального и конечного IPv4-адресов пула. Ключевое слово netmask или prefix-length указывает, какие биты адреса относятся к сети, а какие — к диапазону адресов узлов.
Шаг 2. Настройте стандартный ACL, чтобы определить (разрешить) только те адреса, которые должны быть преобразованы. Список контроля доступа со слишком большим количеством разрешающих инструкций может привести к непредсказуемым результатам. Помните, что в конце каждого ACL подразумевается строка deny all.
Шаг 3. Выполните привязку ACL к пулу. Команда ip nat inside source list номер списка доступа pool имя пула используется для привязки списка контроля доступа к пулу. Эта настройка используется маршрутизатором, чтобы определить, какие устройства (list) получают какие адреса (pool).
Шаг 4. Определите интерфейсы, являющиеся внутренними по отношению к NAT, т. е. все интерфейсы, подключенные к внутренней сети.
Шаг 5. Определите интерфейсы, являющиеся внешними относительно NAT; это все интерфейсы, подключенные к внешней сети.
На рис. 2 приведен пример топологии и соответствующая настройка. Данная настройка разрешает преобразование для всех узлов сети 192.168.0.0/16, содержащей локальные сети 192.168.10.0 и 192.168.11.0, когда узлы создают трафик, входящий в S0/0/0 и выходящий из S0/1/0. Адреса этих узлов преобразуются в доступный адрес из пула в диапазоне от 209.165.200.226 до 209.165.200.240.
На рис. 3 показана топология, используемая для настройки в инструменте проверки синтаксиса. Используйте средство проверки синтаксиса на рис. 4, чтобы настроить динамическое преобразование NAT на маршрутизаторе R2.
В статическом NAT используется сопоставление локальных и глобальных адресов по схеме «один к одному». Метод статического преобразования особенно полезен для веб-серверов или устройств, которые должны иметь постоянный адрес и быть доступными из Интернета.
Шаг 1: Настройте статическое сопоставление.
Статическая привязка должна быть настроена для преобразования маршрутизатором частного внутреннего адреса сервера 192.168.1.20 в публичный адрес 209.165.200.225 и обратно. Это позволит пользователю из Интернета получить доступ к компьютеру PC-A. Компьютер PC-A моделирует сервер или устройство с постоянным адресом, к которому можно получить доступ из Интернета.Gateway(config)# ip nat inside source static 192.168.1.20 209.165.200.225Шаг 2: Задайте интерфейсы.
Выполните на интерфейсах команды ip nat inside и ip nat outside.Gateway(config)# interface g0/1Gateway(config-if)# ip nat insideGateway(config-if)# interface s0/0/1Gateway(config-if)# ip nat outsideШаг 3: Протестируйте настройку.
a. Отобразите таблицу статических преобразований NAT с помощью команды show ip nat translations.Gateway# show ip nat translations При динамическом преобразовании NAT используется пул публичных адресов, которые назначаются в порядке очереди («первым пришел — первым обслужили»). Когда внутреннее устройство запрашивает доступ к внешней сети, динамическое преобразование NAT назначает доступный публичный IPv4-адрес из пула. Динамическое преобразование NAT представляет собой сопоставление адресов по схеме «многие ко многим» между локальными и лобальными адресами.
Шаг 1: Очистите данные NAT.
Перед добавлением динамических преобразований очистите все NAT и удалите статистику из части 2.Gateway# clear ip nat translation *Gateway# clear ip nat statisticsШаг 2: Создайте список контроля доступа (ACL-список), соответствующий диапазону частных IP-адресов локальной сети.
ACL-список 1 используется для обеспечения возможности преобразования сети 192.168.1.0/24.Gateway(config)# access-list 1 permit 192.168.1.0 0.0.0.255Шаг 3: Убедитесь, что настройки интерфейсов NAT все еще действительны.
show ip nat statisticsШаг 4: Определите пул пригодных к использованию публичных IP-адресов.
Gateway(config)# ip nat pool public_access 209.165.200.242 209.165.200.254 netmask 255.255.255.224Шаг 5: Определите NAT из внутреннего списка адресов источника на пул внешних адресов.
Примечание. Помните, что имена пула NAT регистрозависимы, а имя пула, вводимое здесь, должно совпадать с именем, использованным на предыдущем шаге.Gateway(config)# ip nat inside source list 1 pool public_accessШаг 6: Протестируйте настройку.
a. С ПК B отправьте эхо-запрос на интерфейс Lo0 (192.31.7.1) маршрутизатора ISP. Если эхо-запрос не прошел, выполните отладку. На маршрутизаторе Gateway просмотрите таблицу NAT.
show ip nat translations Определите пул публичных IPv4-адресов от 209.165.200.241 до 209.165.200.250 с именем пула NAT-POOL-OVERLOAD.
R2(config)# ip nat pool NAT-POOL-OVERLOAD 209.165.200.241 209.165.200.250 netmask 255.255.255.224 Настройте ACL-список 3, разрешающий преобразование NAT для устройств сети 10.0.0.0/8.
R2(config)# access-list 3 permit 10.0.0.0 0.255.255.255 Свяжите NAT-POOL-OVERLOAD с ACL-списком 3.
R2(config)# ip nat inside source list 3 pool NAT-POOL-OVERLOAD overload Настройте соответствующий внутренний интерфейс NAT.
R2(config)# interface Serial0/0/0 R2(config-if)# ip nat inside Настройте соответствующий внешний интерфейс NAT.
R2(config)# interface Serial0/1/0 R2(config-if)# ip nat outside Вы успешно настроили PAT с помощью пула адресов.
Настройка PAT. Единый адрес
ip nat inside source {static {tcp | udp local-ip local-port global-ip global-port} [extendable]
R2(config)# ip nat inside source static tcp 192.168.10.254 80 209.165.200.225 8080R2(config)# interface Serial0/0/0R2(config-if)# ip nat insideR2(config)# interface Serial0/1/0R2(config-if)# ip nat outsideR2# show ip nat translationsPro Inside global Inside local Outside local Outside globaltcp 209.165.200.225:8080 192.168.10.254:80 209.165.200.254:46088 209.165.200.254:46088tcp 209.165.200.225:8080 192.168.10.254:80 --- ---R2#Одним из «ненамеренных» преимуществ NAT для IPv4 стало то, что эта технология скрывает частные сети от публичного Интернета. Преимуществом NAT является обеспечение кажущейся безопасности путем запрета компьютерам из публичного Интернета доступа к внутренним узлам. Но эту технологию нельзя считать заменой полноценной сетевой безопасности, например, обеспечиваемой межсетевым экраном.
Комиссия по архитектуре Интернета (IAB) включила в RFC 5902 следующее положение, касающееся преобразования IPv6:
«Обычно считается, что устройство NAT обеспечивает один уровень защиты, поскольку внешние узлы не могут напрямую начать взаимодействие с узлами, находящимися за устройством NAT. Но не следует путать устройства NAT с межсетевыми экранами. Как оговорено в разделе 2.2 RFC4864, само по себе преобразование не обеспечивает безопасность. Функция фильтрации с отслеживанием состояния (stateful filtering) обеспечивает тот же уровень защиты, не требуя функции преобразования».
Протокол IPv6 с 128-битовым адресом предоставляет 340 ундециллионов адресов. Таким образом, адресное пространство не является проблемой. Протокол IPv6 был разработан, чтобы устранить необходимость в NAT для IPv4 с его преобразованием между публичными и частными IPv4-адресами. Тем не менее, IPv6 действительно реализует определенную форму NAT. IPv6 включает и собственное пространство частных IPv6-адресов, и преобразования NAT, реализованные иначе, чем для IPv4.
Уникальные локальные IPv6-адреса (unique local addresses, ULA) похожи на частные адреса RFC 1918 в IPv4, но при этом существенно отличаются от них. Цель unique local адресов — обеспечить пространство IPv6-адресов для взаимодействия в пределах локального объекта. Это не означает ни предоставления дополнительного пространства IPv6-адресов, ни обеспечения уровня безопасности.
Как показано на рисунке, unique local адрес использует префикс FC00::/7, и поэтому первая 16-битовая группа находится в диапазоне от FC00 до FDFF. Если префикс назначается локально, следующий один бит установлен равным 1. Возможность использования значения 0 может быть определена позже. Следующие 40 битов — это глобальный идентификатор, за которым следует 16-битовый идентификатор подсети. Эти первые 64 бита объединяются для создания префикса уникального локального адреса. Это оставляет 64 бита для идентификатора интерфейса или, согласно терминологии IPv4 — узловой части адреса.
Уникальные локальные адреса определены в RFC 4193. Unique local адреса также называются локальными IPv6-адресами (не следует путать с IPv6-адресами типа link-local) и обладают рядом характеристик, в том числе перечисленными ниже:
Unique local адреса не настолько просты, как адреса RFC 1918. В отличие от частных IPv4-адресов, IETF не стремилась использовать разновидность NAT для преобразования между уникальными локальными адресами и глобальными индивидуальными адресами IPv6.
Реализация и потенциальные сферы применения уникальных локальных IPv6-адресов все еще изучается интернет-сообществом. Например, организация IETF рассматривает возможность использования 40-разрядного глобального идентификатора, который назначается централизовано при использовании префикса уникального локального адреса FC00::/8. 40-разрядный глобальный идентификатор генерируется случайным образом либо может быть задан вручную при использовании префикса уникального локального адреса FD00::/8. Остальные адреса остаются неизменны. Мы все еще используем 16 битов для идентификатора подсети и 64 бита для идентификатора интерфейса.
Примечание. В исходной спецификации IPv6 было выделено адресное пространство для site-local адресов (с областью видимости в рамках одной площадки), определенных в RFC 3513. IETF признала в RFC 3879 site-local адреса устаревшими, поскольку термин «площадка» (site) был признан неоднозначным. Для адресов типа site-local использовался диапазон префиксов FEC0::/10, их по-прежнему можно найти в ряде устаревших документов IPv6.
Если в среде NAT возникают проблемы подключения IPv4, поиск причин неполадок часто оказывается сложной задачей. Первое действие при устранении проблемы — исключить NAT как причину. Выполните следующие действия, чтобы убедиться, что NAT работает должным образом.
Шаг 1. В зависимости от конфигурации четко определите цели и задачи NAT. На данном этапе можно выявить проблему с настройкой.
Шаг 2. С помощью команды show ip nat translations убедитесь, что таблица преобразований содержит правильные преобразования.
Шаг 3. Используйте команды clear и debug, чтобы убедиться, что NAT работает должным образом. Проверьте, создаются ли динамические записи снова после их удаления.
Шаг 4. Подробно изучите, что происходит с преобразованным пакетом, и убедитесь, что маршрутизаторы используют правильные данные маршрутизации для передачи пакета.
На рис. 2 показаны результаты выполнения команд show ip nat statistics и show ip nat translations. Перед использованием команд show статистика и записи NAT в таблице NAT удаляются с помощью команд clear ip nat statistics и clear ip nat translation *. После того, как узел 192.168.10.10 обратится к серверу в 209.165.201.1 по протоколу telnet, будут отображены статистика NAT и таблица NAT, которые также помогают убедиться в корректной работе NAT.
В простой сети может быть целесообразно отслеживать статистику NAT с помощью команды show ip nat statistics. С помощью команды show ip nat statistics отображаются сведения об общем количестве активных преобразований, параметрах настройки NAT, количестве адресов в пуле и количестве выделенных адресов. Однако в более сложной среде NAT, в случае нескольких преобразований, эта команда не позволяет четко определить проблему. В подобных случаях может потребоваться выполнить команду debug на маршрутизаторе
Используйте команду debug ip nat для проверки работы NAT путем вывода сведений о каждом пакете, преобразованном маршрутизатором. Команда debug ip nat detailed выводит описание каждого пакета, рассматриваемого в качестве кандидата на преобразование. Кроме того, эта команда выводит сведения о конкретных ошибках и исключениях, таких как невозможность выделить глобальный адрес. Команда debug ip nat detailed выдает больше служебных данных, чем команда debug ip nat, но она может предоставить подробные сведения, которые могут быть необходимы для отладки NAT. Устранив неполадки, всегда отключайте режим отладки.
На рис. 1 показан результат выполнения debug ip nat. Результат показывает, что внутренний узел (192.168.10.10) создал трафик к внешнему узлу (209.165.201.1), и адрес источника был преобразован в адрес 209.165.200.226.
При расшифровке результатов отладки учитывайте значение перечисленных ниже символов: