넷필터 NF_IP_LOCAL_OUT hook과 IP segmentation

jwshinji의 이미지

NF_IP_LOCAL_IN의 경우 segment된 IP 패킷에 대한 assembly가 수행된 이후인 것으로 알고 있읍니다.

NF_IP_LOCAL_OUT의 경우는 IP 패킷이 segment되기 전인가요 ? 아니면 segment된 이후 인가요 ?
소스 코드만 봐서는 명확히 잘 모르겠군요.
TCP와 UDP에 차이가 있는 것 같기도 하구...

익명 사용자의 이미지

fragment 된 패킷이 defragmentation 되는 위치는 ip_local_deliver() 위치입니다. 즉, NF_IP_LOCAL_IN 에서는 이미 defragment된 패킷이 걸리는 것이죠...

패킷 전송 시에 fragmentation을 수행하는 위치는 ip_queue_xmit() 등 NF_IP_LOCAL_OUT 위치 바로 전입니다.