The OpenNET Project / Index page

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

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

"Как пропросить запросы на DNS"  
Сообщение от Vladimir email(??) on 05-Янв-09, 17:16 
Есть шлюз на котором крутится и named, но запросов стало много, поэтому нужно чтоб юзеры работали с другим серваком ДНС. Как с помощью iptables настроить переброс запросов на другой сервак, ато пока смениш всем ДНС много времени пройдёт, а надо уже сейчас снять нагрузку.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

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


1. "Как пропросить запросы на DNS"  
Сообщение от PavelR (??) on 05-Янв-09, 18:22 
>Есть шлюз на котором крутится и named, но запросов стало много, поэтому
>нужно чтоб юзеры работали с другим серваком ДНС. Как с помощью
>iptables настроить переброс запросов на другой сервак, ато пока смениш всем
>ДНС много времени пройдёт, а надо уже сейчас снять нагрузку.

DNAT

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

2. "Как пропросить запросы на DNS"  
Сообщение от zkrvova (ok) on 05-Янв-09, 18:39 
>>Есть шлюз на котором крутится и named, но запросов стало много, поэтому
>>нужно чтоб юзеры работали с другим серваком ДНС. Как с помощью
>>iptables настроить переброс запросов на другой сервак, ато пока смениш всем
>>ДНС много времени пройдёт, а надо уже сейчас снять нагрузку.
>
>DNAT

А можно пример? Ато я пробовал, но не получается у меня.

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

3. "Как пропросить запросы на DNS"  
Сообщение от reader (ok) on 05-Янв-09, 21:28 
>>>Есть шлюз на котором крутится и named, но запросов стало много, поэтому
>>>нужно чтоб юзеры работали с другим серваком ДНС. Как с помощью
>>>iptables настроить переброс запросов на другой сервак, ато пока смениш всем
>>>ДНС много времени пройдёт, а надо уже сейчас снять нагрузку.
>>
>>DNAT
>
>А можно пример? Ато я пробовал, но не получается у меня.

https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET

и обязательно прочитать то что ниже таблицы.

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

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

4. "Как пропросить запросы на DNS"  
Сообщение от zkrvova (ok) on 05-Янв-09, 22:17 
>[оверквотинг удален]
>>>DNAT
>>
>>А можно пример? Ато я пробовал, но не получается у меня.
>
>https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
>
>и обязательно прочитать то что ниже таблицы.
>
>если и после этого не получится , то показывайте что сделали с
>описанием из какой подсети запросы и куда пробрасывать

Вот что я сделал:

iptables -t nat -D PREROUTING   -d 10.1.1.1 -p tcp --dport 53 -j DNAT --to-destination 10.1.1.100

подсеть 10.0.0.0/8, у всех ДНС сервер 10.1.1.1
Новый ДНС сервак на 10.1.1.100.

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

5. "Как пропросить запросы на DNS"  
Сообщение от reader (ok) on 05-Янв-09, 22:36 
>[оверквотинг удален]
>>и обязательно прочитать то что ниже таблицы.
>>
>>если и после этого не получится , то показывайте что сделали с
>>описанием из какой подсети запросы и куда пробрасывать
>
>Вот что я сделал:
>
>iptables -t nat -D PREROUTING   -d 10.1.1.1 -p tcp --dport
>53 -j DNAT --to-destination 10.1.1.100
>

-D это удалить правило, добавлять -A
запросы на разрешение имен используют UDP, а не TCP

>подсеть 10.0.0.0/8, у всех ДНС сервер 10.1.1.1
>Новый ДНС сервак на 10.1.1.100.

Новый ДНС сервак получается в подсети клиентов, понадобится еще и SNAT

прочитайте то что по ссылке, там ниже таблицы описывается случай похожий на ваш

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

8. "Как пропросить запросы на DNS"  
Сообщение от zkrvova (ok) on 06-Янв-09, 17:00 
>[оверквотинг удален]
>-D это удалить правило, добавлять -A
>запросы на разрешение имен используют UDP, а не TCP
>
>>подсеть 10.0.0.0/8, у всех ДНС сервер 10.1.1.1
>>Новый ДНС сервак на 10.1.1.100.
>
>Новый ДНС сервак получается в подсети клиентов, понадобится еще и SNAT
>
>прочитайте то что по ссылке, там ниже таблицы описывается случай похожий на
>ваш

Я и ставол -А, то я случайно нето скопировал.

Сервак находится не в подсети клиентов, это я так написал что используется 10,0,0,0/8, а в этой подсети у меня много более мелких.

Щас попробую ещё раз прочитать.

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

9. "Как пропросить запросы на DNS"  
Сообщение от zkrvova (ok) on 06-Янв-09, 17:06 
>[оверквотинг удален]
>-D это удалить правило, добавлять -A
>запросы на разрешение имен используют UDP, а не TCP
>
>>подсеть 10.0.0.0/8, у всех ДНС сервер 10.1.1.1
>>Новый ДНС сервак на 10.1.1.100.
>
>Новый ДНС сервак получается в подсети клиентов, понадобится еще и SNAT
>
>прочитайте то что по ссылке, там ниже таблицы описывается случай похожий на
>ваш

Я вот думаю, ведь все эти действия выполняются в таблице NAT, а у меня всё в локальной сети и эту таблицу естественно не проходят. Может тогда это не получится?

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

12. "Как пропросить запросы на DNS"  
Сообщение от zkrvova (ok) on 06-Янв-09, 19:14 
>[оверквотинг удален]
>-D это удалить правило, добавлять -A
>запросы на разрешение имен используют UDP, а не TCP
>
>>подсеть 10.0.0.0/8, у всех ДНС сервер 10.1.1.1
>>Новый ДНС сервак на 10.1.1.100.
>
>Новый ДНС сервак получается в подсети клиентов, понадобится еще и SNAT
>
>прочитайте то что по ссылке, там ниже таблицы описывается случай похожий на
>ваш

Там есть пример:
iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j DNAT --to-destination $HTTP_IP
Действительно похожий, но тут сам шлюз выступает клиеном и используется цепочка OUTPUT, а у меня шлюз выступает сервером и нужно использовать цепочку INPUT, а DNAT не работает с данной цепочкой. Что делать?

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

15. "Как пропросить запросы на DNS"  
Сообщение от angra (ok) on 08-Янв-09, 03:30 
>Что делать?

Прочитать таки это руководство с начала, причем внимательно ибо с порядком прохождения цепочек и таблиц ты не разобрался. Не вижу смысла копипастить сюда всю схему или пересказывать своими словами.


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

16. "Как пропросить запросы на DNS"  
Сообщение от reader (ok) on 08-Янв-09, 22:42 
>[оверквотинг удален]
>>
>>прочитайте то что по ссылке, там ниже таблицы описывается случай похожий на
>>ваш
>
>Там есть пример:
>iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j
>DNAT --to-destination $HTTP_IP
>Действительно похожий, но тут сам шлюз выступает клиеном и используется цепочка OUTPUT,
>а у меня шлюз выступает сервером и нужно использовать цепочку INPUT,
>а DNAT не работает с данной цепочкой. Что делать?

как уже сказали , прочитайте всю документацию.

все таки так как и начинали, с помощью DNAT перенаправляете запрос на новый сервер.

как пойдет ответ с нового сервера зависит от таблиц маршрутизации, которые на новом сервере, поэтому что бы ответ гарантированно проходил через старый сервер, а иначе клиент ответ не примет, на старом сервере сделайте и SNAT.

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

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

17. "Как пропросить запросы на DNS"  
Сообщение от zkrvova (ok) on 08-Янв-09, 23:33 
>[оверквотинг удален]
>все таки так как и начинали, с помощью DNAT перенаправляете запрос на
>новый сервер.
>
>как пойдет ответ с нового сервера зависит от таблиц маршрутизации, которые на
>новом сервере, поэтому что бы ответ гарантированно проходил через старый сервер,
>а иначе клиент ответ не примет, на старом сервере сделайте и
>SNAT.
>
>при указании , в вопросах, адресов и масок пишите их логически ближе
>к используемым иначе ответ может не подойти к вашей реальности

Наконецто я начал понимать.
Вот решил начать с более простого примера, перенаправить ping на другой сервак (точки специально поменяны на запятые):
1 сервак 10,123,123,4
2 сервак 10,123,123,5
мой комп 10,123,3,101

Перенаправляю с первого сервака на второй:
iptables -t nat -A PREROUTING  -s 10,123,3,101 -p icmp  -j DNAT --to-destination 10,123,123,5
ну тоесть подменяю IP назначения
На втором серваке подменяю IP отвечающего сервака:
iptables -t nat -A POSTROUTING -d 10,123,3,101 -p icmp  -j SNAT --to-source  10,123,123,4

Вот какая выходит трасса:
Трассировка маршрута к 10,123,123,4 с максимальным числом прыжков 30

  1    <1 мс    <1 мс    <1 мс  10,123,3,1
  2    <1 мс    <1 мс    <1 мс  10,123,123,4
дальше превышены интервалы

Т.е. получается что пакет пошёл дальше, на второй сервак и гдето там потерялся, подскажите в чём я ошибся.

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

18. "Как пропросить запросы на DNS"  
Сообщение от reader (ok) on 09-Янв-09, 04:54 
>[оверквотинг удален]
>2 сервак 10,123,123,5
>мой комп 10,123,3,101
>
>Перенаправляю с первого сервака на второй:
>iptables -t nat -A PREROUTING  -s 10,123,3,101 -p icmp  -j
>DNAT --to-destination 10,123,123,5
>ну тоесть подменяю IP назначения
>На втором серваке подменяю IP отвечающего сервака:
>iptables -t nat -A POSTROUTING -d 10,123,3,101 -p icmp  -j SNAT
>--to-source  10,123,123,4

iptables -t nat -A POSTROUTING -d 10,123,123,5 -p icmp  -j SNAT --to-source  10,123,123,4
>[оверквотинг удален]
>Трассировка маршрута к 10,123,123,4 с максимальным числом прыжков 30
>
>  1    <1 мс    <1
>мс    <1 мс  10,123,3,1
>  2    <1 мс    <1
>мс    <1 мс  10,123,123,4
>дальше превышены интервалы
>
>Т.е. получается что пакет пошёл дальше, на второй сервак и гдето там
>потерялся, подскажите в чём я ошибся.

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

19. "Как пропросить запросы на DNS"  
Сообщение от zkrvova (ok) on 09-Янв-09, 10:29 
>[оверквотинг удален]
>>Трассировка маршрута к 10,123,123,4 с максимальным числом прыжков 30
>>
>>  1    <1 мс    <1
>>мс    <1 мс  10,123,3,1
>>  2    <1 мс    <1
>>мс    <1 мс  10,123,123,4
>>дальше превышены интервалы
>>
>>Т.е. получается что пакет пошёл дальше, на второй сервак и гдето там
>>потерялся, подскажите в чём я ошибся.

Сделал так, ничего не поменялось.

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

20. "Как пропросить запросы на DNS"  
Сообщение от angra (ok) on 09-Янв-09, 16:16 
>Наконецто я начал понимать.

А у меня создается впечатление, что вы окончательно запутались.

Не будем плодить лишних сущностей и вернемся к исходной задаче. Ваше правило
>iptables -t nat -D PREROUTING   -d 10.1.1.1 -p tcp --dport 53 -j DNAT --to-destination 10.1.1.100
>подсеть 10.0.0.0/8, у всех ДНС сервер 10.1.1.1
>Новый ДНС сервак на 10.1.1.100.

По /8 получается что сеть одна и нужен SNAT, если сети разные, но роут нежелателен или dns сервер отвечает только нашей машине, то опять таки нужен SNAT.

Добавляем проброс порта:
iptables -t nat -A PREROUTING  -d 10.1.1.1 -p udp --dport 53 -j DNAT --to-destination 10.1.1.100

После этого правила пакет из входящего(цепочка INPUT) становится транзитным(цепочка FORWARD). Убеждаемся что в FORWARD у нас ACCEPT, при необходимости добавляем
iptables -I FORWARD 1 -d 10.1.1.100 -p udp --dport 53 -j ACCEPT

Если нужен SNAT то добавляем
iptables -t nat -A POSTROUTING  -d 10.1.1.100 -p udp --dport 53 -j DNAT --to-source 10.1.1.1

Итого порядок преобразований пакетов для dns запросов в формате (источник : назначение), для определенности пусть запрос идет от 10.0.0.5
(10.0.0.5 : 10.1.1.1)    - запрос пришел на интерфейс
(10.0.0.5 : 10.1.1.100)  - DNAT, запомнили 10.1.1.100->10.1.1.1
(10.1.1.1 : 10.1.1.100)  - SNAT, запомнили 10.1.1.1->10.0.0.5
запрос ушел на 10.1.1.100
(10.1.1.100 : 10.1.1.1)  - ответ на запрос пришел с 10.1.1.100
(10.1.1.1 : 10.1.1.1)    - обратный DNAT, вспоминаем 10.1.1.100->10.1.1.1
(10.1.1.1 : 10.0.0.5)    - обратный SNAT, вспоминаем 10.1.1.1->10.0.0.5
ответ ушел на 10.0.0.5

И все-таки почитайте руководство.

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

21. "Как пропросить запросы на DNS"  
Сообщение от reader (ok) on 09-Янв-09, 16:49 
SNAT и DNAT - делайте на одном (старом) сервере
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

22. "Как пропросить запросы на DNS"  
Сообщение от Vladimir email(??) on 13-Янв-09, 15:07 
>SNAT и DNAT - делайте на одном (старом) сервере

Сделал так, получилось, пинг пошёл. Спасибо.

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

23. "Как пропросить запросы на DNS"  
Сообщение от Vladimir email(??) on 13-Янв-09, 15:09 
>[оверквотинг удален]
>(10.0.0.5 : 10.1.1.1)    - запрос пришел на интерфейс
>(10.0.0.5 : 10.1.1.100)  - DNAT, запомнили 10.1.1.100->10.1.1.1
>(10.1.1.1 : 10.1.1.100)  - SNAT, запомнили 10.1.1.1->10.0.0.5
>запрос ушел на 10.1.1.100
>(10.1.1.100 : 10.1.1.1)  - ответ на запрос пришел с 10.1.1.100
>(10.1.1.1 : 10.1.1.1)    - обратный DNAT, вспоминаем 10.1.1.100->10.1.1.1
>(10.1.1.1 : 10.0.0.5)    - обратный SNAT, вспоминаем 10.1.1.1->10.0.0.5
>ответ ушел на 10.0.0.5
>
>И все-таки почитайте руководство.

Идею понял, но возник вопрос, тут описан метот когда мне известен IP клиента, а если клиенов много, надо делать правила универсальные, для подсети, ато как запомнить откого пришёл запрос если мы меняем отправителя?

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

24. "Как пропросить запросы на DNS"  
Сообщение от angra (ok) on 13-Янв-09, 16:17 
Я поставил конкретный ip для _иллюстрации_, DNAT и SNAT сами запоминают ip и порты, сами их восстанавливают.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Как пропросить запросы на DNS"  
Сообщение от Pahanivo email(??) on 05-Янв-09, 22:38 
>Есть шлюз на котором крутится и named, но запросов стало много, поэтому
>нужно чтоб юзеры работали с другим серваком ДНС. Как с помощью
>iptables настроить переброс запросов на другой сервак, ато пока смениш всем
>ДНС много времени пройдёт, а надо уже сейчас снять нагрузку.

зачем это делать на уровне ip?
по моему горазда быстрее и проще сделать это средствами named - forwarding
как бонус получаем отказоустойчивость и кеширование

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

7. "Как пропросить запросы на DNS"  
Сообщение от zkrvova (ok) on 06-Янв-09, 16:58 
>>Есть шлюз на котором крутится и named, но запросов стало много, поэтому
>>нужно чтоб юзеры работали с другим серваком ДНС. Как с помощью
>>iptables настроить переброс запросов на другой сервак, ато пока смениш всем
>>ДНС много времени пройдёт, а надо уже сейчас снять нагрузку.
>
>зачем это делать на уровне ip?
>по моему горазда быстрее и проще сделать это средствами named - forwarding
>
>как бонус получаем отказоустойчивость и кеширование

А как это сделать, подскажи.
И снизится тогда нагрузка на основной сервак или нет?

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

10. "Как пропросить запросы на DNS"  
Сообщение от s_dog (??) on 06-Янв-09, 17:15 
>[оверквотинг удален]
>>>iptables настроить переброс запросов на другой сервак, ато пока смениш всем
>>>ДНС много времени пройдёт, а надо уже сейчас снять нагрузку.
>>
>>зачем это делать на уровне ip?
>>по моему горазда быстрее и проще сделать это средствами named - forwarding
>>
>>как бонус получаем отказоустойчивость и кеширование
>
>А как это сделать, подскажи.
>И снизится тогда нагрузка на основной сервак или нет?

http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edit...

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

11. "Как пропросить запросы на DNS"  
Сообщение от zkrvova (ok) on 06-Янв-09, 17:20 
>[оверквотинг удален]
>>>
>>>зачем это делать на уровне ip?
>>>по моему горазда быстрее и проще сделать это средствами named - forwarding
>>>
>>>как бонус получаем отказоустойчивость и кеширование
>>
>>А как это сделать, подскажи.
>>И снизится тогда нагрузка на основной сервак или нет?
>
>http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edit...

Так это просто настроить чтоб он все данные брал с другого сервака, так у меня так и работает, но нагрузка то в этом случае всёравно ложится на тот сервак кто на запросы отвечает.

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

14. "Как пропросить запросы на DNS"  
Сообщение от Pahanivo email(??) on 06-Янв-09, 19:30 
>[оверквотинг удален]
>>>>как бонус получаем отказоустойчивость и кеширование
>>>
>>>А как это сделать, подскажи.
>>>И снизится тогда нагрузка на основной сервак или нет?
>>
>>http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edit...
>
>Так это просто настроить чтоб он все данные брал с другого сервака,
>так у меня так и работает, но нагрузка то в этом
>случае всёравно ложится на тот сервак кто на запросы отвечает.

Учи матчасть. Сервак грузят рекурсивные запросы, при использовании форвардинга рекурсивные запросы будет резолвить форвардер.

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

13. "Как пропросить запросы на DNS"  
Сообщение от Pahanivo email(??) on 06-Янв-09, 19:28 
>[оверквотинг удален]
>>>нужно чтоб юзеры работали с другим серваком ДНС. Как с помощью
>>>iptables настроить переброс запросов на другой сервак, ато пока смениш всем
>>>ДНС много времени пройдёт, а надо уже сейчас снять нагрузку.
>>
>>зачем это делать на уровне ip?
>>по моему горазда быстрее и проще сделать это средствами named - forwarding
>>
>>как бонус получаем отказоустойчивость и кеширование
>
>А как это сделать, подскажи.

Читай маны по бинду на isc.org, ищи опцию forwarders.
>И снизится тогда нагрузка на основной сервак или нет?

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

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

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

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




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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