Als client via Router-A auf Router-B einloggen - rescue


#1

Fortsetzung der Diskussion von Node für WLAN-Access auswählen:

und weil ich das gerade selber brauchts … hat ein wenig gedauert das alles in der richtigen Reihenfolge hinzu bekommen

Liste der Router in der Umgebung findet ihr via iwinfo client scan - ein ssid-changer/offline script ist hilfreich

ein bisschen komplex, als client einloggen und dann Dinge tun … diese Lösung profitiert davon das kaputte Router eine spezifische Offline ID haben

# auf dem Sprungrouter ein Interface anlegen , hier remote genannt
uci set wireless.remote_radio0=wifi-iface
uci set wireless.remote_radio0.device='radio0'
uci set wireless.remote_radio0.ifname='remote'
uci set wireless.remote_radio0.macaddr='00:00:aa:ff:ff:ee'
uci set wireless.remote_radio0.mode='sta'
uci set wireless.remote_radio0.disabled='0'
uci set wireless.remote_radio0.ssid='FF_OFFLINE_besancon_474r'
# you may deactivate client0 on tp841
# - which tends to crash if "too" much IF are set
# uci set wireless.client_radio0.disabled='1'
# restart wifi
wifi
# check with 
sleep 10; iwinfo remote info
# das if rebootfest und deaktiviert
# danach sollte ifconfig remote up genügen
# ohne commit sind die einstellungen nach einem reboot weg
# uci set wireless.remote_radio0.disabled='1'
# uci commit

wichtig ist, da ihr des öfteren mit Problem Routern diesen Weg geht, müsst ihr evtl. direkt auf link lokal V6 connecten … also sowas wie root@fe80:foo:bar%remote - wichtig hier %Interface damit der Computer weis welches IF ihr benutzen wollt.
auch gut wäre die v6 - nextnode Adresse, die sollten die Router in der Regel haben.

gerade hab ich noch den Fehler exited: Failed to set raw TTY mode … normale Komandos gehen (also in dem Befehl mitgegebene … wenn ich das löse, oder mir jemand nen Tip hat wär auch gut) - vermute das liegt daran das da bash gefordert wird, was die gluon kisten nicht liefern.

was also geht
ssh -A root@1.router ssh root@fe80:zielrouter%remote "some weird commands without any pipe"

# vereinfachtes Beispiel connect kaputten 841v10 via cpe mit remote if
# hochladen von FW und sysupgrade
wget -O v10.bin www-irgendwo-firmware
scp v10.bin root@cpe-1.router:/tmp
ssh -A root@cpe-1.router scp /tmp/v10.bin root@[fe80:foo:bar%remote]:/tmp
ssh -A root@cpe-1.router ssh root@fe80:foo:bar%remote 'sysupgrade /tmp/v10.bin'

#2

achja BUG : der 841 stürzt bei mir sehr häufig ob der vielen IF ab, eventuell ist es ganz sinnvoll dort das client0 if down zu nehmen so lange. (ungetestet)
am cpe210 hab ich keine solche Probleme


#3

OT:
@fuzzle deine Scriptmagie ist immer wieder geil :smile:


#4

Hi,

danke für diese tolle Anleitung. Leider funktioniert sie bei mir nicht. Ich versuche von einem Outdoor+ auf einen anderen zu kommen. Leider verbindet er sich nicht richtig:

# iwinfo remote info
remote    ESSID: unknown
          Access Point: 00:00:00:00:00:00
          Mode: Client  Channel: unknown (unknown)
          Tx-Power: 18 dBm  Link Quality: unknown/70
          Signal: unknown  Noise: -89 dBm
          Bit Rate: unknown
          Encryption: unknown
          Type: nl80211  HW Mode(s): 802.11bgn
          Hardware: 168C:002A 0777:E562 [Generic MAC80211]
          TX power offset: unknown
          Frequency offset: unknown
          Supports VAPs: yes  PHY name: phy0

Das Ziel-WLAN ist laut und deutlich zu hören:

Cell 01 - Address: 82:2C:A9:68:1F:B2
          ESSID: "FF_OFFLINE_Wochenend-Sued-03"
          Mode: Master  Channel: 9
          Signal: -45 dBm  Quality: 65/70
          Encryption: none

Kann ich irgendwo sehen, was wpa_supplicant tut? Es kann natürlich auch sein, dass der Zielrouter diesen komischen WLAN-Bug hat in dem er keine Clients mehr akzeptiert. Dann dürfte diese Methode hier nicht funktionieren.

Vielleicht hast du noch eine Idee?

Grüße
Matthias


Privates WLAN als zusätzliche SSID auf dem Freifunkrouter
#5

du kannst versuchen das if mehrfach rauf undrunter zu nehmen, dein output bedeutet schlicht das der nicht verbunden ist.


#6

spät, aber vielleicht kann es ja noch jemand brauchen:
das liegt wohl an der pty allocation auf der Remote Seite, normalerweise nehme ich dann ssh -T wenn ich de-facto nur klassisch remsh machen will und mich nicht einlogge. Netterweise unterstützt der ssh-Client das auch. Vllt hat es Dir auch bereits geholfen.

EDIT: -n ist da auch gerne schon mal sinnvoll, wenn irgendein script oder binary unerwarteterweise von stdin liest, wo es aber eh nichts zu holen gibt. Also ssh -Tn .