Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программный маршрутизатор на linux с веб интерфейсом

Программный маршрутизатор на linux с веб интерфейсом

Программный маршрутизатор «ArtX router»

Основные функции и модули маршрутизатора:

  • IP v4/ IPv6 router
  • OSPF, BGP4, BGP6, RIP v1/2, IS-IS, RIP-NG
  • MPLS, 802.1q
  • virtual router
  • Filter
  • NAT
  • IPSEC, PPPoE, PPTP, L2TP, EoIP (GRE,ArtX)
  • L2Bridge + Filter
  • Transparent PROXY
  • FLOW QUEUE (QoS), 802.1p, RED, GRED
  • Конфигуратор (Cli, telnet, Web GUI)
  • DPI
  • Мультиплексор каналов

Интерфейсы 110 GE, RS-232

Производительность маршрутизации — до 2 000 000 packets в режиме полной поддержки BGP Full View.

Программный маршрутизатор реализован на ОС Linux v. 3.10 (функции 1-12) и ОС Free BSD v.9.1 Реализация ПМ для двух операционных систем позволяет использовать особенности каждой из них для решения специализированных задач, использовать дополнительный функционал, предоставляемый сторонними разработчиками и главное использовать передовые разработки для каждой из ОС, появление которых происходит или не синхронно или вообще не происходит.

В качестве платформы для ПМ используются современные многоядерные процессорные платы общего назначения, что сильно влияет на снижение стоимости решения.

Описание функций (модулей) маршрутизатора.

Поддержка протоколов IP v4/ IPv6 с применением механизма policy-based routing (PBS, маршрутизация на основе правил). Поддержка множественных таблиц маршрутизации и специальных таблиц маршрутизации на основе правил. Это позволяет создавать более гибкие механизмы обработки пакетов, дополняя стандартные механизмы, предоставленные протоколами маршрутизации.

Поддержка протоколов OSPF, BGP4, BGP6, RIP v1/2, IS-IS, RIP-NG без ограничения числа записей в таблице маршрутизации.

Поддержка MPLS, 802.1q.

Виртуальный маршрутизатор (virtual router). Возможность создания множества виртуальных маршрутизаторов внутри функционала данного маршрутизатора. То есть, можно на одной платформе иметь несколько маршрутизаторов, реализующих особенные или дополнительные к основной задачи или просто клоны основного маршрутизатора. Масштабирование задачи ограничивается только количеством ОЗУ и мощностью платформы.

Фильтрация пакетов на основе одиночных или комбинированных фильтров по source/destination, port, protocol, address,содержимого пакета (content, u32 filter), заданной последовательности байтов в пакете данных. Поддержка фильтрации по таблицам адресов и портов. Динамическое добавление таблиц фильтрации. Динамическая фильтрация пакетов по заданным условиям на основе правил.

NAT, поддержка трансляции адреса источника, адреса назначения, masquerading

поддержка туннелей IPSEC, PPPoE, PPTP, L2TP, EoIP (GRE,ArtX). EoIP (ArtX) — проприетарный туннель, собственная разработка компании.

Подержка L2Bridge + Filter позволяет маршрутизатору осуществлять коммутацию пакетов на втором уровне (Layer2 switch) с возможностью фильтрации трафика (L2,L3) и перенаправления трафика в систему маршрутизации L3.

Transparent PROXY для протокола НТТР с кешированием контента. Для протокола HTTPS возможна поддержка замены корневого сертификата для пересылки трафика на ICAP сервер (MITM attack). (C использованием данной технологии (направления) связывается разработка SSL SPLIT для исследования контента в защищенных соединениях).

FLOW QUEUE (QoS), 802.1p, RED, GRED. Классификация трафика на основе адресации пакета (адрес, порт, протоколы), содержимого пакета (u32), меток файервола и т. д. Разделение трафика по очередям и установка правил (дисциплин) обработки этих очередей. Реализация FLOW QUEUE позволяет обеспечивать механизмы не толькоТоS, QoS, CoS, но и задачи связанные с обеспечением DPI, управлением предоставляемыми услугами.

Маршрутизатором поддерживается модуль DPI, обеспечивающий поиск известных (зарегистрированных) в системе протоколов в трафике и возможность классификации и фильтрации по контенту передающемуся в идентифицированных системой протоколах (типах трафика).

Мультиплексор (MUX) каналов — модуль обеспечивающий объединение нескольких L2 каналов в один канал, с учетом загрузки объединенных каналов иили приоритетом трафика в объединяемых каналах.

Конфигуратор системы: система конфигурирования, управления, мониторинга с веб-интерфейсом. Поддержка CLI (telnet). Логгирование: локальное, поддержка syslog. Поддержка программных интерфейсов и протоколов для взаимодействия с системами биллинга, управления услугами и т.д.

Мониторинг SNMP v2/v3

Обовление ПО — www server. Поддержка модульной лицензионной политики.

Краткий функционал Vyatta

Vyatta — сетевая операционная система, основанная на Debian GNU/Linux.

Работает на оборудовании x86 и x64. Разработчики позиционируют Vyatta как конкурента продуктам Cisco уровня ISR 1800 — VXR 7200. Распространяется бесплатно по лицензии GNU GPL.

Таблица системных требований строится на необходимой конфигурации топологии сети следующим образом:

Ключевые возможности Vyatta:

В настоящее время существуют две версии: Vyatta Core, содержащая только открытые компоненты и распространяющаяся бесплатно, и Vyatta Subscription/Vyatta Plus, содержащая дополнительные (в том числе проприетарные) компоненты и доступная только платным подписчикам.

Среди дополнительных возможностей Vyatta Subscription:

  • Синхронизация настроек между маршрутизаторами;
  • REST API для удаленного управления;
  • Поддержка интерфейсных карт PDH (E1, T1/T3) и V.35;
  • Коммерческий расширенный набор правил для фильтрации URL и IPS.

Программные маршрутизаторы

Есть два типа маршрутизаторов (роутеров): аппаратные и программные. И те и другие пересылают трафик, руководствуясь определенными правилами. Маньяки могут ознакомиться со статьей из Википедии.

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

У каждого из этих видов есть свои характерные премущества и недостатки. Аппаратные роутеры принятно считать более надежным решением, но как показывает практика при наличие прямых рук любая техника работает как надо.

Читать еще:  Как установить linux вместе с windows 7

Программные маршрутизаторы обладают более гибким функционалом. Набор функций зависит от программы, количество портов для подключения сетей от количества сетевух в компе роутера. Программные маршрутизаторы чаще всего используются как максимально гибкое решение за смешные деньги. Понадобится лишь старый комп с необходимым количеством сетевых плат. В качестве программной начинки используются всевозможные варианты Linux’a, в т.ч. компактные версии, специально адаптированные для создания программных роутеров. В последнем случае для компа даже жесткий диск не понадобится. Достаточно иметь привод CD-ROM, дисковод для дискет или USB-флешку для хранения файла конфигурации. Сама система загружается с CD-диска, затем подгружает конфигурацию со сменного носителя. Производительности Pentium-2 и 128Мб оперативки обычно хватает в большинстве случаев.

Мы можем объединить несколько сетей и настроить соответствующие правила прохождения трафика между ними (вариант интерконнектора, например, на базе m0n0wall). Можем подключить сеть к интернету и даже сделать резервирование интернет-каналов, если к нам приходит несколько провайдеров. Можем фильтровать трафик по различным критериям, проверять его на вирусы. Короче, возможностей целая куча.

Приведу небольшой список дистрибутивов для создания программных роутеров: IPCop, m0n0wall, PfSence, Zeroshell. Если вы не знаете какой именно дистрибутив вам подойдет больше всего, посмотрите на сравнительную табличку ниже, где представлены основные возможности популярных программных маршрутизаторов:

О том как как настраивать и управлять многочисленными функциями этих платформ читайте в наших обзорах:

Для экспериментов вам понадобится один старый комп, сетевухи, болванка CD-R (на крайний случай дискета или флешка) и прямые руки.

Интернет шлюз на Ubuntu. Полная замена роутера

Интернет шлюз на Ubuntu. Полная замена роутера

    alex 08.06.2016 Сервисы Ubuntu0 комментариев

И так мы хотим для себя настроить интернет, можно пойти и купить обычный роутер с wi-fi стоимость от 1000 и более и не забивать себе мозг, воткнул кабель сделал пару действий и получил wi-fi и интернет. Но это подходит только для домашних пользователей, а для малых и не больших, да и больших организаций такой вариант не подходит, так как нагрузка на роутер возрастет в разы и Вы получить дохлый интернет и тумаки от руководства. А нам это нужно — нет. Для этих целей нужен мощный и производительный роутер стоимость от 25000 и выше.

Начальство денег может не дать, мол дорого и не нужно, а как я уже сказал, виноватыми будете ВЫ!. Наверняка у Вас есть старый завалявшийся ком с DDR, DDR2 еще лучше DDR3. Вот он как раз подойдет для организации интернет шлюза. Все что только нужно это поставить две сетевые карточки (стоимость по 600р — пример ну и wi-Fi карточку стоимость примерно 1000р, согласитесь на много дешевле получается.)

Ставим ОС Ubuntu (14.04.3), на эту тему написано множество материала. Обновляем.

Исходные данные:

  • Имя компьютера: ubnet
  • Интернет (статичный или динамичный, Опишем статичный) Пример: 85.112.23.246 — eth0
  • Локальная сеть 192.168.1.0/24 что значит эта запись смотрите здесь
  • Локальный IP 192.168.1.2 — eth1
  • DNS (кэширующий) IP:192.168.1.1
  • DHCP IP:192.168.1.1

Настройка

Настраиваем сетевые интерфейсы

auto eth0
iface eth0 inet static
address 85.112.23.246
netmask 255.255.255.0
gateway 85.112.23.65
dns-nameservers 192.168.1.1

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

pre-up /etc/net #Правила межсетевого экрана

Сохраняемся. Теперь создадим правила фаервола

#Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

#Разрешаем траффик на lo
iptables -A INPUT -i lo -j ACCEPT

#Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

#Включаем NAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

#Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth0 -m state —state ESTABLISHED,RELATED -j ACCEPT

#Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth1 -j REJECT

Все. Основные настройки произведены. Устанавливаем DNS и DHCP. Статьи описаны ранее.В будущем будет усложнять данную статью.

Задача в нашей новой сети появился еще один клиент ssh(2222) пробрасываем порт наружу для соединения.

iptables -t nat -A PREROUTING —dst 85.112.23.246 -p tcp —dport 2222 -j DNAT —to-destination 192.168.1.2
iptables -I FORWARD 1 -i eth0 -o eth1 -d 192.168.1.2 -p tcp -m tcp —dport 2222 -j ACCEPT
iptables -t nat -A POSTROUTING —dst 192.168.1.2 -p tcp —dport 2222 -j SNAT —to-source 192.168.1.1
iptables -t nat -A OUTPUT —dst 85.112.23.246 -p tcp —dport 2222 -j DNAT —to-destination 192.168.1.2

Протестируем из терминала

ssh -p 2222 root@85.112.23.246 — или по имени например: ubldap.domain.tld

Iptables проброс портов для tandberg

Какие порты IP используются H.323 и протоколом SIP для TANDBERG MXP оконечные точки?

Читать еще:  Двухуровневая архитектура клиент сервер

Для H.323:

Обнаружение сторожевого устройства (RAS) — порт 1719 — UDP

Настройка вызова Вопрос. . 931 — порт 1720 — TCP

H.245 — диапазон портов 5555-5574 — TCP

Видео — диапазон портов 2326-2485 — UDP

Аудио — диапазон портов 2326-2485 — UDP

Data/FECC — Диапазон портов — 2326-2485 — UDP

Для SIP:

Сообщения SIP — порт 5060 — UDP/TCP

Сообщения SIP — порт 5061 — TLS (TCP)

H.245 — диапазон портов 5555-5574 — TCP

Видео — диапазон портов 2326-2485 — UDP

Аудио — диапазон портов 2326-2485 — UDP

Задача: Есть Tandberg 95 MXP со статичным IP ( локальный – 192.168.1.28) и протоколом H.323 . Его необходимо пробросить в nat из iptables.

Решение: Применяем следующие настройки:

В Tandberg заходим в

Настройки — Сеть — Настройки IP – H.323 – Дополнительные настройки H.323 – Включаем Nat ( прописываем IP внешний ) и Ставим Статичные порты.

И перезапускаем tandberg.

Далее в iptables пробрасываем порты. И обязательно Прописать переменные LAN_IP= внутренний IP адрес , а NET_IP = внешний ip адрес

iptables -t nat -A PREROUTING —dst $INET_IP -p tcp —dport 1720 -j DNAT —to-destination $LAN_IP

iptables -I FORWARD 1 -i eth2 -o eth1 -d $LAN_IP -p tcp -m tcp —dport 1720 -j ACCEPT

iptables -t nat -A POSTROUTING —dst $LAN_IP -p tcp —dport 1720 -j SNAT —to-source 192.168.0.11

iptables -t nat -A OUTPUT —dst $INET_IP -p tcp —dport 1720 -j DNAT —to-destination $LAN_IP

iptables -t nat -A PREROUTING —dst $INET_IP -p udp —dport 1719 -j DNAT —to-destination $LAN_IP

iptables -I FORWARD 2 -i eth2 -o eth1 -d $LAN_IP -p udp -m udp —dport 1719 -j ACCEPT

iptables -t nat -A POSTROUTING —dst $LAN_IP -p udp —dport 1719 -j SNAT —to-source 192.168.0.11

iptables -t nat -A OUTPUT —dst $INET_IP -p udp —dport 1719 -j DNAT —to-destination $LAN_IP

iptables -t nat -A PREROUTING —dst $INET_IP -p udp —dport 2326:2485 -j DNAT —to-destination $LAN_IP

iptables -I FORWARD 3 -i eth2 -o eth1 -d $LAN_IP -p udp -m udp —dport 2326:2485 -j ACCEPT

iptables -t nat -A POSTROUTING —dst $LAN_IP -p udp —dport 2326:2485 -j SNAT —to-source 192.168.0.11

iptables -t nat -A OUTPUT —dst $INET_IP -p udp —dport 2326:2485 -j DNAT —to-destination $LAN_IP

iptables -t nat -A PREROUTING —dst $INET_IP -p tcp —dport 5555:5574 -j DNAT —to-destination $LAN_IP

iptables -I FORWARD 4 -i eth2 -o eth1 -d $LAN_IP -p tcp -m tcp —dport 5555:5574 -j ACCEPT

iptables -t nat -A POSTROUTING —dst $LAN_IP -p tcp —dport 5555:5574 -j SNAT —to-source 192.168.0.11

iptables -t nat -A OUTPUT —dst $INET_IP -p tcp —dport 5555:5574 -j DNAT —to-destination $LAN_IP

3. Сохраняем и применяем настройки iptables.

Пошаговая настройка роутера на Debian

Ранее я уже рассматривал настройку программных роутеров на операционных системах freebsd и centos. Сегодня я хочу настроить интернет шлюз для локальной сети на основе популярного linux дистрибутива Debian. Выполним подготовку сервера и реализуем основной функционал, необходимый для выхода в интернет из локальной сети.

Данная статья является частью единого цикла статьей про сервер Debian.

Введение

Я буду работать со следующим сервером:

Если у вас еще нет готового сервера, то рекомендую статью на тему установки debian. Там подробно описан весь процесс от и до.

На сервере имеются 2 сетевых интерфейса:

Описание сетевых интерфейсов

ИнтерфейсОписаниеIP
eth0внешний интерфейс, подключен к провайдеру, настройки получает по dhcp автоматически192.168.1.24
eth1внутренний интерфейс, смотрит в локальную сеть, статический ip адрес10.0.15.1

Файл конфигурации сетевых интерфейсов выглядит следующим образом:

Как настроить сеть в debian я подробно рассказал отдельно. Если вы еще не сделали это и не выполнили предварительную настройку debian, то рекомендую ознакомиться с материалами.

Если у вас недостаточно опыта и вы не чувствуете в себе сил разобраться с настройкой шлюза самому с помощью консоли сервера — попробуйте дистрибутив на основе centos для организации шлюза и прокси сервера в локальной сети — clearos. С его помощью можно через браузер настроить весь необходимый функционал. В отдельной статье я подробно рассказал об установке clearos.

Подготовка шлюза

Выше я привел ссылку на подробную статью с описанием настройки сервера общего назначения. Сейчас мы выполним некоторые подготовительные действия без подробностей и описания. Их вы можете почитать отдельно. Сейчас просто необходимые команды.

Сеть на будущем программном роутере настроили, доступ в интернет на сервере есть. Обновим его:

Установим MC, мне в нем удобнее всего работать, в том числе в редакторе mcedit:

Настроим часовой пояс, если раньше не сделали это:

Устанавливаем сервис ntp для автоматического обновления времени:

На этом основные подготовительные действия закончены. Приступаем к настройке шлюза.

Настройка маршрутизации, firewall и nat

Первым делом включим маршрутизацию пакетов между сетевыми интерфейсами. Для этого редактируем конфиг /etc/sysctl.conf:

Либо раскомментируйте эту строку, либо добавьте, если ее нет. Но она по-умолчанию быть должна, закомментированная со значением 1. Применяем эту настройку:

Читать еще:  Расскажите о типах файлов в ос linux

На выходе работы команды в консоли будет выведен измененный параметр со значением 1.

Теперь приступаем к самому главному — настройке фаервола iptables и nat в нем для обеспечения выхода в интернет из локальной сети. Я очень подробно рассмотрел эту тему в отдельной статье. Хотя там речь идет о другом дистрибутиве, сами правила iptables абсолютно одинаковые с точностью до строчки, за исключением маленького нюанса, связанного с тем, что правила нужно сохранять в другой файл для применения их после перезагрузки.

Я приведу здесь сразу готовый вариант файла с правилами iptables, необходимых для работы интернет шлюза в debian. В файле даны подробные комментарии ко всем значениям, так что вы без проблем разберетесь и закомментируете или наоборот раскомментируете необходимые вам значения. Качаем скрипт правил iptables — iptables-debian.sh

Копируем содержимое файла и создаем скрипт с правилами на сервере:

Вставляем в редактор правила. Редактируем их под свои нужды, обязательно заменяя переменные WAN и LAN на свои. Сохраняем файл.

Делаем файл с правилами исполняемым:

Прежде чем применить новые правила, посмотрим на текущие:

Видим, что на настраиваемом роутере firewall полностью открыт. Теперь применим новые правила и посмотрим на результат:

Все в порядке, правила применились, доступ к серверу я не потерял. Теперь сделаем так, чтобы новые правила применялись после перезагрузки. В последней строчке скрипта есть команда:

С ее помощью готовый набор правил iptables выгружаются в файл. Нам нужно сделать так, чтобы эти правила применялись при включении сетевого интерфейса во время загрузки сервера. Для этого открываем файл interfaces на редактирование и добавляем в самый конец строчку:

Для проверки перезагружаем шлюз и проверяем, все ли в порядке. По сути основная настройка программного роутера на debian завершена. Осталось сделать небольшое дополнение и настроить dhcp и dns сервер в локальной сети. Я для этих целей использую простой и легкий в настройке dnsmasq.

Установка и настройка dnsmasq в Debian

Выполним установку dnsmasq на дебиан:

Сделаем минимальную настройку программы. Нам нужно просто выдавать сетевые настройки пользователям. Для этого приводим конфигурационный файл dnsmasq к следующему виду:

В данном случае мы будем выдавать пользователям ip адреса в диапазоне от 10.0.15.50 до 150. Сохраняем конфиг, добавляем программу в автозагрузку и запускаем.

Теперь можно запускать компьютер пользователя локальной сети, получать сетевые настройки по dhcp и проверять работу интернет шлюза.

Посмотреть выданные leases можно в файле /var/lib/misc/dnsmasq.leases. На этом настройка интернет шлюза на debian 8 закончена. Все что нужно для обеспечения доступа в интернет из локальной сети сделано. Получился программный роутер с широкими возможностями по наращиванию функционала.

Просмотр загрузки сети с помощью iftop

Теперь представим ситуацию, что кто-то забил весь интернет канал и вам надо быстро выяснить, кто это сделал. По-умолчанию, никаких подручных и удобных средств на шлюзе для этого нету. Установим одно из таких средств — программу iftop. Это простая консольная утилита, которая дает возможность оперативно посмотреть статистику загруженности сетевого интерфейса в реальном времени.

Устанавливаем iftop на debian:

Для просмотра активности сетевого интерфейса, запускаем утилиту, указывая необходимый ключ:

Чтобы увидеть порты, по которым идет трафик, добавляем ключ -P:

На основе этой картинки уже можно сделать определенные выводы по использованию интернет канала. Обращаю внимание, что я смотрю загрузку локального интерфейса eth1. Если смотреть на eth0, то мы увидим только исходящие соединения сервера.

Заключение

Вот так легко и быстро можно настроить роутер, маршрутизатор или шлюз в интернет. Названия разные, а суть одна. В данном случае я использовал операционную систему Debian, но схожий функционал легко организовать на Freebsd или CentOS. Для решения текущей задачи разница в работе не будет заметна. Каждый выбирает то, что больше нравится и к чему привык.

Пройдемся быстренько по этапам того, что сделали:

  1. Подготовили сервер Debian к настройке шлюза.
  2. Настроили маршрутизацию, iptables, нат. Проверили, что весь функционал восстанавливается после перезагрузки.
  3. Установили и настроили простой dhcp сервер и кэширующий dns сервер — dnsmasq. С его помощью автоматизировали поучение сетевых настроек пользователями.
  4. Установили простое средство мониторинга сетевой активности в консоли в режиме реального времени с помощью утилиты iftop.

На этом мы закончили настройку. Как продолжение развития темы интернет шлюза можно заняться настройкой прокси сервера для управления доступам к ресурсам интернета, или сервера openvpn для подключения филиалов или удаленных сотрудников. Для примера привел ссылки на другие дистрибутивы. Со временем планирую описать реализацию этого функционала на debian. Принципиальных отличий нет, только нюансы разных дистрибутивов.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Ссылка на основную публикацию
Adblock
detector