134 lines
9.1 KiB
TeX
134 lines
9.1 KiB
TeX
\section{Выбор формата табличного представления конфигурации сети}
|
|
\label{sec:Chapter3} \index{Chapter3}
|
|
% \todo[inline]{Здесь надо декомпозировать большую задачу из постановки на подзадачи и продолжать этот процесс, пока подзадачи не станут достаточно простыми, чтобы их можно было бы решить напрямую (например, поставив какой-то эксперимент или доказав теорему) или найти готовое решение.}
|
|
|
|
Исходя из результатов обзора, в качестве пользовательской формы задания конфигурации выбрано табличное представление. Такая форма представления удобна тем, что позволяет явно фиксировать элементы сети и их атрибуты, редактировать отдельные значения и проверять заполненность полей. При этом она допускает частично заданные конфигурации: часть параметров может быть указана сразу, а часть оставлена пустой для последующего уточнения.
|
|
|
|
При разработке табличного представления конфигурации сети виртуальных машин рассматривались два варианта организации данных: представление в первой нормальной форме (далее - 1НФ) и представление в третьей нормальной форме (далее - 3НФ). Оба варианта позволяют структурированно описать сеть, однако различаются сложностью редактирования данных в случае непосредственной работы с таблицами. Вторая нормальная форма отдельно не рассматривалась как самостоятельный вариант представления, поскольку для данной задачи она является промежуточным этапом между компактным пользовательским описанием и полностью разнесённой структурой данных.
|
|
|
|
Разберём оба представления на примере топологии, изображённой на рисунке~\ref{fig:exmpl1}
|
|
|
|
|
|
\begin{figure}[htbp]
|
|
\centering
|
|
\includegraphics[width=0.8\textwidth]{files/exmpl1.png}
|
|
\caption{Пример топологии}
|
|
\label{fig:exmpl1}
|
|
\end{figure}
|
|
|
|
\subsubsection*{Первая нормальная форма}
|
|
|
|
Первая нормальная форма \cite{DB}:
|
|
|
|
Переменная отношения находится в \textbf{1НФ} тогда и только тогда, когда в любом допустимом значении этой переменной отношения каждый её кортеж содержит только одно значение для каждого из атрибутов.
|
|
|
|
В первой нормальной форме данные представляются в виде одной таблицы, где каждая строка содержит атомарные значения: имя узла, интерфейс, адреса, принадлежность сети и т.д. Такое представление остаётся достаточно простым для ручного заполнения и позволяет сразу видеть основную структуру конфигурации.
|
|
|
|
|
|
Пример представления конфигурации сети в 1НФ приведен в таблице \ref{tab:1nf}.
|
|
|
|
\begin{table}[h!]
|
|
\centering
|
|
\begin{tabular}{|l|l|l|l|l|}
|
|
\hline
|
|
\textbf{Name} & \textbf{Role} & \textbf{Interface} & \textbf{Network} & \textbf{Device IP} \\
|
|
\hline
|
|
PC1 & Host & eth1 & A & 10.0.0.1/24 \\
|
|
PC2 & Host & eth1 & B & 10.0.0.2/24 \\
|
|
PC3 & Host & eth1 & C & 10.0.0.3/24 \\
|
|
PC4 & Host & eth1 & D & 10.0.0.4/24 \\
|
|
com\_left & Switch & eth1 & tr & \\
|
|
com\_left & Switch & eth2 & A & \\
|
|
com\_left & Switch & eth3 & B & \\
|
|
com\_right & Switch & eth1 & tr & \\
|
|
com\_right & Switch & eth2 & D & \\
|
|
com\_right & Switch & eth3 & C & \\
|
|
\hline
|
|
\end{tabular}
|
|
\caption{Конфигурация сетевых устройств}
|
|
\label{tab:1nf}
|
|
\end{table}
|
|
|
|
\subsubsection*{Третья нормальная форма}
|
|
|
|
Третья нормальная форма \cite{DB}:
|
|
|
|
Переменная отношения находится в \textbf{3НФ} тогда и только тогда, когда её неключевые атрибуты, если они существуют, являются одновременно:
|
|
|
|
\begin{enumerate}
|
|
\item взаимно независимыми;
|
|
\item неприводимо зависимыми от первичного ключа.
|
|
\end{enumerate}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{Неключевой атрибут} --- это атрибут, который не входит в состав первичного ключа рассматриваемой переменной отношения.
|
|
|
|
\item \textbf{Взаимно независимые атрибуты} --- это два или больше атрибутов, таких что ни один из них функционально не зависит от какой-либо комбинации остальных атрибутов. Подобная независимость подразумевает, что каждый такой атрибут может обновляться независимо от остальных атрибутов.
|
|
\end{itemize}
|
|
|
|
В третьей нормальной форме данные разделяются на отдельные сущности: узлы (устройства), интерфейсы, сетевые сегменты и связи. Каждой из этих сущностей сопоставляется отдельная таблица. Такой подход уменьшает дублирование данных по сравнению с 1НФ, однако делает представление более громоздким. Для понимания одной связи приходится обращаться сразу к нескольким таблицам.
|
|
|
|
Пример представления конфигурации сети в 3НФ приведен в таблицах \ref{tab:3nf1} - \ref{tab:3nf3}.
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{|l|l|}
|
|
\hline
|
|
Name & Device \\
|
|
\hline
|
|
PC1 & Host \\
|
|
PC2 & Host \\
|
|
PC3 & Host \\
|
|
PC4 & Host \\
|
|
com\_left & Switch \\
|
|
com\_right & Switch \\
|
|
\hline
|
|
\end{tabular}
|
|
\caption{Сетевые устройства}
|
|
\label{tab:3nf1}
|
|
\end{table}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{|l|l|l|}
|
|
\hline
|
|
Host Name & Interface & Network \\
|
|
\hline
|
|
PC1 & eth1 & A \\
|
|
PC2 & eth1 & B \\
|
|
PC3 & eth1 & C \\
|
|
PC4 & eth1 & D \\
|
|
com\_left & eth1 & tr \\
|
|
com\_left & eth2 & A \\
|
|
com\_left & eth3 & B \\
|
|
com\_right & eth1 & tr \\
|
|
com\_right & eth2 & D \\
|
|
com\_right & eth3 & C \\
|
|
\hline
|
|
\end{tabular}
|
|
\caption{Интерфейсы}
|
|
\label{tab:3nf2}
|
|
\end{table}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{|l|l|}
|
|
\hline
|
|
Interface & IP \\
|
|
\hline
|
|
PC1.eth1 & 10.0.0.1/24 \\
|
|
PC2.eth1 & 10.0.0.2/24 \\
|
|
PC3.eth1 & 10.0.0.3/24 \\
|
|
PC4.eth1 & 10.0.0.4/24 \\
|
|
\hline
|
|
\end{tabular}
|
|
\caption{IP-адреса интерфейсов}
|
|
\label{tab:3nf3}
|
|
\end{table}
|
|
|
|
\subsubsection*{Выбор формы}
|
|
|
|
В качестве основного пользовательского представления была выбрана первая нормальная форма. Она удобнее в сравнении с 3НФ для ручного заполнения, проще воспринимается при описании лабораторных стендов и не требует постоянного перехода между большим количеством связанных таблиц.
|
|
|
|
Табличное представление в 1НФ используется как форма ввода, а при дальнейшей обработке данные могут преобразовываться во внутреннюю модель, где отдельно выделяются узлы, интерфейсы и связи. Такой подход сохраняет простоту заполнения таблицы и одновременно позволяет использовать данные для экспорта во входные форматы средства развертывания сетевых конфигураций или средства построения диаграмм топологии.
|