Команди Linux. DNS та доменні імена

Запитання. Як я можу додати користувача до групи Linux?

Відповідь. Ви можете використовувати команди useradd або usermod для додавання користувача до групи. Команда useradd створює нового користувача або оновлює інформацію у наявного. Команда usermod модифікує існуючого користувача. Вся інформація про користувачів та групи зберігається у файлах /etc/passwd, /etc/shadow та /etc/group.

Приклад використання useradd - Додаємо нового користувача до вторинної групи

Використовуємо команду useradd для додавання нового користувача до існуючої групи. Якщо група не існує, створіть її. Синтаксис:

Useradd -G (group-name) username

Створимо користувача vivek і додамо його до групи developers. Залогіньтесь як користувач rootі переконайтеся, що група developers існує:

# grep developers /etc/group

Developers:x:1124:

Якщо групи немає, використовуйте команду groupadd для створення нової групи developers:

# groupadd developers

Потім додайте користувача vivek до групи developers:

# useradd -G developers vivek

Встановіть пароль для користувача vivek:

Переконайтеся, що користувач доданий до групи developers:

# id vivek Output:

Uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(developers)

Опція -G дає змогу додати користувачеві групу. Групи можна перераховувати через кому. Наприклад, додамо користувача jerry до груп

admins, ftp, www, and developers, ввівши:

# useradd -G admins,ftp,www,developers jerry

Приклад використання useradd - Додаємо нового користувача до основної групи

Для додавання користувача tony до групи developers використовуємо таку команду:

# useradd -g developers tony

uid=1123(tony) gid=1124(developers) groups=1124(developers)

Опція -g дозволяє додати користувача до основної групи. Група має існувати.

Приклад використання usermod - Додаємо існуючого користувача до існуючої групи

Додаємо існуючого користувача tony у вторинну групу ftp:

# usermod -a -G ftp tony

Змінюємо існуючому користувачеві першу групу на www:

# usermod -g www tony

Постовий

Для другої вежі замовив реферат на сайті "Студінформ". Соромно, але часу робити самому зовсім немає. Замовлення виконали дуже швидко та якісно. Рекомендую!

Для своєї машини зараз думаю, які шини ставити. Дуже задумався про шиповані шини. За відгуками, наскільки я почитав, різниця гальмівного шляху найкращих шипованих шин і найкращих моделейбез шипів становила 10 метрів! Є над чим подумати.

Ще один метод перетворення імен полягає у використанні локальної бази даних імен хостів, подібно до того, як це робилося на зорі мережі Internet. Файл /etc/hosts містить список імен хостів з відповідними IP-адресами. У лістингу 4.3 наводиться приклад файлу /etc/hosts для клієнта з урахуванням ОС Linux. У ньому повинні міститися ім'я вашої машини та її IP-адресу, а також IP-адресу петлі 127.0.0.1 для службових цілей. Крім того, якщо є якісь віддалені хости, до яких періодично підключається ваш сервер на ОС Linux, їх IP-адреси також бажано вказати у файлі /etc/hosts. Тепер при кожному зверненні до цих хостів у Linux-сервера вже будуть їх IP-адреси; таким чином, необхідність виконання DNS-запитів відпадає. До того ж, це набагато прискорює встановлення з'єднання.

1 127.0.0.1 localhost 2 192.168.0.1 shadrach.smallorg.org 3 10.0.0.1 mail1.isp.net 4 10.0.0.2 mail2.isp.net 5 10.0.0.3 fred.otherplace.com Лістинг 4.3. Приклад файлу /etc/hosts

У першому та другому рядках вказуються IP-адреси для локального Linux-сервера. У рядках 3–5 представлені IP-адреси для найчастіше запитуваних машин вашої мережі. Завдяки цьому прискорюється доступ до них із сервера на базі ОС Linux, у порівнянні з використанням системи DNS.

Ім'я localhost

У всіх комп'ютерах з ОС Linux здійснюється підтримка імені localhost. Це ім'я завжди відповідає IP-адреса 127.0.0.1 , яка присвоюється спеціальному мережевому пристрої типу "петля". Ці ім'я та адреса дозволяють внутрішнім процесам взаємодіяти з іншими процесами у цій же системі за мережевими протоколами. Багато програм навіть налаштовані на використання імені localhost. Зміна цього імені або відповідної IP-адреси може вплинути на роботу цих програм.

Файл перетворення DNS

У файлі /etc/host.conf визначаються методи та порядок перетворення імен ОС Linux. У лістингу 4.4 показаний приклад файлу /etc/host.conf.

1 order hosts,bind 2 multi on Лістинг 4.4. Приклад файлу /etc/host.conf

У першому рядку вказується порядок перетворення імен хостів. Тут в операційній системі Linux вказується, що в першу чергу вона повинна звертатися до файлу /etc/hosts і шукати хост там, а потім спробувати перетворити ім'я за допомогою системи DNS (bind), якщо не вдалося цього зробити за допомогою /etc/hosts .

Утиліти клієнта DNS в ОС Linux

На допомогу системному адміністратору для ОС Linux було написано безліч утиліт, покликаних полегшити для DNS пошук інформації про віддалені хости та мережі. Для UNIX-систем організацією Internet Software Consortium був створений програмний пакет Berkeley Internet Name Domain (BIND), до якого увійшли три найбільш корисні, з погляду автора, і утиліти, що широко використовуються: host, nslookup і dig. Ці програми розповсюджуються спільно з програмним забезпеченням, яке входить до більшості дистрибутивів ОС Linux. У Red Hat та Mandrake Linux ці програми поставляються у вигляді пакетів RPM.

При вирішенні можливих проблем, пов'язаних із роботою електронної поштив Internet, ці утиліти дуже корисні. Часто відправник припускається помилок на адресу одержувача електронної пошти, і листи не приймаються. Природно, він буде впевнений, що використав правильну адресу, і провину за повідомлення, що повертаються, покладе на вас. Однак після невеликого спілкування з DNS можна зробити однозначні висновки щодо правильності або помилки адреси електронної пошти.

Утиліта host

Програма host виконує найпростіше перетворення імені за допомогою DNS. Формат команди host наступний:

host [-l] [-v] [-w] [-r] [-d] [-t querytype] [-a] host

За замовчуванням команда host намагається отримати IP-адресу для імені, вказаного як host за допомогою DNS-сервера, визначеного у файлі /etc/resolv.conf . Якщо в командному рядкувказано server , то за замовчуванням команда host використовуватиме його як DNS-сервер. Додаючи додаткові параметри командного рядка, можна модифікувати роботу команди host . Усі ці параметри вказані у табл. 4.5.

Таблиця 4.5. Параметри команди host
Параметр Опис
-l Показує повну інформаціюпро домен
-v Використовує докладний формат під час виведення результатів
-w Примушує команду host очікувати відповіді
-r Вимикає режим рекурсії
-d Включає режим налагодження
-t querytype Визначає тип запиту
-a Відновлює всі записи в DNS

Параметр -l можна використовувати для пошуку інформації про всіх хостів в домені. Дуже часто разом з ним використовується параметр -t для того, щоб відфільтрувати інформацію типу (наприклад, -t MX повертає тільки записи МХ для домену). На жаль, в даний час з міркувань безпеки використання параметра -l утруднено, тому що більшість DNS-серверів відмовляє у наданні інформації про хостів зі своїх баз даних. Якщо інформація запитується від віддаленого або завантаженого DNS-сервера (або через низькошвидкісне з'єднання), то можна використовувати параметр -w . З його допомогою програма host примусово очікує на запит. За замовчуванням час очікування становить близько хвилини.

Один з найкорисніших параметрів -r. Він вказує DNS-серверу повертати лише ту інформацію, що міститься у його локальній базі даних. У такому разі DNS-сервер не звертається за інформацією до інших DNS-серверів.

Це дуже зручно при визначенні того, чи ваш DNS-сервер кешує відповіді DNS. По-перше, спробуйте встановити параметр -r . Якщо жодної інформації про ім'я хоста немає, то від локального DNS-сервера відповідь не буде отримано. Потім установіть команду без параметра -r . Тут має бути отримана нормальна відповідь, тому що локальному серверу DNS дозволено отримувати дані від інших серверів DNS. Далі ще раз спробуйте команду host із опцією -r. Тепер отримана інформація має точно співпадати з даними, отриманими в результаті попередньої спроби. Це означає, що DNS-сервер цього разу почерпнув із кешу інформацію, яка належала до попередньої спроби. Якщо жодної інформації не отримано, то локальний DNS-сервер не скешував попередню відповідь. Тоді ви повинні помітити значне уповільнення при отриманні відповіді на запит, оскільки він робиться через мережу, а не береться з кеша.

За замовчуванням команда host спробує вивести результати своєї роботи у зручному для читання форматі. Наприклад, як це показано у лістингу 4.5. Якщо задана опція -v , то висновок має вигляд вихідних записів DNS. При налагодженні роботи системи DNS це може бути корисним.

1 $host www.linux.org 2 www.linux.org has address 198.182.196.56 3 www.linux.org mail is handled (pri=2O) by router.invlogic.com 4 www.linux.org mail is handled (pri =30) by border-ai.invlogic.com 5 www.linux.org mail is handled (pri=10) by mail.linux.org 6 $ Лістинг 4.5. Приклад виконання команди host

У рядку 1 показаний основний формат команди host – просто додайте ім'я хоста, про яке потрібно отримати інформацію. Рядки 2–5 є результатами роботи команди. Рядок 2 показує, що DNS-сервер зміг перетворити ім'я заданого хоста на його IP-адресу. Далі у рядках 3-5 показано три комп'ютери, які можуть приймати електронну пошту для заданого хоста згідно з записами МХ. Зауважимо, що команда host показує навіть вагові коефіцієнти (або пріоритети) кожного поштового сервера. Якщо пошта була надіслана користувачеві зазначеного хоста, то спочатку її доставкою займеться сервер із пріоритетом 10 (mail.linux.org). Якщо команда host не виконується, можна надіслати запит через інший DNS-сервер, вказавши його адресу після адреси хоста в командному рядку. Це дуже ефективно, якщо ви вважаєте, що локальний DNS-сервер поводиться не зовсім правильно.

Version of host.

Description

In the syntax listed below, name is the domain name that is to be looked up. Ім'я може бути також уточнено-додаткове IPv4 адреса або колона-делімітована IPv6 адреса, в якій випадку host will by default perform a reverse lookup for that address. The server is an optional argument that is either the name or IP address of the name server that host should query instead of the server or servers listed in /etc/resolv.conf.

Syntax

host [-aCdlnrsTwv] [-c class] [-N ndots] [-R number] [-t type] [-W wait] [-m flag] [-4] [-6] {name} [server]

Options

The -a (all) option is equivalent to setting the -v option and asking host, щоб зробити тип ANY.

When the -C option is used, hostбуде припинити відображення SOA записів для одних слів з усіх зареєстрованих автентифікованих Name Servers для тих зон. List of name servers is defined by the NS records що є з'єднані для зоні.

-c class

The -c option instructs host to make a DNS query of class class. Це може бути використане для запису Hesiod or Chaosnet class resource records. The default class is IN(Internet).

Verbose output is generated by host when the -d or -v option is used. Два варіанти є equivalent. Вони мають бути призначені для backward compatibility . In previous versions, the -d option switched on debugging traces and -v enabled verbose output.

List mode is selected by the -l option. Це дозволяє host perform a zone transfer for zone name. Transfer the zone printing з NS, PTR, і address records (A/AAAA). If combined with -a all records will be printed.

The -i Option specifies що reverse lookups IPv6 адреси повинні використовувати IP6.INT домашній як визначено в RFC1886. Цей параметр використовується для IP6.ARPA.

-N ndots

The -N option sets the number of dots that have to be in name for it to be considered absolute. The default value is that defined using the ndots statement in /etc/resolv.conf, or 1 if no ndots statement is present. Names with feed dots are interpreted as relative names and will be searched for in the houses listed in the search or domain directive in /etc/resolv.conf.

-R number

The -s option tells hostне буде отримувати відповідь на наступний nameserver if any server responds with SERVFAIL response, which is the reverse of normal stub resolver behavior.

-m flag

The -m can be used to set the memory usage debugging flags record, usage and trace.

Examples

host 204.228.150.3

This command performs a reverse lookup on the IP address 204.228.150.3 , Які результати в output:

3.150.228.204.in-addr.arpa domain name pointer www.сайт.

Related commands

dig- DNS lookup utility.
nslookup— Query a name server для інформації про remote host.
ping- Send ICMP ECHO_REQUEST packets to network hosts.

Хочу розповісти про дещо нестандартний спосіб, за допомогою якого можна відкривати в браузері сайти, використовуючи короткі імена. Наприклад, замість того, щоб набирати в браузері "yandex.ru", можна просто набрати одну літеру "y". Допоможе нам у цьому файл /etc/hosts.

Файл /etc/hosts

У файлі /etc/hosts задаються відповідності між IP адресою та ім'ям хоста (hostname, домен), а також їх псевдонімами (також називаються синонімами, аліасами). Коли ви звертаєтеся до якоїсь адреси в мережі, наприклад, http://yandex.ru, то для доступу до сайту системі потрібно спочатку перетворити адресу сайту на відповідну йому IP адресу, для цього система запитує IP адресу DNS сервера. Якщо у файлі /etc/hosts прописано відповідність між yandex.ru та IP адресою, тоді система використовуватиме саме цю IP адресу. Оскільки ми можемо в файлі /etc/hosts вказати ще й псевдонім, яким буде доступний конкретний IP адрес, ми можемо вказати, наприклад, для yandex.ru псевдонім «y». Відповідно, при запиті «y» у своєму браузері система прочитає IP адресу у файлі /etc/hosts і відкриє сайт yandex.ru. Тобто /etc/hosts, це свого роду локальний сервер DNS.

Як дізнатися IP адресу сайту

Тепер нам потрібно визначити IP адреси сайтів, які ми хочемо додати до /etc/hosts. Варто зазначити, що не всі сайти мають окрему виділену IP адресу і отримати доступ до них тільки за IP адресою не можна. Але майже всі великі сайти та портали мають свою виділену IP адресу. Простий спосіб дізнатися IP адресу сайту це використовувати командну ping:

Ping адрес-сайту.ru

Наприклад, виконаємо:

ping yandex.ru

На екрані з'явиться процес пінгу (щоб натиснути Ctrl+C). Отже, ми отримаємо виведення команди ping-виду:

PING yandex.ru (87.250.250.11) 56(84) bytes of data. 64 bytes from yandex.ru (87.250.250.11): icmp_seq=1 ttl=57 time=3.57 ms ...

Тут видно, що yandex.ru відповідає IP-адресі 87.250.250.11. Аналогічно виконуємо для інших сайтів.

Редагування файлу /etc/hosts

Редагувати файл /etc/hosts потрібно обережно, щоб нічого не зіпсувати, тому що це системний файлі важливо не порушувати його синтаксису. Відкрийте файл для редагування, виконайте в командному рядку:

Sudo gedit /etc/hosts

Вміст файлу виглядає приблизно так:

127.0.0.1 localhost::1 mycomp localhost6.localdomain6 localhost6 127.0.1.1 mycomp#

Синтаксис файлу /etc/hosts дуже простий:

IP-адреса ім'я-хоста [псевдоніми, ...]

Додамо до файлу нові рядки для різних сайтів:

74.125.232.19 google.ru g 94.100.191.203 mail.ru m 194.186.36.211 rbc.ru r 87.250.250.11 yandex.ru y

Збережіть та закрийте файл. Ми прописали відповідності між IP адресами, іменами сайтів та їх псевдонімами. Тепер перейдіть в браузер і введіть в адресному рядку просто «g», повинен відкритися сайт google.ru. Щоб відкрити mail.ru, введіть просто "m", для rbc.ru - просто "r", yandex.ru - "y".

Ця стаття розповість вам про команду host. Утиліта host призначена для виконання запитів до серверів DNS.

[Олексій Вискубов]

Ця стаття розповість вам про команду host.

Приклади роботи наводяться в операційні системи Linux 2.2.17 (Debian unstable, "woody") та FreeBSD 4.2.

Утиліта host призначена для виконання запитів до серверів DNS.
За замовчуванням вона просто знаходить IP-адресу, яка відповідає заданому імені хоста, наприклад:

$ host www.сайт

Www.сайт A 195.5.132.10

$ host www.сайт

Www.сайт has address 195.5.132.10

Як ви бачите, у випадку Linux утилітавидає DNS-запис типу A, а FreeBSD просто повідомляє адресу хоста, використовуючи англійська мова. Слід зазначити, що DNS-запис, що видається Linux, непридатна для безпосереднього приміщення базу даних DNS-сервера, оскільки ім'я хоста не закінчується точкою; вказівка ​​точки після імені хоста під час виклику host також не допомагає.
Крім того, не вистачає IN між ім'ям хоста та A. Якщо вам потрібно отримати запис, який можна було б безпосередньо помістити в базу DNS, у Linux ви можете використовувати параметр -Z:

$host-Z slashdot.org

Slashdot.org. 3600 IN A 64.28.67.48

У FreeBSD такої можливості немає.

Аналогічна ситуація виникає, коли вказане ім'я є аліасом --- Linux виводить рядок зі словом CNAME, а FreeBSD використовує конструкцію "xxx.yyy.zzz is a nickname for aaa.bbb.ccc" :

$host admin1.piter-press.ru

Admin1.piter-press.ru CNAME ns.piter-press.ru

Ns.piter-press.ru A 195.239.142.33

$host admin1.piter-press.ru.

Admin1.piter-press.ru is a nickname for ns.piter-press.ru

Ns.piter-press.ru has address 195.239.142.33

Слід зазначити, що після імені хоста в команді host може бути вказано ім'я сервера, який хочете опитати. Якщо ім'я сервера не вказано (як у прикладах), то проводиться опитування одного з DNS-серверів для даної зони.

Якщо host отримує на вхід не ім'я хоста, а IP-адресу, то відбувається зворотне перетворення --- FQDN.

$ host 195.239.142.33

Name: ns.piter-press.ru

Address: 195.239.142.33

$ host 195.239.142.33

33.142.239.195.IN-ADDR.ARPA domain name pointer ns.piter-press.ru

Цього разу у випадку Linux наведено звичайну текстову інформацію (хоча, здавалося б, чому не вивести DNS-запис типу PTR?). FreeBSD надходить логічніше --- IP-адресаперетворений у відповідне ім'я хоста в зоні IN-ADDR.ARPA, для якого і виведена інформація --- знову ж таки, за допомогою англійської мови.

Підстановка локального домену

Ще одна важлива відмінність версій host в Linux і FreeBSD полягає в тому, що FreeBSD у тому випадку, якщо ім'я хоста не закінчується точкою, намагається підставити для нього локальний домен, чого Linux не робить (можливо це баг, оскільки man-сторінка стверджує зворотне ):

$hostname -d

$nslookup woe.spb.ru

Server: frei.home

Address: 192.168.1.5

Name: woe.spb.ru

Address: 193.125.200.14

$ host woe

Woe does not exist (Authoritative answer)

Як бачимо, spb.ru є локальним доменом, хост woe.spb.ru існує, але команда host woe не видає бажаного результату. Слід зазначити, що наявність файлу /etc/resolv.conf рядка search spb.ru (або domain spb.ru) вирішило б проблему. Під FreeBSD поведінка host інша:

$ host alv

Alv.home has address 192.168.1.1

$ host alv.

Host not found

Локальний домен було підставлено лише у першому випадку, оскільки ім'я не закінчувалося точкою. Наявність рядків search та/або domain у resolv.conf не є обов'язковою.

Детальна інформація: параметр -v

Корисним параметром є –v (verbose). І в Linux, і в FreeBSD його дія практично однакова: виводиться додаткова інформація про зону.

$host-v www.spb.ru

Query about www.spb.ru for record types A

Trying www.spb.ru ...

Query done, 1 answer, status: no error

Www.spb.ru 2134 IN A 195.190.101.3

Authority information:

Www.spb.ru 48235 IN NS ns.nevalink.ru

Www.spb.ru 48235 IN NS ns1.gldn.net

Www.spb.ru 48235 IN NS ns2.gldn.net

Additional information:

Ns.nevalink.ru 54275 IN A 195.190.100.28

Ns1.gldn.net 10978 IN A 194.67.2.108

Ns2.gldn.net 10972 IN A 195.218.218.8

$host-v www.spb.ru.

Rcode = 0 (Success), ancount=1

The following answer is not authoritative:

Наступний показник не є вірогідним як authentic by the server:

Www.spb.ru 2053 IN A 195.190.101.3

For authoritative answers, see:

Www.spb.ru 48154 IN NS ns.nevalink.ru

Www.spb.ru 48154 IN NS ns1.gldn.net

Www.spb.ru 48154 IN NS ns2.gldn.net

Additional information:

Ns.nevalink.ru 51480 IN A 195.190.100.28

Ns1.gldn.net 10348 IN A 194.67.2.108

Ns2.gldn.net 10342 IN A 195.218.218.8

Пояснень вимагає числове поле, що з'явилося у відповіді host . Викликавши host кілька разів, можна помітити, що його значення постійно зменшується, що не дивно, оскільки це поле містить TTL --- часжиття запису в зоні.

Під Linux можна використовувати параметр -vv , що викликає виведення інформації про процес отримання DNS-записів.

Вибір типів записів: параметри -a та -t

Ще два важливі параметрикоманди host --- -a та -t. Параметр -a означає -t ANY в Linux і -v -t any у FreeBSD, тому розберемо значення параметра -t.

Цей параметр використовується для завдання типу DNS-записів, які вас цікавлять. Підтримуються типи записів A, NS, MD, MF, CNAME, SOA, MB, MG, MR, NULL, WKS, PTR, HINFO, INFO, MX, UINFO, UID, GID, UNSPEC. Зверніть увагу, що в Linux тип запису можна вказувати в будь-якому регістрі, а у FreeBSD --- лише малими літерами (a, ns, cname тощо). Якщо параметр -t не вказаний, то Linux за замовчуванням здійснює пошук записів типу A, якщо вказаний параметр -l (див. нижче) --- типів A, NS, PTR. FreeBSD при невказаному параметрі -t шукає записи типів A і MX, при зазначеному параметрі -l --- ще й PTR і NS. Linux-версія host також підтримує тип запису MAILB, що означає будь-який тип MB, MR, MG або MINFO. Замість вказівки параметра -t MAILB можна вказати параметр -m; у цьому випадку буде проведено рекурсивне розкриття записів типів MR і MG до MB. Лістинг зони: параметр -l За допомогою команди host із параметром -l можна отримати листинг цілої зони. Для вказівки типів записів, які вас цікавлять, використовуйте параметри -a та -t. Майте на увазі, що лістинг зони генерується за допомогою запиту AXFR на передачу зони та виділення потрібної інформації з отриманої. Це означає, що -l створює додаткове навантаження на мережу і DNS-сервера, тому використовувати його слід якомога рідше. Крім того, багато системні адміністраторитак налаштовують свої DNS-сервера, що вони не віддають зону "кому завгодно", відмовляючи в обробці запиту AXFR (при цьому FreeBSD-версія host навіть не потрудиться чітко пояснити вам, що сталося):

$host-l slashdot.org

Slashdot.org AXFR record query refused by ns2.andover.net

Slashdot.org AXFR record query refused by ns3.andover.net

Slashdot.org AXFR record query refused by ns1.andover.net

No nameservers for slashdot.org responded

$host-l slashdot.org

Server failed: Query refused

Під Linux ви можете створити повну копію зони, придатну для "годування" bind, за допомогою команди host -Z -a -l (і записати її у файл, додавши -f имя_файла).

Інші параметри

Як відомо, DNS є рекурсивною системою. Якщо DNS-сервер не знаходить інформацію, яку він запитав, він ініціює рекурсивний запит до "вищого" сервера.
Команда host має можливість запобігти цьому: параметр -r забороняє робити рекурсивні запити: опитується лише DNS-сервер за замовчуванням. Цей параметр працює практично однаково і під Linux, і під FreeBSD, але виведення команди в тому випадку, коли запис не знайдено, трохи відрізняється:

$host-r www.spb.ru

www.spb.ru A record currently not present

$host-r www.spb.ru

Як видно, FreeBSD нічого не виводить.

Команда host , у принципі, може використовуватися у мережі Інтернет. Параметр -c дозволяє встановити клас записів, які нас цікавлять. Підтримуються класи записів IN, CHAOS, HS, HESIOD (за замовчуванням використовується IN). Під Linux також підтримуються класи INTERNET, CS, CSNET, CH. Для вказівки всіх класів можна використовувати ключове слово ANY (під Linux можна також використовувати символ *, тільки не забудьте заекранувати його від шелла).

Для виведення налагоджувальної інформації використовуйте параметр -d (під Linux його можна продублювати --- -dd--- збільшення кількості налагоджувальної інформації).

У FreeBSD-версії host ключ-s використовується для роботи з DNSSEC (Linux-версія не працює з DNSSEC, ключ-s використовується для вказівки тайм-ауту DNS-сервера за секунди).

Лістинг зони: додаткові можливості Linux-версії

Параметри, описані в цьому розділі, є специфічними для Linux-версії host.

Рекурсивні лістинги: параметр -L Парамер -L визначає рівень рекурсії при виведенні лістингу зони. Наприклад, команда:

$ host -l -a -L 1 some.zone

Виведе листинг зони some.zone, а також всіх її делегованих зон.
Збільшення рівня рекурсії збільшує глибину перегляду делегованих зон. Все, сказане про небажаність застосування параметра -l має ще більше значення при застосуванні комбінації -L -l .

Статистика: параметр -S Вказівка ​​параметра -S при отриманні лістингу зони виводить статистичну інформацію про кількість знайдених записів різних типів, кількості хостів різних типів, кількості делегованих зон тощо:

$ host -l -a -S freshmeat.net

Freshmeat.net. SOA freshmeat.net. dns-admin.freshmeat.net.



Використання певних DNS-серверів: параметри -p та -P

Параметр -p вказує при отриманні лістингу зони використовувати лише основний (primary) DNS-сервер. Ім'я основного DNS-сервера визначається за допомогою запису SOA зони, що розглядається.
Параметр -P дозволяє вказати список бажаних доменів (через кому). Використовуватиметься DNS-сервер, що має найбільшу кількість збігів компонентів імені з одним із зазначених доменів. Використання цих параметрів видно на прикладі:

$host-vv-p-l piter.com

Trying server 195.239.142.33 (ns.piter.com) ...

$ host -vv -P hellix.piter.com -l piter.com

Finding nameservers for piter.com ...

Query done, 2 answers, status: no error

The following answer is not authoritative:

Piter.com 3308 IN NS ns.piter.com

Piter.com 3308 IN NS hellix.piter.com

Additional information:

Ns.piter.com 85293 IN A 195.239.142.33

Hellix.piter.com 3308 IN A 193.125.199.13

Found 1 address for ns.piter.com

Found 1 address for hellix.piter.com

Trying server 193.125.199.13 (hellix.piter.com) ...

Перепустка зон: параметр -N

Параметр -N дозволяє вказати список зон (через кому), інформація про які не потрібна. Зазвичай він застосовується разом із параметром -L.

Linux: розширений синтаксисЗадавши параметр -x, можна використовувати так званий розширений синтаксис команди host, передаючи їй не одне, а кілька імен хостів. Оскільки кожне ім'я в цьому випадку трактується як ім'я хоста, інформацію про яке необхідно отримати, то для вказівки сервера DNS, який потрібно опитувати, використовується параметр -X . Якщо вказано параметр -X, то -x мається на увазі.

Розширений синтаксис дозволяє запустити host взагалі без імен хостів, передаючи їх згодом стандартний вхід програми. Один рядок може містити кілька імен хостів, але якщо в рядку з'являється символ # або;, його залишок ігнорується.

Linux: спеціальні режими

Одним із спеціальних режимів, що підтримуються утилітою host, є режим передачі зони, що активується параметром -l. У Linux-версії утиліти є ще кілька спеціальних режимів, всі з яких, крім одного, є варіаціями режиму -l.

Варіації режиму передачі зони

Параметр -C аналогічний параметру -l але викликає різні перевірки зони, зокрема, перевіряється, чи дійсно кожен з DNS-серверів, перерахованих в NS-записах для зони, здатний дати авторитетний (authoritative) відповідь на запит про зону. Також виконуються інші перевірки коректності зони.

Параметр -H також аналогічний параметру -l викликаючи передачу зони, хоча він не виводить інформації про записи. Натомість проводиться підрахунок кількості A-записів у зоні. Вживаються спеціальні заходи (див. man 1 host) для того, щоб брати до уваги лише "справжні" хости. Поєднання параметрів -H -S дозволяє отримати докладну статистику зони:

$host-H-S freshmeat.net

Found 34 A records within freshmeat.net

Found 4 NS records within freshmeat.net

Found 9 CNAME records within freshmeat.net

Found 2 SOA records within freshmeat.net

Found 4 MX records within freshmeat.net

Found 32 hosts within freshmeat.net

Found 9 duplicate hosts within freshmeat.net

Found 12 extrazone hosts within freshmeat.net

Found 1 gateway host within freshmeat.net

Found 0 delegated zones within freshmeat.net

Параметри -G, -D, -E виводять імена відповідно хостів-шлюзів (gateway), дублюючих хостів і позазонних (extrazone) хостів. При цьому під шлюзом розуміється хост, що має більше однієї IP-адреси, під хостом, що дублюється, розуміється хост з рівно однією IP-адресою, якій також відповідає кілька імен (можливо, з різних зон --- це може означати помилку в зоні). Під позазонним хостом для зони some.zone розуміється хост виду host.something.some.zone, де something.some.zone не є делегованою зоною.

Режим перевірки адрес

Останній не розібраний нами режим Linux-версії утиліти host -- режим перевірки адрес, ініційований параметром -A . При цьому виконуються такі дії:

* Якщо як аргумент було вказано ім'я хоста, то визначається його адреса, за якою визначається ім'я хоста, та перевіряється на збіг з вихідним ім'ям.

* Якщо в якості аргументу була вказана IP-адреса, то визначається відповідне ім'я хоста, після чого перевіряється, чи входить вихідна IP-адреса до списку IP-адрес для знайденого імені хоста.

* Якщо параметр заданий спільно з параметром -l, то описані дії виконуються для кожного A-запису в зоні.

Олексій Вискубов,



Завантаження...
Top