Схема 11
Если из сети поступил фрагментированный IP-пакет, то драйвер, прежде чем приступать к его обработке производит сборку пакета. Учитывая, что драйвер при шифровании увеличивает размер пакета, то он контролирует TCP-сессию и уменьшает значение параметра MSS для защищенных соединений с тем, чтобы не вызывать необходимость фрагментации пакетов. Поступивший открытый туннелируемый данным узлом пакет, если он поступил от узла, адрес которого разрешен в фильтрах открытой сети, в исходном виде без шифрования помещается в IP-пакет в структуре, содержащей ID и IP-получателя. Будем называть это пакет «временным IP-пакетом», в котором IP-адрес назначения равен ForwardIP – адресу доступа к узлу назначения (для обеспечения маршрутизации на нужный интерфейс). Временный IP-пакет передается в стек для маршрутизации. Поступивший ViPNet-пакет, предназначенный данному узлу или туннелируемому им компьютеру, передается процедуре извлечения исходного IP-пакета. Извлеченный исходный IP-пакет обрабатывается фильтрами защищенной сети и передается в стек TCP/IP. Открытый пакет, не подлежащий шифрованию, подвергается обработке фильтрами открытой сети. В поступившем ViPNet-пакете, не предназначенном данному узлу, IP-адрес и порт назначения подменяются наForwardIP и порт доступа к узлу назначения. IP-пакет передается в стек TCP/IP для маршрутизации. Если идентификатор узла назначения неизвестен, то пакет блокируется с кодом 9. Если адрес узла назначения неизвестен, то пакет блокируется с кодом 18. Обработка драйвером исходящих IP-пакетов, поступивших из стека TCP/IP:
Из стека узла может поступить: - Временный IP-пакет с туннелируемым данным узлом пакетом, созданный на входящем сетевом интерфейсе (только на координаторе); - Собственный открытый IP-пакет данного узла, IP-адрес назначения которого принадлежит либо адресу одного из узлов ViPNet, либо заданному списку туннелируемых адресов одного из удаленных координаторов (адреса могут быть реальные или виртуальные – в соответствии с настройками в мониторе и характеристиками удаленного узла); - Маршрутизируемый ViPNet-пакет (только на координаторе); - Открытый пакет, не подлежащий шифрованию.
|