LINUX.ORG.RU
решено ФорумAdmin

FreeBSD завернуть пакет к внешнему айпи на локалхост

 , , ,


0

1

Нужно чтобы демон думал что к нему подключаются из инета, хотя на самом деле к нему подключается другая локальная прога. В этой проге я включаю на сокет опцию O_BINDANY, делаю bind() на внешний поддельный айпи-адрес и затем connect() к адресу демона.

Из tcpdump-ов выяснилось, что TCP SYN идёт правильно через локалхост от моей проги к демону, а вот SYN+ACK ответ отправляется в настоящий интернет через сетевуху, до моей проги не доходит. Как ему объяснить что он тоже должен через локалхост идти? Напрашивается ipfw fwd, но ему же надо айпи+порт куда заворачивать указывать, а он там поддельный и к тому же каждый раз разный.

Вообще я думал что при наличии локального сокета с нужным ip+port+ip+port пакеты должны попадать сразу в него вне зависимости от того, какому интерфейсу это всё принадлежит, но оказывается нет.

★★★★★

Последнее исправление: firkax (всего исправлений: 1)

А всё, разобрался, надо было fwd 127.0.0.1 просто сделать, без порта.

Единственное что плохо - туда заворачиваются все пакеты с адреса демона, а не только ответы на уже начатые сессии, но это ладно.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)