Linux Routing
Skill про маршрутизацию и NAT на Linux-хосте (iproute2 + nftables).
Пиши команды ip/nft, которые можно вставить в консоль или unit.
Не используй для:
- OpenWrt + podkop/sing-box →
podkop-openwrt-guide - zapret DPI →
zapret-openwrt-guide - Docker bridge overlay как основной предмет →
docker-ops - Amnezia ключи/handshake →
amnezia-vpn, сюда только OS-routes/NAT
Когда использовать
- Два default route, VPN + WAN, split-tunnel.
ip rule, таблицы, fwmark, source-based routing.- NAT/masquerade, port forward, conntrack.
- Пакет уходит в VPN, ответ не возвращается; asymmetric routing.
- WireGuard/AWG
AllowedIPsvsip route.
Workflow
- Сними картину:
ip -br addr,ip route,ip rule,nft list ruleset. - Отдели L3 (route/rule) от L4 NAT (nft) и от firewall drop.
- Меняй одну таблицу/rule за раз. Не сноси default в main вслепую.
- Проверяй
ip route get <dst> from <src> iif <if> mark <hex>. - Persistence:
/etc/iproute2/rt_tables, netplan/NM dispatcher, nftables.conf — не «команды в истории SSH».
Быстрый снимок
ip -br addr
ip route show table all
ip rule show
ip route get 1.1.1.1
nft list ruleset
sysctl net.ipv4.ip_forward net.ipv4.conf.all.rp_filter
conntrack -S 2>/dev/null
Модель
Пакет идёт так: rule → table → route → nft (filter/nat) → device.
AllowedIPs в WG/AWG — это cryptokey routing внутри интерфейса, не замена
ip rule. Если OS не отправила пакет в awg0, туннель ни при чём.
Companion skills
- Host systemd/sshd/disk →
administering-linux. - Docker published ports vs iptables-nft → вместе с
docker-ops. - AWG handshake/keys →
amnezia-vpn.
References
references/policy-routing.md— tables, rules, fwmark, split-tunnel.references/nftables.md— NAT, forward, conntrack, rp_filter.