Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Internet a sítě => Téma založeno: navsteva 22 Března 2017, 10:31:29

Název: Aktualizace DDNS IPv6 v Xubuntu [vyřešeno]
Přispěvatel: navsteva 22 Března 2017, 10:31:29
Poradí někdo, jak na aktualizaci  DDNS IPv6 v Xubuntu u poskytovatele duckdns.org?

Na turrisu (openwrt) v případě, že se mi aktualizuje IPv6 záznam, tak se automaticky nová ip adresa sesynchronizuje. Nastavení mám v /etc/config/ddns takovéto:

Kód: [Vybrat]
config ddns 'global'
option date_format '%F %R'
option log_lines '250'
option allow_local_ip '0'

config service 'myddns_ipv6'
option interface 'wan6'
option service_name 'duckdns.org'
option password 'mojeheslo'
option enabled '1'
option lookup_host 'mojedomena.duckdns.org'
option force_interval '1'
option use_ipv6 '1'
option domain 'mojedomena'
option ip_source 'interface'
option ip_interface '6to4-wan6'
option check_interval '5'

Potřeboval bych upravit, aby to fungovalo i na ubuntu, s tím rozdílem, že by ip adresu bralo z interface teredo.

Pokoušel jsem se aktualizovat pomocí curl, ale to mi nějak nefungovalo - přes curl to dokáže aktualizovat IPv4, ale ne IPv6. Nebo jsem něco dělal špatně.

Kód: [Vybrat]
curl "http://nouser:mojeheslo@www.duckdns.org/v3/update?hostname=mojedomena&myip=mojeipv6"
vrátí to NOCHG, i když IPv6 byla změněna.

Píší:
Citace
we host a DynDns compatible endpoint https://help.dyn.com/remote-access-api/perform-update/

A zde: https://help.dyn.com/remote-access-api/perform-update/ (https://help.dyn.com/remote-access-api/perform-update/)
Citace
Kód: [Vybrat]
https://{user}:{updater client key}@members.dyndns.org/v3/update?hostname={hostname}&myip={IP Address}
NOTE: This authentication method supports both IPv6 and IPv4 addresses. Use commas to separate multiple IP addresses in the myip field.

Co dělám špatně?
Název: Re:Aktualizace DDNS IPv6 v Xubuntu
Přispěvatel: navsteva 25 Března 2017, 22:43:07
Nikdo neví?
Název: Re:Aktualizace DDNS IPv6 v Xubuntu
Přispěvatel: Petr Merlin Vaněček 27 Března 2017, 08:52:30
na první pohled http x https ?
Ale fakt nevím ...
Název: Re:Aktualizace DDNS IPv6 v Xubuntu
Přispěvatel: navsteva 27 Března 2017, 11:38:06
na první pohled http x https ?
Ale fakt nevím ...

V tom to není, v případě http a ipv4 se změny provedou.

Oni na serveru nemají IPv6 adresu, protože to neumí nějaký jejich load balancer, takže to ty změny hlásí přes ipv4, ale to by nemělo vadit, to by vadilo jen v případě, kdyby ta ip adresa nebyla uvedena a ip adresu by to detekovalo na jejich straně. Pak by ovšem ta hláška NOCHG dávala smysl. Zadávám tu IPv6 v nějakém špatném formátu? Nemám to zadávat v [literal]?
Název: Re:Aktualizace DDNS IPv6 v Xubuntu
Přispěvatel: navsteva 27 Března 2017, 12:25:30
Tak vyřešeno přes jiného poskytovatele:

Kód: [Vybrat]
curl "https://dynv6.com/api/update?hostname=mojehostname.dns.army&ipv4=auto&ipv6=auto&token=můjtoken"

Funguje jak na ipv6, tak na ipv4. Myslím, že bude chyba někde u duckdns.org. Zkoušel jsem i https://{user}:{updater client key}@members.dyndns.org/v3/update?hostname={hostname}&myipv6={IP Address}, literal formát, všechno možné, ale nic nezabralo. Takže změna ddns poskytovatele.
Název: Re:Aktualizace DDNS IPv6 v Xubuntu
Přispěvatel: Petr Merlin Vaněček 27 Března 2017, 16:11:16
ok, označuji za vyřešené
Název: Re:Aktualizace DDNS IPv6 v Xubuntu [vyřešeno]
Přispěvatel: navsteva 30 Března 2017, 13:06:24
Ještě pro ty, co by to chtěli nějak automatizovat.

Používám automatický IPv6 tunel Teredo přes balíček miredo, ipv6 teredo ten mód ipv6=auto nepozná, je potřeba tu ipv6 jim tam nasypat jinak (do dynv6.net).

Tohle mám už ozkoušené, že funguje:

v souboru /etc/rc.local => přidat před exit 0:

Kód: [Vybrat]
sleep 20 && systemctl start miredo &                                                                 
sleep 30 && ipv6=$(ip a | grep -s -i -o '2001\:[a-f0-9\.:]*') && curl -m 30 "https://dynv6.com/api/update?hostname=mojehostname.dns.army&ipv6=$ipv6&token=můjtoken" &
           

Můžeme nastavit i cron, já mám takto /etc/cron.d/dynv6, třeba by někdo vymyslel něco lepšího.
Kód: [Vybrat]
PATH=/sbin:/usr/sbin:/bin:/usr/bin

* * * * * root ipv6=$(ip a | grep -s -i -o '2001\:[a-f0-9\.:]*') && curl -m 30 "https://dynv6.com/api/update?hostname=mojehostname.dns.army&ipv6=$ipv6&token=můjtoken"

Pak vzdálené připojení na stroj přes SSH funguje klasicky, a je jedno, jestli je tam devatero natů mezitím.

ssh uzivatel@mojehostname.dns.army -6
(-6 je potřeba použít, pokud je nastaven i ipv4 záznam; ipv4 může být totiž veřejná ipv4 na natu, a ne koncového stroje).