Создание и настройка пула EcoNAT Documentation / Пулы / Создание и настройка пула
После создания пула можно приступить к заданию его параметров. Для этого необходимо перейти в ветку конфигурации с именем данного пула (приёмы навигации по дереву конфигурации описаны в разделе "Работа с общей конфигурацией устройства"). Пример:
EcoSGE:# create pool test
EcoSGE:# goto pooltest
EcoSGE:pools.pooltest# show
type cgnat
enable
nat_filtering_mode endpoint_independent
acl none
priority 100
global_ip ( )
port_range 1024-65535
hairpin on
connection_logging on
randomize_ports off
timeouts_inactivity
{
translation 86400
udp 300
icmp 60
tcp_handshake 4
tcp_active 300
tcp_final 240
tcp_reset 4
tcp_session_active 120
udp_session 120
icmp_session 120
other 300
special 600
special_tcp_ports ( )
}
limits_peruser
{
portlimit_icmp 1024
portlimit_tcp 1024
portlimit_udp 1024
}
Как видно из примера, к созданному пулу не привязан ACL (у параметра acl значение none). Привязка ACL выполняется вручную.
В таблице ниже дано описание параметров пула.
Параметр | Описание |
---|---|
type | Тип пула: cgnat, cgnat64, static, static64, nat, fake, fake6, port_fwd. Настройка пула port_fwd описана в разделе "Пул port_fwd" |
enable | disable | Включение / выключение пула |
nat_filtering_mode | Режим фильтрации входящего трафика для пула CGNAT:
|
acl | Связанный с пулом ACL для абонентского трафика IPv4. Параметр присутствует в настройках пулов cgnat, nat, static, fake |
aclv6 | Связанный с пулом ACL для абонентского трафика IPv6. Параметр присутствует в настройках пулов cgnat64, static64, fake6 |
priority | Приоритет пула |
global_ip ( ) | Глобальные IP-адреса, относящиеся к пулу. Во избежание ARP-запросов от маршрутизатора к WAN-интерфейсу EcoNAT не рекомендуется назначать global_ip из подсети интерфейсов маршрутизаторов, между которыми включен EcoNAT |
global_map ( ) | Присутствует в настройках пула Static. Задаёт соответствие между локальными и глобальными IPv4-адресами и/или подсетями (правила трансляции). Правила трансляции задаются в формате { <локальный адрес> | <подсеть> }[~vid]-{ <глобальный адрес> | <подсеть> }. VID – идентификатор VLAN от 0 до 4094 (необязательный параметр). Значение VID задаётся с префиксом "~" (тильда) без пробела после адреса. Внимание! Параметр задаёт строгое соответствие локального адреса и локального VLAN определённому глобальному адресу. Если VID не указан, то это подразумевает, что трафик будет нетегированным. Трансляция локальной подсети в глобальную возможна только при одинаковой длине префикса подсетей. Например, global_map ( 10.10.10.0/24-101.102.103.0/24 ) |
global_map_64 ( ) | Присутствует в настройках пула Static64. Задаёт соответствие между локальными IPv6-адресами и глобальными IPv4-адресами (правила трансляции). Можно указать несколько правил трансляции через пробел. Например, global_map_64 ( [2001:DB8::1]-192.0.2.1 [2001:DB8::2]-198.51.100.2 ) |
v6_remote_prefix ( ) | IPv6-префикс для NAT64. Параметр присутствует в настройках пулов CGNAT64 и Static64. В RFC 6052 определён так называемый "хорошо известный" префикс (Well-Known Prefix, WKP) 64:FF9B::/96, рекомендуемый к использованию в типовых случаях. В общем случае можно использовать любой префикс, но при одном условии: он должен иметь длину /96 |
tos2tc_mapping | Присутствует в настройках пулов CGNAT64 и Static64. Определяет действия с полями Type of Service (ToS) и Traffic Class (TC) в заголовках пакетов при трансляциях IPv6 → IPv4 и IPv4 → IPv6. По умолчанию задано значение on. При трансляциях IPv6 → IPv4 в поле ToS создаваемого IPv4-заголовка копируется значение поля TC из заголовка IPv6. При трансляциях IPv4 → IPv6 в поле TC создаваемого IPv6-заголовка копируется значение поля ToS из заголовка IPv4. Если инфраструктура IPv4 использует устаревшую семантику "Type of Service and Precedence", то копирование значений полей ToS и TC можно выключить, присвоив данному параметру значение off. В этом случае при трансляциях IPv6 → IPv4 значение поля ToS создаваемого IPv4-заголовка всегда будет равно нулю (поле TC заголовка IPv6 игнорируется). При трансляциях IPv4 → IPv6 значение поля TC создаваемого IPv6-заголовка всегда будет равно нулю (поле ToS заголовка IPv4 игнорируется). |
port_range | Диапазон внешних портов, доступных для использования на каждом глобальном IP-адресе, принадлежащем cgnat пулу. Рекомендованное значение (диапазон): 1024:65535. При таких настройках в каждом глобальном IP будет доступно 64512 UDP и столько же TCP портов |
hairpin | Разрешает hairpinning. Если адрес во внешней сети совпадает с глобальным адресом одного из пулов, EcoNAT выполнит двойную трансляцию, не отправляя пакет вовне (на WAN). Hairpinning работает только в случае, если он разрешён в обоих пулах, где находятся пользователи, связанные таким образом |
allow_external_connect | Разрешить соединения извне. Параметр действителен для пулов типа NAT |
connection_logging | Логирование соединений: включено (on) или выключено (off) |
randomize_ports | Разрешает выделение портов из блока в случайном порядке (on). Если выключено (off), то порты выделяются поочередно |
timeouts_inactivity | В этом разделе задаются параметры времени неактивности (в секундах) для разных протоколов и состояний TCP, по истечении которого неиспользуемое соединение будет закрыто принудительно. Эти параметры не рекомендуется настраивать без необходимости, можно использовать оптимальные значения «по умолчанию» |
timeouts_inactivity translation | Задаёт время в секундах до истечения которого, даже в случае неактивности пользователя, ему будет гарантировано выделение портов из одного и того же глобального IP. Рекомендованное значение по умолчанию 86400 |
timeouts_inactivity tcp_handshake | Таймаут (в секундах) для трансляции, созданной TCP-пакетом с флагом SYN (запрос на установление TCP-соединения). По умолчанию 4 |
timeouts_inactivity tcp_active | Таймаут неактивности в секундах для установленных TCP соединений в состоянии ESTABLISHED. По истечении этого таймаута порт на глобальном IP высвобождается. По умолчанию 300 |
timeouts_inactivity tcp_final | Таймаут для завершения TCP сессий в секундах. По умолчанию 240 |
timeouts_inactivity tcp_reset | Таймаут для сброса TCP сессий в секундах. По умолчанию 4 |
timeouts_inactivity tcp_session_active | Таймаут неактивности в секундах для активных TCP-сессий. По умолчанию 120 |
timeouts_inactivity udp_session | Таймаут неактивности в секундах для активных UDP-сессий. По умолчанию 120 |
timeouts_inactivity icmp_session | Таймаут неактивности в секундах для активных ICMP-сессий. По умолчанию 120 |
timeouts_inactivity other | Таймаут неактивности в секундах для прочих соединений по IP протоколу (например, для GRE). По истечении этого параметра протокол на глобальном IP высвобождается. По умолчанию 300. (Применимо только к NAT и 1:1 типам пулов) |
timeouts_inactivity special | Таймаут неактивности в секундах для протоколов, которым требуется большее значение таймаута. По умолчанию 600 |
timeouts_inactivity special_tcp_ports ( ) | TCP порты, к которым применяется увеличенное значение таймаута |
limits_peruser | Ограничения числа портов для пользователей |
limits_peruser portlimit_tcp limits_peruser portlimit_udp | Лимит числа глобальных (внешних) портов, которые могут быть выделены одному пользователю (локальному IP-адресу). Рекомендуется задавать значения, кратные 64, от 64 до 32256. Операторам связи имеет смысл назначать для обычных пользователей (физических лиц): от 1024 до 4096. Значения менее 1024 могут приводить к проблемам с работоспособностью некоторых приложений. Значения более 32256 могут привести к тому, что один пользователь сможет исчерпать порты IP-адреса. Для пользователей, особенно требовательных к числу портов, имеет смысл создать отдельный CGNAT-пул с меньшим коэффициентом уплотнения (меньше локальных IP-адресов на один глобальный) или использовать NAT-пул для выделения пользователю отдельного IP-адреса со всеми портами на период его активности |
limits_peruser portlimit_icmp | Этот параметр описывает максимальное количество одновременно существующих ICMP сессий для пользователя |
Данные параметры доступны в зависимости от типа пула. Ниже представлена таблица параметров, доступных для каждого типа пула.
Параметры | cgnat | nat | static | fake | fake6 |
---|---|---|---|---|---|
type | + | + | + | + | + |
enable | + | + | + | + | + |
acl | + | + | + | + | |
aclv6 | + | ||||
priority | + | + | + | + | + |
global_ip ( ) | + | + | |||
port_range | + | ||||
global_map ( ) | + | ||||
hairpin | + | + | + | + | + |
allow_external_connect | + | + | |||
connection_logging | + | + | + | + | + |
randomize_ports | + | + | + | + | + |
timeouts_inactivity | + | + | + | + | + |
limits_peruser | + |
После создания пула, ему нужно добавить глобальные IPv4 адреса, которые будет использовать этот пул. Для этого войдите в режим редактирования пула с помощью команды goto <имя пула> или edit <имя пула> и вызовите команду global _ ip add <глобальный IP-адрес> . Для того чтобы удалить IP-адрес, в режиме редактирования пула вызовите команду global _ ip remove <глобальный IP-адрес> .
MyEcoNAT:4:pools.pooltest# global_ip add 200.0.2.0/24
MyEcoNAT:5:pools.pooltest# show global_ip
global_ip ( 200.0.2.0/24 )
MyEcoNAT:6:pools.pooltest#
MyEcoNAT:4:pools.pooltest# global_ip
MyEcoNAT:5:(pools.pooltest.global_ip)# (
MyEcoNAT:6:(pools.pooltest.global_ip)# 10.11.22.1
MyEcoNAT:7:(pools.pooltest.global_ip)# 2.3.4.5
MyEcoNAT:8:(pools.pooltest.global_ip)# 188.165.1.1
MyEcoNAT:9:(pools.pooltest.global_ip)# )
MyEcoNAT:10:pools.pooltest# show
type cgnat
enable
acl none
priority 100
global_ip (
2.3.4.5
10.11.22.1
188.165.1.1
)
port_range 1024:65535
…
}
MyEcoNAT:11:pools.pooltest# global_ip -=(188.165.1.1 2.3.4.5)
MyEcoNAT:12:pools.pooltest# show
type cgnat
enable
acl none
priority 100
global_ip (
10.11.22.1
)
port_range 1024:65535
…
}
MyEcoNAT:13:pools.pooltest# global_ip +=(
MyEcoNAT:14:(pools.pooltest.global_ip)# 188.165.1.1
MyEcoNAT:15:(pools.pooltest.global_ip)# 111.1.1.255
MyEcoNAT:16:(pools.pooltest.global_ip)# 77.7.7.7
MyEcoNAT:17:(pools.pooltest.global_ip)# )
MyEcoNAT:18:pools.pooltest# show
type cgnat
enable
acl none
priority 100
global_ip (
10.11.22.1
77.7.7.7
111.1.1.255
188.165.1.1
)
port_range 1024:65535
…
}
MyEcoNAT:1:# analyze pooltest
# --- During processing pool 'pooltest' ----:
# No ACL associated with the pool
# use command 'use ACLNAME POOLNAME' to associate acl with a pool
MyEcoNAT:2:#
MyEcoNAT:1:# analyze pooltest
MyEcoNAT:2:#