на шлюзе есть 3 интерфейса
xx.xx.xx.1
yy.yy.yy.2
zz.zz.zz.3zz.zz.zz.3 слушает named, но если запросы приходят с xx.xx.xx.1 или yy.yy.yy.2, но соответственно от ставит сорсом IP интерфейса, с которого ушел ответ.
Можно ли добиться того чтобы независимо откуда пришел запрос на zz.zz.zz.3, ответ тоже уходил от zz.zz.zz.3
>на шлюзе есть 3 интерфейса
>xx.xx.xx.1
>yy.yy.yy.2
>zz.zz.zz.3
>
>zz.zz.zz.3 слушает named, но если запросы приходят с xx.xx.xx.1 или yy.yy.yy.2, но
>соответственно от ставит сорсом IP интерфейса, с которого ушел ответ.
>
>Можно ли добиться того чтобы независимо откуда пришел запрос на zz.zz.zz.3, ответ
>тоже уходил от zz.zz.zz.3Возможно немного некорректно... перефразирую:
есть шлюз, интерфейсы 10.1.0.1/24 и 192.168.0.1/24... демон слушает 192.168.0.1,
клиент 10.1.0.2 посылает запрос на 192.168.0.1.. но приходит ответ от 10.1.0.1как сделать чтобы ему ответ приходил от 192.168.0.1
Откуда уверенность что ответ приходит именно от 10.1.0.1? Случаем не настроен ли NAT из 192.168.0.1/24 в 10.1.0.1/24?Очевидно, физически пакет в TCP/IP сети действительно приходит с интерфейса 10.1.0.1 т.к. в данном случае сервер выступает в роли маршрутизатора
Из настроек named, ничего кроме query-source на ум не приходит но это немного не то
>Откуда уверенность что ответ приходит именно от 10.1.0.1? Случаем не настроен ли
>NAT из 192.168.0.1/24 в 10.1.0.1/24?
>
>Очевидно, физически пакет в TCP/IP сети действительно приходит с интерфейса 10.1.0.1 т.к.
>в данном случае сервер выступает в роли маршрутизатора
>
>Из настроек named, ничего кроме query-source на ум не приходит но это
>немного не тоНАТа нет.. адреса нормальные, не серые. Сервер выступает в роли маршрутизатора и такое поведение есть нормальным, но можно ли поправить, ибо если у других включен source route verification, то пакеты будут отбрасываться, что и происходит сейчас, возможно есть какая-нибудь опция в /proc ? Дело не только в named, а в любом демоне
Про нормальные адреса не понял - имеете ввиду что там реальники забиты??В общем можно через rule'ы iproute маршрутизировать ответ на пакеты на 53-ий порт третьего интерфейса через третий интерфейс (при этом прописать маршрут на 10.1.0.1/24 через интерфейс 10.1.0.1), но такое соединение может обрываться со стороны клиента
>Про нормальные адреса не понял - имеете ввиду что там реальники забиты??да, реальные...
>В общем можно через rule'ы iproute маршрутизировать ответ на пакеты на 53-ий
>порт третьего интерфейса через третий интерфейс (при этом прописать маршрут на
>10.1.0.1/24 через интерфейс 10.1.0.1), но такое соединение может обрываться со стороны
>клиентапроблема не в маршрутизации.. маршрутизация работает корректно. Я думал дело в фиче.. типа rp_filter или подобных. Теперь уже сомневаюсь
>проблема не в маршрутизации.. маршрутизация работает корректно. Я думал дело в фиче..
>типа rp_filter или подобных. Теперь уже сомневаюсьУ меня есть multihomed-сервер, на котором вертится sendmail, так вот через какой интерфейс ему ответить подключившемуся клиенту, определяется именно функционалом rule в iproute.
Правда там все тривиально - через какой обратились, от того имени и отвечаем, потому как иначе клиент видит что запрос отправлял одному хосту а отвечает совсем другой - и отключается...
По сетевым настройкам ядра не специалист, но по-моему это не фича даже а неслабый такой функционал, который одним параметром не задашь. Но задача интересная, всегда думал что в описанной ситуации ответ будет от 192.168.0.1
>Правда там все тривиально - через какой обратились, от того имени и
>отвечаем, потому как иначе клиент видит что запрос отправлял одному хосту
>а отвечает совсем другой - и отключается...не отключится.. дело в том, что на роутере этом поднят BGP, и за ним - своё адресное пространство, и нужно "отвечать" под своим родным ИП, а не под ИП интерфейсных пар БГП-пиров.
Если научитесь эту задачу решать ядром, без использования iproute и iptables, пишите, любопытно :)
А просто в POSTROUTING добавить SNAT на 192.168.0.1 для всех пакетов исходящих с 10.1.0.1 с 53 порта - разве не решит проблему?
>А просто в POSTROUTING добавить SNAT на 192.168.0.1 для всех пакетов исходящих
>с 10.1.0.1 с 53 порта - разве не решит проблему?возможно решит. Нужно поэкспериментировать. Но этот выход кажется каким-то искуственным