| NSS-MYMACHINES(8) | nss-mymachines | NSS-MYMACHINES(8) |
نام (NAME)
nss-mymachines - تفکیک نام میزبانهای ماشینهای مجازی و کانتینرهای محلی
خلاصه دستور (SYNOPSIS)
libnss_mymachines.so.2
توضیحات (DESCRIPTION)
nss-mymachines یک ماژول افزونه برای قابلیت سوئیچ سرویس نام گنو (NSS یا Name Service Switch) در کتابخانه سی گنو (glibc) است که تفکیک نام میزبان را برای نامهای کانتینرهای در حال اجرای محلی که در systemd-machined.service(8) ثبت شدهاند، فراهم میکند. نامهای کانتینرها به نشانیهای IP آن کانتینر خاص تفکیک میشوند که بر اساس دامنه (scope) آنها مرتب شدهاند. این قابلیت تنها برای کانتینرهایی اعمال میشود که از فضاهای نام شبکه (network namespacing) استفاده میکنند (به توضیحات --private-network در systemd-nspawn(1) مراجعه کنید). توجه داشته باشید نامی که تفکیک میشود همان نامی است که در systemd-machined ثبت شده است، که ممکن است با نام میزبان پیکربندیشده درون کانتینر متفاوت باشد.
توجه داشته باشید که این ماژول NSS تنها نام کانتینرهایی را در دسترس قرار میدهد که مستقیماً زیر بافتار (context) سیستم فعلی در حال اجرا هستند. این ماژول تفکیک نام میزبان را برای کانتینرهایی که در کنار بافتار سیستم فراخواننده اجرا میشوند، یا کانتینرهایی که در سلسلهمراتب کانتینرها بالاتر یا پایینتر قرار دارند، ارائه نمیدهد. به عبارت دیگر، روی سیستم میزبان، این ماژول تفکیک نام میزبان را برای کانتینرهایی فراهم میکند که مستقیماً در زیر محیط میزبان اجرا میشوند. با این حال، هنگامی که در یک محیط کانتینری استفاده میشود، قادر به تفکیک نام برای کانتینرهای در حال اجرا روی میزبان نخواهد بود (زیرا آنها همسطح هستند و نه فرزند محیط کانتینری فعلی)، بلکه فقط برای کانتینرهای تودرتویی که مستقیماً زیر محیط کانتینری خود اجرا میشوند نام را تفکیک میکند.
برای فعالسازی ماژول NSS، عبارت "mymachines" را به خطی که با "hosts:" در /etc/nsswitch.conf شروع میشود اضافه کنید.
توصیه میشود که "mymachines" پیش از مدخل "resolve" یا "dns" در خط "hosts:" پروندهٔ /etc/nsswitch.conf قرار گیرد تا اطمینان حاصل شود که نگاشتهای آن بر سایر تفکیککنندهها مانند DNS ترجیح داده میشوند.
پیکربندی در /ETC/NSSWITCH.CONF (CONFIGURATION IN /ETC/NSSWITCH.CONF)
در اینجا نمونهای از پروندهٔ /etc/nsswitch.conf آورده شده است که nss-mymachines را به درستی فعال میکند:
passwd: files systemd group: files [SUCCESS=merge] systemd shadow: files systemd gshadow: files systemd hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
مثال: نگاشتهای ارائهشده توسط NSS-MYMACHINES (EXAMPLE: MAPPINGS PROVIDED BY NSS-MYMACHINES)
کانتینر "rawhide" با استفاده از systemd-nspawn(1) ایجاد میشود:
# systemd-nspawn -M rawhide --boot --network-veth --private-users=pick
Spawning container rawhide on /var/lib/machines/rawhide.
Selected user namespace base 20119552 and range 65536.
...
$ machinectl --max-addresses=3
MACHINE CLASS SERVICE OS VERSION ADDRESSES
rawhide container systemd-nspawn fedora 30 169.254.40.164 fe80::94aa:3aff:fe7b:d4b9
$ ping -c1 rawhide
PING rawhide(fe80::94aa:3aff:fe7b:d4b9%ve-rawhide (fe80::94aa:3aff:fe7b:d4b9%ve-rawhide)) 56 data bytes
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
...
$ ping -c1 -4 rawhide
PING rawhide (169.254.40.164) 56(84) bytes of data.
64 bytes from 169.254.40.164 (169.254.40.164): icmp_seq=1 ttl=64 time=0.064 ms
...
# machinectl shell rawhide /sbin/ip a
Connected to machine rawhide. Press ^] three times within 1s to exit session.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
...
2: host0@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 96:aa:3a:7b:d4:b9 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 169.254.40.164/16 brd 169.254.255.255 scope link host0
valid_lft forever preferred_lft forever
inet6 fe80::94aa:3aff:fe7b:d4b9/64 scope link
valid_lft forever preferred_lft forever
Connection to machine rawhide terminated.
همچنین ببینید (SEE ALSO)
systemd(1), systemd-machined.service(8), machinectl(1), nss-systemd(8), nss-resolve(8), nss-myhostname(8), nsswitch.conf(5), getent(1)
| systemd 261.2 |