CentOS 6.0
나는 iptables를 공부하고 있으며 FORWARD와 OUTPUT 체인의 차이점에 혼란스러워지고 있습니다. 교육 문서에는 다음과 같이 명시되어 있습니다.
체인을 추가 (-A)하거나 삭제 (-D)하는 경우 다음 세 방향 중 하나로 이동하는 네트워크 데이터에 적용하려고합니다.
- 입력-모든 수신 패킷은이 체인의 규칙에 따라 점검됩니다.
- 출력-모든 발신 패킷은이 체인의 규칙에 따라 점검됩니다.
- FORWARD-다른 컴퓨터로 전송되는 모든 패킷은이 체인의 규칙에 따라 점검됩니다.
내 마음에 호스트를 위해 떠나는 패킷이 나가기 때문에 이것은 혼란 스럽습니다. 패킷이 다른 컴퓨터로 가고 있지만 나가지는 않는 시나리오가 있습니까? iptables는 두 가지를 어떻게 구별합니까?
답변
OUTPUT은 호스트에서 생성 한 패킷을위한 것입니다. 대상은 일반적으로 다른 호스트이지만 루프백 인터페이스를 통해 동일한 호스트 일 수 있으므로 OUTPUT을 통과하는 모든 패킷이 실제로 발신되는 것은 아닙니다.
FORWARD는 호스트에서 방출되거나 호스트로 보내지지 않은 패킷을위한 것입니다. 이들은 호스트가 단순히 라우팅하는 패킷입니다.
패킷 맹 글링과 NAT를 파고 들기 시작하면 전체 내용이 다소 복잡해 집니다.
답변
내 이해에 :
입력 : dst IP가 호스트에 있으며 서브넷이 여러 개인 포트가 여러 개인 경우에도
출력 : src IP는 호스트 중 하나에서
앞으로 : 호스트의 dst IP 또는 호스트의 src IP
예를 들어 라우터 A로
입력은 :
192.168.10.1-> 192.168.10.199
192.168.10.1-> 192.168.2.1
출력은 다음과 같습니다
192.168.10.199-> xxxx
192.168.2.1-> xxxx
앞으로 :
192.168.10.1-> 192.168.2.199
192.168.10.1-> 192.168.8.1
192.168.10.1-> 192.168.8.199