LINUX.ORG.RU
ФорумAdmin

rsync from specific ip address


0

0

У машины два айпишника (интерфейсы eth0, eth0:0). На другой машине rsync сервер. Этот сервер позволяет синхронизоваться с одного из айпишников, с другого - нет. Как явно rsync указать, какой из айпишников пользовать? Опция --address как-то не помогает...

★★★★★

Я тормоз, --аддресс помогает - исчезает ошибка "@ERROR: access denied to foo from moo (192.168.7.2)". Но всплывает другая ошибка, загадочная...

$ rsync --address bar -n -4 -v -v -v -v rsync://foo:12345/dirdir/ .
opening tcp connection to foo port 12345
rsync: failed to connect to foo: Invalid argument (22)
_exit_cleanup(code=10, file=clientserver.c, line=124): entered
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
_exit_cleanup(code=10, file=clientserver.c, line=124): about to call exit(10)

При этом банальным телнетом я спокойно захожу на порт foo:12345 и вижу сигнатуру rsyncd

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

Загадочно. Так - работает. И даже --address не нужен (по понятным причинам). Но непонятно, почему явно заданный --address не достаточен (и при этом нет ошибки access denied). Как-то не хотелось править роутинг..

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

Ну хорошо, а как явно в где-нибудь в /etc/network/interfaces (или еще где) прописать параметр src?

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

>при этом сам src заранее неизвестен - он по dhcp выдается.

А как тогда rsync-сервер знает это айпишник?

Во всяких rhel
/etc/sysconfig/network-scripts/route-eth0
можно попробовать добавить
$dst via $src

В дебиан /etc/network/interfaces
в описании итерфейса добавить непосредственно
post-up ip route add ....
pre-down ip route del ....

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

> А как тогда rsync-сервер знает это айпишник?
Через dns. По имени определяется. Про post-up я думал. Даже лучше ip route change. Но кажись он не умеет принимать днс имена...

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

Error: an inet address is expected rather than "bar".

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

>Но кажись он не умеет принимать днс имена...

Ну отрезолвить сперва засунуть ip в переменную.. Можно все это выделить в отдельный файл, который подсовывать post-up.



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

В общем, да. Наверное, так и надо. Но вообще они могли бы как-то это дело предусмотреть - уж если придумали алиазные интерфейсы, надо указывать какой из них использовать для исходящих...

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

В смысле? Прога сама выбирает с какого адреса коннектится путём вызова bind(). Если она не делает этого то ядро само выберет на свой вкус.

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

1. Могли бы проге добавить соотв. параметр. Похоже, параметр --address не работает до конца
2. "Ядро само выберет" - исходя из параметра src. Было бы неплохо иметь возможность как-то указать его в /etc/network/interfaces

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

>"Ядро само выберет" - исходя из параметра src. Было бы неплохо иметь возможность как-то указать его в /etc/network/interfaces

Там много чего неплохо было бы иметь возможность указать, но из iproute2 вообще мало что реализовано в различных абстракиях конфигурирования.

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