> ## Documentation Index
> Fetch the complete documentation index at: https://docs.axottle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Сетевые адреса

> Вкладка «Сеть» в карточке ноды: инвентарь адресов, привязка дополнительного IP и роли входа и выхода в схеме.

У ноды редко бывает ровно один адрес. Провайдер выдаёт дополнительный IP, кто-то берёт подсеть, кому-то нужно, чтобы клиенты приходили на один адрес, а наружу нода уходила с другого. Вкладка **Сеть** в карточке ноды показывает, что на ноде есть на самом деле, и позволяет этим распорядиться.

<Info>Для кого: администратор панели, SRE. Требуемые права: чтение — просмотр нод, запрос к ноде и привязка адреса — операции с нодами, роли — редактирование нод. Лицензия: ключ `core.node_network` (чтение сохранённого доступно на любом тарифе).</Info>

<Note>
  Адреса читает и меняет агент. На ноде без агента вкладка так и говорит и не предлагает кнопок, которые не сработают. SSH-запасного пути здесь нет.
</Note>

## Инвентарь

Список адресов приносит агент по запросу панели. Сама панель на ноду за ним не ходит, поэтому рядом всегда написано, когда его смотрели в последний раз, а кнопка «Спросить ноду» перечитывает список заново. На ноде при этом ничего не меняется.

У каждого адреса видно интерфейс, маску, шлюз и то, откуда он взялся:

* **Адрес панели** — по нему панель ходит на ноду. Снять его нельзя: связь с нодой держится на нём.
* **Этот адрес прописала панель** — свой, добавленный отсюда. Только такие панель и снимает.
* **Выдан автоматически** — приехал по DHCP или SLAAC и может смениться сам.
* **Пропал** — адрес, которого на ноде больше нет. Из списка он не исчезает, а остаётся с временем последней встречи: провайдер, переселивший ноду, это ровно то событие, ради которого инвентарь и заводится.

Пустой список никогда не выдаётся за факт. «Спросили, и адресов больше нет», «ноду ещё не спрашивали» и «спрашивать некого» — три разных состояния, и вкладка их различает. Неудачный запрос ничего не помечает пропавшим: показания остаются с прошлой проверки, о чём написано прямо в карточке.

Ниже инвентаря идут две справочные карточки: каким маршрутом нода выходит в интернет по умолчанию и, если они есть, её собственные правила маршрутизации и таблицы.

## Привязать адрес

Поле в диалоге одно: адрес, который выдал провайдер. Интерфейс, маску, шлюз и необходимость отдельной таблицы маршрутизации панель выводит из инвентаря и сразу показывает словами, что получится.

Типовой случай — соседний адрес из той же подсети: маршрут для неё на ноде уже есть, добавлять нечего. Второй вопрос появляется там, где ядру физически неоткуда взять ответ: адрес из чужой подсети. Тогда панель спрашивает шлюз и подставляет тот, которым нода пользуется сама, а заодно заводит адресу отдельный маршрут, чтобы ответы уходили тем же путём, каким пришли.

<Warning>
  Панель настраивает адрес на самой ноде. Если провайдер требует привязать адрес к серверу у себя (Hetzner, OVH и подобные), это делается в его панели. Иначе адрес пропишется, но работать не будет.
</Warning>

### Как применяется

Применение двухфазное, и это защита от потери ноды:

<Steps>
  <Step title="Нода применяет адреса вживую">
    Агент ставит адреса в работающее ядро и заводит откат по таймеру.
  </Step>

  <Step title="Панель стучится второй раз">
    Второй заход и есть проверка связи: задача прошла по той самой сети, которую только что поменяли.
  </Step>

  <Step title="Конфигурация записывается на диск">
    Только после этого адреса становятся постоянными.
  </Step>
</Steps>

Не достучались — нода вернёт всё сама, а вкладка честно скажет, что откатились.

Отдельной строкой показывается, переживут ли адреса перезагрузку. Если панель не нашла на ноде знакомой сетевой конфигурации, адреса будут работать до ребута, и об этом сказано прямо: адрес, живущий до перезагрузки, ломает схему ровно тогда, когда на него уже понадеялись.

Кнопка «Проверить» перечитывает с ноды именно те адреса, которые прописала панель, и сравнивает с тем, что просили. Расхождение обычно означает ручную правку на сервере или перезагрузку.

## Роли: вход и выход

Роль говорит, зачем адрес нужен схеме.

| Роль         | Что делает                                                                                                                  |
| ------------ | --------------------------------------------------------------------------------------------------------------------------- |
| Вход         | На него подключаются клиенты. Подставляется в `listen` у inbound и уезжает в конфиг клиента вместо адреса администрирования |
| Выход        | С него нода идёт в интернет. Подставляется в исходящий прямой трафик Xray                                                   |
| Вход и выход | И то, и другое                                                                                                              |
| Без роли     | Адрес просто есть на ноде                                                                                                   |

Роли начинают действовать, когда схема с этой нодой применена заново. Собственный трафик ноды (обновления, `curl`, агент) роли не меняют: они про трафик клиентов.

Роль можно назначить только адресу, который на ноде действительно есть. Схема, прикреплённая к объявленному, но отсутствующему адресу, скомпилировалась бы чисто и не обслужила никого: inbound не поднялся бы, а выход не дозвонился.

### Резерв

Второй адрес с той же ролью становится резервом, а не забирает трафик. Так и задумано: отмечая второй выход, оператор готовит запасной, а не перенаправляет живой трафик. Переключение — отдельное действие, кнопка «Переключить на этот»: адреса меняются местами в одной транзакции, и роль ни на миг не оказывается у двоих сразу.

### Что панель скажет вслух

Компилятор схемы отклоняет то, что заведомо не заработает, и объясняет причину:

* **Блок с адресом-ролью должен содержать ровно одну ноду.** Связка компилируется в один config profile, который получают все её ноды. Адрес есть у одной, поэтому для остальных `listen` с этим адресом — команда, которую они выполнить не могут: inbound не поднимется, и нода молча перестанет принимать клиентов.
* **Прямого выхода в схеме нет** — значит адрес выхода задаёт WARP или прокси, а не роль.
* **Выходных адресов отмечено несколько** — работает первый; разделять трафик между ними пока нельзя.
* **`listen` выставлен руками в блоке** — это решение оператора, и роль его не перебивает.

## Проверил ли кто-нибудь, что нода выходит с назначенного адреса

Назначить роль и убедиться, что нода ей пользуется, — разные вещи. Правило маршрутизации могло не встать, провайдер мог отобрать адрес. Поэтому панель отдельно смотрит, за кого ноду принимает интернет: карточка **Выход в интернет** в карточке ноды показывает наблюдаемый адрес и страну выхода, прочитанные через туннель самой схемы. Подробности — в [Уровнях проверок](/ru/health/probes#выход-в-интернет).

## Ограничения

* Ноде без агента фича недоступна целиком.
* На незнакомом сетевом стеке адреса встанут только в живое ядро: постоянными их сделать не выйдет, и вкладка об этом скажет.
* Чужие адреса панель показывает, но не снимает. Снять можно только то, что она сама и прописала.
* Разделить трафик между несколькими выходными адресами одной ноды пока нельзя: первый забирает весь прямой выход.

## Типовые ошибки

<AccordionGroup>
  <Accordion title="«Агент не выходит на связь»">
    Список остаётся с прошлой проверки, и менять адреса нечем. Начните со вкладки **Агент**: жив ли он, приходит ли heartbeat.
  </Accordion>

  <Accordion title="Адрес добавлен, но провайдер его не маршрутизирует">
    Проверьте в панели провайдера, привязан ли адрес к этому серверу. Панель делает свою половину работы, чужую половину сделать не может.
  </Accordion>

  <Accordion title="«Нода вернула адреса как было»">
    После смены адресов панель не смогла достучаться до ноды, и нода откатилась сама. Убедитесь, что адрес администрирования не задет и что новый адрес не конфликтует с существующим маршрутом.
  </Accordion>

  <Accordion title="Роль назначена, а в конфиге клиента прежний адрес">
    Роли доезжают до ноды только с применением схемы. Примените Connection Unit заново.
  </Accordion>
</AccordionGroup>

Связанные страницы: [Обзор нод](/ru/nodes/overview), [Маршрутизация](/ru/connection-units/routing), [Уровни проверок](/ru/health/probes), [Метрики и службы](/ru/nodes/metrics-and-services).
