Приветствую всех,
не могу понять, можно ли выбрать программным способом сетевой интерфейс, либо source ip, с которого будет коннектиться клиент? Возможно ли обойтись простыми функциями, типа socket, connect и чем-то еще? Или всеже придется строить что-то еще, для работы на более низком уровне, что-то типа своего парсера TCP/IP, который бы менял неоходимые записи в заголовках того и другого? Но, тогда вопрос, как инкапсулировать этот обработчик в функции более высокого уровня? Что-бы вообще не переписывать весь стек? Использовать функционал firewall? Скажем divert? А если iptables? В общем, вопросов..
Может кто делал? Подскажите правильный путь. Не хочется изобретать велосипед.. ((С уважением,
lightspeed
>Приветствую всех,
>не могу понять, можно ли выбрать программным способом сетевой интерфейс, либо source
>ip, с которого будет коннектиться клиент? Возможно ли обойтись простыми функциями,
>типа socket, connect и чем-то еще? Или всеже придется строить что-то
>еще, для работы на более низком уровне, что-то типа своего парсера
>TCP/IP, который бы менял неоходимые записи в заголовках того и другого?
>Но, тогда вопрос, как инкапсулировать этот обработчик в функции более высокого
>уровня? Что-бы вообще не переписывать весь стек? Использовать функционал firewall? Скажем
>divert? А если iptables? В общем, вопросов..
>Может кто делал? Подскажите правильный путь. Не хочется изобретать велосипед.. ((
>
>С уважением,
>lightspeedПосле создания сокита вызываешь на него bind с соответсвующими параметрами.
>
>После создания сокита вызываешь на него bind с соответсвующими параметрами.Нет. Так не работает. Создал сервер. Привязал его к конкретному адресу. На него принял запрос, спроксировал его на другой сервер. Соответственно мой сервер (прокси), создает коннект на этот, другой сервер. По идее, он должен создавать коннект с того адреса, к которому привязан. Но, нет, он в тупую отправляет пакеты с основного адреса, стоящего по дефoлту. Добавлю, что реальный интерфейс только один. Но, на него навешаны алиасы, с другими IP, с которых и требуется создавать коннект. Возможно дело именно в этом.
С уважением,
lightspeed
>>
>>После создания сокита вызываешь на него bind с соответсвующими параметрами.
>
>Нет. Так не работает. Создал сервер. Привязал его к конкретному адресу. На
>него принял запрос, спроксировал его на другой сервер. Соответственно мой сервер
>(прокси), создает коннект на этот, другой сервер. По идее, он должен
>создавать коннект с того адреса, к которому привязан. Но, нет, он
>в тупую отправляет пакеты с основного адреса, стоящего по дефoлту. Добавлю,
>что реальный интерфейс только один. Но, на него навешаны алиасы, с
>другими IP, с которых и требуется создавать коннект. Возможно дело именно
>в этом.
>
>С уважением,
>lightspeedbind на какой сокет делали? тот что accept'ица (слушающий), или тот что connect'ица?
надо на второй.
>bind на какой сокет делали? тот что accept'ица (слушающий), или тот что
>connect'ица?
>надо на второй.Угу.. Спасибо огромное, в этом и было дело.. ))