Temat: Ciekawostka ZTE MC889 -> OpenWRT - DHCP Client nie pobiera bramy ;-)
Ciekawostka, bo cały dzień walczyłem.
Kupiłem sobie do jednej lokalizacji urządzenie ZTE MC889 które jest klientem sieci komórkowej 5G (w środku karta od Vikingów).
Urządzenie pracuje w trybie mostu. Gdyby Vikingi dawały adres publiczny, podałoby na WAN routera na OpenWRT adres publiczny.
Nie ma jednak tak dobrze, Vikingi NAT-ują swoich klientów, ale to nie ma znaczenia.
Szalenie dziwne jest natomiast to, że o ile taki modem wepniemy bezpośrednio na WAN laptopa, to Windows pobierze sobie DHCP clientem wszystkie dane i internet hula bez problemu.
Tym czasem WAN OpenWRT na sprzęcie:
Kernel Version:5.15.139
Model:CUDY X6 v1
Architecture:MediaTek MT7621 ver:1 eco:3
Firmware Version:OpenWrt 23.05-SNAPSHOT r23695-80ef582dee
pobiera sobie bez problemu w ZTE MC889 prawie wszystko, prawie, bo nie potrafi pobrać bramy, przez co nie potrafi ustawić trasy do bramy, i mimo, że iternfejsy LAN i WAN wstają i wydają się działać poprawnie, komputery na lanie nie mają dostępu do internetu.
Nie mają netu, bo nie ma trasy do bramy:
# ip route show
100.103.153.128/29 dev wan scope link src 100.103.153.132
178.43.122.75 via 100.103.153.133 dev wan
192.168.54.0/24 dev br-lan scope link src 192.168.54.1
ręczne wykonanie
ip route add default via 100.103.153.133 dev wantymczasowo rozwiązuje problem. Internet hula.
ChatGPT wymyśłił rozwiązanie które działa i które podziała do póki Vikingi nie zmienią sposobu przydzielania adresów swoim klientom:
Skrypt:
/etc/hotplug.d/iface/99-fix-wan-gateway
#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
[ "$INTERFACE" = wan ] || exit 0
# Sprawdzamy czy jest trasa default
ip route | grep -q '^default' && exit 0
# Jeśli brak default gwiazdy, próbujemy ją dodać
WAN_IP=$(ip addr show dev wan | awk '/inet / {print $2}' | cut -d/ -f1)
[ -z "$WAN_IP" ] && exit 0
# Wyciągamy adres IP i wyliczamy bramę
IFS=. read -r o1 o2 o3 o4 <<EOF
$WAN_IP
EOF
GATEWAY_IP="$o1.$o2.$o3.$((o4 + 1))"
# Dodajemy trasę
ip route add default via "$GATEWAY_IP" dev wan
logger -t hotplug "Brama WAN została ustawiona dynamicznie na $GATEWAY_IP"Trzeba przyznać, że rozwiązanie działa i po reboocie internet hula.
Pytanie tylko dlaczego OpenWRT nie potrafi sobie pobrać / prawidłowo zinterpretować bramy po zapytanieu DHCP do ZTE?