0887 371 498 support@itservice-bg.net
26.01.2021 · Самуил Арсов · openwrt, Рутери

OpenWrt: отдалечен достъп, DHCP, port forward, shaping и conntrack

Шест настройки, които почти винаги се налагат след като сложите OpenWrt на рутер: да го достигате отдалечено, да дадете постоянен адрес на домашния сървър, да пуснете порт към него, да ограничите скоростта на отделни клиенти, да вдигнете таблицата за проследяване на връзките и — ако доставчикът връзва услугата към MAC адрес — да смените MAC-а на WAN. Първите три се правят от уеб интерфейса LuCI, останалите три са през конзолата.

1. Отдалечен достъп

Едно от най-важните неща в един рутер е отдалеченият достъп, за да може устройството да се администрира от друга точка в Интернет, меню: Network => Firewall => Traffic Rules

Правило за отдалечен достъп в OpenWrt

Ако отваряте управлението към Интернет, ограничете правилото до конкретен адрес или мрежа и не оставяйте достъпа по HTTP — оставете само HTTPS и SSH с ключ.

2. Статичен адрес по DHCP

Домашният ми сървър трябва да получава всеки път един и същ вътрешен IP адрес в моята локална мрежа, меню: Network => DHCP and DNS => Static Leases

Статичен DHCP lease в OpenWrt

3. Пренасочване на порт

Пренасочване на порт от Интернет към домашния ми сървър в локалната мрежа, меню: Network => Firewall => Port Forwards

Пренасочване на порт в OpenWrt

4. Ограничаване на скоростта по IP или MAC

nft-qos е леко QoS решение върху nftables, с което ограничавате скоростта на отделни клиенти по IP или MAC адрес, направо от уеб интерфейса.

root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install nft-qos luci-app-nft-qos
Настройки на nft-qos в LuCI
Лимити по IP и MAC адрес
Проверка на ограничението със speedtest

След инсталацията лимитите се задават от LuCI в меню Services => QoS over Nftables — статичен лимит per IP или per MAC, без ръчни правила. Пакетът изисква OpenWrt с nftables (firewall4).

5. Таблицата за проследяване на връзките (conntrack)

Connection tracking таблицата на OpenWrt пази запис за всяка активна връзка. На рутери с малко памет лимитът е нисък и при повече клиенти или P2P трафик таблицата се пълни — в лога се появява nf_conntrack: table full, dropping packet и нови връзки започват да отпадат. Лимитът се вдига с:

Текуща стойност на nf_conntrack_max
sysctl net.nf_conntrack_max=32768
Прилагане на новата стойност
Брой активни връзки
Проверка след промяната

За да остане настройката след рестарт, добавете реда net.nf_conntrack_max=32768 във файл в /etc/sysctl.d/. Всеки запис заема памет — на устройства с 32 MB RAM не увеличавайте стойността излишно.

6. Смяна на MAC адреса на WAN (без LuCI)

Някои доставчици връзват услугата към MAC адреса на рутера. При смяна на устройството с OpenWrt най-бързото решение е WAN интерфейсът да получи стария MAC. Командите по-долу (WAN на VLAN интерфейс eth0.2) се изпълняват еднократно или се добавят в /etc/rc.local, за да оцелеят рестарт:

Смяна на MAC адреса на WAN интерфейса в OpenWrt
sleep 5
ifconfig eth0.2 down
sleep 5
ifconfig eth0.2 hw ether 74:4D:28:86:1F:1B
sleep 5
ifconfig eth0.2 up

Трайният вариант без скриптове е през UCI: uci set network.wan.macaddr='74:4D:28:86:1F:1B', после uci commit network и service network restart. Името на интерфейса зависи от устройството — проверете с ip link.