LINUX.ORG.RU
ФорумAdmin

Направление трафика в зависимости от имени хоста?


0

5

есть ли такая возможность, направлять трафик через иной интерфейс в зависимости от имени хоста?

допустим чтобы запросы типа *.google.com - шли через определенный интерфейс в системе? причем любой вид трафика tcp/udp/etc

как это проще всего реализовать?

Ответ на: комментарий от dada

читать до просветления мануал по iptables.

В каком разделе написано, как определять имя хоста для любого вида трафика? Хочу такой iptables!

anonymous
()

Озвучь свою задачу, а не догадки по ее решению. В «tcp/udp/etc» не содержится информации об «имени хоста».

anonymous
()

Взять список айпишников гугла и прописать в таблицу маршрутизации.

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

или вот выше предложили вариант со статичными рутами.

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

В каком разделе написано, как определять имя хоста для любого вида трафика?

Очевидно, там такого нет. А отсутствие информации тоже своего рода информация.

i-rinat ★★★★★
()

допустим чтобы запросы типа *.google.com - шли через определенный интерфейс в системе?

Берешь список IP из AS-ки гугла и пробиваешь в таблицу маршрутизации. Как ты это обновлять будешь - другой вопрос.

Вообще задача в общем виде без костылей нерешаема, хотя бы потому что iptables и iproute2 работают на 3-4 уровнях OSI(и потому они вообще не обязаны знать ничего выше IP-адресов, номеров портов и протоколов), а DNS-имена находятся гораздо выше.

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

Вообще задача в общем виде без костылей нерешаема

Но задача то распространенная, а ничего толкового до сих пор не придумали, как ни странно.

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

ИМХО, задача поставлена некорректно. Как ты отфильтруешь, например icmp-трафик на домены *.google.com, если на клиенте в hosts прописано что google.com - это 1.1.1.1?

Если что-то решается на клиенте, и через маршрутизатор не проходит(например в HTTP есть заголовки с именем хоста - их можно отпарсить), а проходит только результат данного выбора - задача нерешаема в принципе, без обратной связи с клиентом.

Это к вполне распространненому вопросу: дать клиентскому приложению A с ip 1.1.1.1 доступ в интернет, а всё остальное запретить с этого ip запретить. Тут из известных мне решений под Linux - UFWI(он же - бывший NuFW) с клиентской и серверной частью. Клиентская, кстати есть под оффтопик, да...

Pinkbyte ★★★★★
()

Пишут, что PowerDNS умеет хуки: http://doc.powerdns.com/html/recursor-scripting.html

Может быть можно повесить хук, смотреть в нем на имена хостов, если есть совпадение обновить таблицу маршрутов, а потом отдать адрес

Deleted
()
Ответ на: комментарий от Pinkbyte

задача поставлена некорректно

Задача поставлена весьма корректно и имеет широкое практическое применение как для пользователя на десктопе, так и для роутеров/серверов.
О сложностях реализации я в курсе, но это проблему не решает :)

Клиентская, кстати есть под оффтопик, да...

кто о чем, а вшивый о бане ;)

xtraeft ★★☆☆
()
Последнее исправление: xtraeft (всего исправлений: 1)
Ответ на: комментарий от xtraeft

Ясно, моего посыла ты не понял. А посыл простой - для многих протоколов прикладного уровня задача нерешаема в принципе.

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

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

Примерно так это должно быть возможно. Как там с iptables — мучайтесь сами.

В pf уже впилили libastral?

Deleted
()
Ответ на: комментарий от Pinkbyte

Ясно, моего посыла ты не понял.

Плевать я хотел на твой посыл.

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

Ну. В любом случае, задача решается комплексным путем так или иначе.

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

Есть 3 сетевых интерфейса, хочется трафик к разным хостам роутить через назначенные интерфейсы. Что тут непонятного? Или как обычно - «не работает - не нужно»?

расскажешь в какой ситуации это может понадобится ?

Вот тебе банальнейшая задача со стороны пользователя - подключаем 2 openvpn клиентами без назначения default gateway. Пачку сайтов надо открывать через 1 ovpn, пачку сайтов через другой, остальное - через дефолтный интерфейс. Как это устроить легче всего?

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

xtraeft ★★☆☆
()
Последнее исправление: xtraeft (всего исправлений: 2)
Ответ на: комментарий от xtraeft

Вот тебе банальнейшая задача со стороны пользователя - подключаем 2 openvpn клиентами без назначения default gateway. Пачку сайтов надо открывать через 1 ovpn, пачку сайтов через другой, остальное - через дефолтный интерфейс. Как это устроить легче всего?

Вот это задача, а не мямлинг выше. Ответ: сесть, прорезолвить эти адреса и прямо средствами openvpn раздать клиентским машинам соответствующие записи таблицы маршрутизации. Непонятно только, зачем про него спрашивать.

t184256 ★★★★★
()

В job, либо купить циску, либо прочитать lartc, либо iptables + xt l7 модуль какой-нибудь. В целом, задача решабельная.

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

Плевать я хотел на твой посыл.

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

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