Асинхронная маршрутизация

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Наиболее правильным способом обеспечить надёжность фильтрации при больших объёмах трафика является комбинирование асинхронной маршрутизации с обработкой зеркала трафика.

Словарь

Несколько синонимов для лучшего понимания:

  • разрыв - активная схема включения DPI
  • зеркало - пассивная схема включения DPI
  • NAS - network access server, маршрутизатор, агрегирующий подключения абонентов
  • Border - центральный маршрутизатор провайдера, подключающийся к аплинкам

Схема сети

Описание

В данной схеме используется два сервера Carbon Reductor 8.

Используемые подсети:

  • абонент-NAS - 
  • NAS-Reductor (разрыв)
  • NAS, Reductor (разрыв) и Reductor (зеркало) - Border

Данная схема минимальна - она реализуется с учётом того, что ни одна из этих подсетей не пересекается. Также в этой схеме не используются VLAN. Это не означает то, что сети не должны пересекаться, что в ней не должно быть VLAN или чего-то ещё - просто это на текущий момент не протестировано и потенциальные возникающие при этом проблемы ещё не описаны в этой статье.

Reductor (зеркало) анализирует весь исходящий трафик, зеркалируемый с Border'а.

Reductor (разрыв) анонсирует известные ему IP адреса запрещённых ресурсов на NAS с помощью BGP. При этом фильтрации по самим IP адресам в большей части случаев не происходит, на Reductor (разрыв) производится анализ пакетов и решение принимается на основе их содержимого. Такая схема повышает надёжность фильтрации, устраняя небольшую вероятность потерь исходящих от абонентов пакетов зеркалирующим оборудованием и потерь отправленных редиректов. В этой схеме не решается проблема с ресурсами, часто изменяющими свой IP адрес - они анализируются в зеркале трафика. Основная проблема, которую решает эта схема - сделать надёжным анализ 90-98% ресурсов, IP адреса которых известны.

Какие адреса анонсирует reductor (разрыв):

  • ip_block_subnet - список IP адресов подсетей, которые должны быть заблокированы по всем портам и протоколам.
  • ip_forward - список IP адресов, которые должны отправляться в разрыв через reductor.
    • на текущий момент этот список формируется из списков ip_http_plus, ip_https и ip_https_plus.

Адреса подсетей в этих двух списках не должны пересекаться. Это обеспечивается системой обработки списков Carbon Reductor 8, приоритет отдаётся ip_block_subnet.

Обработка пересечений учитывает вхождение небольших подсетей в более крупные подсети.

Вариации этой схемы

В принципе Reductor (зеркало) и Reductor (разрыв) можно совместить на одном сервере, но в таком случае возрастают требования к аппаратной части этого сервера.

NAS-серверов может быть несколько и со всеми будет устанавливаться BGP сессия.

Можно отправлять в списке анонсируемых также IP адреса популярных публичных DNS серверов, для этого необходимо добавить их в /app/reductor/var/lib/reductor/lists/provider/our.ip_http_plus для повышения надёжности фильтрации DNS трафика

Настройки

Carbon Reductor (разрыв)

Сеть

Необходимо также настроить обратные маршруты до сетей абонентов на reductor (разрыв). Это можно сделать настроив связку с NAS-серверами по OSPF, либо прописав статические маршруты (что удобнее - зависит от того как устроена сеть). Например NAS сервера доступны на Carbon Reductor через интерфейс eth2. Тогда его настройки будут выглядеть следующим образом.

/app/reductor/cfg/userinfo/mirror.conf

eth2 - 10.30.20.1/24 forward

Из этой строчки будет сгенерирован конфиг /etc/sysconfig/network-scripts/ifcfg-eth2 вида:

IPADDR=10.30.20.1
PREFIX=24
DEFROUTE=no
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no

В /etc/sysconfig/network-scripts/route-eth2 нужно вручную прописать маршруты вида:

  • 10.30.33.0/24 - сеть абонентов
  • 10.30.32.0.24 - сеть абонентов
  • 10.30.20.2 - NAS, через который она доступна

конфиг будет выглядеть так:

10.30.32.0/24 via 10.30.20.2
10.30.33.0/24 via 10.30.20.2

app reductor

app bgp_blackhole

NAS

Border

Пример сети для тестирования в виртуальной среде

vm_server:
  networks:
    management2: 10.90.0.0/16	# административный доступ из сети офисных машин
    management: 10.50.0.0/16	# административный доступ из сети виртуальных машин на node
    abonent: 10.30.20.0/24	# абонентская сеть
    reductor_route: 10.30.21.0/24	# сеть между NAS и Reductor, через которую он шлёт трафик для анализа в разрыв
    border: 10.30.22.0/24		# подключение к Border, выход в интернет для всех серверов сети (NAS, Reductor)
  vms:
    abonent:			# тестовый абонент, с него можно совершать запросы и смотреть tcpdump'ом как он идёт по сети
      network:
        abonent:			# default route, выходим в интернет через NAS
          eth0: 10.30.20.2/24 via 10.30.20.1
        management: 		# нужен чтобы подключаться к тестовой машине по SSH с ноутбука
          eth1:
            - 10.50.15.18/16
            - 10.90.0.0/16 via 10.50.0.4
    gate:			# NAS-сервер
      network:
        border:			# default route, выходим в инет через бордер
          eth1: 10.30.22.2/24 via 10.30.22.1
        abonent:			# агрегация абонентов
          eth2: 10.30.20.1/24
        reductor_route:		# линк к Carbon Reductor, здесь живёт BGP-сессия с ним
          eth3: 10.30.21.2/24
        management:		# подключение к виртуалке по SSH с ноутбука
          eth0:
            - 10.50.140.213/16
            - 10.90.0.0/16 via 10.50.0.4
    border:			# бордер, центральный маршрутизатор, точка подключения к аплинку(ам)
      network:
        management:		# defroute, по совместительству подключение к виртуалке по SSH с ноутбука
          eth0: 10.50.140.211/16 via 10.50.0.4
        border:			# подключение NAS-серверов к нему, должны быть обратные маршруты до сетей абонентов
          - eth1
          - 10.30.22.1/24
          - 10.30.20.0/24 via 10.30.22.2
    reductor:			# Carbon Reductor 8
      network:
        border:			# default route, выход в интернет
          eth1: 10.30.22.3/24 via 10.30.22.1
        reductor_route:
          eth2:			# линк к NAS-серверу(ам), здесь живёт BGP-сессия с ним(и), + короткий обратный маршрут к абонентам
          - 10.30.21.1/24
          - 10.30.20.0/24 via 10.30.21.2
        management:		# нужен чтобы подключаться к тестовой машине по SSH с ноутбука
          eth0:
            - 10.50.140.215
            - 10.90.0.0/16 via 10.50.0.4
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.