Logo

EcoRouter

EcoNAT

EcoQOE

EcoBypass

EcoSwitch

English

  • Оборудование
  • Вход в систему
  • Подсказки и горячие клавиши
  • Работа с общей конфигурацией устройства
  • Первичная настройка
  • Хранилище сертификатов SSL
  • Настройки интерфейсов
  • ACL
  • Карты классов трафика
  • Подсистема NAT
  • Подсистема BRAS
  • Подсистема DPI
  • Подсистема логирования
  • Перенаправление DNS-запросов
  • Подмена IP-адресов в DNS-ответах
  • Защита от TCP SYN Flooding
  • Функция Sniffer
  • Общая диагностика системы
  • Действия с прошивкой
  • Счётчики
  • Справочник по командам
  • Создание и настройка пула EcoNAT Documentation / Пулы / Создание и настройка пула

    Для создания пула необходимо отправить команду create pool <имя>. Имя пула может содержать только латинские буквы (регистр учитывается), цифры и знак подчёркивания. Будет создан CGNAT-пул с типовыми параметрами (см. описание в разделе "Пул CGNAT") и именем poolИМЯ (добавляется префикс «pool»). Если заданное имя пула уже начинается с префикса «pool», например, «pooltest», то имя не меняется, и в дальнейшем этот пул будет находиться в ветке конфигурации pools с именем pooltest. При попытке создать пул с уже существующим именем пул не будет создан. Например, если после изменения параметров pooltest попытаться создать пул с названием «test» (которое будет автоматически изменено на «pooltest»), конфигурация пула pooltest не изменится, а новый пул не будет создан.

    После создания пула можно приступить к заданию его параметров. Для этого необходимо перейти в ветку конфигурации с именем данного пула (приёмы навигации по дереву конфигурации описаны в разделе "Работа с общей конфигурацией устройства"). Пример:

    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:

    • endpoint_independent – пропускать весь входящий трафик, поступающий на глобальный адрес существующей трансляции, независимо от того, с какого внешнего адреса/порта этот трафик отправлен (режим по умолчанию);
    • address_dependent – пропускать только тот входящий трафик, который поступает на глобальный адрес существующей трансляции с того же внешнего адреса, для которого была открыта исходящая сессия. При этом внешний порт может меняться. Для каждого нового внешнего порта создаётся новая входящая сессия;
    • address_and_port_dependent – пропускать только тот входящий трафик, который поступает на глобальный адрес существующей трансляции с того же внешнего адреса и порта, для которого была открыта исходящая сессия.
    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 сессий для пользователя

    Данные параметры доступны в зависимости от типа пула. Ниже представлена таблица параметров, доступных для каждого типа пула.

    Параметрыcgnatnatstaticfakefake6
    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#
    Для удобства работы с массивами IP-адресов предусмотрен альтернативный вариант изменения параметра global _ ip . Для этого необходимо перейти в редактируемый пул в ветке конфигурационного дерева, войти в параметр global _ ip и воспользоваться командами add и remove или символьными командами += для добавления адресов, -= для удаления адресов. Для того чтобы добавить/удалить несколько адресов сразу, их можно ввести внутри скобок, разделяя переводом строки. Для того чтобы внести адреса в пустой массив или полностью заменить имеющийся массив, введите список адресов в скобках, как указано выше, без команды add или символьной команды +=. При внесении изменений в параметр global _ ip, CLI не выйдет из режима редактирования параметра до тех пор, пока не будет введена закрывающая скобка.
    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
      …
      }
    Созданный пул можно продиагностировать с помощью команды analyze <имя пула> . Вывод команды покажет, чего не хватает для нормальной работы пула.       
    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:#