Raw-сокет для пересылки tcp пакетов

Всем привет! стало необходимо проксировать tcp пакеты с одного адреса и порта на другой. Решил использовать сырые сокеты:

  • читаю tcp-пакеты на сетевом уровне ipproto_tcp, поставил опцию самому собирать ip заголовок;

  • если прочитан внутри нужный порт, пересылаю это пакет нужному клиенту, но изменяя внутри адрес и порт источника на якобы прокси;

  • в момент изменения полей пеерсчитываю контрольные суммы tcp и ip.

Tcpdump показал, что пакет отправлен, никаких вроде претензий к контрольной сумме. Но клиент на syn не отвечает syn-ack. Подскажите, в чем может быть проблема, может не так считаю сумму контрольную? Да вроде всё из источников.

Пользовался этим примером https://github.com/MaxXor/raw-sockets-example/blob/master/rawsockets.c , но отличие в том, что тут полностью формируется пакет, а не просто переписываются поля с адресами и портом и всё.


Ответы (0 шт):