Приветствую Всех!
В данный момент мне нужно реализовать аналог серверной части, работающей
под OpenIndiana, но на FreeBSD.
Варианты реализовать по-другому не рассматриваются, ибо сейчас "это"
работает и надо попробовать так же, но на другой OS.
Интересно, какие есть идеи у сообщества в отношении решения такой задачки:
2 сетевухи, на каждой по 1 адресу из одной и той же сети для
"сервиса", 1 шлюз и ещё 1 адрес на котором "сервис" не отвечат (он для
внутренней кухни). Необходимо разделить трафик по сетевухам (куда
пришёл, от туда и уходит), не допуская выхода всего исходящего с одной
сетевухи.
Для наглядности:
ext0: 1.1.1.15/24, 1.1.1.14/24
ext1: 1.1.1.16/24
GW: 1.1.1.1
В качестве "сервиса", к примеру, работает веб-сервер.
Объединять в lagg, не подходит - одни клиенты используют 1й адрес и 1ю
сетевуху, другие - 2й адрес и 2ю сетевуху.
Конечная цель - не дать вторым выжрать всю полосу со всех сетевух.
Вариант шейпера можно было бы рассмотреть, но тогда это будет не аналог.
Сейчас я эту задачу решил так:
2 jail'a, 2 epair интерфейса , 2 bridge интерфейса.
Jail'ы запускаю с vnet и помещаю в них по соответствующей части от
epair, на которую и привязываю IP/24 и дефолтовый маршрут.
Оставшиеся части от epair через bridge объединяю с реальным
сетевухами ext0 и ext1.
Третий IP остаётся в хостовом окружении.
Сразу не крепил к jail'ам сетевухи, потому что есть IP, на котором
"сервиса" нет, он для внутренней инфраструктуры и его в Jail не поместишь,
он должен на хостовой системе отвечать.
Такая схема работает отлично. Залогинившись в главную систему, я могу
дампить ext0 и ext1, при этом вижу трафик уходящий в Jail'ы,
а на ext0 в добавок и трафик главной системы.
Вопрос: как реализовать тоже, но без Jail'ов ?
Работает себе веб-сервер и отдаёт трафик на ту сетевуху, откуда получил
(адрес шлюза только один, сеть одна).