일단 개념적으로 중요한 체인과 테이블이 있습니다.
체인은 크게 5개(prerouting,input,forward,output,postrouting)로 나눠져있고
5개의 체인에는 각각의 테이블(filter,nat,mangle) 들이 들어있는 형태로 동작을 합니다.
iptables의 구조로는 테이블안에 각각의 체인들이 들어있고 거기에 룰들이 추가되는 구조입니다만
실제 패킷의 흐름을 이해하시려면 체인안에 테이블들이 들어있다고 생각하시기 바랍니다.
물론 모든 체인이 세개의 기본 테이블들을 모두 가지고 있지는 않습니다.
INPUT,FORWARD 체인은 mangle,filter테이블만 있습니다.
간략하게 들어오는 패킷의 경로를 한번 그려보자면 아래와 같습니다.
인터넷---NIC---prerouting---input 또는 forward 갈것인지 routing
즉 prerouting에서의 라우팅은 들어온 패킷이 nat테이블을 거치게 될 때 먼저 ip address 를 변경한 다음
그 다음에 input으로 갈지 forward로 갈지 경로를 정하겠다는 의미의 라우팅으로 이해하시면 됩니다.
반대로 postrouting은 어디로 향하는지 모든 경로가 정해진 다음에 ip address 를 변경하겠다는 것입니다.
물리적인 NIC을 기준으로 하자면 NIC을 거쳐서 다른 NIC(또는 다른 network)으로 패킷이 넘어가기 전에 주소를 변조한다면 prerouting,
NIC을 떠난 다음 주소를 변조한다면 postrouting 이라고 보시면 됩니다.
세개의 테이블은 각각 아래와 같은 역할을 합니다.
filter: 패킷을 걸러낼때, 보통 방화벽 용도로 사용이 됩니다.
nat: 패킷의 주소를 변경할때 사용이 됩니다. 공유기로 사용하거나 사설망과의 통신을 위해서 사용이 됩니다.
mangle: 패킷의 특성을 가지고 처리할때 사용이 됩니다. 보통 QOS 관련해서 사용이 됩니다.
좀더 공부해보시면 금방 이해하실 겁니다.
그럼 열공하시길..^^;
±×·¡µµ ¾ÆÁ÷ °øºÎ´Â ´õ ÇØ¾ß °Ú³×¿ä.
Ä£ÀýÇÑ ´äº¯ °¨»çÇÕ´Ï´Ù~!