Какой интерфейс за что отвечает
Имя интерфейса принимают три настройки: фильтр захвата движка пакетов и два поля сета маршрутизации. Они находятся в разных местах веб-интерфейса и отвечают за разное.
| Настройка | Где | Что фильтрует | Если ничего не выбрано |
|---|---|---|---|
| Интерфейсы захвата | Настройки > Основные > Движок пакетов | Какие пакеты разбирает движок | Все интерфейсы |
| Исходные интерфейсы | DNS & Маршрутизация > Маршрутизация трафика сета | Какой приходящий трафик попадает в правила сета | Любой интерфейс |
| Выходной интерфейс | DNS & Маршрутизация > Маршрутизация трафика сета | Куда уходит совпавший пакет | Сет ничего не маршрутизирует |
Первые две - фильтры, они сужают то, что делает b4. Трафик куда-то отправляет только третья. Имена интерфейсов принимают также списки интерфейсов NAT Masquerade и DSCP и Аплинк-интерфейс движка TUN.
Интерфейсы захвата
Поле описано в разделе Интерфейсы захвата. Для транзитного трафика движок сравнивает интерфейс, через который пакет уходит: правила захвата срабатывают после того, как ядро выбрало маршрут. По интерфейсу, через который пакет пришёл, сопоставляются только обратное направление и DNS.
Интерфейс, через который пакет уходит, берётся из таблицы маршрутизации. VPN-клиент, policy-маршрут или прозрачный прокси, сдвинувший маршрут по умолчанию, меняет его, не трогая этот список, и выбор, сделанный раньше, перестаёт совпадать. Пока выбор ни с чем не совпадает, b4 ничего не разбирает, и ни один сет не применяется.
Исходные интерфейсы
Каждое имя превращается в квалификатор iifname (-i в iptables) в правилах маркировки, TPROXY и блокировки сета, то есть выбирает, какой приходящий трафик в эти правила попадёт. Сопоставление идёт по приходу:
- WAN-интерфейс здесь никогда не совпадёт с трафиком из локальной сети. Трафик клиента LAN приходит на мост, на большинстве домашних роутеров это
br0, а не на аплинк. - Трафик, который роутер порождает сам, не приходит ни с какого интерфейса, поэтому сет с исходным интерфейсом не маршрутизирует, не проксирует и не блокирует собственные соединения роутера. См. Трафик самого роутера.
Исходные устройства в Цели > Исходные устройства действуют так же, если это не исключающий список. Обычно ничего не выбирают; имя здесь нужно сету, который покрывает один сегмент.
Выходной интерфейс
Адреса сета помечаются, а ip rule отправляет метку в таблицу маршрутизации, где маршрут по умолчанию ведёт на этот интерфейс. См. Сетевой интерфейс и Как работают сеты маршрутизации.
Как найти ошибочную настройку
| Симптом | Что проверить |
|---|---|
| На странице Трафик пусто или есть только трафик самого роутера | Интерфейсы захвата |
| Сеты применяются к роутеру, но никогда к клиенту | Интерфейсы захвата, затем исходные интерфейсы |
| У правила маркировки сета нулевые счётчики пакетов в файрволе | Исходные интерфейсы |
| Трафик помечается, но уходит не туда | Выходной интерфейс и любой другой сервис с записями ip rule |
На первые два отвечает страница Трафик. Если единственный источник - сам роутер (Роутер в списке устройств или его собственный адрес в сыром потоке), движок видит только трафик, который роутер порождает сам.
Когда policy-маршрутизацией занимается ещё один сервис, сет может правильно помечать трафик и всё равно не попадать в свою таблицу. Этот случай разобран в разделе b4 вместе с Xray или XrayUI.