MikroTik: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Nick (Diskussion | Beiträge) |
Nick (Diskussion | Beiträge) |
||
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 9: | Zeile 9: | ||
1. DNS Settings: | 1. DNS Settings: | ||
* Severs: Router Adresse (10.0.0.1 oder 192.168.178.1) und 9.9.9.9 | * Severs: Router Adresse (10.0.0.1 oder 192.168.178.1) und 9.9.9.9 | ||
* Allow Remote Requests Haken setzen | * <code>Allow Remote Requests</code> Haken setzen | ||
2. DHCP Server -> Networks -> doppelklick auf das Netz | 2. DHCP Server -> Networks -> doppelklick auf das Netz | ||
* DNS Serves: Router Adresse (10.0.0.1 oder 192.168.178.1) und 9.9.9.9 | * DNS Serves: Router Adresse (10.0.0.1 oder 192.168.178.1) und 9.9.9.9 | ||
| Zeile 16: | Zeile 16: | ||
* Lease Script: scriptname eintragen z.B. <code>dhcp-lease-script</code> | * Lease Script: scriptname eintragen z.B. <code>dhcp-lease-script</code> | ||
4. System -> Scripts -> + | 4. System -> Scripts -> + | ||
* Script den vorher erstellten Namen geben: z.B. <code>dhcp-lease-script</code> | |||
* In Source: nochfolgenden Codeschnipsel eintragen: | |||
<pre> | <pre> | ||
:local DHCPtag | :local DHCPtag | ||
| Zeile 82: | Zeile 84: | ||
} | } | ||
</pre> | </pre> | ||
* Angepasster Script in dem als erstes der Kommentar als Hostname verwendet wird, wenn leer dann der original Hostname: | |||
<pre> | |||
:local DHCPtag | |||
:set DHCPtag "#DHCP" | |||
:if ( [ :len $leaseActIP ] <= 0 ) do={ :error "empty lease address" } | |||
:if ( $leaseBound = 1 ) do={ | |||
:local ttl | |||
:local domain | |||
:local hostname | |||
:local dnsname | |||
:local fqdn | |||
:local leaseId | |||
:local comment | |||
:local devicename | |||
:local convert ({}) | |||
:local validChars "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890-" | |||
/ip dhcp-server | |||
:set ttl [ get [ find name=$leaseServerName ] lease-time ] | |||
network | |||
:set domain [ get [ find $leaseActIP in address ] domain ] | |||
.. lease | |||
:set leaseId [ find address=$leaseActIP ] | |||
# Check for multiple active leases for the same IP address. It's weird and it shouldn't be, but just in case. | |||
:if ( [ :len $leaseId ] != 1) do={ | |||
:log info "DHCP2DNS: not registering domain name for address $leaseActIP because of multiple active leases for $leaseActIP" | |||
:error "multiple active leases for $leaseActIP" | |||
} | |||
:set hostname [ get $leaseId host-name ] | |||
:set comment [ get $leaseId comment ] | |||
/ | |||
# Namen für Gerät ermittlen | |||
:set devicename $comment | |||
:if ( [ :len $devicename ] <= 0 ) do={ | |||
:set devicename $hostname | |||
} | |||
# Gerätenamen auf ungültige Zeichen prüfen | |||
:for validCharsIndex from=0 to=([:len $validChars] - 1) do={ | |||
:local validChar [:pick $validChars $validCharsIndex] | |||
:set ($convert->($validChar)) ($validChar) | |||
} | |||
:set ($convert->("_")) ("-") | |||
:set ($convert->(" ")) ("-") | |||
:for i from=0 to=([:len $devicename] - 1) do={ | |||
:local char [:pick $devicename $i] | |||
:local converted ($convert->"$char") | |||
:local convertedType [:typeof $converted] | |||
:if ($convertedType = "str") do={ | |||
:set $char $converted | |||
} else={ | |||
:set $char "" | |||
} | |||
:set dnsname ($dnsname.$char) | |||
} | |||
# FQDN festlegen | |||
:if ( [ :len $dnsname ] <= 0 ) do={ | |||
:log error "DHCP2DNS: not registering domain name for address $leaseActIP because of empty lease host-name or comment" | |||
:error "empty lease host-name or comment" | |||
} | |||
:if ( [ :len $domain ] <= 0 ) do={ | |||
:log error "DHCP2DNS: not registering domain name for address $leaseActIP because of empty network domain name" | |||
:error "empty network domain name" | |||
} | |||
:set fqdn "$dnsname.$domain" | |||
/ip dns static | |||
:if ( [ :len [ find name=$fqdn and address=$leaseActIP and disabled=no ] ] = 0 ) do={ | |||
:log info "DHCP2DNS: registering static domain name $fqdn for address $leaseActIP with ttl $ttl" | |||
add address=$leaseActIP name=$fqdn ttl=$ttl comment=$DHCPtag disabled=no | |||
} else={ | |||
:log error "DHCP2DNS: not registering domain name $fqdn for address $leaseActIP because of existing active static DNS entry with this name or address" | |||
} | |||
/ | |||
} else={ | |||
/ip dns static | |||
:local dnsDhcpId | |||
:set dnsDhcpId [ find address=$leaseActIP and comment=$DHCPtag ] | |||
:if ( [ :len $dnsDhcpId ] > 0 ) do={ | |||
:log info "DHCP2DNS: removing static domain name(s) for address $leaseActIP" | |||
remove $dnsDhcpId | |||
} | |||
/ | |||
} | |||
</pre> | |||
=== Quelle ==== | |||
https://indibit.de/mikrotik-dns-namensaufloesung-fqdn/ | |||
Aktuelle Version vom 5. Dezember 2024, 07:21 Uhr
MikroTik Hilfen
WiFi
- Antennenverstärkung auf maximum setzen (Region ändern z.B. Mexico) Terminal:
interface wireless set antenna-gain=0
- Überprüfen:
interface wireless print advanced
Lokale Domain mit Namensauflösung
1. DNS Settings:
- Severs: Router Adresse (10.0.0.1 oder 192.168.178.1) und 9.9.9.9
Allow Remote RequestsHaken setzen
2. DHCP Server -> Networks -> doppelklick auf das Netz
- DNS Serves: Router Adresse (10.0.0.1 oder 192.168.178.1) und 9.9.9.9
- Domain: gewünschte lokale Domain eintragen z.B.
local
3. DHCP Server -> DHCP -> doppelklick auf das Interface -> Script
- Lease Script: scriptname eintragen z.B.
dhcp-lease-script
4. System -> Scripts -> +
- Script den vorher erstellten Namen geben: z.B.
dhcp-lease-script - In Source: nochfolgenden Codeschnipsel eintragen:
:local DHCPtag
:set DHCPtag "#DHCP"
:if ( [ :len $leaseActIP ] <= 0 ) do={ :error "empty lease address" }
:if ( $leaseBound = 1 ) do=\
{
:local ttl
:local domain
:local hostname
:local fqdn
:local leaseId
:local comment
/ip dhcp-server
:set ttl [ get [ find name=$leaseServerName ] lease-time ]
network
:set domain [ get [ find $leaseActIP in address ] domain ]
.. lease
:set leaseId [ find address=$leaseActIP ]
# Check for multiple active leases for the same IP address. It's weird and it shouldn't be, but just in case.
:if ( [ :len $leaseId ] != 1) do={
:log info "DHCP2DNS: not registering domain name for address $leaseActIP because of multiple active leases for $leaseActIP"
:error "multiple active leases for $leaseActIP"
}
:set hostname [ get $leaseId host-name ]
:set comment [ get $leaseId comment ]
/
:if ( [ :len $hostname ] <= 0 ) do={ :set hostname $comment }
:if ( [ :len $hostname ] <= 0 ) do={
:log error "DHCP2DNS: not registering domain name for address $leaseActIP because of empty lease host-name or comment"
:error "empty lease host-name or comment"
}
:if ( [ :len $domain ] <= 0 ) do={
:log error "DHCP2DNS: not registering domain name for address $leaseActIP because of empty network domain name"
:error "empty network domain name"
}
:set fqdn "$hostname.$domain"
/ip dns static
:if ( [ :len [ find name=$fqdn and address=$leaseActIP and disabled=no ] ] = 0 ) do={
:log info "DHCP2DNS: registering static domain name $fqdn for address $leaseActIP with ttl $ttl"
add address=$leaseActIP name=$fqdn ttl=$ttl comment=$DHCPtag disabled=no
} else={
:log error "DHCP2DNS: not registering domain name $fqdn for address $leaseActIP because of existing active static DNS entry with this name or address"
}
/
} else={
/ip dns static
:local dnsDhcpId
:set dnsDhcpId [ find address=$leaseActIP and comment=$DHCPtag ]
:if ( [ :len $dnsDhcpId ] > 0 ) do={
:log info "DHCP2DNS: removing static domain name(s) for address $leaseActIP"
remove $dnsDhcpId
}
/
}
- Angepasster Script in dem als erstes der Kommentar als Hostname verwendet wird, wenn leer dann der original Hostname:
:local DHCPtag
:set DHCPtag "#DHCP"
:if ( [ :len $leaseActIP ] <= 0 ) do={ :error "empty lease address" }
:if ( $leaseBound = 1 ) do={
:local ttl
:local domain
:local hostname
:local dnsname
:local fqdn
:local leaseId
:local comment
:local devicename
:local convert ({})
:local validChars "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890-"
/ip dhcp-server
:set ttl [ get [ find name=$leaseServerName ] lease-time ]
network
:set domain [ get [ find $leaseActIP in address ] domain ]
.. lease
:set leaseId [ find address=$leaseActIP ]
# Check for multiple active leases for the same IP address. It's weird and it shouldn't be, but just in case.
:if ( [ :len $leaseId ] != 1) do={
:log info "DHCP2DNS: not registering domain name for address $leaseActIP because of multiple active leases for $leaseActIP"
:error "multiple active leases for $leaseActIP"
}
:set hostname [ get $leaseId host-name ]
:set comment [ get $leaseId comment ]
/
# Namen für Gerät ermittlen
:set devicename $comment
:if ( [ :len $devicename ] <= 0 ) do={
:set devicename $hostname
}
# Gerätenamen auf ungültige Zeichen prüfen
:for validCharsIndex from=0 to=([:len $validChars] - 1) do={
:local validChar [:pick $validChars $validCharsIndex]
:set ($convert->($validChar)) ($validChar)
}
:set ($convert->("_")) ("-")
:set ($convert->(" ")) ("-")
:for i from=0 to=([:len $devicename] - 1) do={
:local char [:pick $devicename $i]
:local converted ($convert->"$char")
:local convertedType [:typeof $converted]
:if ($convertedType = "str") do={
:set $char $converted
} else={
:set $char ""
}
:set dnsname ($dnsname.$char)
}
# FQDN festlegen
:if ( [ :len $dnsname ] <= 0 ) do={
:log error "DHCP2DNS: not registering domain name for address $leaseActIP because of empty lease host-name or comment"
:error "empty lease host-name or comment"
}
:if ( [ :len $domain ] <= 0 ) do={
:log error "DHCP2DNS: not registering domain name for address $leaseActIP because of empty network domain name"
:error "empty network domain name"
}
:set fqdn "$dnsname.$domain"
/ip dns static
:if ( [ :len [ find name=$fqdn and address=$leaseActIP and disabled=no ] ] = 0 ) do={
:log info "DHCP2DNS: registering static domain name $fqdn for address $leaseActIP with ttl $ttl"
add address=$leaseActIP name=$fqdn ttl=$ttl comment=$DHCPtag disabled=no
} else={
:log error "DHCP2DNS: not registering domain name $fqdn for address $leaseActIP because of existing active static DNS entry with this name or address"
}
/
} else={
/ip dns static
:local dnsDhcpId
:set dnsDhcpId [ find address=$leaseActIP and comment=$DHCPtag ]
:if ( [ :len $dnsDhcpId ] > 0 ) do={
:log info "DHCP2DNS: removing static domain name(s) for address $leaseActIP"
remove $dnsDhcpId
}
/
}