[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Własny dynamiczny dns



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Marcin Owsiany wrote:
> Nie testowane, ogólna idea tylko (zwłaszcza regex do access.loga trzeba
> dopracować, bo nie chce mi się patrzeć jaki tam dokładnie jest format):
> 
> w domu w crontabie:
> wget --user .. --password ... http://praca/trigger
> 
> w pracy w crontabie:
> 
> ----------------------------------------------------------
> #!/bin/bash
> # to zakłada, że resolving w apache'u jest wyłączony
> # jeśli jest inaczej, to trzeba zrobić lookup PTR albo wstawić niżej
> # CNAME zamiast A
> ip=$(egrep '/trigger.* 200 ' /var/log/apache/access.log | tail -n 1 | awk '{print $1}')
> # XXX: race condition
> mv ~/ip ~/ip.prev
> echo ${ip} > ~/ip
> cmp ~/ip.prev ~/ip >/dev/null 2>&1 && exit 0
> cat <<END > /etc/bind/domena.zone
> domek IN A ${ip}
> END
> sudo ndc reload domena
> ----------------------------------------------------------
> 
> a w /var/www/.htaccess odpowiednio zapodać usera i hasło

Najlepiej i chyba najprościej będzie skorzystać z narzędzi, które
oferuje sam Bind. Wygenerować klucz używając `dnssec-keygen`,
skonfigurować serwer dns tak, żeby umożliwiał zdalną zmianę rekordu w
strefie. Potem pozostaje napisać skrypt, który okresowo wywoływany np.
przez crona sprawdza IP interesującego nas interfejsu, porównuje go z IP
"zrezolwowanym" przez np `host` i gdy istnieje potrzeba - używając
`nsupdate` uaktualnia rekord w strefie.
Jedyny "babol" takiego rozwiązania jest taki, że jak już raz zaczynamy w
ten sposób aktualizować strefę, to nie możemy/nie powinniśmy zmieniać
jej ręcznie (poprawcie mnie, jeżeli się mylę).

Jakiś czas temu napisałem takiego "klienta" w Pythonie - jakby ktoś był
zainteresowany, to mogę podesłać - cud to to nie jest, ale podstawowa
funkcjonalność była - ZTCP testowałem go pod Linuksem, FreeBSD i Solarisem.
- --
pozdrawiam, Maciej Suszko.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)

iD8DBQFFrSsqCikUk0l7iGoRAgPHAJwK7DajAjUKM9cnl4AQBYWTRau2UwCZATqI
WSo4u/07eqw8cGti1EH1EkA=
=13xH
-----END PGP SIGNATURE-----



Reply to: