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-адреса под публичным "псевдонимом"
Basic Static PAT
Статическая трансляция порта
Используется для публикации отдельного сервиса (как правило, если используется несколько сервисов на одном IP-адресе)
Dynamic NAT
Выдает публичные адреса из пула свободным узлам из частной сети, а после завершения активности возвращает адреса обратно в пул
Dynamic PAT
"Рабочая лошадка" современных сетей
Предоставляет доступ в Интернет, используя пул публичных адресов
Может использовать адрес с интерфейса (например, полученный по DHCP)
Расширенными ACL можно гибко отбирать пакеты для трансляции
Порядок операций в 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
Порядок операций в NVI
Получить пакет на входном ip nat enable интерфейсе
Провести маршрутизацию на виртуальный интерфейс NVI0
Проверить таблицу, при попадании выполнить трансляцию
Провести маршрутизацию повторно и найти выходной интерфейс
Отправить пакет в интерфейс назначения
Last updated