The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Маршрутизация по портам в linux..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Маршрутизация по портам в linux..."  
Сообщение от Сергей (??) on 16-Окт-07, 16:27 
Доброе время суток!

Подскажите, кто знает, как решить такую задачу...
Есть 2 сетевых интерфейса, каждый в своей подсетке...
Нужно сделать так чтобы весь трафик шел через 1-ый интерфейс, а  трафик DNS (исходящие сообщения с этой машины) отправлялись через 2-ой.

Шлюз по умолчанию - адрес через 1-ый интерфейс.

У меня получается так, что ДНС запросы приходят на нужный адрес (2-ой интерфейс), а то что сам DNS сервер генерит уходит на шлюз по умолчанию (1-ый интерфейс). Как сделать чтобы он попадал на 2-ой???

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Маршрутизация по портам в linux..."  
Сообщение от kailex (??) on 16-Окт-07, 17:08 
>[оверквотинг удален]
>Есть 2 сетевых интерфейса, каждый в своей подсетке...
>Нужно сделать так чтобы весь трафик шел через 1-ый интерфейс, а  
>трафик DNS (исходящие сообщения с этой машины) отправлялись через 2-ой.
>
>Шлюз по умолчанию - адрес через 1-ый интерфейс.
>
>У меня получается так, что ДНС запросы приходят на нужный адрес (2-ой
>интерфейс), а то что сам DNS сервер генерит уходит на шлюз
>по умолчанию (1-ый интерфейс). Как сделать чтобы он попадал на 2-ой???
>

с помощью iptables помечать пакеты на 53 порту (--mark), с помощью iproute загонять эти пакеты в таблицу, в которой шлюз по умолчанию настроен на второй интерфейс.

почитай здесь
http://www.opennet.me/openforum/vsluhforumID1/74353.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Маршрутизация по портам в linux..."  
Сообщение от Сергей (??) on 16-Окт-07, 20:43 
>[оверквотинг удален]
>>интерфейс), а то что сам DNS сервер генерит уходит на шлюз
>>по умолчанию (1-ый интерфейс). Как сделать чтобы он попадал на 2-ой???
>>
>
>с помощью iptables помечать пакеты на 53 порту (--mark), с помощью iproute
>загонять эти пакеты в таблицу, в которой шлюз по умолчанию настроен
>на второй интерфейс.
>
>почитай здесь
>http://www.opennet.me/openforum/vsluhforumID1/74353.html

Там как раз написано, что таким образом работать не будет, т.к. решение о маршрутизации пакета от локального приложения принимается 1-ым делом еще до поступления пакета в таблицу mangle цепочки OUTPUT. Я сам попробовал это все проделать - ничего не работает.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Маршрутизация по портам в linux..."  
Сообщение от pavel_simple (ok) on 17-Окт-07, 08:00 
echo secondiface >>/etc/iproute2/rt_tables
ip rule add from xxx.xxx.xxx.xxx table secondiface (здесь иксами ip второго интерфейса)
ip route add default via yyy.yyy.yyy.yyy dev eth2 src xxx.xxx.xxx.xxx table secondiface (здесь вайками шлюз второго интерфейса)
ip route flush cache

шлюз по умолчанию настроен только на первом интерфейсе

основной трафик будет идти через первый -- НО все запросы которые пришли со второго на втором и остануться

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Маршрутизация по портам в linux..."  
Сообщение от Сергей (??) on 17-Окт-07, 09:49 
>[оверквотинг удален]
>ip rule add from xxx.xxx.xxx.xxx table secondiface (здесь иксами ip второго интерфейса)
>
>ip route add default via yyy.yyy.yyy.yyy dev eth2 src xxx.xxx.xxx.xxx table secondiface
>(здесь вайками шлюз второго интерфейса)
>ip route flush cache
>
>шлюз по умолчанию настроен только на первом интерфейсе
>
>основной трафик будет идти через первый -- НО все запросы которые пришли
>со второго на втором и остануться

Да, спасибо за совет, так все работает. Однако, ситуация, когда, например, ДНС сервер сам не знает ответа на запрос клиента, заставляет его самого инициировать коннект на другой ДНС сервер, и этот трафик, к сожалению, попадает на первый интерфейс, т.е. не туда куда нужно. Но часть трафика (запрос от клиента - ответ (если он локально известен)) хотябы сейчас идет куда нужно, утилизация на 1-ом интерфейсе упала немного. Спасибо еще раз.)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Маршрутизация по портам в linux..."  
Сообщение от pavel_simple (ok) on 17-Окт-07, 12:20 
хех -- пожалуйста
а если добавить
iptables -t mangle -A OUTPUT -m conntrack --ctstate NEW --ctproto udp -p udp --dport 53 -j MARK --set-mark 1
ip rule add fwmark 1 table secondiface

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Маршрутизация по портам в linux..."  
Сообщение от Сергей (??) on 17-Окт-07, 13:24 
>хех -- пожалуйста
>а если добавить
>iptables -t mangle -A OUTPUT -m conntrack --ctstate NEW --ctproto udp -p
>udp --dport 53 -j MARK --set-mark 1
>ip rule add fwmark 1 table secondiface

Решение о маршрутизации принимается до того как пакет попадет в OUTPUT. Так что пофиг.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Маршрутизация по портам в linux..."  
Сообщение от Oyyo on 17-Окт-07, 14:39 
>>хех -- пожалуйста
>>а если добавить
>>iptables -t mangle -A OUTPUT -m conntrack --ctstate NEW --ctproto udp -p
>>udp --dport 53 -j MARK --set-mark 1
>>ip rule add fwmark 1 table secondiface
>
>Решение о маршрутизации принимается до того как пакет попадет в OUTPUT. Так
>что пофиг.

ошибочное понимание движения пакетов, в данном примере используется цепочка OUTPUT таблицы mangle
и эта цепочка работает с пакетами от локальных процессов
внимательней прочтите порядок движения пакетов от локальных процессов
http://www.opennet.me/docs/RUS/iptables/#TRAVERSINGGENERAL

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Маршрутизация по портам в linux..."  
Сообщение от L0n3R4ng3r (ok) on 17-Окт-07, 15:52 
>[оверквотинг удален]
>Есть 2 сетевых интерфейса, каждый в своей подсетке...
>Нужно сделать так чтобы весь трафик шел через 1-ый интерфейс, а  
>трафик DNS (исходящие сообщения с этой машины) отправлялись через 2-ой.
>
>Шлюз по умолчанию - адрес через 1-ый интерфейс.
>
>У меня получается так, что ДНС запросы приходят на нужный адрес (2-ой
>интерфейс), а то что сам DNS сервер генерит уходит на шлюз
>по умолчанию (1-ый интерфейс). Как сделать чтобы он попадал на 2-ой???
>

а что мешает поднять днс с вюверами,
и локальным клиентам сделать отдельный wiev с
recursion no;
????
тогда все проблемы отпадут...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Маршрутизация по портам в linux..."  
Сообщение от Сергей (??) on 17-Окт-07, 16:19 
>[оверквотинг удален]
>>У меня получается так, что ДНС запросы приходят на нужный адрес (2-ой
>>интерфейс), а то что сам DNS сервер генерит уходит на шлюз
>>по умолчанию (1-ый интерфейс). Как сделать чтобы он попадал на 2-ой???
>>
>
>а что мешает поднять днс с вюверами,
>и локальным клиентам сделать отдельный wiev с
>recursion no;
>????
>тогда все проблемы отпадут...

Ладно, черт с этим ДНС)))) Я вообще универсальное средство хочу)))

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру