LINUX.ORG.RU
ФорумAdmin

Linux. На какой интерфейс прибить сервис?


0

1

На сервере будет одна сетевуха(eth0) и я хотел прибить openvpn демоны к 127.0.0.1 а с eth0 форвардить один «публичный» порт(для распределения нагрузки между демонами).
Но DNAT не может перекидывать пакеты на 127.0.0.1
Что в таких случаях делают? Когда одна сетевуха и хочется скрыть сервис?

Тупо фильтровать на INPUTe тоже получается как-то не весело, ибо как отличить пакеты, пробравшиеся прямо с eth0 на конкретный порт и перекинутые по DNAT? Получается маркировать надо, а потом по меткам разбирать.. ерунда всё это...
Также есть в iptables примочка, позволяющая отловить состояние DNAT, но это тоже лишнее правило в и без того нагруженной цепочеке INPUT...

Может какой виртуальный интерфейс поднять тогда? Но тоже вроде как жирно получается, к тому-же даже в случае дргого интерфейса пакеты всё равно могут роутиться на него...


форвардить один «публичный» порт

Это я распарсил, вместо 21, 22, 80, 433, 1194 и др. хочешь один порт, верно? А там дальше сам разберёшь кому что?

>>(для распределения нагрузки между демонами).

А вот это не понял что значит.

adriano32 ★★★
()
Ответ на: комментарий от adriano32

>Это я распарсил, вместо 21, 22, 80, 433, 1194 и др. хочешь один порт, верно?
Это тест на дурака сейчас был? ))
читаем топик же "...openvpn демоны..."

А вот это не понял что значит.

Это значит, что openvpn однопоточное приложение и для годной производительности его надо запускать в кол-ве экземпляров = кол-ву ядер. Во внешний мир же смотрит один порт 1194, с которого соединения равномерно распределяются по демонам(слушающим разные порты).
Я бы распарсил это как распределение нагрузки ))

dx
() автор топика
Ответ на: комментарий от ventilator

Пакеты на 127.0.0.1 должны иметь адрес отправителя из той-же подсети.
Во всех иных случаях они считаются марсианами и отбрасываются.
REDIRECT не пробывал, но учитывая вышесказанное..... :(

dx
() автор топика
Ответ на: комментарий от dx

для годной производительности его надо запускать в кол-ве экземпляров = кол-ву ядер

То есть, если у меня 8 ядер, то я просто обязан запустить 8 экземпляров openvpn, пускай у меня даже один единственный клиент, чтобы добится «годной производительности»?
Что за бред, объясни, сколько клиентов ломится к твоему серверу, должны ли они видеть друг друга, чем ты недоволен в данный момент, какие имеешь проблемы с нагрузкой и зачем такие сложности?

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Естественно, клиент не один. В среднем расчитывается всё на 100-200 клиентов, гоняющих voip траффик(а значит многа маленьких пакетикаф). Видеть они друг друга не должны и не будут(не ясно как это относится к делу).
Реальных замеров пока не было, но я думаю, что не использовать преимущества многоядерности было-бы глупо в данном случае.

чем ты недоволен в данный момент, какие имеешь проблемы с нагрузкой и зачем такие сложности?

Я думал пара правил в prerouting это не такие уж и сложности.. ))
Оно уже даже работает. Только вот хотел порты спрятать как-бэ...

dx
() автор топика
Ответ на: комментарий от dx

А почему именно openvpn? Может стоит выбрать какой то туннель с ядерной реализацией для адекватной производительности? Или нужна повышенная проходимость через наты и тд?

ventilator ★★★
()
Ответ на: комментарий от ventilator

через наты, да. именно поэтому openvpn и выбирался. да хрен с ней, с производительностью то. ещё один сервак арендуем, если чё ) прсто не хочется делать абы как, а потом находу экспериментировать.

но вот уже в воздухе витает задача поддержки l2tp/ipsec для подключения андроидов и айфонов... жэсть )

dx
() автор топика
Ответ на: комментарий от dx

А чем вам не нравится несколько демонов на разных портах паблик адреса и еще один порт с которого редиректить на них?

ventilator ★★★
()
Ответ на: комментарий от ventilator

Ну если простого способа не найти - так и сделаю. Уже обдумывал все за и против. Объективных доводов против не нашлось.. Просто не по науке же как-то )

dx
() автор топика
Ответ на: комментарий от dx

В общем самым быстрым вариантом будет дропать пакеты на определенные порты используя tc action drop
Но я решил не заниматься этой ерундой, т.к. в случае с openvpn это действительно ничего не даёт. Никто без сертификата даже не сунется и так.

Ну и вопросик по u32
На сколько я понимаю, нет разницы в быстродействии между записями:
u32 classid 1:1 match u32 0xc0a80800 0xffffff00 at 12
и
u32 classid 1:1 match ip src 192.168.8.0/24

Где прочитать по возможности полное и толковое описание классификатора u32? Интересует поддерживаемый синтаксис именно по второму варианту.
С первым всё ясно, но пока не охота моск превращать в двоичный калькулятор

dx
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.