Содержание

CGNAT. Трансляция сетевых адресов для IPv4

Зачем NAT применяется на практике:

Технология NAT позволяет экономить адресное пространство IPv4 и снижает вероятность взлома устройств, находящихся в сети оператора связи. На СКАТ доступна настройка двух режимов:

Проверим на тестах:
Тест 1. Настройка CGNAT и NAT 1:1 через CLI
Тест 2. Настройка CGNAT и NAT 1:1 через GUI
Тест 3. Настройка выгрузки NAT log на внешний коллектор и локально в файл

Условия тестов:
  1. Установка СКАТ “в разрыв”
  2. ПК с интернетом, подключенном через СКАТ.
  3. СКАТ расположен между двумя L2- или L3-устройствами провайдера

Приступаем к тестированию. Действия могут выполняться как в графическом интерфейсе СКАТ, так и через CLI. Выбор способа за клиентом, в инструкции представлены оба способа


Тест 1. Настройка CGNAT и NAT 1:1 через CLI

  • Создание услуги NAT
  • Назначение услуги NAT на абонента
  • Создание обратного маршрута
  • Проверка прохождения трафика
  • Вывод информации о трансляциях

1. Создание услуги NAT (CLI)

Вводим команду в командной строке:

CGNAT:

fdpi_ctrl load profile --service 11  --profile.name cg_nat --profile.json '{ "nat_ip_pool" : "10.10.10.0/24", "nat_tcp_max_sessions" : 2000, "nat_udp_max_sessions" : 2000 }'

NAT 1:1:

fdpi_ctrl load profile --service 11  --profile.name bi_nat --profile.json '{ "nat_ip_pool" : "10.10.10.0/24", "nat_type": 1 }'

Значения в команде:

2. Назначение услуги NAT на абонента (CLI)

CGNAT

Назначение услуги NAT на абонента возможно по IP или CIDR

Пример команды подключения услуги по IP:

fdpi_ctrl load --service 11 --profile.name cg_nat --ip 100.64.0.1

Пример подключения услуги на весь CIDR:

fdpi_ctrl load --service 11 --profile.name cg_nat --cidr 100.64.0.0/24

NAT 1:1

Пример команды подключения услуги по IP:

fdpi_ctrl load --service 11 --profile.name bi_nat --ip 100.64.0.1

Пример подключения услуги на весь CIDR:

fdpi_ctrl load --service 11 --profile.name bi_nat --cidr 100.64.0.0/24

Этих команд достаточно для настройки NAT на СКАТ. При этом СКАТ по умолчанию работает в режиме прозрачного моста, то есть создает NAT трансляции и направляет трафик в обе стороны, но не участвует в маршрутизации.

3. Создание обратного маршрута (CLI)

Чтобы обратный трафик в сторону NAT пула был смаршрутизирован к абонентам, потребуется создать маршрут к NAT-пулу на следующем за СКАТ маршрутизаторе и сделать этот маршрут известным остальным маршрутизаторам сети.
Рассмотрим ситуацию, когда на маршрутизаторах, между которыми стоит СКАТ, настроена стыковочная сеть 10.0.1.0/30, IP на интерфейсе маршрутизатора со стороны абонентов (R1) - 10.0.1.2, IP на интерфейсе маршрутизатора после СКАТ (R2) - 10.0.1.1 (см. схему).

На маршрутизаторе R2 потребуется настроить маршрут к NAT-пулу. Для cisco-like CLI настройка будет выглядеть так:

conf t
ip route 10.10.10.0 255.255.255.192 10.0.1.2

Также потребуется настроить редистрибуцию статических маршрутов, чтобы об этом маршруте было известно не только R2, но и в остальной сети оператора. В случае, если используется ospf:

router ospf 1
redistribute static subnets metric-type 1

Где 1 в router ospf 1 — номер процесса OSPF на маршрутизаторе.

4. Проверка прохождения трафика и ориентации интерфейсов (CLI)

С тестового ПК провести проверку применения NAT:

В In интерфейс подключены абоненты, в Out интерфейс подключен интернет.
Определить где какой интерфейс возможно путем перевода порта, подключенного к СКАТ, в состояние down на R1 и вывести статус интерфейсов на СКАТ.

fdpi_cli dev xstat|grep --no-group-separator -B1 "Link status"|paste - -|sort
Device 02:00.0: Link status: link down
Device 02:00.1: Link status: link up

Проверить соответствие в fastdpi.conf
При необходимости изменить направление и сделать рестарт сервиса через команду

service fastdpi restart

5. Вывод информации о трансляциях (CLI)

По каждому IP возможно сделать вывод текущего состояния услуги NAT.

Просмотр через fdpi_ctrl количества активных сессий и назначенного белого адреса для конкретного серого адреса:

fdpi_ctrl list status --service 11 --ip 192.168.4.20

Результат:
Абонентские приватные IP-адреса транслируются в Публичные IP-адреса.

Тест 2. Настройка CGNAT и NAT 1:1 через GUI

  • Создание услуги NAT
  • Назначение услуги NAT на абонента
  • Создание обратного маршрута
  • Проверка прохождения трафика
  • Вывод информации о трансляциях

1. Создание услуги NAT (GUI)

  1. Открываем раздел Управление DPI/Услуги. Вкладка CGNAT. Создаем Профиль с именем cg_nat.
  2. Создаем Профиль с именем bi_nat.
  3. Затем нужно активировать данную услугу в СКАТ нажатие кнопки Play. Статус поменяется на “включен”.

2. Назначение услуги NAT на абонента (GUI)

В том же разделе “Управление DPI/Услуги”, вкладка CGNAT.
В правой колонке “Абоненты” добавляем абонента, выбираем тип “без привязки”, вводим IP абонента, выбираем 11 услугу “CGNAT” или “NAT 1:1”, указываем галочка “Да” включить, выбираем профиль, нажимаем “Применить” и “Сохранить”.

Этих команд достаточно для настройки NAT на СКАТ. При этом СКАТ по умолчанию работает в режиме прозрачного моста, то есть создает NAT трансляции и направляет трафик в обе стороны, но не участвует в маршрутизации.

3. Создание обратного маршрута (GUI)

Действия те же, что и в п. 3 настройки через CLI

4. Проверка прохождения трафика и ориентации интерфейсов (CLI)

С тестового ПК провести проверку применения NAT:

В In интерфейс подключены абоненты, в Out интерфейс подключен интернет.
Определить где какой интерфейс возможно путем перевода порта, подключенного к СКАТ, в состояние down на R1 и вывести статус интерфейсов на СКАТ.

Проверить соответствие в fastdpi.conf
При необходимости изменить направление и сделать рестарт сервиса через команду

service fastdpi restart

5. Вывод информации о трансляциях (GUI)

По каждому IP возможно сделать вывод текущего состояния услуги NAT (GUI)

Результат:
Выводится информация по трансляции приватного адреса в публичный.

Тест 3. Настройка выгрузки NAT log на внешний коллектор и локально в файл

  • Журналирование в текстовом формате
  • Экспорт во внешние коллекторы

Работа с NAT log возможна в двух вариантах: запись локально в файл или выгрузка на внешний коллектор.

Вариант 1. Ведение журнала трансляций в текстовом формате через CLI

Для записи NAT трансляций в текстовый лог на сервере СКАТ в конфигурационном файле /etc/dpi/fastdpi.conf настраиваются следующие параметры:

ajb_save_nat=1
ajb_save_nat_format=ts:ssid:event:login:proto:ipsrc:portsrc:ipsrcpostnat:portsrcpostnat:ipdst:portdst
ajb_nat_path=/var/dump/dpi
ajb_nat_ftimeout=30

где:

:!: Файловая система для записи логов должна быть быстрой и локальной (никаких NFS и других remote), данный вариант журналирования рекомендуется только в целях кратковременной диагностики

Вариант 2. Экспорт трансляций на внешние коллекторы в формате IPFIX

Для анализа данных по совершенным NAT трансляциям на внешних системах можно экспортировать эти данных по сети в формате ipfix (aka netflow v10). Экспорт NAT трансляций настраивается следующими параметрами:

ipfix_dev=em1
ipfix_nat_udp_collectors=1.2.3.4:1500,1.2.3.5:1501
ipfix_nat_tcp_collectors=1.2.3.6:9418

где:

Настройка журнала трансляций через GUI

Открываем раздел Управление DPI/Конфигурация. Добавляем в режиме редактора параметры записи локально в файл или выгрузки на внешний коллектор. Сохраняем и делаем рестарт сервиса.