aktionstabelle debuggen, IPv6 dyn-DNS mit dynv6.com scheitert

Forum für allgemeinen Fragen zum Thema IPv6 mit LANCOM Routern

Moderator: Lancom-Systems Moderatoren

roell.f
Beiträge: 59
Registriert: 04 Okt 2014, 11:39

aktionstabelle debuggen, IPv6 dyn-DNS mit dynv6.com scheitert

Beitrag von roell.f »

hallo forum,

zur zeit versuche ich dynamic DNS (dyn-dns) umzustellen von spdyn.de nach dynv6.com.

da im setup-assistent unter "dynamic DNS konfigurieren" ein eintrag für dynv6.com fehlt, habe ich zunächst mit dem assistenten eine funktionierende konfiguration für spdyn.de hergestellt. danach habe ich die spdyn-URLs durch die von dynv6 ersetzt. doch leider funktionierte das ergebnis nicht. nach anschließendem austausch der variablen %a, %z und %x in den "lancom-URLs" für dynv6 gegen die konkreten werte erhielt ich eine URL, welche im browser eingesetzt das gewünschte DNS-update leistet.

bislang habe ich zum testen / debuggen der aktionstabelle den lancom rebootet, doch das dauert ...

gibt es eine möglichkeit nach dem ssh-login auf dem router die aktionstabelle zu debuggen, d.h. die aktionstabelle schritt für schritt auszuführen und die antworten des dyn-DNS-servers zu beobachten?

beste grüße
frank

ps.
im nachstehenden lcs-skript stehen die einträge {My...} als platzhalter für meine konkreten werte.

Code: Alles auswählen

cd /Setup/WAN/Action-Table 
del *
# Index	Active	Host-Name	Peer	Lock-Time	Condition	Action	Check-For	Owner	Routing-Tag
add 1 {Active} Yes {Host-Name} "{MyHostname}.DYNV6.NET" {Peer} "NET-WEB1" {Lock-Time} 10 {Condition} Establish {Action} "https://dynv6.com/api/update?hostname=%h&token={MyToken}&ipv4=%a" {Check-For} "contains=addresses updated?skipiftrue=3" {Owner} "root" {Routing-Tag} 0
add 2 {Active} Yes {Host-Name} "{MyHostname}.DYNV6.NET" {Peer} "NET-WEB1" {Lock-Time} 10 {Condition} Establish {Action} "https://dynv6.com/api/update?hostname=%h&token={MyToken}&ipv6=%z&ipv6prefix=%y" {Check-For} "contains=addresses updated?skipiftrue=2" {Owner} "root" {Routing-Tag} 0
add 3 {Active} Yes {Host-Name} "{MyHostname}.DYNV6.NET" {Peer} "NET-WEB1" {Lock-Time} 0 {Condition} Establish {Action} "dnscheck:{MyHostname}.dynv6.net" {Check-For} "isequal=%a?skipiftrue=1" {Owner} "root" {Routing-Tag} 0
add 4 {Active} No {Host-Name} "{MyHostname}.DYNV6.NET" {Peer} "NET-WEB1" {Lock-Time} 900 {Condition} Establish {Action} "https://dynv6.com/api/update?hostname=%h&token={MyToken}&ipv4=%a&ipv6=%z&ipv6prefix=%y" {Check-For} "contains=addresses updated" {Owner} "root" {Routing-Tag} 0
add 5 {Active} Yes {Host-Name} "{MyHostname}.DYNV6.NET" {Peer} "NET-WEB1" {Lock-Time} 0 {Condition} Establish {Action} "repeat:300" {Check-For} "" {Owner} "root" {Routing-Tag} 0
ich freue mich zwar, wenn jemand den fehler im skript findet, jedoch sind mir die methoden zum debugging wichtiger.
Zuletzt geändert von roell.f am 16 Nov 2021, 15:19, insgesamt 1-mal geändert.
SunSeb
Beiträge: 205
Registriert: 09 Dez 2004, 10:32
Wohnort: Bonn

Re: aktionstabelle debuggen

Beitrag von SunSeb »

Hallo frank,

Code: Alles auswählen

tr # connact
.

Gruß,
Sebastian
roell.f
Beiträge: 59
Registriert: 04 Okt 2014, 11:39

Re: aktionstabelle debuggen

Beitrag von roell.f »

hallo SunSeb,

Code: Alles auswählen

> tr connact
CONNACT                    OFF
hm, mehr war nicht zu sehen. wie geht es weiter?
SunSeb
Beiträge: 205
Registriert: 09 Dez 2004, 10:32
Wohnort: Bonn

Re: aktionstabelle debuggen

Beitrag von SunSeb »

Hallo frank,

trace einschalten

Code: Alles auswählen

tr + connact
trace ausschalten

Code: Alles auswählen

tr - connact
oder trace umschalten

Code: Alles auswählen

tr # connact
.

Gruß,
Sebastian
roell.f
Beiträge: 59
Registriert: 04 Okt 2014, 11:39

Re: aktionstabelle debuggen

Beitrag von roell.f »

Code: Alles auswählen

> tr + connact
CONNACT                    ON

> tr connact
CONNACT                    ON
nach dem der trace für die meldungen aus dem aktivitätsprotokoll (connact) mit hilfe von "+" eingeschaltet ist, passiert aber nichts, wenn ich den trace mit "tr connact" anschauen will. oder verstehe ich das alles noch nicht richtig?!
SunSeb
Beiträge: 205
Registriert: 09 Dez 2004, 10:32
Wohnort: Bonn

Re: aktionstabelle debuggen

Beitrag von SunSeb »

Hallo frank,

du könntest den trace einschalten und dann die Verbindung trennen und beim Wiederaufbau schauen.

Die Verbindung kann man einfach im LAN-Monitor trennen oder auf der cli mit

Code: Alles auswählen

do Other/Manual-Dialing/Disconnect xxx
hier ist xxx der Name der Verbindung.

Gruß,
Sebastian
roell.f
Beiträge: 59
Registriert: 04 Okt 2014, 11:39

Re: aktionstabelle debuggen

Beitrag von roell.f »

hallo forum,

vorab zur info:
  • die internetverbindung heißt bei mir nicht wie bei lancom sonst üblich "INTERNET" sondern "net-web1".
  • auslassungen habe ich mit "[...]" gekennzeichnet.

Code: Alles auswählen

> tr + connact
> do /Other/Manual-Dialing/Disconnect net-web1
OK: Action Disconnect started

[...]
[CONNACT] 2021/11/15 16:30:04,025
ConnAct: Must wait for IPv6 WAN address IPv6 LAN address for Host-Name:{MyHostname}.DYNV6.NET with Peer:NET-WEB1

[CONNACT] 2021/11/15 16:30:04,027
ConnAct: IPv6 WAN address became available for event NET-WEB1/{MyHostname}.DYNV6.NET/ESTABLISH, not starting actions because context still waits for IPv6 LAN address
[...]
nach ein paar sekunden des wartens auf "IPv6 LAN address" kam aber nichts mehr.

im LANconfig-eingabefeld "Aktion" habe ich daraufhin die URL variert:
  • mit %x,
  • mit %y,
  • weder mit %x noch mit %y.
das ergebnis war folgendes:
  • mit %x (= das aktuelle IPv6-LAN-Präfix als String im Format „fd00:0:0:1::/64“):
    die aktion scheitert mit meldung:

    Code: Alles auswählen

    ConnAct: IPv6 WAN address became available for event NET-WEB1/PRV-ROELL-CO.DYNV6.NET/ESTABLISH, not starting actions because context still waits for IPv6 LAN prefix
  • mit %y (= die aktuelle IPv6-LAN-Adresse des Geräts als String im Format „fd00::1:2a0:57ff:fa1b:9d7b“):
    die aktion scheitert mit meldung:

    Code: Alles auswählen

    ConnAct: IPv6 WAN address became available for event NET-WEB1/{MyHostname}.DYNV6.NET/ESTABLISH, not starting actions because context still waits for IPv6 LAN address
    
  • weder mit %x noch mit %y:
    die aktion ist erfolgreich.
wieso wird überhaupt auf das LAN-prefix bzw. auf die LAN-adresse gewartet?

warum kommt kein IPv6-LAN-prefix bzw. keine IPv6 LAN-adresse"?

wie kann man das problem lösen?

beste grüße
frank
backslash
Moderator
Moderator
Beiträge: 7010
Registriert: 08 Nov 2004, 21:26
Wohnort: Aachen

Re: aktionstabelle debuggen

Beitrag von backslash »

Hi roell.f

bei %x und %y erwartet die Aktionstabelle, daß das LAN-Interface "INTRANET" heißt... wenn du es anders benannt hast, dann wird es nicht funktioneren
bei %z wird die WAN-Adresse des Geräts übermittelt

Gruß
Backslash
roell.f
Beiträge: 59
Registriert: 04 Okt 2014, 11:39

Re: aktionstabelle debuggen

Beitrag von roell.f »

hallo backslash,

im LANmonitor befindet sich bei mir unter "Lokale Netzwerke > Netzliste" (neben weiteren netzen) in der tat das netz "INTRANET". genau dessen IPv6-präfix (2a01:170:xxx:1::/64) wollte ich mit hilfe von "%x" an dynv6.com übermitteln. jedoch komme ich über die fehler- / statusmeldung "... waits for IPv6 LAN prefix." nicht hinaus.

woran kann es liegen?
was kann ich prüfen?

beste grüße
frank
roell.f
Beiträge: 59
Registriert: 04 Okt 2014, 11:39

aktionstabelle debuggen, IPv6 dyn-DNS mit dynv6.com scheitert

Beitrag von roell.f »

hallo forum,

was mich richtig nervt ist, dass die sache mit einer fritzbox innerhalb von 15 minuten erledigt war, ich aber mit einem lancom einen halben tag arbeit einsetzen muss und ich ohne einen hochkarätigen experten w.z.B. backslash einfach nicht weiterkomme.

beste grüße
frank
backslash
Moderator
Moderator
Beiträge: 7010
Registriert: 08 Nov 2004, 21:26
Wohnort: Aachen

Re: aktionstabelle debuggen, IPv6 dyn-DNS mit dynv6.com scheitert

Beitrag von backslash »

Hi roell.f,

bekommt denn ein Host am "INTRANET" überhaupt eine IPv6-Adresse per Autoconfig?
Dazu mußt du unter in jjedem Fall IPv6 -> Router-Advertisement -> Präfix-Liste einen Eintrag für das Netz INTRANET haben, der den angekündigten Prefix definiert, z.B.:

Code: Alles auswählen

Interface-Name:  INTRANET
Prefix:          ::/64
Subnetz-ID:      1
[x] Adv. OnLink
[x] Autokonfiguration erlauben (SLAAC)
Präfix beziehen von:  deine Internetverbindung (NET-WEB1)
...
Dann sollte eigentlich auch die Aktionstabelle zufrieden sein...

Du kannst dir zudem auf dem CLI mittels show ipv6-prefix und show ipv6-address die jeweils zugewiesenen Prefixe und Adressen anshauen.

Gruß
Backslash
roell.f
Beiträge: 59
Registriert: 04 Okt 2014, 11:39

Re: aktionstabelle debuggen, IPv6 dyn-DNS mit dynv6.com scheitert

Beitrag von roell.f »

hallo backslash,

meinen tatsächlichen IPv6-prefix habe mit "aaaa" unkenntlich gemacht. ähnlich die beiden VPN-netze mit z.b. "{VPN.1}"

die prefix-optionen sehen im LANconfig so aus:
IPv6-prefix_INTRANET.png
die präfixlänge habe ich auf 48 gesetzt, weil sie so vom provider kommt. allerdings sagt die hilfe, dass nur 64 richtig sei, jedoch das GUI lässt 48 zu. wenn wirklich nur 64 richtig ist, wozu dann das eingabefeld?

scheinbar wird dieser wert beim schreiben in den router ignoriert:

Code: Alles auswählen

> cd /Status/IPv6/Router-Advertisement/Prefix-Options/INTRANET

root@lc-1793va-01:/Status/IPv6/Router-Advertisement/Prefix-Options/INTRANET  2a01:170:aaaa:1::/64
> dir

Interface-Name       INFO:    INTRANET
Prefix               INFO:    2a01:170:aaaa:1::/64
Adv.-OnLink          INFO:    Yes
Adv.-Autonomous      INFO:    Yes
Adv.-Pref.-Lifetime  INFO:    604800
Adv.-Valid-Lifetime  INFO:    2592000
Type                 INFO:    Static-Configuration
der IPv6-präfix:

Code: Alles auswählen

> show ipv6-prefix
delegated prefixes:

advertised prefixes:

INTRANET:
2a01:170:aaaa:1::/64 (Type: Static Configuration) preferred: 604800s valid: 2592000s

deprecated prefixes:
die IPv6-adresse:

Code: Alles auswählen

> show ipv6-address
#Loopback (Loopback) - Rtg-Tag: 0 Interface ID: 1
::1/128, PREFERRED, (NO DAD PERFORMED) (Type: Loopback) preferred: infinite valid: infinite

INTRANET - Rtg-Tag: 0 VLAN-ID: 0 Interface-ID: 2 Interface: LAN-1:
fe80::2a0:57ff:fe54:f215/64, PREFERRED, none (Type: Primary Link Local Address) preferred: infinite valid: infinite
2a01:170:aaaa:1::/64, PREFERRED, (ANYCAST) (Type: Subnet-Router Anycast) preferred: 604800s valid: 2592000s
2a01:170:aaaa:1:2a0:57ff:fe54:f215/64, PREFERRED, none (Type: Auto Configuration) preferred: 604800s valid: 2592000s

{VPN.1} - Rtg-Tag: 0 VLAN-ID: 0 Interface-ID: 4 Peer: {VPN.1}:
fe80::2a0:57ff:fe54:f215/64, PREFERRED, (NO DAD PERFORMED) (Type: Primary Link Local Address) preferred: infinite valid: infinite

{VPN.2} - Rtg-Tag: 0 VLAN-ID: 0 Interface-ID: 5 Peer: {VPN.2}:
fe80::2a0:57ff:fe54:f215/64, PREFERRED, (NO DAD PERFORMED) (Type: Primary Link Local Address) preferred: infinite valid: infinite

NET-WEB1 - Rtg-Tag: 0 VLAN-ID: 7 Interface-ID: 3 Peer: NET-WEB1:
fe80::a0:57ff:fe54:f215/64, PREFERRED, (NO DAD PERFORMED) (Type: Primary Link Local Address) preferred: infinite valid: infinite
2a01:170:aaaa:0:a0:57ff:fe54:f215/64, PREFERRED, (NO DAD PERFORMED) (Type: Static Configuration) preferred: infinite valid: infinite
nebenbei: wie hast du den text "Interface-Name: INTRANET ..." in deinem code-feld erzeugt?

beste grüße
frank
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
backslash
Moderator
Moderator
Beiträge: 7010
Registriert: 08 Nov 2004, 21:26
Wohnort: Aachen

Re: aktionstabelle debuggen, IPv6 dyn-DNS mit dynv6.com scheitert

Beitrag von backslash »

Hi roell.f,

> meinen tatsächlichen IPv6-prefix habe mit "aaaa" unkenntlich gemacht. ähnlich die beiden VPN-netze mit z.b. "{VPN.1}

und genau da ist dein "Fehler" - da du den Prefix statisch eingetragen hast, wird es kein Update in der Aktionstabelle geben - bei statischen Prefixen mußt du auch in der Aktionstabelle den Prefix explizit eintragen und kannst %x und %y nicht nutzen.

Und gibt ist auch gleich einen zweiten Fehler in deiner Konfiguration.... Die Prefixlänge MUSS 64 sein - sonst funktioniert Autokonfig nicht... Das steht aber schon in der LANconfig-Hilfe

DynDNS ist eigentlich für dynmische Prefixe gedacht. Dabei weist dir dein Provider bei der Einwahl einen /56 oder /48 Prefix zu (i.A. per DHCP oder Router-Advertisment-Option), aus dem den du auf deinen Netzen /64er Sub-Prefixe verteilen darfst - z.b. den mit der Subnetz-ID 1 im INTERANET...

Daher MUSS bei dynamischen Präfixen in der Tabelle ::/64 als Prefix stehen und unter "Präfix beziehen von muß" deine Intertnetverbindung stehen - so wie ich es im letzten Post geschrieben habe
Wenn dir dann der Provider den Prefix 2a01:170:aaaa::/48 zuweist, dann hat dein INTRANET mit der Subnetz-ID 1 den Präfx 2a01:170:aaaa:1::/64

Gruß
Backslash
roell.f
Beiträge: 59
Registriert: 04 Okt 2014, 11:39

Re: aktionstabelle debuggen, IPv6 dyn-DNS mit dynv6.com scheitert

Beitrag von roell.f »

hallo backslash,

mit hilfe deiner angaben ist es mir gelungen für einen DSL-anschluss mit statischer IPv4- und IPv6-adressvergabe sowie für einen anschluss mit dynamischer adressvergabe passende einträge für die lancom aktions-tabelle zu generieren.

dafür herzlichen dank!

zum besseren verständnis von LCOS bzw. zu dessen verbesserung habe ich noch folgende fragen:
  1. bei den eintragung "IPv6/Router-Advertisment/Präfix-Liste" existiert auch ein feld für die präfixlänge. ursprünglich nahm ich an, man könne hier die vom provider zugewiesene präfixlänge eintragen. es wäre damit möglich gewesen, eine plausibilitätsprüfung für das feld "Subnetz-ID" durchzuführen. so sind bei einer präfixlänge von z.B. 56 nur IDs von 1 bis 255 sinnvoll.

    mitlerweile weiß ich von dir (und auch von der kontextsensitiven hilfe), dass die präfixlänge immer 64 sein MUSS. wenn das so ist, wozu dient dann das eingabefeld bzw. wäre es nicht besser die LCOS-entwickler zu bitten, dieses eingabefeld aus dem grafischen user-interface zu entfernen?
    .
  2. das feld präfix kann sowohl für dynamische als auch statische DSL-anschlüsse genutzt werden. bei ersteren MUSS hier "::" stehen. bei letzteren steht hier z.b. "2a01:170:aaa::". was hier steht hat jedoch für LCOS bezüglich der konfiguration unter "Kommunikation/Allgemein/Aktions-Tabelle" konsequenzen:

    bei dynamischen anschlüssen (kenntlich am "::") und der verwendung der variable "%x" in einer aktion wartet LCOS darauf, dass dem interface ein präfix zugewiesen wird, bevor es die aktion ausführt. das ist sinnvoll.

    bei statischen DSL-anschlüsse (kenntlich am "2a01:170:aaa::") wartet LCOS ebenfalls, allerdings auf ein ereignis, das nie eintreten wird, weil das präfix ja schon längst vom benutzer statisch vergeben wurde. wozu dient also das warten bzw. wäre es nicht besser die LCOS-entwickler zu bitten, ohne zu warten die variable "%x" direkt aus dem präfix und der subnetz-ID zusammenzusetzen?

    Anm: natürlich kann man in der aktion statt "%x" auch den statischen präfix plus ID einsetzen. das wäre dann jedoch eine redundante und damit fehlerträchtige eingabe, bei welcher der benutzer immer die beiden eingaben konsistent halten muss.
  3. Code: Alles auswählen

    Interface-Name:  INTRANET
    Prefix:          ::/64
    Subnetz-ID:      1
    [x] Adv. OnLink
    [x] Autokonfiguration erlauben (SLAAC)
    Präfix beziehen von:  deine Internetverbindung (NET-WEB1)
    ...
    wie hast du den text im vorstehenden code-feld erzeugt?
beste grüße
frank
backslash
Moderator
Moderator
Beiträge: 7010
Registriert: 08 Nov 2004, 21:26
Wohnort: Aachen

Re: aktionstabelle debuggen, IPv6 dyn-DNS mit dynv6.com scheitert

Beitrag von backslash »

Hi roell.f,
a. (...) wäre es nicht besser die LCOS-entwickler zu bitten, dieses eingabefeld aus dem grafischen user-interface zu entfernen?
Das Problem ist dann, daß keine anderen Netze mehr vergeben werden können... Die /64 sit ja "nur" für die Autikonfiguartion zwingend notwednig. Wenn du hingegen ein Netz mut komplet manueller konfiguration aufsetztm, kannst du auch beliebiege Prefixlängen verwenden - ob das sinnvoll ist, steht allerdings auf einem andren Blatt

b. (...) wäre es nicht besser die LCOS-entwickler zu bitten, ohne zu warten die variable "%x" direkt aus dem präfix und der subnetz-ID zusammenzusetzen?
so eine Erweiterung ist sicherlich sinnvoll - ich hab's mal als Bug eingetragen
wie hast du den text im vorstehenden code-feld erzeugt?
man nehme Notepad und tippe das so ein... ist zwar mehr Arbeit, aber doch übersichtlicher als ein Screenshot...

Gruß
Backslash
Antworten