URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6225
[ Назад ]

Исходное сообщение
"Выбор source IP на перле/c?"

Отправлено lightspeed , 04-Мрт-07 23:52 
Приветствую всех,
не могу понять, можно ли выбрать программным способом сетевой интерфейс, либо source ip, с которого будет коннектиться клиент? Возможно ли обойтись простыми функциями, типа socket, connect и чем-то еще? Или всеже придется строить что-то еще, для работы на более низком уровне, что-то типа своего парсера TCP/IP, который бы менял неоходимые записи в заголовках того и другого? Но, тогда вопрос, как инкапсулировать этот обработчик в функции более высокого уровня? Что-бы вообще не переписывать весь стек? Использовать функционал firewall? Скажем divert? А если iptables? В общем, вопросов..
Может кто делал? Подскажите правильный путь. Не хочется изобретать велосипед.. ((

С уважением,
lightspeed


Содержание

Сообщения в этом обсуждении
"Выбор source IP на перле/c?"
Отправлено Niam , 05-Мрт-07 00:03 
>Приветствую всех,
>не могу понять, можно ли выбрать программным способом сетевой интерфейс, либо source
>ip, с которого будет коннектиться клиент? Возможно ли обойтись простыми функциями,
>типа socket, connect и чем-то еще? Или всеже придется строить что-то
>еще, для работы на более низком уровне, что-то типа своего парсера
>TCP/IP, который бы менял неоходимые записи в заголовках того и другого?
>Но, тогда вопрос, как инкапсулировать этот обработчик в функции более высокого
>уровня? Что-бы вообще не переписывать весь стек? Использовать функционал firewall? Скажем
>divert? А если iptables? В общем, вопросов..
>Может кто делал? Подскажите правильный путь. Не хочется изобретать велосипед.. ((
>
>С уважением,
>lightspeed

После создания сокита вызываешь на него bind с соответсвующими параметрами.


"Выбор source IP на перле/c?"
Отправлено lightspeed , 05-Мрт-07 01:09 
>
>После создания сокита вызываешь на него bind с соответсвующими параметрами.

Нет. Так не работает. Создал сервер. Привязал его к конкретному адресу. На него принял запрос, спроксировал его на другой сервер. Соответственно мой сервер (прокси), создает коннект на этот, другой сервер. По идее, он должен создавать коннект с того адреса, к которому привязан. Но, нет, он в тупую отправляет пакеты с основного адреса, стоящего по дефoлту. Добавлю, что реальный интерфейс только один. Но, на него навешаны алиасы, с другими IP, с которых и требуется создавать коннект. Возможно дело именно в этом.

С уважением,
lightspeed


"Выбор source IP на перле/c?"
Отправлено vic , 05-Мрт-07 12:18 
>>
>>После создания сокита вызываешь на него bind с соответсвующими параметрами.
>
>Нет. Так не работает. Создал сервер. Привязал его к конкретному адресу. На
>него принял запрос, спроксировал его на другой сервер. Соответственно мой сервер
>(прокси), создает коннект на этот, другой сервер. По идее, он должен
>создавать коннект с того адреса, к которому привязан. Но, нет, он
>в тупую отправляет пакеты с основного адреса, стоящего по дефoлту. Добавлю,
>что реальный интерфейс только один. Но, на него навешаны алиасы, с
>другими IP, с которых и требуется создавать коннект. Возможно дело именно
>в этом.
>
>С уважением,
>lightspeed

bind на какой сокет делали? тот что accept'ица (слушающий), или тот что connect'ица?
надо на второй.


"Выбор source IP на перле/c?"
Отправлено lightspeed , 05-Мрт-07 14:26 
>bind на какой сокет делали? тот что accept'ица (слушающий), или тот что
>connect'ица?
>надо на второй.

Угу.. Спасибо огромное, в этом и было дело.. ))