Содержание
eot ver2
- - - - - - - - Настройка объединения сегментов Ethernet-сетей через IP-сети средствами NETSHe OS
© 2019-2020, NETSHe Lab Ltd
Ярославль
Оглавление
Настройка объединения сегментов Ethernet-сетей через IP-сети средствами NETSHe OS, L2TP и GRETAP
Данное руководство не включает в себя аспекты настройки подключений к сети Интернет или иным IP-сетям, общие вопросы создания L2TP соединения, выделения Ethernet-портов, настройки сетевого моста и включения порта в сетевой мост.
Предполагается, что данные вопросы известны пользователю по соответствующим разделам документации NETSHe OS.
Теоретическая часть
NETSHe OS (начиная с версии 5.2) имеет возможность объединения Ethernet-сетей (L2) поверх IP-сетей (L3).
Допускается как объединение двух или более удаленных сегментов одной сети, так и объединение удаленных сегментов с внутренним (по отношению к серверу или шлюзу) сегментом.
Кроме того, поддерживается возможность изолированного объединения различных сетей, используя технику VLAN.
Для передачи L2 кадров по IP сети используется инкапсуляция кадров в пакеты GRE (GRE-туннель). Поскольку GRE протокол не может функционировать при нахождении какого-либо конца туннеля за NAT, а также для решения проблемы с фиксированными (предсказуемыми) адресами концов туннеля, в NETSHe OS дополнительно используется инкапсуляция GRE пакетов в пакеты L2TP соединения.
Использование L2TP соединений снимает проблему работы оконечных устройств за NAT, реализует возможность авторизации и управления системой в целом за счет использования RADIUS.
Тем не менее, применение L2TP требует наличия центрального устройства (сервера или шлюза), имеющего постоянное подключение к IP сети (например, Интернет) и постоянный IP-адрес (либо настроенное разрешение символьного имени в IP-адрес).
Соответственно, настройка объединения Ethernet сетей сводится к задачам настройки оконечного устройства и сервера (шлюза). На рисунке 1 показан простейший случай объединения двух сегментов Ethernet-сети.
Рисунок 1. Объединение двух сегментов одной Ethernet-сети.
Сервер принимает входящие L2TP соединения от конечных устройств на своем внешнем интерфейсе, авторизует их (например, на RADIUS-сервере), создает соответствующий GRE-туннель и подключает к необходимому сетевому мосту.
Данный сетевой мост служит как для объединения двух и более Ethernet-сетей, находящихся за конечными устройствами, так и для объединения (в том числе с использованием VLAN) с сетями, находящимися за вторым интерфейсом сервера.
При объединении фрагментов одной сети настройка и использование VLAN 802.1Q тэгирования может не потребоваться.
На рисунке 2 показан пример объединения трех сегментов одной Ethernet-сети
Рисунок 2. Объединение двух и более сегментов одной Ethernet-сети
При объединении только удаленных сегментов сетей настройка и использование второго интерфейса на сервере не требуется.
А на рисунке 3 показан пример объединения сегментов разных сетей.
Рисунок 3. Объединение сегментов разных сетей.
Каждой Ethernet-сети на сервере будет соответствовать свой сетевой мост. Такие сетевые мосты на сервере создаются автоматически. В каждый такой мост входят только определенные туннели и VLAN интерфейсы (при подключении внутренних сегментов).
Определение того, какой туннель, сетевой мост и VLAN интерфейс использовать, производится на основе атрибута VLAN-EgressID в ответе RADIUS-сервера.
Два L2TP-соединения, для которых получены ответы RADIUS-сервера с одинаковыми VLAN-EgressID, будут включены в один сетевой мост и фактически объединены.
Два L2TP-соединения, для которых получены ответы RADIUS-сервера с разными VLAN-EgressID, будут включены в разные сетевые мосты и фактически изолированы друг от друга.
Таким образом, изоляция разных Ethernet-сетей внутри сервера осуществляется за счет включения туннелей в разные сетевые мосты, а изоляция Ethernet-кадров внутри второго интерфейса сервера — за счет разных меток 802.1Q.
Ограничения реализации
Ограничениями реализации являются:
- Обязательное наличие RADIUS-сервера, выдающего ответ с атрибутом VLAN-EgressID.
- Поддержка только одного L2TP-соединения между оконечным устройством и сервером (следует как из ограничений самого протокола L2TP, так и из требования единого удаленного IP-адреса для L2TP соединений).
- Невозможность поддержки двух и более VLAN со стороны оконечного устройства (следует из предыдущего пункта, а также невозможности создания двух и более GRETAP туннелей между двумя IP-адресами).
- Один VLAN-EgressID — одна Ethernet-сеть (следствие авторизации и управления через RADIUS-сервер); один 802.1Q тэг на выходе с сервера в сторону коммутатора.
- Реализация не содержит каких-либо активированных средств для ограничения передачи широковещательного и группового L2 трафика по соединениям. Данный вопрос предлагается решать (при необходимости) средствами Ethernet-коммутаторов (предпочтительнее) или настройкой правил фильтрации на сетевых мостах оконечных устройств.
- Накладные расходы (служебное использование пропускной способности IP-соединения) на передачу каждого кадра Ethernet-сети составляют более 6% и растут с уменьшением размера передаваемого кадра.
- Размер Ethernet-кадра в 1360 байт и более (с высокой вероятностью, более 1450 — гарантированно) приведет к передаче двух пакетов на каждый кадр. Что влечет за собой увеличение нагрузки на процессор до двух раз.
Стоит отметить, что пункты 3 и 4 приводят к одному итоговому ограничению: одно оконечное устройство может участвовать в объединении только одной Ethernet-сети.
Общие требования к программно-аппаратному обеспечению
Общие требования, предъявляемые к серверу системы
Серверная часть может быть установлена как на физический сервер, так и запущена в облачном окружении.
Для использования в облачном окружении, серверная часть поставляется в виде образа виртуальной машины в файле формата .vmdk со встроенной поддержкой систем виртуализации VMWare/KVM.
Сервер должен иметь один внешний интерфейс, соединенный с IP сетью, через которую осуществляется соединение с конечными устройствами (например, Интернет). Настройки внешнего интерфейса (встроенного МСЭ) должны допускать UDP пакеты на порт 1701 (L2TP подключения).
При необходимости объединения внешних и внутренних Ethernet-сетей сервер должен иметь второй (внутренний) Ethernet-интерфейс, который будет принимать/отправлять кадры с метками 802.1Q.
Настройки МСЭ (межсетевого экрана) на внешнем или внутреннем интерфейсе должны обеспечивать беспрепятственный обмен пакетами с RADIUS-сервером.
При планировании аппаратной или виртуальной части стоит исходить из:
- минимальных нагрузок в части дисковой подсистемы;
- незначительных запросов в части оперативной памяти (один активный клиент — примерно 1 мегабайт памяти);
- значительной нагрузки в процессорной части (не менее 1 процессорного ядра на 50-100 активных клиентов (зависит от объема трафика) и одно дополнительное ядро на каждые 200 пользователей. Рекомендуются производительные процессорные ядра). При отключении межсетевого экрана (обеспечивается специализированным устройством) на сервере и использовании высокопроизводительных ядер, следует исходить из правила: 1 ядро на 300 пользователей и 1 дополнительное ядро на каждые 400 пользователей.
Система, в целях обеспечения отказоустойчивости и балансировки нагрузки, может содержать более одного сервера при условии помещения перед серверной частью соответствующего балансировщика нагрузки.
Вопросы настройки балансировщика, облачного окружения и (или) сетевых коммутаторов для обработки тэгированных кадров не являются предметом настоящего руководства.
Рекомендуемая архитектура серверной части приведена на рисунке 4.
Рисунок 4. Пример рекомендуемой архитектуры серверной части.
На рисунке 5 показан пример минимально возможной серверной части.
Рисунок 5. Пример минимальной архитектуры серверной части.
Обязательным условием в настройке всех серверов является использование единого локального адреса L2TP соединений. Для предотвращения конфликтов с возможными адресами, мы рекомендуем использовать адрес из Link Local адресов (169.254.0.0/16).
Общие требования, предъявляемые к RADIUS-серверу
В системе может использоваться любой RADIUS-сервер умеющий:
- авторизовать соединения с CHAP,
- выдать для авторизованного соединения атрибут VLAN-EgressID с номером VLAN.
Одним из таких RADIUS-серверов является сервер, входящий в состав NETSHe NMMS.
Вопросы настройки RADIUS-сервера не являются предметом настоящего руководства.
Общие требования, предъявляемые к оконечным устройствам и их подключению для объединения Ethernet-сетей
Конечное устройство должно иметь:
- Встроенное программное обеспечение NETSHe версии не ниже 5.2;
- Иметь настроенное подключение к сети Интернет или иной IP-сети, через которую осуществляется объединение сегментов;
- Иметь минимум один доступный Ethernet-порт;
- Иметь общую производительность и пропускную способность подключения к IP-сети адекватную требуемой пропускной способности для Ethernet-сети.
Настройка системы
Общий план настройки серверной части
Для настройки серверной части необходимо выполнить следующий набор действий:
- Настроить адрес внешнего интерфейса сервера и маршрут по умолчанию в соответствии с выбранной архитектурой.
- Настроить второй интерфейс и все необходимые VLAN интерфейсы на нем в случае объединения внутренних сегментов сети, удаленного доступа к серверу и т. п.
- Настроить встроенный межсетевой экран для пропуска UDP пакетов на порт 1701 внешнего интерфейса, пропуска RADIUS пакетов на внешний или один из внутренних интерфейсов (зависит от конкретной архитектуры), удаленного доступа и взаимодействия с балансировщиком (при необходимости).
- Указать адреса, порты и секретные фразы основного и резервного RADIUS-серверов.
- Настроить L2TP-сервер, указав внешний интерфейс для приема соединений, внутренний/локальный адрес соединений (ДОЛЖЕН БЫТЬ ОДИНАКОВ ДЛЯ ВСЕХ СЕРВЕРОВ), пул адресов для удаленных клиентов.
- Перезапустить сервер.
- Проверить работоспособность сервера и перепроверить все настройки.
Настройка сервера
Настройка подключения сервера к IP-сети не является предметом настоящего руководства.
Настройка внутреннего Ethernet-интерфейса
Настройка внутреннего Ethernet-интерфейса может осуществляться либо вручную, посредством создания соответствующих VLAN интерфейсов, как это описано в документации к NETSHe OS, либо автоматически.
При предварительной настройке интерфейса (например, eth1), последний должен быть исключен из каких-либо существующих мостов, с него требуется убрать назначенный ранее IP-адрес.
В случае ручной настройки, для данного интерфейса должны быть созданы необходимые VLAN интерфейсы (например, eth1.2 (управление), eth1.10, eth1.11, eth1.12 … eth1.102 — для объединяемых сетей).
В случае автоматического создания VLAN для объединяемых сетей следует выбрать пункт меню «Services→Access concentrator→Ethernet over tunnel server / Службы → Концентратор доступа → Ethernet поверх туннелей».
В открывшемся диалоге нужно выбрать соответствующий физический интерфейс (например, eth1), указать размер MTU для выбранного интерфейса и нажать кнопку «Save / Сохранить», как показано на рисунке ниже.
Рисунок 6. Настройка интерфейса, для которого будут автоматически создаваться VLAN
Настройка межсетевого экрана
Разрешите прием входящих L2TP-соединений в МСЭ, добавив правило для зоны WAN, как показано на рисунке ниже:
Рисунок 7. Правило для приема L2TP-соединений
В случае если сервер отделен от общедоступных сетей (Интернет) специализированным устройством, рекомендуем отключить встроенный межсетевой экран для снижения нагрузки на центральный процессор.
Настройка RADIUS
Выберите пункт меню «System → Base settings / Система→ Базовые настройки» и перейдите на вкладку RADIUS-клиент.
Введите имена / адреса, секретные фразы и порты основного и резервного RADIUS-серверов, как показано на рисунке ниже.
Настройка L2TP-сервера
Для настройки L2TP-сервера выберите пункт меню «Services→Access concentrator→L2TP server / Службы → Концентратор доступа → L2TP сервер», далее:
- Включите сервер.
- Выберите внешний интерфейс (обычно еth0).
- Укажите локальный IP-адрес для L2TP-соединений (ДОЛЖЕН БЫТЬ ОДИНАКОВ ДЛЯ ВСЕХ СЕРВЕРОВ).
- Укажите первый и последний адреса для назначения клиентам.
- Указывать адреса серверов имен не требуется.
Для обеспечения уникальности используемых адресов, исключения конфликтов с адресами, применяющимися на оконечных устройствах, мы рекомендуем использовать адреса из диапазона 169.254.0.0/16.
Рисунок 10. Настройка L2TP сервера.
Сохраните изменения и перезапустите сервер.
Проверка сделанных настроек
Для проверки работоспособности, убедитесь, что в списке процессов после перезагрузки присутствует процесс с именем xl2tpd; проверьте настройки межсетевого экрана, прохождение RADIUS-пакетов к серверу RADIUS.
Общий план настройки оконечного устройства
Для оконечного устройства необходимо выполнить следующий набор действий:
- Настроить подключение устройства к внешней сети.
- Настроить L2TP-подключение к серверу, указав его адрес или доменное имя, интерфейс подключения к внешней сети в качестве основного, выданные имя пользователя и пароль. Указать MTU согласно рекомендациям из настоящего руководства (1538).
- Создать и настроить туннель типа GRETAP, указав в качестве удаленного адреса локальный адрес L2TP-сервера, а в качестве основного интерфейса — l2tp. Указать MTU согласно рекомендациям настоящего руководства (1514).
- Создать сетевой мост без назначения ему IP-адреса и отключенным STP.
- Включить туннельный интерфейс в состав этого сетевого моста.
- Высвободить и (или) создать (при отсутствии) или включить имеющийся Ethernet-интерфейс в состав нового сетевого моста.
- Перезагрузить устройство и проверить работоспособность.
Настройка конечного устройства
Встроенное программное обеспечение некоторых устройств с NETSHe OS может иметь шаблон конфигурации, имеющий предварительно (полностью или частично) настроенные L2TP-соединение, GRETAP туннель, сетевой мост и Ethernet-порт (интерфейс), что может облегчить настройку. Также, подобные настройки могут быть автоматически установлены на устройство через NETSHe NMMS. Тем не менее, рассмотрим настройку режима в полном объеме.
Данное руководство исходит из наличия сотового подключения к сети Интернет; доступности настроенного сервера, адресуемого по символьному имени или IP-адресу; наличия у пользователя пары «имя пользователя/пароль» для L2TP подключения, указывающего на VLAN, к которому будет осуществляться подключение Ethernet-порта.
Рисунок 11. Работающее сотовое подключение через интерфейс wwan0
- Настройка l2tp подключения
Перейдите в меню «Сеть→Интерфейсы / Network→Interfaces», пролистайте страницу до конца (или найдите вверху страницу), введите имя нового интерфейса l2tp, как показано ниже и нажмите кнопку «Новый/New».
Рисунок 12. Создание нового интерфейса
Вы будете переадресованы на страницу ввода настроек L2TP подключения, как показано на рисунке ниже.
Рисунок 13. Пример настройки L2TP соединения
Заполните:
- поля «Имя пользователя / Username», «Пароль / Password» назначенной для устройства парой;
- поле «L2TP сервер / L2TP server» именем или адресом L2TP сервера;
- поле «Устройство или интерфейс, который будет использован(о) для установки соединения / Device or interface used to establish connection» именем сотового интерфейса (wwan0).
- Отметьте поле «Не заменять текущий маршрут по умолчанию / Do not replace existing default route».
- Укажите MTU для интерфейса, рассчитанный по формуле: MTU l2tp = MTUethernet + 38. Для стандартного случая, это 1538.
Перейдите на вкладку «Дополнительно / Additional » и выберите зону WAN для интерфейса, как показано ниже, и нажмите кнопку «Сохранить / Save».
Рисунок 14. Задание зоны WAN для L2TP соединения.
- Создание GRE туннеля
Вернитесь в список интерфейсов и перейдите к полю ввода нового интерфейса, как показано на рисунке 2.
Введите имя интерфейса (например, int-gretap) и нажмите кнопку «Новый / New».
Внимание! Имя интерфейса должно содержать слово «gretap».
Вы будете перенаправлены на страницу ввода параметров туннеля:
- Выберите l2tp из списка интерфейсов, как локальный интерфейс для политики/туннеля;
- Введите адрес внутренний адрес L2TP-сервера в поле ниже (Например, 172.16.255.254);
- Введите MTU, вычисленный по формуле MTU = MTU ethernet + 14. Для стандартного случая, это 1514.
Нажмите кнопку «Сохранить / Save».
Рисунок 15. Создание GRETAP туннеля.
- Создание сетевого моста
Данный шаг необходим в случае, если функция объединения сегментов Ethernet-сетей не является единственной. В противном случае переходите к следующему пункту.
Вернитесь в список интерфейсов и перейдите к полю ввода нового интерфейса, как показано на рисунке 2.
Введите имя интерфейса, например br-int и нажмите кнопку «Новый / New».
Внимание! Имя интерфейса должно содержать слово «br».
В открывшемся окне включите интерфейс, убедитесь в отключении STP и включении моста в зону LAN. Нажмите кнопку «Сохранить/Save».
- Включение GRETAP туннеля в сетевой мост
Выберите пункт меню «Сеть-Сетевые мосты / Network-Bridges».
Найдите только что созданный интерфейс туннеля в списке неназначенных интерфейсов. Найдите прямоугольник подходящего сетевого моста (например, введенного на предыдущем шаге). Перетащите интерфейс в прямоугольник моста, как показано на рисунке ниже, и нажмите кнопку «Сохранить / Save».
Рисунок 16. Помещение интерфейса int-gretap в мост br0
Включение свободного/нового Ethernet-интерфейса
Включение отдельного Ethernet-интерфейса необходимо в случае, когда функция проброса осуществляется для какого-то отдельного сегмента сети, а другой необходимой функцией оконечного устройства является, например, предоставление доступа в Интернет.
Работа с отдельным интерфейсом требует создания отдельного сетевого моста, как указано двумя шагами выше.
Помещение интерфейса в сетевой мост описано шагом выше.
Создание нового интерфейса описано в основной документации NETSHe или в документации к конкретному устройству.
- Применение настроек
Процесс настройки завершен. Перезагрузите терминал
Результат. Проверка работоспособности
После нормальной загрузки устройства, в списке сетевых интерфейсов должны присутствовать два интерфейса с IP-адресами:
- wwan0 — сотовое подключение. Внешний адрес L2TP сервера должен быть доступен через сотовое подключение. Проверить можно подобным образом: ping gw.stasoft.net -Iwwan0;
- l2tp — туннельное подключение к удаленному серверу. Внутренний адрес L2TP сервера должен быть доступен подобным образом: ping 172.16.255.254 -Il2tp;
и один интерфейс без IP-адреса — int-gretap.
Интерфейс int-gretap должен присутствовать в списке портов сетевого моста. Проверить можно подобным образом: brctl show br0 (или указав иной сетевой мост).
Все Ethernet-кадры, поступившие на сетевой мост br0 одного устройства, будут переданы через сервер на сетевой мост другого (других) устройств, подключенных к серверу.
Вопросы безопасности
Предлагаемое решение в достаточной степени безопасно, что обеспечено следующими мерами:
- На оконечном устройстве:
- Для второго уровня:
- разные Ethernet-сети (при наличии) изолированы друг от друга на уровне отдельных портов, интерфейсов, сетевых мостов. В туннель попадают кадры только указанной сети.
- Для третьего уровня:
- l2tp соединение не устанавливает и (или) изменяет каких-либо маршрутов на оконечном устройстве.
- При создании нового сетевого моста/Ethernet-интерфейса без назначения адресов (что является рекомендуемым), последние также не изменяют/устанавливают каких-либо маршрутов на оконечном устройстве.
- Никакие службы оконечного устройства недоступны со стороны L2TP сервера, если иное не определено настройками зоны WAN межсетевого экрана.
- На сервере / шлюзе:
- Для второго уровня:
- разные Ethernet-сети изолированы друг от друга на уровне отдельных сетевых мостов и соответствующих им VLAN-интерфейсов. В конкретный туннель попадают кадры только указанной сети.
- Для третьего уровня:
- Сервер принимает извне только L2TP соединения и авторизует их на RADIUS-сервере. При правильной настройке межсетевого экрана, доступ к каким-либо службам на сервере и сетям за сервером/шлюзом невозможен.
Очевидным и доступным способом повысить безопасность системы является использование IPSec для защиты L2TP соединений между оконечным устройством и шлюзом.
Настройка IPSec, как и альтернативный вариант объединения сегментов — DM EVPN, не являются предметом настоящего руководства.