1NSS-MYMACHINES(8) nss-mymachines NSS-MYMACHINES(8)
2
3
4
6 nss-mymachines, libnss_mymachines.so.2 - Hostname resolution for local
7 container instances
8
10 libnss_mymachines.so.2
11
13 nss-mymachines is a plug-in module for the GNU Name Service Switch
14 (NSS) functionality of the GNU C Library (glibc), providing hostname
15 resolution for the names of containers running locally that are
16 registered with systemd-machined.service(8). The container names are
17 resolved to the IP addresses of the specific container, ordered by
18 their scope. This functionality only applies to containers using
19 network namespacing (see the description of --private-network in
20 systemd-nspawn(1)). Note that the name that is resolved is the one
21 registered with systemd-machined, which may be different than the
22 hostname configured inside of the container.
23
24 Note that this NSS module only makes available names of the containers
25 running immediately below the current system context. It does not
26 provide host name resolution for containers running side-by-side with
27 the invoking system context, or containers further up or down the
28 container hierarchy. Or in other words, on the host system it provides
29 host name resolution for the containers running immediately below the
30 host environment. When used inside a container environment however, it
31 will not be able to provide name resolution for containers running on
32 the host (as those are siblings and not children of the current
33 container environment), but instead only for nested containers running
34 immediately below its own container environment.
35
36 To activate the NSS module, add "mymachines" to the line starting with
37 "hosts:" in /etc/nsswitch.conf.
38
39 It is recommended to place "mymachines" before the "resolve" or "dns"
40 entry of the "hosts:" line of /etc/nsswitch.conf in order to make sure
41 that its mappings are preferred over other resolvers such as DNS.
42
44 Here is an example /etc/nsswitch.conf file that enables nss-mymachines
45 correctly:
46
47 passwd: compat systemd
48 group: compat [SUCCESS=merge] systemd
49 shadow: compat systemd
50 gshadow: files systemd
51
52 hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
53 networks: files
54
55 protocols: db files
56 services: db files
57 ethers: db files
58 rpc: db files
59
60 netgroup: nis
61
63 The container "rawhide" is spawned using systemd-nspawn(1):
64
65 # systemd-nspawn -M rawhide --boot --network-veth --private-users=pick
66 Spawning container rawhide on /var/lib/machines/rawhide.
67 Selected user namespace base 20119552 and range 65536.
68 ...
69
70 $ machinectl --max-addresses=3
71 MACHINE CLASS SERVICE OS VERSION ADDRESSES
72 rawhide container systemd-nspawn fedora 30 169.254.40.164 fe80::94aa:3aff:fe7b:d4b9
73
74 $ ping -c1 rawhide
75 PING rawhide(fe80::94aa:3aff:fe7b:d4b9%ve-rawhide (fe80::94aa:3aff:fe7b:d4b9%ve-rawhide)) 56 data bytes
76 64 bytes from fe80::94aa:3aff:fe7b:d4b9%ve-rawhide (fe80::94aa:3aff:fe7b:d4b9%ve-rawhide): icmp_seq=1 ttl=64 time=0.045 ms
77 ...
78 $ ping -c1 -4 rawhide
79 PING rawhide (169.254.40.164) 56(84) bytes of data.
80 64 bytes from 169.254.40.164 (169.254.40.164): icmp_seq=1 ttl=64 time=0.064 ms
81 ...
82
83 # machinectl shell rawhide /sbin/ip a
84 Connected to machine rawhide. Press ^] three times within 1s to exit session.
85 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
86 ...
87 2: host0@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
88 link/ether 96:aa:3a:7b:d4:b9 brd ff:ff:ff:ff:ff:ff link-netnsid 0
89 inet 169.254.40.164/16 brd 169.254.255.255 scope link host0
90 valid_lft forever preferred_lft forever
91 inet6 fe80::94aa:3aff:fe7b:d4b9/64 scope link
92 valid_lft forever preferred_lft forever
93 Connection to machine rawhide terminated.
94
96 systemd(1), systemd-machined.service(8), machinectl(1), nss-systemd(8),
97 nss-resolve(8), nss-myhostname(8), nsswitch.conf(5), getent(1)
98
99
100
101systemd 250 NSS-MYMACHINES(8)