Přejít na obsah
View in the app

A better way to browse. Learn more.

Vodafone Techforum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Přístup do SFP modulu s VLAN na WANu

Doporučené odpovědi

Odesláno

dneska sem s claudem řešil, jak se dostat do administrace modulu, kterej mám přímo v routeru a nedobytně sedí za WAN v úplně jiný síti - hodí se to pro kontrolu teploty, úrovně signálu a dalších věcí a taky pro aktualizaci firmwaru přímo v modulu 😮 tady je návod, třeba se někomu bude taky hodit 🤔

image.png

Přístup k webu SFP modulu (8311) přes Asus router s VLAN na WANu

Máte XGS-PON modul s komunitním firmwarem 8311 přímo v SFP+ portu Asus routeru a chcete se z domácí sítě dostat na jeho web (výchozí 192.168.11.1)? Pokud WAN jede přes VLAN (např. CETIN VLAN 848 + PPPoE), samotný alias IP ani statická routa nepomohou. Tenhle návod to řeší bez Merlina, na stock firmwaru.

Testováno na: Asus RT-BE88U, stock firmware, PPPoE na VLAN 848, modul PRX126 s 8311 firmwarem na 192.168.11.1. Na dalších Asusech s Broadcom čipem (BN/BE/AX série) by to mělo fungovat stejně, ale berte to jako nevyzkoušené.

Proč to normálně nejde

Modul má management na netagované síti 192.168.11.0/24, kdežto internet jede ve VLAN 848. Broadcom routery řeší VLAN na WANu přes nástroj vlanctl a jeho výchozí pravidlo pro netagované příchozí rámce je DROP. Router tedy odpovědi modulu prostě zahazuje.

Skript proto:

  • vytvoří nad fyzickým WAN portem virtuální rozhraní eth9.mgmt,

  • přidá vlanctl pravidlo, které netagované rámce pošle na toto rozhraní místo zahození,

  • dá routeru adresu 192.168.11.2,

  • zapne NAT (MASQUERADE), takže se na modul dostanete z jakéhokoli PC v LAN bez úprav.

VLAN 848 ani PPPoE se to nedotkne. Nic se neukládá do NVRAM, po restartu routeru je vše pryč (skript zůstává uložený).

1. Zapněte SSH na routeru

Web routeru → Administrace → Systém → Povolit SSH: Pouze LAN, port 22 → Použít.

2. Připojte se přes PuTTY

Host: IP routeru (např. 192.168.1.1), port 22, typ SSH. Přihlašovací jméno a heslo jsou stejné jako do webu routeru.

Tip: obrazovku vyčistíte příkazem clear nebo Ctrl+L. V PuTTY se vkládá pravým tlačítkem myši.

3. Zjistěte fyzický WAN port (kontrola)

nvram get wan_ifnames

Na RT-BE88U vrací eth9. Skript si port zjistí sám, tohle je jen pro kontrolu, že výstup není prázdný.

4. Nahrajte skript do routeru

Skript se ukládá do /jffs/, což je trvalé úložiště, takže restart routeru přežije.

a) V PuTTY napište a odentrujte:

cat > /jffs/sfp-mgmt.sh << 'EOF'

b) Zkopírujte celý skript níže (od #!/bin/sh po esac) a v PuTTY klikněte pravým tlačítkem.

c) Na novém řádku napište EOF a Enter.

d) Kontrola, že se uložil celý:

tail -3 /jffs/sfp-mgmt.sh

Měl by končit řádkem esac.

Skript sfp-mgmt.sh:

#!/bin/sh
# sfp-mgmt.sh - pristup k managementu SFP modulu (8311) na Asus routeru,
# kdyz WAN jede s VLAN taggingem (napr. CETIN VLAN 848) pres vlanctl.
#
# Pouziti: sh /jffs/sfp-mgmt.sh start|stop|status
#
# Nic neuklada do NVRAM, po rebootu routeru je potreba spustit znovu.

STICK_IP=192.168.11.1      # IP modulu
LOCAL_IP=192.168.11.2      # IP, kterou dostane router v siti modulu
PREFIX=24

PHY=$(nvram get wan_ifnames | awk '{print $1}')
if [ -z "$PHY" ]; then
    echo "Chyba: nelze zjistit fyzicky WAN port (nvram wan_ifnames)."
    exit 1
fi
MGMT="$PHY.mgmt"

# Vypise RX tabulku vlanctl pro netagovane ramce.
# vlanctl pise do kernel logu, proto si tam dame znacku a cteme jen od ni.
rx0_table() {
    m="sfpmgmt-$$-$(date +%s)"
    echo "$m" > /dev/kmsg 2>/dev/null
    vlanctl --if "$PHY" --rx --tags 0 --show-table >/dev/null 2>&1
    dmesg | sed -n "/$m/,\$p"
}

nat_rule() {
    iptables -t nat "$1" POSTROUTING -d "$STICK_IP" -o "$MGMT" -j MASQUERADE 2>/dev/null
}

do_start() {
    T=$(rx0_table)
    if echo "$T" | grep "Rx VLAN Device" | grep -qv "Rx VLAN Device : $MGMT"; then
        echo "Pozor: RX tabulka pro netagovane ramce na $PHY uz obsahuje cizi pravidla."
        echo "WAN asi nejede pres VLAN, skript by mohl rozbit pripojeni. Koncim."
        exit 1
    fi

    if [ ! -d "/sys/class/net/$MGMT" ]; then
        echo "Vytvarim $MGMT ..."
        vlanctl --if-create-name "$PHY" "$MGMT" || { echo "vlanctl --if-create-name selhal"; exit 1; }
    fi

    if ! echo "$T" | grep -q "Rx VLAN Device : $MGMT"; then
        echo "Pridavam RX pravidlo (netagovane -> $MGMT) ..."
        vlanctl --if "$PHY" --rx --tags 0 --set-rxif "$MGMT" --rule-append || { echo "vlanctl pravidlo selhalo"; exit 1; }
    fi

    ip link set "$MGMT" up

    if ! ip addr show dev "$MGMT" | grep -q "inet $LOCAL_IP/"; then
        ip addr add "$LOCAL_IP/$PREFIX" dev "$MGMT"
    fi

    nat_rule -C || nat_rule -I

    echo "Testuji $STICK_IP ..."
    if ping -c 2 -W 2 "$STICK_IP" >/dev/null 2>&1; then
        echo "OK - modul odpovida, otevri https://$STICK_IP"
    else
        echo "Modul neodpovida na ping."
    fi
}

do_stop() {
    while nat_rule -C; do nat_rule -D; done

    if [ -d "/sys/class/net/$MGMT" ]; then
        ip addr del "$LOCAL_IP/$PREFIX" dev "$MGMT" 2>/dev/null
    fi

    OK=1
    if [ -d "/sys/class/net/$MGMT" ]; then
        # --if-delete smaze rozhrani i pravidla, ktera na nej odkazuji
        ip link set "$MGMT" down 2>/dev/null
        vlanctl --if-delete "$MGMT" || OK=0
    fi
    if rx0_table | grep -q "Rx VLAN Device : $MGMT"; then
        echo "RX pravidlo pro $MGMT porad existuje."
        OK=0
    fi

    if [ "$OK" -eq 1 ]; then
        echo "Hotovo, vraceno do puvodniho stavu."
    else
        echo "Nektery krok selhal, zkontroluj: sh $0 status (pripadne pomuze reboot)."
    fi
}

do_status() {
    echo "WAN port:      $PHY"
    if [ -d "/sys/class/net/$MGMT" ]; then
        echo "Rozhrani:      $MGMT existuje"
    else
        echo "Rozhrani:      $MGMT NEEXISTUJE"
    fi
    if rx0_table | grep -q "Rx VLAN Device : $MGMT"; then
        echo "vlanctl:       pravidlo je"
    else
        echo "vlanctl:       pravidlo CHYBI"
    fi
    if ip addr show dev "$MGMT" 2>/dev/null | grep -q "inet $LOCAL_IP/"; then
        echo "Adresa:        $LOCAL_IP/$PREFIX"
    else
        echo "Adresa:        CHYBI"
    fi
    if nat_rule -C; then
        echo "NAT:           pravidlo je"
    else
        echo "NAT:           pravidlo CHYBI"
    fi
    if ping -c 1 -W 2 "$STICK_IP" >/dev/null 2>&1; then
        echo "Modul:         odpovida"
    else
        echo "Modul:         neodpovida"
    fi
}

case "$1" in
    start)  do_start ;;
    stop)   do_stop ;;
    status) do_status ;;
    *)      echo "Pouziti: sh $0 start|stop|status"; exit 1 ;;
esac

Pokud máte modul na jiné IP, upravte na začátku skriptu proměnné STICK_IP a LOCAL_IP.

5. Použití

Zapnout přístup k modulu:

sh /jffs/sfp-mgmt.sh start

Výstup by měl končit hláškou OK - modul odpovida. Pak z PC otevřete https://192.168.11.1 (certifikát je self-signed, odklikněte ho).

Zjistit stav:

sh /jffs/sfp-mgmt.sh status

Vypíše, jestli existuje rozhraní, vlanctl pravidlo, adresa, NAT a jestli modul odpovídá na ping.

Vypnout a vrátit vše do původního stavu:

sh /jffs/sfp-mgmt.sh stop

Skript lze pustit opakovaně, nic se nezdvojí. Doporučuji si hned po nahrání vyzkoušet cyklus start → stop → status → start.

6. Po restartu routeru

Nastavení žije jen v paměti, takže po restartu (případně po výpadku WANu) přístup zmizí. Skript ale zůstává v /jffs/, stačí se přihlásit přes SSH a znovu pustit:

sh /jffs/sfp-mgmt.sh start

Stock firmware neumí skripty spouštět automaticky. Na Asuswrt-Merlin by šlo totéž zavěsit do wan-start / firewall-start.

Bezpečnostní pojistka

Pokud skript při startu zjistí, že tabulka pro netagované rámce už obsahuje jiná pravidla (typicky když WAN nejede přes VLAN), skončí a na nic nesáhne, aby nerozbil připojení. V takovém případě skript nepotřebujete, obvykle stačí alias IP na WAN rozhraní a NAT.

Užitečné diagnostické příkazy

Výpis vlanctl tabulek (vlanctl píše do kernel logu, ne do terminálu):

vlanctl --if eth9 --rx --tags 0 --show-table
vlanctl --if eth9 --tx --tags 0 --show-table
dmesg | tail -60

Pokud v TX tabulce uvidíte SET_VID 0x00000350, jede WAN ve VLAN 848 (0x350 = 848).

  • Fibre 2000
  • sLimitem S Extra
  • ALLinONE
  • Vodafone TV app
  • Asus RT-BE88U, PRX126 XGS-PON ONU stick, Google Pixel 9 Pro
  • Praha Kobylisy
  • Test rychlosti internetu

Přidat se ke konverzaci

Přispívat můžete okamžitě a zaregistrovat se později. Pokud máte účet, přihlaste se a přispívejte pod Vaším účtem.
Poznámka: Váš příspěvek vyžaduje před zobrazením schválení moderátorem.

Návštěvník
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Odpovědět na toto téma...

Právě prohlíží tuto stránku 0

  • Žádný registrovaný uživatel si neprohlíží tuto stránku

Vodafone Czech Republic a.s.,
nám. Junkových 2808/2, 155 00 - Praha 5,
IČO 25788001, sp. zn. B 6064 vedená u Městského soudu v Praze

Vodafone Czech Republic a.s.,
Junkových sq. 2808/2, 155 00 - Prague 5,
CRN 25788001, file number B 6064 kept at the Municipal Court in Prague

Powered by Invision Community

Účet

Navigace

Vyhledávání

Vyhledávání

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.