Hi.
In special network condition, I
found that TPROXY didn’t work.
I tried to change source ip to
another using below code.
==================== CODE START ========================
itp.op
= TPROXY_ASSIGN;
itp.v.addr.faddr = (another);
itp.v.addr.fport = htons(0);
setsockopt(s, SOL_IP, IP_TPROXY,
&itp, sizeof(itp));
itp.op
= TPROXY_FLAGS;
itp.v.flags = ITP_CONNECT;
setsockopt(s, SOL_IP, IP_TPROXY, &itp, sizeof(itp));
==================== CODE END ==========================
It goes well when general TCP/IP state.
But in case tcp sequence number of received packet is something
wierd,
LINUX tcp/ip stack make be zero sequence number and
ack number.
And source ip address is not changed !!!
Of cource other sessions’s source ip address is changed very well.
Especially only if I connect to windows system, this
is occurred.
My System Info:
O S : linux-2.6.9
TRPOXY verserion : 2.0.1
ETC. : Using Bridge network
Now, I am studying TCP/IP kernel stack. And My eyes
and my head is very dizzy.
Thanks.