ОПИСАНИЕ
Вызов getaddrinfo(3) может вернуть несколько результатов. Согласно RFC 3484 эти результаты должны быть отсортированы так, что первым в списке будет ответ с высшим показателем достоверности (success rate). В RFC имеется алгоритм сортировки. Но статические правила не всегда приемлемы. По этой причине в RFC также требуется, чтобы системный администратор имел возможность динамически изменять сортировку. В реализации glibc это можно делать через файл /etc/gai.conf.Каждая строка файла настройки состоит из ключевого слова и его параметров. Пробельные символы в любом месте игнорируются. Строки, начинающиеся с '#', являются комментариями и игнорируются.
Распознаваемые ключевые слова:
- label маска_сети приоритет
- Значение, добавляемое в таблицу ярлыков (label), используемую в RFC 3484 при сортировке. Если определение label, имеющееся в файле настройке, существует, то таблица по умолчанию не используется. Все определения ярлыков таблицы по умолчанию, которые нужно поддерживать, будут являться дублями. За ключевым словом указывается маска сети и значение приоритета.
- precedence маска_сети приоритет
- Данное ключевое слово подобно label, но значение добавляется в таблицу приоритетов (precedence), как описано в RFC 3484. И здесь наличие единственной строки precedence в файле настройки отключает использование таблицы по умолчанию.
- reload <yes|no>
- Данное ключевое слово определяет будет ли процесс проверять изменился ли файл настройки с момента последнего чтения. Если значение yes, то файл перечитывается. Это может привести к проблемам в многонитевых приложениях. Значение по умолчанию no.
- scopev4 маска значение
- Добавляет новое правило в таблицу областей RFC 3484 для адресов IPv4. По умолчанию используются ID областей, описанные в разделе 3.2 RFC 3438. Изменять значения по умолчанию почти никогда не требуется.
ФАЙЛЫ
/etc/gai.confПРИМЕР
Таблица по умолчанию согласно RFC 3484 должна задаваться следующим файлом настройки:
label ::1/128 0 label ::/0 1 label 2002::/16 2 label ::/96 3 label ::ffff:0:0/96 4 precedence ::1/128 50 precedence ::/0 40 precedence 2002::/16 30 precedence ::/96 20 precedence ::ffff:0:0/96 10