haproxy – достаточно известный прокси/балансировщик, который позволяет балансировать даже https/ssl. Ниже будет приведён только конфиг haproxy, так как от конфига openvpn’a это не зависит:
Категорія: Routers, GW, Internet
И так, есть роутер на базе mikrotik’a и 4G модем Yota и нужно иметь возможность подключаться к роутеру из-вне (у роутера нет внешнего IP). Было принято решение поднять openvpn.
1) Серверная часть Openvpn
Openvpn сервер поднимается стандартно, но есть несколько нюансов:
Тестовый стенд: FreeBSD 8.4 i386 Release, модем Novatel U720, mpd-5.7
При этом данный канал используется как вторичный, поэтому строки для шлюза по дефолту, получение DNS от пиров – закоментированы.
И так, вносим такой код в /usr/local/etc/mpd5/mpd.conf (отступы обязательны!):
Размеры очередей
FreeBSD
Переменная sysctl kern.ipc.somaxconn ограничивает размер очереди для приема новых TCP соединений. Значение по умолчанию 128 слишком мало для надежной обработки новых соединений для нагруженного web сервера. Для такого сервера рекомендуется увеличить это значение до 1024 или выше. Демон сервиса может сам ограничивать очередь приема новых соединений (например, sendmail(8), или Apache), но обычно в файле настройки демона есть директива для настройки длины очереди. Более длинная очередь также помогает избежать атак Denial of Service (DoS).
По умолчанию, ipfw что при сборке ядра, что при подгрузке модулем находится в режиме
deny all from any to any.
Иногда бывают ситуации, когда нужно иметь по дефолту последнее правило
allow all from any to any
Шейпер на Solaris
Нормального (с очередями, borrow и прочим) шейпера на Solaris – не существует. Зато есть отдельные сервисы flowadm и crossbow. Оба они не слишком идеально подходят для в качестве шейпера, но ограничивать полосу они могут. Рассмотрим только flowadm, так как crossbow больше подходит для виртуализации (кстати, именно им можно ограничивать скорость на виртуальных интерфейсах vnic).
Pmacct это инструмент для учета трафика, рассчитанный на большие объемы, разнообразные протоколы сбора данных (через libpcap, Netlink/ULOG, NetFlow v1/v5/v7/v8/v9, sFlow v2/v4/v5 и IPFIX), с возможностью реэкспорта (через IPFIX, NetFlow v5/v9 и sFlow v5) и сохранением данных в memory tables, MySQL, PostgreSQL, SQLite, BerkeleyDB и простые файлы. Имеются широкие возможности по тегированию, фильтрации, редиректа и аггрегации сохраняемых данных. Интегрированные BGP демон для эффективного учета междоменной маршрутизации и IS-IS/IGP демон для внутренней маршрутизации. Поддержка BGP/MPLS VPNs rfc4364. Возможности по инспектированию туннелированного трафика (GTP) и классификации.
У вас есть сервер, со своей подсетью (к примеру 1.1.1.2/24), шлюзом, выделенный провайдером. Представим ситуацию, что провайдер вам выделил ещё одну подсеть (к примеру 2.2.2.0/28), которая не пересекается ни с какой другой и не выделил шлюз. Если просто повесить алиасом на сервер адрес 2.2.2.2 то оно будем работать без нареканий. А что делать, если вам нужно этот адрес повесить внутри FreeBSD jail’a или Solaris zone или ещё какой-то хостовой машине внутри виртуальной?
Попалась мне на глаза эта небольшая и простая утилитка для подсчёта трафика. Решил опробовать. Скажу сразу – подойдёт она для небольших офисов или домашнего использования.
По умолчанию во FreeBSD можно использовать только 1 маршрут к одному и тому же источнику (в отличии от linux и Solaris этот функционал существует уже давно) Но Qing Li добавил , а Kip Macy дополнил такую поддержку и теперь можно не только задавать множество маршрутов к одному источнику, но и задавать “вес”, делать балансировку на уровне соединений.
Данная функциональность работает, начиная с версии 8.0