LTE-Sticks mit Hybrid SIM

      eMKay77 schrieb:

      könntest ja mal -P oder -T bei dhclient testen:
      -P --> prefix delegation
      -T --> temporary addresses

      Was soll das bringen? Es wird scheinbar kein Paket gesendet, da helfen solche Sachen nicht, wir brauchen einen Client, der sich nicht weigert bei gre6. Ich nehme an, Schnup würde mit dem Argument -d (kein Daemon starten, sondern direkt laufen) auch die Meldung bekommen.

      eMKay77 schrieb:

      der SPH nutzt den dhcp6c für das Anfordern der IPs
      Wie machen sie dann IPv4? Geben wir zu, IPv4 ist wichtiger

      eMKay77 schrieb:

      was dem oben erwähnten 'dhclient -P' entsprechen müsste
      Geht aber mit der Standardversion von dhclient nicht... Außerdem braucht man dazu erst eine IPv6-Adresse, bevor man ein Netz anfordern kann.

      Schnup89 schrieb:

      Jep, da gibts anpassungen im quellcode:
      github.com/Stricted/DT_Hybrid_…service/main/src/ipv6cp.c
      Ich habe es nur überflogen, weil Zeit, aber das sieht alles nach PPP aus, z. B. weil es im pppc-Ordner ist...
      @danXde: weißt doch: ich bin kein Netzwerker ;)
      Hab im hybrid-Binary geschaut --> da gehen alle Verweise auf dhcp6c und die Debug-Strings sprechen für Prefix-Delegation.
      Hab in den Mailing-Listen gelesen --> da ist ein solches Problem für dhclient bekannt, sobald es keine HW-MAC gibt. (PPP, GRE, etc.)
      --> eventuell reicht es ja schon einen aktuelleren dhclient zu nutzen.

      genevt schrieb:

      Wie machen sie dann IPv4? Geben wir zu, IPv4 ist wichtiger
      keine Ahnung - alle Verweise im hybrid-Binary gehen nach dhcp6c...

      genevt schrieb:

      Geht aber mit der Standardversion von dhclient nicht...
      dhclient scheint Probleme zu bekommen, wenn keine HW-MAC vorhanden ist...

      genevt schrieb:

      das sieht alles nach PPP aus
      die Problematik ist auch ähnlich zu PPP - da sind wir wieder bei der HW-MAC --> das Problem scheint bekannt laut Mailing-Liste und Patches existieren auch...

      mfg, emkay

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „eMKay77“ ()

      Bin einen Schritt weiter.

      Habe eben eine stabile Hello-Message Verbindung zustande bekommen.

      Das heiß ich schicke dem Haap eine Hello-Message mit meiner Uhrzeit, und bekomme eine Antwort mit der Uhrzeit vom Haap.

      Leider tut sich aber auf meinem GRE-Interface bzgl. IP-Adresse via DHCP nichts.

      Meine Filter-List-Acknowledge Pakete waren falsch formatiert.

      Der Hello-Message Interfvall scheint immer bei 20 Sekunden zu liegen.



      Viele Grüße
      Moin Leutz!

      Wisi schrieb:

      Hi, wohl leider keine weiteren Fortschritte? Kann dazu selbst nicht viel zu beitragen...
      Sorry, hatte wenig Zeit - kommt aber noch ;)

      hefr54 schrieb:

      Das steht alles im Router, ich glaube mal Du denkst viel zu kompliziert
      Nein - streng genommen tut er das nicht...
      Das alles steht im Router, weil er es beim Connect aushandelt ;)
      Auch wenn die Werte sich nicht oft ändern, sollte ein eigener Client diese Werte besser aushandeln - und sie nicht als konstant ansehen.
      (meines Wissens war zB. das Hello-Interval früher kürzer...)

      mfg, emkay
      Moin Leutz!

      Bin ja eigentlich kein Freund davon, halbe Sachen zu veröffentlichen - aber hier mein LTE-Stick-Init ;)

      Shell-Script

      1. #!/bin/bash
      2. INTF='/dev/cdc-wdm0'
      3. WANIF='wwx0c5b8f279a64'
      4. _atcmd ()
      5. {
      6. timeout 0.1 cat $INTF > /dev/null
      7. printf "$*\r" > $INTF
      8. while :
      9. do
      10. res=$(timeout 0.1 cat $INTF)
      11. if [ ! -z "$res" ] ; then break ; fi
      12. sleep 0.4
      13. done
      14. printf "$* >>>>>\n"
      15. printf "$res\n"
      16. }
      17. _fromdn ()
      18. {
      19. tmp=$(printf "$1" | tr '.' ' ')
      20. i=0
      21. for b in $tmp
      22. do
      23. printf "%02x" $b
      24. if [ $i -eq 1 ]
      25. then
      26. printf ':'
      27. i=0
      28. else
      29. i=1
      30. fi
      31. done
      32. printf '\n'
      33. }
      34. _getipcfg ()
      35. {
      36. printf 'getcfg >>>>>\n'
      37. cfg=$(_atcmd at+cgcontrdp)
      38. printf "$cfg"
      39. apn=$(printf "$cfg" | grep '+CGCONTRDP:' | cut -d',' -f3 | tr -d \")
      40. wanip=$(printf "$cfg" | grep '+CGCONTRDP:' | cut -d',' -f4 | tr -d \")
      41. dns1=$(printf "$cfg" | grep '+CGCONTRDP:' | cut -d',' -f6 | tr -d \")
      42. dns2=$(printf "$cfg" | grep '+CGCONTRDP:' | cut -d',' -f7 | tr -d \")
      43. wanip=$(_fromdn $wanip | cut -b-39)
      44. dns1=$(_fromdn $dns1 | cut -b-39)
      45. dns2=$(_fromdn $dns2 | cut -b-39)
      46. haap=$(host -6 haap.t-online.de "$dns1" | tail -n1 | cut -d' ' -f5 )
      47. printf 'WAN-State >>>>>\n'
      48. printf "connected APN: $apn\n"
      49. printf "WANIP: $wanip\n"
      50. printf "DNS1 : $dns1\n"
      51. printf "DNS2 : $dns2\n"
      52. printf "HAAP : $haap\n"
      53. printf '\nInterface-State >>>>>\n'
      54. ip addr show dev $WANIF
      55. printf '\nInterface-Routes >>>>>\n'
      56. ip route show dev $WANIF
      57. ip -f inet6 route show dev $WANIF
      58. printf '\nInterface-Neighbours >>>>>\n'
      59. ip neighbor show dev $WANIF
      60. printf '\n'
      61. }
      62. _disconnect ()
      63. {
      64. printf 'disconnect >>>>>\n'
      65. resolvconf -d $WANIF
      66. ip link set $WANIF down
      67. _atcmd at^ndisconn=1,0
      68. }
      69. _init ()
      70. {
      71. printf 'init >>>>>\n'
      72. _atcmd ATZ
      73. _atcmd ATE0V1\&D2\&C1S0=0
      74. _atcmd at+cgdcont=0,\"IPV6\",\"\"
      75. }
      76. _connect ()
      77. {
      78. printf 'connect >>>>>\n'
      79. _init
      80. _atcmd at+cgdcont=1,\"IPV6\",\"hybrid.telekom\"
      81. _atcmd at^ndisconn=1,1
      82. ip link set $WANIF up
      83. sleep 2
      84. _getipcfg
      85. printf "dns-nameserver $dns1\ndns-nameserver $dns2\n" | resolvconf -a $WANIF
      86. }
      87. if [ "$1" == 'connect' ]
      88. then
      89. _connect
      90. elif [ "$1" == 'disconnect' ]
      91. then
      92. _disconnect
      93. else
      94. printf 'usage: hybrid <connect|disconnect>\n'
      95. fi
      Ich hab' das als hybrid gespeichert.
      Ist allerdings nur unter Ubuntu 16.04 - Huawei e3276 mit IPv6-FW im NCM-Mode (PPP-Mode ist langsamer) und auf LTE fixiert getestet.

      INTF ist das '/dev'-Interface zum Stick - im NCM-Mode normalerweise '/dev/cdc-wdmX', wobei X meist '0' sein dürfte.
      WANIF ist das Netzwerkinterface des Sticks (oft einfach 'wwan0', neuere Linux-Versionen benennen es gern um...)

      Quellcode

      1. hybrid connect
      --> initialisiert den Stick und baut eine Verbindung zum Hybrid-LTE-APN auf.
      (ermittelt dabei WAN-IP, HAAP-IP, Nameserver, setzt die Nameserver -- aber setzt keine Routen.)

      Quellcode

      1. hybrid disconnect
      --> beendet die Verbindung.

      Das Script verwaltet aber nur den Stick - hat noch nix mit dem Hybrid-Tunnel zu tun.

      Es sieht auf den ersten Blick etwas kryptisch aus - ist es aber eigentlich nicht ;)
      Ist halt alles als Funktion (die atcmd-Funktion ist auch einzeln recht nützlich...)

      Erleichtert eventuell das Testen.

      mfg, emkay
      Moin @hefr54!

      Wie weiter vorne erwähnt, ist zwar mein e3276 jetzt IPv6-fähig (alte Speedstick3-Firmware) - die Einwahlsoftware des Sticks allerdings nicht...
      Und ich bin ja unter Linux unterwegs, mache sowas lieber selbst wegen Kontrolle und später soll's ja eh automatisiert laufen ;)

      Und ja: weil's Aufwand/Zeit spart, sind bei meinem Stick die zusätzlichen Ports für CDRom und SDCard zusammen mit den restlichen unnötigen deaktiviert.
      (nur PCUI(12) und NCM(16) sind aktiv - und aus Spaß noch VxWorks- und Linux-Konsole)

      Die Zielplattform ist ja eh eher Linux - alle mir bekannten Router, Boards, RasPis sind linuxbasiert.

      Als ich das Script geschrieben hab', gab's allerdings noch Hoffnung, eventuell alles per Script erledigen zu können. (der Aufwand wäre aber wohl zu groß)
      So macht das Script die Vorarbeit und startet dann den eigentlichen Hybrid-Client.

      Das das mit den Sticks 'ne Bastelei ist, hatte ich ja schon weiter oben erwähnt - deshalb ja die Suche nach Hardware, welche einfacher zu bekommen/handhaben ist. (da die M2M-Module teils schwerer zu bekommen sind und auch nicht billiger, bin ich ja beim Netgear-LB1110 gelandet)

      Im Grunde ersetzt das Script also nur die Einwahlsoftware des Sticks unter Linuxoiden OS :D

      Hauptsächlich nutze ich jetzt allerdings das LB1110 - ist dem e3276 weit überlegen. Wer allerdings neu kauft, kann ja einen der Sticks besorgen, bei denen bekannt ist, daß sie funktionieren. Die Sticks sind ja zB. bei Amazon durchaus noch im Handel und für mindestens 2 davon haben wir ja passende Firmware.

      -- Sticks: günstig, aber (software-)basteln.
      -- M2M-Modul: leistungsfähig, aber teurer und (hardware-)basteln (Gehäuse, Stromversorgung - erhöht auch den Preis).
      -- LTE-Bridge: leistungsfähig, mittelteuer, aber kein basteln.
      (ich hab' mit Pigtails zum Antennenanschluß und Porto rund €162.- bezahlt...)

      Komplette LTE-Router könnten auch funktionieren, wenn der Routerteil IPv6 ignoriert, also nur IPv4 routet und IPv6 einfach durchreicht.
      (das Netgear gibt zB. dem LAN-Port scheinbar auch im Routermodus eine Hybrid-IPv6 zusätzlich zur IPv4 durch DHCP des Modems)

      Der Stick ist für mich also 'Legacy', ich werde damit testen, aber hauptsächlich die LTE-Bridge im Fokus haben. (das Script hinterlässt den Stick in etwa an dem Punkt, an dem das LTE-Modem nach dem Einschalten auch ist - alles weitere ist dann in etwa gleich... eventuell mit kleinen Änderungen passt das Script auch bei den M2M-Modulen.)

      Ich hab' übrigens jetzt mal lieb bei Netgear nach dem Passwort für den erweiterten AT-Befehlssatz gefragt (damit könnt' man eigene LTE-Configs, zB. einzelne Bänder oder CA, im Modem hinterlegen) - noch keine Antwort.

      mfg, emkay
      Meine Hardware ist auch gekommen, das LTE-Modul fehlt noch, aber einen Stick hab ich da. Bin aber noch nicht groß weiter gekommen, liege erstmal mit Grippe flach -.- Außerdem fehlt mir ein Nullmodem-Kabel, das muss ich noch organisieren. Morgen werde ich erstmal gucken, welche Firmware der Stick hat.

      @eMKay77
      Du hast ja sicherlich die passenden Versionen da. Würdest du mir die ggf zur Verfügung stellen?
      Bilder
      • DSC_0223.JPG

        1,21 MB, 3.840×2.160, 218 mal angesehen
      • DSC_0228.JPG

        1,51 MB, 3.840×2.160, 212 mal angesehen