[질문]tcp/ip와 iptables 입니다~

ero의 이미지

갑자기 궁금한건데..
tcp/ip 통신중 client(A host) IP가 바뀌게 되면(B host) 서버쪽에서 이상없이 패킷이 전송 될까요??
단, A host의 체크섬,seq,ack,mtu등등이 B host와 동일하다고 가정했을때 입니다.

그리고 또한가지는
iptables -A OUTPUT -j QUEUE
라고 했을때
QUEUE에 쌓인 패킷을 확인할려면 어떻해야 되나요?

wariua의 이미지

IP 주소가 바뀌면 연결이 끊길 겁니다. 리눅스 머신에서 테스트를 해보니 "netstat"으로 봤을 때 여전히 ESTABLISHED 상태인데 통신은 안 되네요. 더이상 자기 IP 주소가 아니기 때문에 패킷을 받아들이지 않나 봅니다.

근데 설령 운영체제에서 연결이 끊기지 않게 하려고 노력한다고 해도 좀 있으면 또 다른 복병이 등장합니다. 클라이언트의 다음 홉에 있는 장비의 ARP 캐시에서 이전 IP 주소에 대한 항목이 사라지게 되면, 그 때부터는 이전 IP 주소를 목적지로 하는 패킷을 수신조차 할 수 없게 될 테니까요.

QUEUE한 패킷을 처리하는 건 libnetfilter_queue 라이브러리를 사용하시면 될 겁니다. snort inline 같은 프로젝트에서 사용 방식을 확인하실 수도 있구요.
----
$PWD `date`

$PWD `date`