Community discussions

MikroTik App
 
velis
just joined
Topic Author
Posts: 19
Joined: Tue May 23, 2023 1:54 pm

DNS not working as expected on names without domain?

Tue May 23, 2023 2:09 pm

I "just" installed a hAP ax2 board and so far almost everything is working perfectly. Using RouterOS 7.9 (stable)

I am left with one particularly annoying issue: DNS seems to be behaving strangely.

When entering static DNS entries, "router.lan" works, but "router" doesn't. Any machine that connects to the network and advertises its computername gets registered just fine in DHCP leases, but its name is not propagated, even to router internally. Pinging the machine by its name does not resolve the name while IP works just fine.

Below's my configuration (I removed static DHCP leases and NAT entries):

How can I make this work properly?

To be clear, I want to be able to "ping zabbix" and that would resolve to a machine identifying itself as zabbix, which is somewhere in the subnet. Right now all I can do is "ping 192.168.237.22".

Please note that if I create a static DNS entry for "zabbix.lan", that works as expected. But current setup just doesn't.

My configuration:
# may/23/2023 13:03:36 by RouterOS 7.9
# software id = 9I26-0BUN
#
# model = C52iG-5HaxD2HaxD
# serial number = HE908GJ976M
/interface bridge
add admin-mac=48:A9:8A:91:9E:1E auto-mac=no comment=defconf name=bridge
/interface wifiwave2
set [ find default-name=wifi2 ] channel.skip-dfs-channels=10min-cac configuration.country=Slovenia .mode=ap .ssid=velis-office \
disabled=no name=main-2,4 security.authentication-types=wpa2-psk,wpa3-psk
set [ find default-name=wifi1 ] channel.skip-dfs-channels=10min-cac configuration.country=Slovenia .mode=ap .ssid=velis-office \
disabled=no name=main-5 security.authentication-types=wpa2-psk,wpa3-psk
add configuration.mode=ap .ssid=scantron.si datapath.bridge=bridge disabled=no mac-address=4A:A9:8A:91:9E:25 master-interface=\
main-2,4 name=scantron-2,4 security.authentication-types=wpa2-psk,wpa3-psk
add configuration.mode=ap .ssid=scantron.si datapath.bridge=bridge disabled=no mac-address=4A:A9:8A:91:9E:24 master-interface=main-5 \
name=scantron-5 security.authentication-types=wpa2-psk,wpa3-psk
add configuration.mode=ap .ssid=velis-guest disabled=no mac-address=4A:A9:8A:91:9E:23 master-interface=main-2,4 name=guest-2,4
add configuration.mode=ap .ssid=velis-guest disabled=no mac-address=4A:A9:8A:91:9E:22 master-interface=main-5 name=guest-5
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=dhcp ranges=192.168.237.50-192.168.237.199
/ip dhcp-server
add address-pool=dhcp interface=bridge name=defconf
/interface bridge filter
add action=drop chain=forward comment=guest in-interface=guest-5
add action=drop chain=forward comment=guest out-interface=guest-5
add action=drop chain=forward comment=guest in-interface=guest-2,4
add action=drop chain=forward comment=guest out-interface=guest-2,4
/interface bridge port
add bridge=bridge comment=defconf interface=ether2
add bridge=bridge comment=defconf interface=ether3
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge comment=defconf interface=ether5
add bridge=bridge comment=defconf interface=main-5
add bridge=bridge comment=defconf interface=main-2,4
add bridge=bridge interface=guest-5
add bridge=bridge interface=guest-2,4
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
/ip address
add address=192.168.237.1/24 comment=defconf interface=bridge network=192.168.237.0
/ip dhcp-client
add comment=defconf interface=ether1
/ip dhcp-server lease
add address=192.168.237.21 comment=remote mac-address=08:00:27:AC:9F:B0
add address=192.168.237.20 comment="velis work" mac-address=3E:CA:6A:2E:8C:18
/ip dhcp-server network
add address=192.168.237.0/24 comment=defconf dns-server=192.168.237.1 domain=lan gateway=192.168.237.1 netmask=24
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.237.1 comment=defconf name=router.lan
add address=192.168.237.2 name=klavora
add address=192.168.237.21 name=remote
add address=192.168.237.22 name=zabbix
add address=192.168.237.15 name=pbx
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=accept chain=input comment="WAN configuration" dst-port=80 protocol=tcp
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related hw-offload=yes
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=\
established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new \
in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=33434-33534 protocol=udp
add action=accept chain=input comment="defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=udp src-address=\
fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=input comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept established,related,untracked" connection-state=\
established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=forward comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
/snmp
set contact=Jure enabled=yes location=office trap-version=2
/system clock
set time-zone-name=Europe/Ljubljana
/system note
set show-at-login=no
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
I have since found this post that seems to have the same issue:
viewtopic.php?t=182941 (no resolution, just explanation)
 
velis
just joined
Topic Author
Posts: 19
Joined: Tue May 23, 2023 1:54 pm

Re: DNS not working as expected on names without domain?

Mon Jun 05, 2023 2:27 pm

Bump?
I really expected this to work out of the box. There seems to be no straight answer for it, but it seems a very basic problem to me.

Nobody has an idea?
 
velis
just joined
Topic Author
Posts: 19
Joined: Tue May 23, 2023 1:54 pm

Re: DNS not working as expected on names without domain?

Tue Jul 11, 2023 11:20 am

Another bump? I know I'm asking a really stupid question here that most likely has plenty of guides and answers already, but I don't even seem to know how to search for that...
 
 
User avatar
mkx
Forum Guru
Forum Guru
Posts: 11381
Joined: Thu Mar 03, 2016 10:23 pm

Re: DNS not working as expected on names without domain?

Tue Jul 11, 2023 3:13 pm

Resolving non-FQDN names does not depend on DNS server but on client (which can even have a list od domains to try with short names). So what you have to do:
  • decide on which domain name you want to use internally.
    Let's say you want to use local
  • enter DNS records in FQDN shape (e.g. router.local or server.local)
  • configure domain=local property of DHCP server network. Make sure property dns-server of same setting is set to IP address of your router (setting it to some external server won't help)

As to registering DHCP clients with DNS server: IIRC it doesn't happen automatically with ROS. It is possible to create a script which takes host-name property from list of leases and injects it in DNS server's static list. It may be possible to run the script as DHCP lease hook so there's no delay. Make sure that you also enable some mechanism to remove stale DNS records ... you could run a script which every now and then removes all static DNS entries for hosts which don't have valid DHCP lease (any more).
 
wiseroute
Member
Member
Posts: 352
Joined: Sun Feb 05, 2023 11:06 am

Re: DNS not working as expected on names without domain?

Wed Jul 12, 2023 8:28 am

@ velis

after re-read your post,
I want to be able to "ping zabbix" and that would resolve to a machine identifying itself as zabbix, which is somewhere in the subnet. Right now all I can do is "ping 192.168.237.22".
i think you should understand that there are 2 ways of ip address to names query resolution:

1. fully qualified domain name/fqdn query, such as www.example.org or www.example.local

their name to ip query could be achieved by
1.1. dns server query, and 1.2. by statically put in /etc/hosts file on dns client machine.

example /etc/hosts file on local machine:
192.168.1.1 gateway gateway.example.org
192.168.1.2 www www.example.local

this /etc/hosts file can only be read by local machine. so you need to put those dns names on every machines on the network to be query locally.

the names can be query by dns client or directly by application parameter - ie.

nslookup www.example.org ---> which will query the dns server if local machine doesn't have a host record on /etc/hosts. - this dns server record can be query by any machines allowed to access the dns server.

ping zabbix, or ping www --> this could only be achieved by /etc/hosts file record - since they weren't fqdn names, and it can be ambiguous name (as explained earlier).

2. non fqdn - such as zabbix, nms, localhost, etc - they should be registered in /etc/hosts file record to be query locally. no other machines can use this file record.

hope this helps.

Who is online

Users browsing this forum: No registered users and 30 guests