MPD4 и несколько интерфейсов

Any discussions about UNIX OS (include Linux)

Moderator: sva

MPD4 и несколько интерфейсов

Postby Alex Bakhtin on Sun Jun 20, 2010 6:49 pm

Есть mpd4 на машинке с несколькими интерфейсами. Hастроен входящий UDP тунель:

set udp self 0.0.0.0 1234

Я при этом ожидал, что в исходящих пакетах от mpd будет тот адрес, на который пришел запрос на соединение, но нет, ставится тот адрес, через
который идет роутинг на пира. Задать адрес жестко - не получается, так как канал в мир организован тоже через mpd - т.е. пока mpd не поднимет
интерфейсы - этого адреса не существует -> mpd не может окрыть на нем сокет. Я думаю что можно, в принципе, соорудить этот адрес на loopback
(чтобы он присутствовал при старте mpd и потом в up скрипте его грохать а в down вешать обратно) но это как-то все мегакриво получается... Как бы
научить mpd отвечать именно с того IPшника, на который к нему пришли?
Alex Bakhtin
 

Re: MPD4 и несколько интерфейсов

Postby Andrey Voitenkov on Sun Jun 20, 2010 6:49 pm

Вот к разновидности этого я пришел, только mpd слушает совсем левый ip но lo0, а входящие туда редиректятся силами ipfw.
up/down скрипты конфигурят файрвол соответствующим образом при подъеме внешних каналов. С l2tp-сервером работало на mpd4 и сейчас на пятом живет.
Andrey Voitenkov
 

Re: MPD4 и несколько интерфейсов

Postby Alex Bakhtin on Sun Jun 20, 2010 6:50 pm

Мне бы очень не хотелось гонять туннели через nat. Собственно, мне так кажется что поведение когда демон отвечает на UDP с совершенно другого IP
адреса - поведение не очень корректное и данный пакет однозначно пойдет в /dev/null на другой стороне. Как минимум его firewall не пропустит.
Alex Bakhtin
 

Re: MPD4 и несколько интерфейсов

Postby Vadim Goncharov on Sun Jun 20, 2010 6:50 pm

ipfw fwd на локальный сокет работает другим механизмом, чем внешний - он прибивает пакеты к соответствующему локальному сокету.
По крайней мере, для входящих tcp это работает точно.
Vadim Goncharov
 

Re: MPD4 и несколько интерфейсов

Postby Alex Bakhtin on Sun Jun 20, 2010 6:51 pm

Hу мы вроде как хотим чтобы пакеты от MPD шли с правильного адреса?
Чем тут прибивание входящих пакетов поможет?
Alex Bakhtin
 

Re: MPD4 и несколько интерфейсов

Postby Vadim Goncharov on Sun Jun 20, 2010 6:51 pm

Это было к способу с левым ip и "не хотелось гонять туннели через nat" - когда оба адреса на этой же машине,
ipfw fwd позволяет обойтись на ней без nat. По крайней мере, проверено для tcp.
Vadim Goncharov
 

Re: MPD4 и несколько интерфейсов

Postby Alex Bakhtin on Sun Jun 20, 2010 6:51 pm

Hу, для tcp должно работать. Hо как-то tcp over tcp совсем не хорошо.
Alex Bakhtin
 

Re: MPD4 и несколько интерфейсов

Postby Vadim Goncharov on Sun Jun 20, 2010 6:52 pm

Hу, это как бы намек - попробовать, а не сработает ли с UDP ?
Vadim Goncharov
 

Re: MPD4 и несколько интерфейсов

Postby Slawa Olhovchenkov on Wed Jul 14, 2010 10:22 am

Alex Bakhtin wrote:Есть mpd4 на машинке с несколькими интерфейсами. Hастроен входящий UDP тунель:

set udp self 0.0.0.0 1234

Я при этом ожидал, что в исходящих пакетах от mpd будет тот адрес, на который пришел запрос на соединение, но нет, ставится тот адрес, через
который идет роутинг на пира. Задать адрес жестко - не получается, так как канал в мир организован тоже через mpd - т.е. пока mpd не поднимет
интерфейсы - этого адреса не существует -> mpd не может окрыть на нем сокет. Я думаю что можно, в принципе, соорудить этот адрес на loopback
(чтобы он присутствовал при старте mpd и потом в up скрипте его грохать а в down вешать обратно) но это как-то все мегакриво получается... Как бы
научить mpd отвечать именно с того IPшника, на который к нему пришли?

дешевого решения нет.
единственный правильный вариант -- это поступать как bind: сканить интерфейсы, на каждом ip открывать сокет,
при изменнииях -- пересканировать и переоткрывать. для udp нет другого кошерного способа достичь нужного тебе поведения.
Slawa Olhovchenkov
 


Return to UNIX

Who is online

Users browsing this forum: No registered users and 8 guests

cron