Konfigurujesz DDNS za serwerem DDNS?

0

TLDR ; Mam działający system DDNS ddns.example.com, chcę umożliwić mu przesyłanie żądań host1.example.comdo moich hostowanych lokalnie komputerów.

Mam więc domenę publiczną, powiedzmy example.comw Domenach Google. Mam router obsługujący DDNS, który, powiedzmy, ma dynamiczny adres IP, który jest obecnie ustawiony na 1.2.3.4.

Wskazuję routerowi, aby poprawnie rozpoznał moje konto GD, a w GD ustawiam ddns.example.comdopasowanie do mojego routera. W tym momencie wszystko działa i widzę, że na przykład host1 w mojej sieci lokalnej, którego port 1234jest przekierowany, można zobaczyć pod adresem ddns.example.com:1234.

Zamiast tego chcę zrobić, aby móc pisać host1.example.com:1234/a/b?ci łączyć się z host1:1234/a/b?cmoją siecią lokalną.

Uważam, że powinno to być możliwe poprzez:

  1. Dodaję symbol wieloznaczny od *.ddnsdo ddns.example.comw Domenach Google.

  2. Dodaj CNAMEod host1do do host1.ddns.example.comw Domenach Google.

  3. Skonfiguruj dynamiczny serwer DNS + klient w host2mojej sieci lokalnej z portem 53 z przekierowaniem portów przez mój router (mam serwer DNS, który jest w stanie uwzględnić bieżący zewnętrzny adres IP w autorytatywnych odpowiedziach, na których jest zainstalowany host2).

  4. Dodaj odpowiednie wpisy do mojego lokalnego klienta / serwera DDNS ( host2):

    1. Dodaj NSrekord ns.ddns.example.comdo host2.

    2. Dodaj Arekord dynamiczny ns.ddns.example.comdo host2.

    3. Dodaj Arekord dynamiczny services.ddns.example.comdo host2.

  5. Przekierowuję port 1234z host1mojego routera.

Oto, co moim zdaniem powinno się wydarzyć:

Wpisuję host1.example.com/a/b?c:

  1. Prośba do NS com., example.com.a następnie Apoprosić o host1.

  2. host1.example.com zostaje przekierowany do host1.ddns.example.com

  3. Klient prosi o NSzapis z ddns.example.com. Odpowiedź jest 1.2.3.4.

  4. Klient prosi o adres IP host1.ddns.example.com. Odpowiedź jest 1.2.3.4.

  5. Klient łączy się z 1.2.3.4:1234/a/b/?cktórym jest hostowany host1:1234/a/b/?c.

diging host1.example.comdomena zwraca CNAMErekord host1.ddns.example.com. Jednak diging host1.ddns.example.comzwraca domeny Google NS. Zrozumiałem, że CNAMEzapis będzie w zasadzie oznaczał, że każde żądanie zapisu zostanie przekazane. Więc oczekiwać, że robi digdla host1.ddns.example.comdopasuje wieloznaczny, stają się CNAMEprzekierowanie ddns.example.com, co z kolei będzie w stanie obsłużyć resztę rekursji. Czego tu brakuje?

Milad Naseri
źródło
Czy masz wystarczającą liczbę publicznych adresów IP dla każdego hosta, któremu chcesz nadać publiczny DNS? DNS nie rozpoznaje adresu IP: jest to adres IP.
LawrenceC
Jestem tego świadomy i robię to. Naprawiłem swój problem.
Milad Naseri
Czy masz prawa do example.comlub ddns.example.com? To trochę niejasny czasami w swoim pytaniu, i bardzo ważne jest, aby konieczności skutecznego i prawidłowego routingu ... Czy urządzenia, które powinny odpowiadać ddns.example.comi hostN.ddns.example.comna tej samej sieci czy każdy ma inny zewnętrzny adres IP? ... Pytam, ponieważ Myślę, że może ci brakować, że nazwy są rozwiązywane w odwrotnej kolejności , co oznacza, że możesz po prostu wskazać, gdzie znaleźć *.ddns.example.comi pozwolić serwerowi przejść dalej.
S0AndS0

Odpowiedzi:

1

To może być bardzo stare pytanie, ale byłem w podobnej sytuacji, ponieważ mam dynamiczny publiczny adres IP. Używam tylko wielu wystąpień duckdns, które wskazują na 10 różnych subdomen dla różnych usług działających na moim serwerze.

Używam Lets-encrypt do obsługi zwrotnych certyfikatów proxy i ssl i jestem w stanie korzystać z różnych subdomen, takich jak a.duckdns.org, b.duckdns.org wskazują na odpowiedni adres IP: Port.

Jedynym przekierowaniem portów na routerze jest skierowanie portu ssl na letsencrypt. Nie radziłbym niepotrzebnie otwierać dodatkowych portów.

To jest przykładowy letsencrypt .conf dla serwera muzycznego dostępnego na a.duckdns.org

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name abcsonic.*; #(Your subdomain/cname)
    include /config/nginx/ssl.conf;
    client_max_body_size 0;
    # enable for ldap auth, fill in ldap details in ldap.conf
    #include /config/nginx/ldap.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;
        # enable the next two lines for ldap auth
        #auth_request /auth;
        #error_page 401 =200 /login;
        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_airsonic airsonic;
        proxy_pass http://192.168.10.100:4040; #(Airsonic IP address)
    }

}

Hani Umer
źródło
1
Dziękuję za odpowiedź. Właściwie mam na to teraz rozwiązanie :) Mam przekaźnik nginx z automaitc letsencrypt przed nim. Tak więc tylko porty 80 i 443 są otwarte. Ponadto mam równolegle działającą parę klient / serwer DDNS z portem 53, aby umożliwić subdomeny. Ponadto wieloznaczny DNS dla głównej doamin, co oznacza, że ​​każda dubdomena może być hostowana z dynamicznym adresem IP.
Milad Naseri
0

Rozwiązałem problem, analizując każdy element osobno i stwierdzając, że działa poprawnie. Problem związany z kontem domen Google. Najwyraźniej z powodu błędu po ich stronie moje konto zostało zablokowane jako nieaktywowane. Gdy tylko agent obsługi klienta to naprawi, wszystko działało sprawnie. Jako taki, myślę, że układ tego pytania można wykorzystać do pomyślnego skonfigurowania DDNS za innym DDNS i obsługi dynamicznych domen / subdomen bez posiadania statycznego adresu IP.

Milad Naseri
źródło