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

Хочу розповісти про дещо нестандартний спосіб, за допомогою якого можна відкривати у браузері сайти, використовуючи короткі імена. Наприклад, замість того, щоб набирати в браузері "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 # Натиснутими ліниями є недоступним для IPv6 capable hosts::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ...

Синтаксис файлу /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».

Ще один метод перетворення імен полягає у використанні локальної бази даних імен хостів, подібно до того, як це робилося на зорі мережі 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-сервер поводиться не зовсім правильно.

Запитання. Як я можу додати користувача до групи 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

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

# usermod -g www tony

Постовий

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

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

Ця стаття розповість вам про команду 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

Наступний повідомлення не є авторитетним:

Наступне повідомлення не є вірогідним як 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 respond

$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

Наступний повідомлення не є авторитетним:

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

Зроблено 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 в зоні.

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

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 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 записи за адресою електронної пошти з усіх областей, що містяться у загальних названих серверах для того, що зоні. 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 або 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 domain як визначено в 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. Default value is that defined using the ndots statement in /etc/resolv.conf, or 1 if no ndots statement is present. Names with features dots are interpreted as relative names and will be searched for the domains listed in the search or domain directive in /etc/resolv.conf.

-R number

The -s option tells hostне потрібно отримувати до next nameserver і якщо будь-який сервер відповідає з SERVFAIL response, який є основою звичайного стилю резолюції behavior.

-m flag

The -mможе бути використана для використання пам'яті використання debugging flags record, usage and trace.

Examples

host 204.228.150.3

Цей список можливий, щоб reverse lookup on the IP address 204.228.150.3 , якіresults in the 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.