NetWorker залежить від роздільної здатності імені. Якщо роздільна здатність імен неправильна і не зовсім узгоджена, можуть виникнути проблеми в багатьох операціях NetWorker. Оскільки NetWorker управляє потенційно конфіденційними даними, він повинен забезпечувати ідентичність хостів, з якими він взаємодіє різними способами.
Будь-яка кількість симптомів у NetWorker може бути результатом недосконалості розпізнавання імен у NetWorker:
- Повідомлення про помилки, що вказують на проблеми з пошуком прямого або зворотного імені.
- Неможливість зондування клієнтів під час резервного копіювання.
- Неможливість клієнтів вручну зберегти на сервер або відновити.
- Проблеми з клонуванням або доступом до пристроїв вузла зберігання.
- Проблеми з переглядом або записом медіа-бази даних.
- Сервер або вузол зберігання даних перестає відповідати під час запуску або під час звичайної роботи.
- Неправильно названі або вкладені каталоги індексів.
- Неправильно налаштовані помилки клієнта.
Розпізнавання імен відбувається різними механізмами і на різних рівнях:
- Кеш імен NetWorker
- Кеш локального розв'язувача хоста
- Локальні записи файлів hosts
- Пошук DNS-сервера
Методологія розв'язання назв
1. Кешування NetWorker: NetWorker підтримує внутрішній кеш імен і іноді може не відображати зміни навколишнього середовища, внесені для виправлення проблем з розпізнаванням імен без перезапуску служб. NetWorker також має налаштовуване поле, яке є глобальним для всіх екземплярів клієнта під назвою 'Aliases', яке повинно відображати всі імена, які можна розпізнати для цього екземпляра клієнта, щоб уникнути проблем декількох типів. Якщо обов'язкове ім'я присутнє у внутрішньому кеші NetWorker, воно використовується звідти, а до кешу хосту Resolver не звертаються. Фонова служба сервера NetWorker (nsrd) має можливість скидати свій вирішений кеш імен у фонову службу.raw, очищати кеш або очищати та повторно розв'язувати імена:
- dbgcommand -n nsrd PrintDnsCache=1 (Дамп фоновій службі.raw)
- dbgcommand -n nsrd FlushDnsCache=1 (Скидання)
- dbgcommand -n nsrd FlushDnsCache=9 (Спорожнити та розв'язати)
- Для наведених вище команд можна скористатися або "-n назвою процесу", або "-p PID". Щоб скористатися PID, вам потрібно буде спочатку виконати інші команди, щоб отримати PID; Наприклад, "ps -ef | grep nsr" (Linux) або "tasklist | Findstr NSR" (Windows)
2. Кеш розв'язувача: Усі хости та операційні системи мають локальний кеш-розв'язувач, який допомагає розпізнавати та прискорювати хости, не покладаючись ні на файли хостів, ні на DNS-сервери. Цей кеш перевіряється далі за звичайними правилами розпізнавання імен операційної системи, і якщо запис хоста існує (навіть якщо він старий або неправильний), він використовується перед запитом будь-якого іншого джерела даних. Записи кешу резольвера вводяться в кеш при першій «успішній» спробі розв'язання і залишаються протягом заздалегідь визначеного періоду часу. Деякі операційні системи можуть відображати вміст кешу резольвера (наприклад, хости Windows можуть запускати ipconfig /displaydns), і всі вони мають механізм примусового очищення або очищення його:
- Очищення DNS у Linux може відрізнятися залежно від дистрибутива Linux та встановлених пакетів, зверніться до документації постачальника.
- Windows: ipconfig /flushdns
3. Hosts files: Застарілий механізм розпізнавання хоста полягає у явному введенні IP-адреси, за якою слідують будь-які імена, які потрібно розпізнати для цієї адреси, в окремих рядках, відокремлених пробілами. Це типово перевіряється перед DNS у Windows, У роздільній здатності Linux порядок джерел зазвичай можна налаштувати в /etc/nsswitch.conf або /etc/netsvc.conf. Файли hosts аналізуються лише для першого відповідного запису, щодо якого надсилається запит — таким чином, будь-який другий екземпляр IP-адреси або назви вузла, короткий чи довгий, ніколи не буде знайдено при спробі розпізнати імена. Кожне ім'я або IP-адреса має з'являтися лише один раз, оскільки всі імена слід вводити в одному рядку відповідної IP-адреси.
- Unix/Linux: /etc/hosts
- Вікна: %systemroot%\System32\drivers\etc\hosts
ПРИМІТКА: Файли hosts можуть бути пошкоджені, як і будь-який інший файл - якщо сумніваєтеся, перейменуйте існуючий файл hosts, створіть новий, очистіть кеш резольвера та повторіть спробу.
4. Пряма резолюція: Щоб зв'язатися з іноземним хостом, коли вказано ім'я, хост повинен знайти IP-адресу цього іноземного хоста для зв'язку TCP/IP; під час використання DNS для отримання IP-адреси потрібно виконати запит для цього імені хоста в зоні прямого пошуку. Для використання клієнтом може бути налаштовано кілька хостів DNS; у системах Windows використовуйте ipconfig /all, щоб отримати імена DNS; в операційних системах Linux/UNIX /etc/resolv.conf, як правило, має порядок DNS-серверів. nslookup є найпоширенішим інструментом для запиту DNS і існує на всіх платформах, але часто використовується неправильно; Щоб надіслати запит до зони переспрямування, виконайте такі дії:
- Запустіть nslookup без аргументів, щоб увійти до інтерактивного запиту.
- Введіть ітерацію імені, щоб знайти, і натисніть клавішу Enter, щоб отримати переадресований запис із DNS-сервера, до якого ви підключилися.
- Введіть одне й те саме ім'я ще двічі, щоб побачити, чи запис імені безшумно переміщується між різними вузлами, чи повертає однакові дані.
- Повторіть той самий процес для будь-якого екземпляра будь-якого імені, яке хост може називатися іншими вузлами або вважати себе таким, що має ту саму IP-адресу.
- Повторіть той самий процес для будь-якого іншого DNS-сервера, на потенційне використання якого налаштовано хост, ввівши сервер next_dns_server.
ПРИМІТКА: Усі записи, які повертаються, повинні бути узгоджені між собою та відповідати тому, що адміністратор вважає правильним; І всі відомі імена повинні бути враховані і перевірені.
5. Зворотна роздільна здатність: Щоб зв'язатися з іноземним хостом, коли вказано IP-адресу, хосту може знадобитися знайти ім'я хоста; при використанні DNS запит виконується в зоні зворотного пошуку, щоб знайти ім'я хоста відповідної IP-адреси. Знову ж таки, цим часто зловживають, оскільки введення nslookup IP_Address або навіть введення IP-адреси у nslookup не надсилатиме запит до зони зворотного пошуку:
- Запустіть nslookup без аргументів, щоб увійти до інтерактивного запиту.
- Введіть set q=ptr, щоб змінити тип запиту на Зворотну зону.
- Введіть IP-адресу, щоб скасувати роздільну здатність, і натисніть клавішу Enter.
- Переконайтеся, що ім'я, яке повертається у зворотному записі, збігається з ім'ям прямого запису/IP-адресою.
[root@linux_a~]# nslookup linux_a
Server: 1.2.3.4
Address: 1.2.3.4#53
Name: linux_a.domain.com
Address: 5.6.7.8
[root@linux_a~]# nslookup 5.6.7.8
Server: 1.2.3.4
Address: 1.2.3.4#53
Name: linux_a.domain.com
Address: 5.6.7.8
[root@linux_a~]# nslookup
> set q=ptr
> 5.6.7.8
Server: 1.2.3.4
Address: 1.2.3.4#53
Non-authoritative answer:
8.7.6.5.in-addr.arpa name = linux_a.domain.com.
У наведеному вище прикладі зрозуміло, що запуск nslookup неінтерактивно ніколи не надсилає запит до зони зворотного пошуку.
ПРИМІТКА: NetWorker в значній мірі залежить від ідеального і послідовного зворотного дозволу, а також від стандартного прямого дозволу - це частина його процесу авторизації і спроектований таким чином навмисно, щоб запобігти спуфінгу IP-адреси або іншим типам атак, спрямованих на крадіжку даних резервних копій.
Резолюція
Всі хости NetWorker повинні мати однакову роздільну здатність імен, як пряму, так і зворотну, для будь-якого хоста, з яким вони спілкуються (що залежить від ролі зони даних). Для адміністраторів NetWorker дуже важливо забезпечити негайне та повне вирішення будь-яких проблем з вирішенням хостів.
При усуненні проблем з розпізнаванням імен або для їх виключення в зоні даних NetWorker:
1. Знайдіть усі хости, які беруть участь у невдалій операції - сервер, клієнт(и) і, можливо, вузол(и) зберігання тощо.
2. Для кожного з них визначте IP-адреси, налаштовані локально, і всі очікувані розпізнавальні імена для цих IP-адрес.
3. Налаштуйте всі хости так, щоб вони використовували файл hosts перед DNS для розпізнавання вузлів.
4. На початку файлу hosts одного хоста налаштуйте один запис для кожної IP-адреси, де кожне ім'я відповідає йому в одному рядку.
5. Скопіюйте ці рядки точно з першого хоста до файлів hosts інших задіяних хостів.
6. Відредагуйте клієнтські об'єкти NetWorker, щоб псевдоніми правильно відповідали бажаним IP-адресам.
7. Вимкніть NetWorker на всіх задіяних хостів
8. Очистіть кеш резольвера на кожному хості за допомогою відповідного механізму
операційної системи 9. Перезапустіть NetWorker і спробуйте виконати проблемну операцію ще раз
Щоб довести, що ім'я вирішується даним хостом, скористайтеся таким тестом:
1. З першого хоста NetWorker (наприклад, Client) підключіться до другого (наприклад, Server) за допомогою
nsradmin -s remote_host -p nsrexec - залиште сесію відкритою
2. На тому ж хості визначте процес для nsradmin (наприклад, Windows,
tasklist | findstr nsradmin)
3. Запустіть netstat, щоб показати сокет, пов'язаний із цим процесом (наприклад, Windows,
netstat -ao | findstr process_id)
4. Визначте з'єднувальний роз'єм від цього хоста (крайнє ліве сполучення IP:порт на виході)
5. На віддаленому хості - запустіть netstat -a і знайдіть str/grep для :calling_port_from_first_host (тепер він з'явиться праворуч)
6. Ім'я хоста, яке з'являється в лівій частині двокрапки, є ім'ям першого хоста, для якого другий вузол вирішує вхідне з'єднання як
7. Запустіть ще раз із перемикачем -n, доданим до команди netstat, щоб перевірити IP-адресу того самого сокета, щоб перевірити, чи очікується
IP/маршрут 8. Виконайте зворотний тест, щоб переконатися, що другий хост розпізнає перший вузол у межах очікуваних параметрів