Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MODE_CFG_FAILED Сетевое оборудование и VPN

IPsec Error MODE_CFG_FAILED: пул виртуальных IP адресов исчерпан

Обновлено: 24.08.2026 · Официальная документация ↗

Удаленные пользователи не могут подключиться к корпоративному VPN:

  • Ошибки: IPsec Error: MODE_CFG_FAILED: Virtual IP address pool exhausted on server, cannot allocate address from pool или received INTERNAL_ADDRESS_FAILURE notify error.
  • Фаза 1 и аутентификация проходят успешно, но клиент не получает виртуальный IP-адрес и отключается.
  • Количество активных подключений достигло предельной емкости настроенной подсети (например, /24).

1. Назначение Mode Config / CP (Configuration Payload, RFC 7296)

В сценариях Remote Access клиент после успешной авторизации запрашивает параметры конфигурации сети у шлюза: внутренний виртуальный IP-адрес, маску подсети, адреса DNS и WINS серверов, доменные суффиксы. Шлюз выделяет IP из локального виртуального пула. Если в пуле не осталось свободных адресов, сервер возвращает статус INTERNAL_ADDRESS_FAILURE (Notify 36).

2. Просмотр текущего распределения пула адресов в strongSwan

# Просмотр занятых и свободных адресов в пулах
swanctl --list-pools

# Пример вывода:
# pool 'virtual_pool': 254/254 allocated, 0 free

3. Расширение диапазона виртуальных IP адресов

В файле конфигурации swanctl.conf расширьте маску виртуального пула (например, с /24 до /22):

pools {
    rw_pool {
        # Расширение диапазона до 1022 доступных хостов
        addrs = 10.100.0.0/22
        dns = 1.1.1.1, 8.8.8.8
        split_include = 10.0.0.0/8
    }
}

connections {
    roadwarrior {
        pools = rw_pool
        # ... остальные параметры ...
    }
}

4. Применение новой конфигурации пула

# Перезагрузка пулов без перезапуска активных туннелей
swanctl --load-pools
swanctl --list-pools

5. Настройка маршрутизации и NAT для расширенной подсети

Не забудьте обновить правила маскарадинга и форвардинга для новой подсети в файрволе ОС:

# iptables
iptables -t nat -A POSTROUTING -s 10.100.0.0/22 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 10.100.0.0/22 -j ACCEPT
💡 Практика специалистов: При проектировании пулов для Remote Access VPN всегда закладывайте запас адресов минимум в 2–3 раза больше, чем планируемое число сотрудников, чтобы избежать исчерпания диапазона во время переподключений с динамических сетей.

Частые вопросы (FAQ)

Почему адреса в пуле не освобождаются сразу после отключения клиента?

Если клиент отключился некорректно (пропал интернет, сел аккумулятор), шлюз держит аренду адреса до тех пор, пока не сработает механизм DPD или не истечет тайм-аут аренды пула.

Можно ли выдавать статические IP конкретным пользователям?

Да. В strongSwan это настраивается через атрибуты пула в связке с RADIUS (атрибут Framed-IP-Address) или явным объявлением static lease в файле конфигурации.

Что такое Split-Include (Split-Tunneling) в Configuration Payload?

Параметр split_include передает клиенту список корпоративных маршрутов. Только трафик к этим сетям пойдет через VPN, а обычный интернет-трафик пойдет через локального провайдера клиента.

Как принудительно очистить все зависшие аренды пула?

Выполните команду 'swanctl --flush-pools' (приведет к кратковременному сбросу назначений) или перезапустите сервис strongswan.

Полезные материалы
Рекомендуем