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-адреса из пула.