Приветствую Всех!

В данный момент мне нужно реализовать аналог серверной части, работающей под 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'ов ?
Работает себе веб-сервер и отдаёт трафик на ту сетевуху, откуда получил (адрес шлюза только один, сеть одна).

Ответить