Визуализация состояния сети Samba
Утилита samba-tool позволяет получать информацию о текущем состоянии сети Samba в графическом представлении, в том числе на языке Graphviz DOT, с помощью группы подкоманд visualize.
Результаты работы подкоманд могут использоваться для выявления проблем в работе репликации.
Общие параметры
Общие параметры вызова для всех подкоманд:
-
-H URL|--URL=URL— адрес сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; по умолчанию передается URL текущего хоста в форматеldap://<имя хоста>; -
-o FILE|--output=FILE— сохранение результата вывода подкоманды в указанный файл; -
--distance— вывод информации в формате матрицы, в строках и столбцах которой перечислены контроллеры домена, а в ячейках — числовые значения, соответствующие количеству шагов или величине отставания репликации (по умолчанию); -
--utf8— вывод информации в кодировке UTF-8; -
--color-scheme=ansi|ansi-heatmap|xterm-256color|xterm-256color-heatmap|None— цветовая схема; -
-S|--shorten-names— вывод общих имен (CN) вместо полных уникальных имен (DN); -
-r|--talk-to-remote— отправка запросов в БД других контроллеров домена; опция обязательна для подкомандыuptodateness; -
--no-key— отключение вывода поясняющей информации; -
--color=yes|no— использование цветов в соответствии с выбранной цветовой схемой; -
--dot— вывод информации о сети в виде графа, в котором контроллеры домена — это вершины, а соединения между ними — ребра, с использованием языка Graphviz DOT; -
--xdot— вывод информации с использованием языка Graphviz DOT с попыткой запуска средства просмотра графов xdot.py (требуется предварительная установка xdot).
Визуализация соединений (объекты NTDSConnection)
Для визуализации соединений между контроллерами домена в сети Samba используется следующий формат вызова:
samba-tool visualize ntdsconn [options]
Подкоманда выводит информацию о соединениях между контроллерами домена, используемых для репликации всего каталога или отдельного его раздела, в виде графа, представленного матрицей, в которой столбцы и строки — это контроллеры домена, а ячейки содержат числа, соответствущие количеству шагов репликации:
-
0— в столбце и строке один и тот же контроллер домена; -
1— прямая связь между двумя контроллерами домена; -
2— транзитивная связь между двумя контроллерами домена, предусматривающая репликацию через промежуточный контроллер домена; -
-— связь отсутствует.
Параметры
Параметры вызова:
-
--importldif=IMPORTLDIF— построение графа на основе данных в формате LDIF, сформированныхsamba_kcc.
Примеры
Пример визуализации соединений для контроллера домена в виде матрицы:
samba-tool visualize ntdsconn -S
NTDS Connections known to CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
destination
,--- *,CN=DC1+
|,-- *,CN=DC2+
source ||,- *,CN=DC3+
*,CN=DC1+ 011
*,CN=DC2+ 101
*,CN=DC3+ 110
'*' stands for 'CN=NTDS Settings'
'+' stands for ',CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com'
Data can get from source to destination in the indicated number of steps.
0 means zero steps (it is the same DC)
1 means a direct link
2 means a transitive link involving two steps (i.e. one intermediate DC)
- means there is no connection, even through other DCs
Пример визуализации соединений для контроллера домена в формате Graphviz DOT:
samba-tool visualize ntdsconn -S --dot --no-key
/* generated by samba */
digraph A_samba_tool_production {
label="NTDS Connections known to CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ad,DC=samdom,DC=example,DC=com";
fontsize=10;
node[fontname=Helvetica; fontsize=10];
"CN=NTDS Settings,\nCN=DC1,\n...";
"CN=NTDS Settings,\nCN=DC2,\n...";
"CN=NTDS Settings,\nCN=DC3,\n...";
"CN=NTDS Settings,\nCN=DC1,\n..." -> "CN=NTDS Settings,\nCN=DC2,\n..." [color="#000000", ];
"CN=NTDS Settings,\nCN=DC1,\n..." -> "CN=NTDS Settings,\nCN=DC3,\n..." [color="#000000", ];
"CN=NTDS Settings,\nCN=DC2,\n..." -> "CN=NTDS Settings,\nCN=DC1,\n..." [color="#000000", ];
"CN=NTDS Settings,\nCN=DC2,\n..." -> "CN=NTDS Settings,\nCN=DC3,\n..." [color="#000000", ];
"CN=NTDS Settings,\nCN=DC3,\n..." -> "CN=NTDS Settings,\nCN=DC1,\n..." [color="#000000", ];
"CN=NTDS Settings,\nCN=DC3,\n..." -> "CN=NTDS Settings,\nCN=DC2,\n..." [color="#000000", ];
}
Вывод подкоманды в графическом представлении:
Визуализация направлений репликации разделов каталога (объекты RepsTo и RepsFrom)
Атрибут схемы каталога RepsTo содержит записи со списками серверов, которые каталог уведомляет об изменениях, и серверов, на которые отправляются изменения по запросу в процессе репликации, для каждого раздела каталога.
Атрибут схемы каталога RepsFrom содержит записи со списками серверов, от которых каталог принимает изменения по каждому из разделов каталога.
Для визуализации содержимого атрибутов RepsTo и RepsFrom в сети Samba используется следующий формат вызова:
samba-tool visualize reps [options]
Подкоманда выводит записи из атрибутов RepsTo и RepsFrom для разделов каталога DOMAIN, SCHEMA, CONFIGURATION, DNSFOREST и DNSDOMAIN в виде графа, представленного матрицей, в которой столбцы и строки — это контроллеры домена, а ячейки содержат числа, соответствущие количеству шагов репликации:
-
0— в столбце и строке один и тот же контроллер домена; -
1— прямая связь между двумя контроллерами домена; -
2— транзитивная связь между двумя контроллерами домена, предусматривающая репликацию через промежуточный контроллер домена; -
-— связь отсутствует.
Параметры
Параметры вызова:
-
-p PARTITION|--partition=PARTITION– раздел каталога, для которого требуется вывести записи атрибутовRepsToиRepsFrom(по умолчанию выводятся записи для всех разделов).
Примеры
Пример визуализации направлений репликации для раздела DOMAIN в виде матрицы:
samba-tool visualize reps -S --partition=domain
RepsTo objects for DOMAIN
destination
,--- *,CN=DC1+
|,-- *,CN=DC2+
source ||,- *,CN=DC3+
*,CN=DC1+ 0--
*,CN=DC2+ 101
*,CN=DC3+ 110
'+' stands for ',CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com'
Data can get from source to destination in the indicated number of steps.
0 means zero steps (it is the same DC)
1 means a direct link
2 means a transitive link involving two steps (i.e. one intermediate DC)
- means there is no connection, even through other DCs
RepsFrom objects for DOMAIN
destination
,--- *,CN=DC1+
|,-- *,CN=DC2+
source ||,- *,CN=DC3+
*,CN=DC1+ 011
*,CN=DC2+ 101
*,CN=DC3+ 110
'+' stands for ',CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com'
Data can get from source to destination in the indicated number of steps.
0 means zero steps (it is the same DC)
1 means a direct link
2 means a transitive link involving two steps (i.e. one intermediate DC)
- means there is no connection, even through other DCs
Пример визуализации направлений репликации для раздела DOMAIN в формате Graphviz DOT:
samba-tool visualize reps -S --partition=domain --dot
/* generated by samba */
digraph A_samba_tool_production {
fontsize=10;
node[fontname=Helvetica; fontsize=10];
"CN=DC1,...";
"CN=DC2,...";
"CN=DC3,...";
"CN=DC1,..." -> "CN=DC2,..." [color="#3d4f7f", style="dotted"; arrowhead=empty];
"CN=DC1,..." -> "CN=DC3,..." [color="#3d4f7f", style="dotted"; arrowhead=empty];
"CN=DC2,..." -> "CN=DC1,..." [color="#3d4f7f", style="dotted"; arrowhead=empty];
"CN=DC2,..." -> "CN=DC3,..." [color="#3d4f7f", style="dotted"; arrowhead=empty];
"CN=DC3,..." -> "CN=DC1,..." [color="#3d4f7f", style="dotted"; arrowhead=empty];
"CN=DC3,..." -> "CN=DC2,..." [color="#3d4f7f", style="dotted"; arrowhead=empty];
"CN=DC2,..." -> "CN=DC1,..." [color="#3d4f7f", style="dotted"; arrowhead=open];
"CN=DC2,..." -> "CN=DC3,..." [color="#3d4f7f", style="dotted"; arrowhead=open];
"CN=DC3,..." -> "CN=DC1,..." [color="#3d4f7f", style="dotted"; arrowhead=open];
"CN=DC3,..." -> "CN=DC2,..." [color="#3d4f7f", style="dotted"; arrowhead=open];
}
...
Вывод подкоманды в графическом представлении:
Визуализация отставания репликации
Для визуализации отставания репликации на основе анализа векторов состояния (up-to-dateness vectors) в сети Samba используется следующий формат вызова:
samba-tool visualize uptodateness -r [options]
На каждом контроллере домена хранится структура, которая содержит максимальные порядковые номера обновления (USN), полученные при последней успешной попытке репликации изменений с остальных контроллеров в сети Samba. Это — векторы обновления (up-to-dateness vector). Если репликация работает корректно и отсутствуют проблемы сетевого взаимодействия, значения векторов обновления на контроллере домена находятся в актуальном состоянии, то есть последний доступный USN для каждого другого контроллера домена совпадает с собственным USN текущего контроллера. В обычном режиме работы в сети может иметь место небольшое отставание от значений векторов обновления. В случае возникновения проблем с репликацией это отставание увеличивается, что и позволяет отследить подкоманда uptodateness.
Параметры
Параметры вызова:
-
-p PARTITION|--partition=PARTITION— раздел каталога, для которого требуется вывести информацию об отставании (по умолчанию информация выводится для всех разделов); -
--max-digits=MAXDIGITS— максимальная разрядность числа, соответствующего величине отставания для участвующих в репликации контроллеров домена; значение по умолчанию —3(максимальное отображаемое значение в этом случае —999).
Примеры
Пример визуализации отставания репликации:
samba-tool visualize uptodateness -r -S --partition=DOMAIN
DOMAIN
out-of-date-ness
,--- CN=DC1+
|,-- CN=DC2+
DC ||,- CN=DC3+
CN=DC1+ 000
CN=DC2+ 000
CN=DC3+ 000
'+' stands for ',CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com'