I’ve noticed an odd error message, and I’m try to understand what’s going on, but I can’t see any mention of project names being used as domains in the projects documentation.
This is with incus 6.0.2 LTS from Zabbly repos, running on Ubuntu 22.04.5. I have created a network called “bridge0”:
$ incus network show bridge0
config:
dns.domain: nmm.internal
ipv4.address: 192.0.2.254/24
ipv4.dhcp.ranges: 192.0.2.200-192.0.2.250
ipv4.nat: "true"
ipv6.address: fd4e:4d4d::254/64
ipv6.dhcp.ranges: fd4e:4d4d::1000-fd4e:4d4d::1fff
ipv6.dhcp.stateful: "true"
ipv6.nat: "true"
description: ""
name: bridge0
type: bridge
used_by:
...
managed: true
status: Created
locations:
- none
project: default
(Notice that it has dns.domain=“nmm.internal”)
Now I create a project called “wombat”, and within it a container called “foo”:
incus project create wombat
incus project switch wombat
incus profile edit default <<EOS
devices:
eth0:
name: eth0
network: bridge0
type: nic
root:
path: /
pool: default
type: disk
EOS
incus launch images:ubuntu/24.04/cloud foo
Then I look at journalctl -eu incus
and I see the following error (or warning):
...
Sep 25 21:45:34 brian-kit dnsmasq-dhcp[3218]: read /var/lib/incus/networks/bridge0/dnsmasq.hosts/wombat_foo.eth0
Sep 25 21:45:38 brian-kit dnsmasq-dhcp[3218]: Ignoring domain wombat for DHCP host name foo
I’m trying to understand where and why is the project name being used as a domain, and what is this message trying to tell me?
If I cat
the file that the message refers too, I do see the project name being used as a domain:
$ cat /var/lib/incus/networks/bridge0/dnsmasq.hosts/wombat_foo.eth0
00:16:3e:5b:49:4c,foo.wombat
But if I run tcpdump to look at the DHCP exchange, I don’t see “wombat” in any of the DHCP request or reply attributes:
# tcpdump -i bridge0 -nn -s0 -v udp port 67 or udp port 68
tcpdump: listening on bridge0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:46:49.631561 IP (tos 0xc0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 318)
0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:16:3e:5b:49:4c, length 290, xid 0x48f39b47, secs 1, Flags [none]
Client-Ethernet-Address 00:16:3e:5b:49:4c
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message (53), length 1: Discover
Client-ID (61), length 19: hardware-type 255, ae:7e:08:c1:00:02:00:00:ab:11:ef:12:b7:10:c8:86:e0:6a
Parameter-Request (55), length 12:
Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12)
Domain-Name (15), MTU (26), Static-Route (33), NTP (42)
URL (114), Unknown (119), Unknown (120), Classless-Static-Route (121)
MSZ (57), length 2: 1472
SLP-NA (80), length 0""
Hostname (12), length 3: "foo"
21:46:49.642775 IP (tos 0xc0, ttl 64, id 27650, offset 0, flags [none], proto UDP (17), length 341)
192.0.2.254.67 > 192.0.2.227.68: BOOTP/DHCP, Reply, length 313, xid 0x48f39b47, secs 1, Flags [none]
Your-IP 192.0.2.227
Server-IP 192.0.2.254
Client-Ethernet-Address 00:16:3e:5b:49:4c
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message (53), length 1: ACK
Server-ID (54), length 4: 192.0.2.254
Lease-Time (51), length 4: 3600
SLP-NA (80), length 0""
RN (58), length 4: 1800
RB (59), length 4: 3150
Subnet-Mask (1), length 4: 255.255.255.0
BR (28), length 4: 192.0.2.255
Default-Gateway (3), length 4: 192.0.2.254
Domain-Name-Server (6), length 4: 192.0.2.254
Domain-Name (15), length 12: "nmm.internal"
Hostname (12), length 3: "foo"
And if I go to another container (in another project), I can’t resolve names ending with “wombat”; but I can resolve them with the domain that belongs to the bridge, as I would expect:
# ping foo.wombat
ping: foo.wombat: Name or service not known
# ping foo.nmm.internal
PING foo.nmm.internal (fd4e:4d4d::122d) 56 data bytes
64 bytes from foo.nmm.internal (fd4e:4d4d::122d): icmp_seq=1 ttl=64 time=0.299 ms
Therefore, I don’t see what purpose the project name is serving as a domain.
It’s not actually causing me any problem; I just don’t like seeing error messages that I don’t understand