Внутренняя архитектура сервера |
|
Для понимания работы программы следует рассмотреть внутреннюю архитектуру.
Здесь рассматривается наиболее типовой вариант - по одному сетевому интерфейсу внутренней и внешней сети.
Имеется 2 основных программных компонента сервера - сетевой драйвер и сервис.
Сетевой драйвер работает на уровне ядра операционной системы. Он "врезается" между драйвером сетевой карты и стеком TCP/IP и пропускает через себя весь трафик. Тем самым у него есть возможность этот трафик пропустить, отфильтровать или задержать в своей очереди для выполнения задачи регулирования скорости (шейпер). Также часть трафика снимается и передается сервису программы для его дальнейшего анализа.
Дополнительно у сетевой карты может быть включен режим "прослушки" (promiscuous mode). В этом случае сетевая карта будет принимать не только свои пакеты, но и все другие. При использовании в сети HUB (концентраторов) или управляемых коммутатором это позволяет реализовать учет всего трафика, циркулирующего в сети, а не только проходящего через сервер.
Так как сетевых интерфейсов несколько, то система загружает по отдельному экземпляру драйвера на каждый интерфейс. В настройках сетевых интерфейсов этот драйвер присутствует в списке сетевых служб и имеется возможность его выгрузить индивидуально для каждого интерфейса, сняв там соотв. галку привязки. После этого программа с этим интерфейсам, где отвязан драйвер, работать уже не будет. Отвязывать драйвер от интерфейса следует в случаях -
• | При несовместимости драйвера программы с драйвером сетевой карты. Это позволит запустить и настроить работу программы хотя-бы в ограниченном варианте. Например, имеются некоторые специализированные сетевые адаптеры, для которых не разработано драйверов с полноценной поддержкой стандарта Ndis5. |
• | На сетевом интерфейсе нет IP трафика. Например, чистый PPPoE. В этом случае драйвер можно отключить, что сэкономит немного оперативной памяти а также уменьшит нагрузку на процессор. |
• | Интерфейс не используется в программе. |
Для WAN интерфейсов имеются важные особенности - для них система загружает один общий сетевой драйвер для всех WAN интерфейсов. В связи с этим в программе реализована довольно сложная логика работы с несколькими виртуальными WAN интерфейсами и имеются некоторые ограничения по их применению - смотрите раздел Интерфейсы и сети.
Драйвер программы решает следующие основные задачи -
• | Маркировка трафика. Для внутреннего интерфейса это тип трафика (внутренний транзитный, внутренний на сам сервер, внешний), соотнесение трафика пользователям (авторизованный или неавторизованный). Также пакеты метятся атрибутами - скидки (наценки), ограничения по скорости, маршрутизация и т.д. |
• | Внутренняя буферизация трафика, передаваемого на обработку сервису программы. Это важная функция, так как сервис программы в силу загруженности системы бывает не состоянии вовремя забрать все данные, переполнение буфера повлечет потери данных. Размер буфера задается в настройках программы и эта настройка может быть использована для улучшения работы программы в особых случаях. |
• | Фильтрация трафика на основе правил (фильтров). Тут также реализуется логика внешнего и внутреннего сетевого экрана. |
• | Динамическая фильтрация для UDP и FTP-DATA. |
• | Ограничение скорости. Реализуется путем задержки пакетов в очереди. Также для решения этой задачи производится измерение скорости передачи данных. |
• | Перенаправление (редирект) TCP соединений. Этот механизм используется для реализации функции Transparent Proxy. |
• | Переадресация пакетов по виртуальным маршрутам. Используется для реализации функции Advanced Routing. |
• | Учет трафика по отдельным TCP сессиям. Используется для учета трафика в прокси и SOCKS сервере в т.н. Kernel режиме учета. |
• | Блокировка внешних сетей при остановке Traffic Inspector. |
• | Определение тега VLAN для принимаемого пакета, а также добавление необходимых тегов для отправляемых пакетов. |
Для анализа работы драйвера выводится некоторое количество данных - различные счетчики пакетов и т.д. Они доступны в списке интерфейсов консоли, а также отдельно в разделе Диагностики.
Сервис программы включает много различных компонентов, которые могут быть использованы выборочно в зависимости от используемой конфигурации (смотрите следующие разделы).
Текущая страница справки: help.smart-soft.ru/index.html?intstruct.htm