18. WAN. NAT

Подключение к Интернету

  • Зачем сети предприятия нужно подключение к Интернету?

    • Доступ сотрудников к публичным ресурсам предприятия

    • Доступ посетителей к опубликованным ресурсам предприятия

    • Удаленный доступ сотрудников к внутренним ресурсам

    • Межсайтовое взаимодействие

  • Сервис должен быть бесперебойным и выдерживать отказы

    • Отдельных каналов

    • Отдельных устройств

    • И в том числе поставщиков услуг

Типы подключения к Интернету

Где брать адреса?

  • Машрутизируемые адреса (как IPv4, так и IPv6) бывают:

    • Provider Independent (PI)

    • Provider Aggregatable (PA)

  • Адреса распределяются блоками:

    • Internet Assigned Numbers Authority (также управляет DNS и AS)

    • Региональные регистраторы

      • Reseaux IP Europeens Network Coordination Centre (RIPE NCC)

      • American Registry For Internet Numbers (ARIN)

      • Asia-Pasific Netowrk Information Centre (APNIC)

      • Latin America and Caribbean Network Information Centre (LACNIC)

      • African Network Information Centre (AFRINIC)

    • Локальные регистраторы

      • Провайдеры, университеты, крупные предприятия и т. д.

PA-адреса

  • В IPv4 не имеют определенной структуры

  • В IPv6 имеют иерархическую структуру

    • RIR получают блоки /23 (или крупнее, вплоть до /12)

    • LIR получают блоки /32 (или крупнее, вплоть до /19)

    • Клиенты-юрлица получают блоки /48 или /56

    • Клиенты-физлица получают блоки /64

  • Конечный потребитель получает PA-адреса от провайдера

PI-адреса

  • Как понятно из названия, не зависящие от провайдера адреса

    • Потребитель получает их самостоятельно в RIR

    • Также требуют получения номера AS

  • В каких случаях пригодны:

    • В multihomed-сети

    • Провайдеры согласны подключить AS по BGP

Частные адреса

  • Диапазоны для частных сетей (без выхода в Интернет)

    • В IPv4 диапазоны из RFC 1918

    • В IPv6 - случайная сеть /64 из диапазона FD00::/8

  • В интернете не может быть маршрутов до частных сетей

    • Пакеты, направленные на такие адреса, не могут быть доставлены

    • На пакеты, направленные с таких адресов, не возможно доставить ответ

Single-Homed подключение

  • Используются PA-адреса

  • CPE настраивается статически или автоматически

    • IP-адрес

    • Маршрут по умолчанию

  • Адресация внутренней сети

    • В IPv4 - частная, для работы требуется NAT

    • В IPv6 - автонастройка через DHCP Prefix Deligation

Dual-Homed подключение

  • Можно обеспечить защиту от отказа устройства

    • Не обеспечивается защита от проблем у ISP

  • Используются PA-адреса

  • CPE, как правило, настраиваются статически

    • Статическая маршрутизация и FHRP, если ISP ленивый

    • Динамическая маршрутизация, если все по-взрослому

  • Адресация внутренней сети

    • В IPv4 - частная, для работы требуется NAT

      • Проблемы синхронизации трансляций NAT на нескольких CPE

    • В IPv6 - ручная или автонастройка с Prefix Deligation

Multihomed подключение

  • Наивысший уровень защиты от одиночного отказа

  • Можно использовать PA-адреса

    • При переключении между провайдерами обязательно отвалятся все сессии

  • Можно использовать PI-адреса

    • Сложная настройка BGP на CPE

  • Сложности с балансировкой

    • Исходящего, а с PI - и входящего трафика

  • Адресация внутренней сети

    • В IPv4 - частная, для работы требуется NAT

      • Проблемы синхронизации трансляций на CPE

    • В IPv6 - как правило, ручная настройка

Перебивка адресов на границе

  • NAT позволяет изменять IP-адреса в пакетах при машрутизации

    • Процесс не связан с собственно машрутизацией

    • Требуется правило, по которому меняются адреса

  • Для приложений этот процесс должен быть максимально прозрачен

    • Адреса меняются как у исходящих пакетов, так и у обратных пакетов

    • Многие приложения страдают от внесения изменений в пакет

Таблица трансляций

  • В таблице трансляций хранятся правила: "что на что меняем"

    • Также могут хранится доп. ограничения: интерфейсы, порты и т. д.

  • Каждая трансляция - двусторонняя

NAPT/PAT/NAT Overload/Masquerading

  • Для TCP и UDP есть метод дополнительной экономии публичных IP

    • Network Address And Port Translation (RFC 2663)

    • Port Address Translation (Cisco)

    • IP Masquerading, NAT overload, Many-to-one NAT

  • Подменяются не IP-адреса, а пары IP+порт (сокеты)

    • IP адрес у подмененных сокетов может быть один

    • Гарантии сохранности порта при этом нет

  • У NAPT тоже есть таблица трансляций

  • Трансляции могут добавляться автоматически или вручную

Domain Based NAT

  • NAT в IOS работает с 2 адресными пространствами

    • inside - адреса в локальной автономной система

    • outside - адреса в чужих автономных системах

  • Для работы NAT нужно разметить интерфейсы

    • ip nat inside и ip nat outside - для интерфейсов, через которые проходят попадающие под NAT пакеты

    • Если интерфейс не размечен, NAT работать не будет

Именование адресов в Cisco

Inside Source NAT

  • Название отвечает на вопрос "что, где и на что меняем"

    • Адреса inside local и inside global меняются там, где они стоят в поле source

    • Обратная трансляция создается автоматически

    • Типичный сценарий для доступа в Интернет

Inside destination NAT

  • Название отвечает на вопрос "что, где и на что меняем"

    • Адреса Inside local и inside global меняются, если они стоят в поле destination

    • Обратная трансляция создается автоматически

    • Экзотический сценарий для балансировки TCP-серверов

Outside Source NAT

  • Название отвечает на вопрос "что, где и на что меняем"

    • Адреса Outside local и outside global меняются, если они стоят в поле source

    • Обратная трансляция создается автоматически

    • применяется только вместе с inside source для twice NAT (одновременной перебивкой как source, так и destination адресов в пакетах)

NAT Virtual Interface (NVI)

  • Domain Based NAT в IOS требует наличия ровно двух адресных пространств, одно из которых - "внутреннее", а второе - "внешнее"

    • В редких случаях добиться желаемого результата с его помощью невозможно из-за противоречивых требований к разметке

  • NVI не требует разметки inside/outside

    • Оперирует только адресами источника

    • Обратная трансляция создается автоматически

    • Более ресурсоемкий

Какой вариант выбрать

  • Outside source вместе с inside source, если вам нужен twice NAT

  • inside destination, если вам нужна балансировка нагрузки между несколькими TCP-серверами (но лучше купить балансировщик)

  • NVI, если правила NAT конфликтуют между собой по разметке АП

  • Inside source во всех остальных случаях, включая:

    • Предоставление доступа в Интернет для пользователей

    • "Публикацию" сервера (или отдельного порта)

Basic Static NAT

  • Самый простой тип NAT

    • Используется для публикации заданного частного IP-адреса под публичным "псевдонимом"

Router(config)#interface gi0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside

Router(config)#interface gi0/1
Router(config-if)#ip address 203.0.113.1 255.255.255.0
Router(config-if)#ip nat outside

Router(config)#ip nat inside source static 192.168.1.2 203.0.113.2

Basic Static PAT

  • Статическая трансляция порта

    • Используется для публикации отдельного сервиса (как правило, если используется несколько сервисов на одном IP-адресе)

Router(config)#interface gi0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside

Router(config)#interface gi0/1
Router(config-if)#ip address 203.0.113.1 255.255.255.0
Router(config-if)#ip nat outside

Router(config)#ip nat inside source static tcp 192.168.1.2 25 203.0.113.2 25

Dynamic NAT

  • Выдает публичные адреса из пула свободным узлам из частной сети, а после завершения активности возвращает адреса обратно в пул

Router(config)#interface gi0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside

Router(config)#interface gi0/1
Router(config-if)#ip address 203.0.113.1 255.255.255.0
Router(config-if)#ip nat outside

Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#ip nat pool DYNNAT 203.0.113.2 203.0.113.10 netmask 255.255.255.0 !маска для контроля
Router(config)#ip nat inside source list 1 pool DYNNAT

Dynamic PAT

  • "Рабочая лошадка" современных сетей

    • Предоставляет доступ в Интернет, используя пул публичных адресов

    • Может использовать адрес с интерфейса (например, полученный по DHCP)

    • Расширенными ACL можно гибко отбирать пакеты для трансляции

Router(config)#interface gi0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside

Router(config)#interface gi0/1
Router(config-if)#ip address 203.0.113.1 255.255.255.0
Router(config-if)#ip nat outside

Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#ip nat inside source list 1 interface gi0/1 overload

Порядок операций в Domain Based NAT

  • Для пакетов из Inside в Outside

    • Получить пакет на входном inside интерфейсе

    • Пометь пакет как "возможно транслируемый"

    • Провести маршрутизацию и найти выходной интерфейс

    • Если тот не помечен как Outside - прекратить процесс

    • Проверить таблицу трансляций, при попадании выполнить трансляцию

    • Отправить пакет в интерфейс назначения

  • Для пакетов из outside в inside

    • Получить пакет на входном outside интерфейсе

    • Проверить таблицу трансляций, при попадании выполнить трансляцию

    • Провести маршрутизацию и найти выходной интерфейс

    • Отправить пакет в сеть назначения

Диагностика Domain Based NAT

  • Команда show ip nat translations отображает активные трансляции

    • Срок жизни динамической трансляции зависит от ее активности и протокола

    • Настройку правила трансляции нельзя удалить, если в таблице есть созданные им динамические трансляции

    • Таблицу трансляций можно очистить командой clear ip nat translations *

  • Команда show ip nat statistics показывает счетчик трансляций

  • Если пакет попадает под действие динамического правила, в таблице должна появитьтся соответствующая трансляция

    • А если не попадает, то пакет отправится все равно, если есть маршрут

      • NAT - это не механизм безопасности, ACL необходимо использовать

Настройка NVI

Router(config)#interface gi0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#ip nat enable

Router(config)#interface gi0/1
Router(config-if)#ip address 203.0.113.1 255.255.255.0
Router(config-if)#ip nat enable

Router(config)#interface gi0/1
Router(config-if)#ip address 172.22.22.1 255.255.255.0
Router(config-if)#ip nat enable

Router(config)#access-list 101 deny ip 192.168.1.0 0.0.0.255 172.22.22.0 0.0.0.255
Router(config)#access-list 101 permit ip 192.168.1.0 0.0.0.255 any
Router(config)#access-list 102 permit ip 192.168.1.0 0.0.0.255 172.22.22.0 0.0.0.255
Router(config)#ip nat source static 172.22.22.22 203.0.113.3
Router(config)#ip nat source list 101 interface gi0/1 overload
Router(config)#ip nat source list 102 interface gi0/2 overload

Порядок операций в NVI

  • Получить пакет на входном ip nat enable интерфейсе

  • Провести маршрутизацию на виртуальный интерфейс NVI0

  • Проверить таблицу, при попадании выполнить трансляцию

  • Провести маршрутизацию повторно и найти выходной интерфейс

  • Отправить пакет в интерфейс назначения

Last updated