Korzystanie z dynamicznego DNS z adresem NAT NAT

1

Nasza organizacja korzysta z routerów miliard 7800 na ADSL z przełączaniem awaryjnym USB 4G / LTE. Podczas gdy w ADSL nasz dynDNS rejestruje poprawny publiczny adres IP. Po przełączeniu awaryjnym na 4G klucz USB nie zapewnia miliardowi publicznego adresu IP, ale adres IP NAT miałby 192.168.8.100. Ponieważ dynamiczna aplikacja / poświadczenia DNS są przechowywane w bilionie, miliard aktualizuje rekord publiczny o adres 192.168.8.100. To nie jest idealne.

Chcielibyśmy, aby rekordem był publiczny adres IP. Prosty Google może zwrócić rzeczywisty publiczny adres IP. Czy istnieją dostawcy dynamicznego DNS, którzy mogą pobrać rzeczywisty publiczny adres IP z żądania rejestracji i zamiast tego użyć tego publicznego adresu IP dla rekordu A?

Nasza obecna reakcja dostawców to po prostu „rekonfiguracja sieci, aby router mógł zobaczyć publiczny adres IP” LUB ”użycie agenta / aplikacji klienta Windows do przeprowadzenia rejestracji zamiast tego”. Żadne z nich nie jest możliwe z powodu ograniczeń sprzętowych i ograniczeń instalacji oprogramowania.

Nie widzę innego rozwiązania niż użycie innego dostawcy, który ma możliwość dynamicznego określania publicznego adresu IP, z którego pochodzi żądanie i korzystania z tego adresu IP.

Lexdon
źródło

Odpowiedzi:

1

To wygląda na trywialne pytanie. Możesz albo:

  • zainstaluj dynamiczny aktualizator DNS, który zapewnia większość usług (na przykład dynDNS ) na dowolnym komputerze w sieci

  • okresowo uruchamiaj zapytanie ( curl), które zaktualizuje wartość twojego publicznego adresu IP ( instrukcje dla dynDNS )

techraf
źródło
0

Jednym ze sposobów na zsynchronizowanie „dynamicznego adresu IP” z DNS jest skorzystanie z usługi takiej jak Dyn lub NoIP, która udostępnia ich własne nazwy domenowe / nazwy domenowe do zakupu.

Jeśli jednak masz własną niestandardową nazwę domeny, której chcesz używać, możesz korzystać z usług DNS firmy NameSilo ( http://www.namesilo.com ) jako dostawcy DNS i poniżej skryptu Windows PowerShell wraz z zaplanowanym zadanie replikacji usługi Dyn / NoIP.

Zakładając, że korzystasz z systemu Windows, oto prosty skrypt, który możesz „zaplanować” za pomocą Harmonogramu zadań, aby uruchamiał się na StartUp / Logon, a następnie uruchamiał się co 6 godzin (w ten sposób maksymalny czas przestoju spowodowany zmianą adresu IP wynosi 6 godzin).

Zapisz poniższy skrypt w pliku o nazwie NameSiloDDNS.ps1

# NameSilo API Dynamic DNS
#Variables
param([string]$APIkey=$(throw "APIKey is required"), [string]$domain=$(throw "Domain is required"), [string]$record)


###Code - Do not edit below this line
# Gather data about the DNS entries in the domain
$listdomains = Invoke-RestMethod -Uri "https://www.namesilo.com/apibatch/dnsListRecords?version=1&type=xml&key=$APIkey&domain=$domain"
$CurrentIP = $listdomains.namesilo.request.ip
if ($record) {
    $RecordIP = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$record.$domain" -and $_.type -eq "A"}).value
    $RecordID = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$record.$domain" -and $_.type -eq "A"}).record_id
} else {
    $RecordIP = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$domain" -and $_.type -eq "A"}).value
    $RecordID = ($listdomains.namesilo.reply.resource_record|where {$_.host -eq "$domain" -and $_.type -eq "A"}).record_id
}
$listdomains.namesilo.reply
#Write-Host "CurrentIP $CurrentIP, RecordIP $RecordIP, RecordID $RecordID"

# If the current IP address is not the same as the one in the record it updates it
Write-Host "https://www.namesilo.com/apibatch/dnsUpdateRecord?version=1&type=xml&key=$APIkey&domain=$domain&rrid=$RecordID&rrhost=$record&rrvalue=$CurrentIP&rrttl=3600"
if ($CurrentIP -ne $RecordIP){
    if ($record) {
        Write-Host "Updating $record.$domain with IP $CurrentIP"
    } else {
        Write-Host "Updating $domain with IP $CurrentIP"
    }
    $update = Invoke-RestMethod -Uri "https://www.namesilo.com/apibatch/dnsUpdateRecord?version=1&type=xml&key=$APIkey&domain=$domain&rrid=$RecordID&rrhost=$record&rrvalue=$CurrentIP&rrttl=3600"
    $update.namesilo.reply
} else {
    Write-Host "No need to update $record.$domain, IP $CurrentIP upto date"
}

Następnie zapisz poniższy skrypt w pliku o nazwie UpdateDDNSIPv4.bat.

PowerShell -ExecutionPolicy Bypass .\NameSiloDDNS.ps1 <NameSilo_API_Key> somedomain.com
PowerShell -ExecutionPolicy Bypass .\NameSiloDDNS.ps1 <NameSilo_API_Key> somedomain.com subdomain

Trzymaj oba pliki w tym samym katalogu. UpdateDDNSIPv4.batjest plikiem wsadowym, który powinien być wywoływany przez Harmonogram zadań w powtarzającym się zadaniu.

Kilka rzeczy, na które należy zwrócić uwagę, musisz zalogować się do swojego konta NameSilo i w API Manager -> Wygeneruj klucz API, który musisz wprowadzić w powyższym skrypcie wsadowym, aby go zastąpić <NameSilo_API_Key>. Tego skryptu można użyć do aktualizacji Arekordów DNS dla głównej domeny (np. somedomain.com), A także dla subdomen (np subdomain.). Możesz utworzyć jeden wiersz dla każdej domeny / subdomeny, którą chcesz zaktualizować.

Ten skrypt automatycznie znajdzie „Publiczny adres IP”, a następnie zaktualizuje twoje rekordy NameSilo DNS A.

Możesz znaleźć BASH równoważnik tego skryptu tutaj: https://github.com/pztop/namesilo_ddns

Odpowiednik skryptu w języku Python można również znaleźć na stronie : https://github.com/rbenji/DynamicDNS-for-NameSilo

Ten skrypt został pobrany i dostosowany z http://www.forkrobotics.com/2014/10/dynamic-dns-w--amesamesilo-and-powershell/

Mam nadzieję że to pomoże

rboy
źródło