MikroTik: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Nick (Diskussion | Beiträge) |
Nick (Diskussion | Beiträge) |
||
| Zeile 84: | Zeile 84: | ||
} | } | ||
</pre> | </pre> | ||
* Angepasster Script in dem als erstes der Kommentar als | * Angepasster Script in dem als erstes der Kommentar als Hostname verwendet wird, wenn leer dann der original Hostname: | ||
<pre> | <pre> | ||
:local DHCPtag | :local DHCPtag | ||
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
}
/
}