10.9.2. CLI

Описание

По умолчанию, балансировщик работает в режиме Destination NAT: пакет от балансировщика к Worker отправляется с source IP-клиента, а в качестве destination IP указывается IP-адрес Worker. В таблице это будет выглядеть так:

nfware# show vlb tcp sessions
--- global ---
tcp sessions in-use:        2
tcp sessions allocated:     56
tcp sessions released:      54
tcp sessions put:   0
--- socket 0 ---
--- tcp task 0 ---
[12612:3] 192.168.11.2:80 -> 192.168.10.2:36102 [CLOSED] [VRF default]
[15486:0] 192.168.10.2:36102 -> 11.0.0.1:80 [ESTABLISHED] [VRF default]

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

Для решения данной проблемы используются NAT-пулы на балансировщике: пакет от балансировщика к Worker отправляется с source IP из NAT-пула, а в качестве destination также указывается IP-адрес Worker. Для взаимодействия с клиентами на Worker необходимо иметь только маршрут до IP-адресов NAT-пула балансировщика. В таблице это будет выглядеть так:

nfware# show vlb tcp sessions
--- global ---
tcp sessions in-use:        2
tcp sessions allocated:     60
tcp sessions released:      58
tcp sessions put:   0
--- socket 0 ---
--- tcp task 0 ---
[2278:0] 192.168.10.2:60786 -> 11.0.0.1:80 [ESTABLISHED] [VRF default]
[6171:3] 192.168.11.3:80 -> 1.1.1.1:24409 [SYN-SENT] [VRF default]

Настройка

Создание пула

nat pool NAME

Создать NAT-пул и перейти в режим конфигурации.

Добавление диапазона IP-адресов

range A.B.C.D A.B.C.D

Два параметра A.B.C.D используются для задания диапазона IP-адресов, добавляемых в пул. Первый параметр — это первый адрес в диапазоне, второй параметр - последний адрес в диапазоне. Если вам нужно добавить только один IP-адрес, вы можете сделать это, используя этот адрес как в качестве первого, так и второго параметра, например, диапазон 203.0.113.1 203.0.113.1.

Один пул может содержать несколько диапазонов, как смежных, так и не смежных друг с другом по IP-адресам. Количество диапазонов, как и их размер, не ограничено, но общее количество IP-адресов в одном пуле не должно превышать 65536.

Чтобы удалить диапазон, используйте ту же команду с префиксом no. Ранее добавленные диапазоны можно удалять частично. Например, если вы создали диапазон 203.0.113.1 203.0.113.5, но больше не хотите использовать в нем адреса 203.0.113.2 и 203.0.113.3, вы можете удалить их: no range 203.0.113.2 203.0.113.3. Сеансы клиентов, использующие эти адреса, будут автоматически удалены без какого-либо влияния на клиентов, использующих другие публичные IP-адреса из этого пула. Система автоматически разделит диапазон пула на два:

nat pool default-pool
range 203.0.113.1 203.0.113.1
range 203.0.113.4 203.0.113.5
enable

Если вы хотите вернуть его, введите range 203.0.113.2 203.0.113.3, и система автоматически объединит эти два диапазона пулов.

Настройка типа пула

type napt

По умолчанию, используется тип пула NAPT. Пулы такого типа транслируют IP-адреса и порты, то есть один публичный IP-адрес может использоваться многими клиентами.

Настройка режима выделения IP-адресов

pooling arbitrary

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

Настройка VRF

vrf NAME

Указать VRF, в который будут пересылаться пакеты после трансляции с помощью этого пула. Чтобы вернуться в vrf default, используйте команду no vrf NAME.

Включение пула

enable

Включить NAT-пул. Перед тем как отключить пул, убедитесь, что он не используется в Target-группе или Worker.

Соединения клиентов, которые используют этот пул, будут автоматически удалены при отключении пула.

Ограничения

ratio (1-65535)

Установить максимальное количество абонентов на одном внешнем IP-адресе. По умолчанию количество абонентов не ограничено.

Установка порогов использования ресурсов

Чтобы автоматически отслеживать состояние пулов, можно настроить верхний и нижний пороги использования ресурсов. Для пулов с типом NAPT ресурсом являются порты, доступные для выделения на публичных IP-адресах.

Чтобы получать уведомления о превышении порогов, необходимо настроить SNMP-трапы.

thresholds low (0-100)

Задать нижний порог в процентах. Если количество используемых ресурсов ниже порога, система будет генерировать уведомления natv2NotificationPoolUsageLow в соответствии с RFC 7659.

thresholds high (0-100)

Задать верхний порог в процентах. Если количество используемых ресурсов превысит порог, система будет генерировать уведомления natv2NotificationPoolUsageHigh в соответствии с RFC 7659.

thresholds notification-interval <1-3600>

Установить интервал между уведомлениями о превышении указанных пороговых значений использования ресурсов. По умолчанию уведомления отправляются каждые 20 секунд.

Show-команды

show nat pool

Вывести информацию по всем созданным пулам с таблицей использования портов для протоколов ICMP, UDP, TCP, и GRE.

nfware# show nat pool
-------------------------------------------------------------------------
Pool Name          Port Blocks   Max Utilized IP   ICMP   UDP   TCP   GRE
-------------------------------------------------------------------------
p0                          -                 0%     0%    0%    0%    0%
-------------------------------------------------------------------------
show nat pool NAME

Вывести информацию по определенному пулу.

nfware# show nat pool p0
--------------------------------------
              Used      Free      Load
--------------------------------------
ICMP          0         262140      0%
TCP           0         262140      0%
UDP           0         262140      0%
GRE           0         262140      0%
--------------------------------------

где Free = Количество_портов_из_пула - Количество_использованных_портов_из_пула.

show nat pool NAME counters
clear nat pool NAME counters

Вывести информацию по счетчикам Port Map Entries/Creations/Failure Drops.

Entries означает текущее значение, а Creations — значение за все время.

show nat pool NAME ip

Вывести информацию (сколько портов для ICMP, UPD, TCP и GRE занято определенным IP-адресом в процентах) для всех IP-адресов в указанном пуле.

show nat pool NAME ip A.B.C.D

Вывести указанную информацию для определенного IP-адреса из пула.