Ошибка `No buffer space available` (код ошибки `ENOBUFS`) при попытке поднять туннель `sit` (IPv6-in-IPv4) обычно означает, что модуль ядра для работы с туннелями загружен некорректно или, что чаще, в системе уже существует «призрачный» или конфликтующий интерфейс с таким же типом.
Вот пошаговый план решения проблемы:
### 1. Проверка существующих туннелей
Часто ошибка возникает из-за того, что интерфейс `sit0` (базовый туннель) уже занят другим процессом или был некорректно настроен.
Выполните команду:
```bash
Код: Выделить всё
ip tunnel showЕсли вы видите там интерфейс `sit0` или другой туннель, который ссылается на тот же удаленный IP (Server IPv4 Address от Hurricane Electric), попробуйте его удалить:
```bash
Код: Выделить всё
ip link set he-ipv6 down # если он виден в ip a
ip tunnel del he-ipv6 # удаление конкретного туннеля### 2. Перезагрузка модулей ядра
Иногда драйвер туннелирования `sit` входит в состояние ошибки. Его стоит «передернуть»:
```bash
Код: Выделить всё
modprobe -r sit
modprobe sit> **Внимание:** Если `modprobe -r` выдает ошибку "FATAL: Module sit is in use", значит, какой-то интерфейс еще активен. Сначала выключите все туннели через `ifdown` или `ip link set ... down`.
### 3. Удаление «зависшего» интерфейса sit0
Иногда `sit0` создается автоматически и мешает настройке `he-ipv6`. Попробуйте принудительно его удалить перед запуском `ifup`:
```bash
Код: Выделить всё
ip link delete sit0После этого попробуйте снова:
Код: Выделить всё
`ifup he-ipv6`### 4. Проверка конфигурации (`/etc/network/interfaces`)
Убедитесь, что настройки соответствуют стандарту для Hurricane Electric. Типичная ошибка — неправильный `local` IP (если вы за NAT).
Пример правильной записи:
```text
Код: Выделить всё
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address <Ваш_IPv6_Client_Address>
netmask 64
endpoint <IP_Сервера_HE>
local <Ваш_Внутренний_IPv4> # Если вы за NAT, укажите локальный IP сервера (например, 192.168.1.5)
ttl 255
gateway <Ваш_IPv6_Server_Address>### 5. Очистка состояния ifupdown
Если команда `ifup` считает, что интерфейс уже поднят (хотя это не так), она может выдавать ошибки. Сбросьте состояние:
```bash
Код: Выделить всё
ifdown --force he-ipv6
ip tunnel del he-ipv6
ifup he-ipv6---
**Почему это происходит?**
Ядро Linux возвращает `ENOBUFS`, когда не может выделить ресурсы для создания структуры нового сетевого устройства. В контексте `SIT` туннелей это почти всегда означает дублирование параметров (одинаковый `endpoint` и `local` на разных интерфейсах) или ограничение на количество туннелей в системе.