"iptables"의 수명 주기 중 어느 시점에서 커널이 "라우팅 테이블"을 활용합니까?

"iptables"의 수명 주기 중 어느 시점에서 커널이 "라우팅 테이블"을 활용합니까?
  • iptables. 나는 Iptables 매뉴얼을 읽고 체인, 테이블, 후크, 규칙 및 대상과 같은 몇 가지 기본 개념을 이해했습니다. Linux 생태계에서 iptables는 커널의 netfilter 패킷 필터링 프레임워크와 인터페이스하는 널리 사용되는 방화벽 도구입니다.

  • route table. Linux에는 또 다른 테이블이 있습니다 route table.

나는 그들 사이의 관계를 파악하고 그들을 큰 그림에 담으려고 노력합니다.

다음은 두 단계로 구성된 iptables 프로세스를 보여주는 멋진 다이어그램입니다 route. 커널은 어떤 단계에서 "라우팅 테이블"을 사용합니까?

여기에 이미지 설명을 입력하세요.

인용하다

  1. DigitalOcean: Iptables 및 Netfilter 아키텍처에 대한 심층 분석
  2. 나는 이 질문을 읽었습니다."StackOverflow: iptable과 라우팅의 차이점은 무엇입니까?"라고 말하지만 내 질문에 대한 대답은 없습니다.

답변1

iptables는 다음 중 하나 이상을 수행하여 패킷 내용이나 패킷 주소 지정을 기반으로 패킷에 응답하는 방법을 결정합니다.

  • 필터: 패킷 무시, 거부 또는 수락(방화벽)
  • mangle: NAT 재작성을 포함한 패킷 변경

그림에 표시된 것처럼 각 라우팅 단계 전후에 적절한 iptables(파란색)가 참여할 수 있습니다.

라우팅 테이블은 헤더의 주소를 전적으로 기반으로 패킷이 어디로 가야 하는지 결정합니다.

  • 입력 경로는 로컬(iptables INPUT 테이블에) 또는 전달할지(iptables FORWARD 테이블) 여부를 결정합니다. 해당 IP 테이블이 비어 있거나 테이블이 패킷을 수락하면 패킷은 각각 수신 응용 프로그램으로 전송됩니다(전달이 활성화됨)이 출력 경로로 전송됩니다.
  • 출력 경로는 전달된 패킷과 애플리케이션에서 보낸 패킷을 가져옵니다. 그런 다음 패킷을 보낼 네트워크 인터페이스와 대상 호스트(해당 인터페이스와 동일한 네트워크에 있음) 또는 외부 라우터로 직접 보낼지 여부를 결정합니다.
  • "로컬 프로세스"라고 표시된 상자는 라우팅 단계가 아니지만 패킷을 수신하거나 새 패킷을 보내는 시스템의 로컬 응용 프로그램(잠재적으로 관련되지 않은 두 작업)을 나타냅니다.

다시 게시하려면 추가 설명이 필요할 수 있습니다. Linux 시스템에 전달이 활성화되면 라우터처럼 작동합니다. 일반적으로 이는 여러 네트워크 인터페이스가 있음을 의미하며 로컬 시스템으로 향하지 않고 패킷이 수신된 인터페이스와 다른 인터페이스의 네트워크로 향하는 패킷을 수신할 수 있습니다. 이더넷에서 각 패킷에는 이더넷(LAN) 주소와 소스 및 대상 IP 주소가 있습니다. 라우터의 이더넷 주소와 WAN IP 주소를 각각의 대상 주소에 입력하여 패킷을 WAN 주소로 보낼 수 있습니다. 그런 다음 라우터(아마도 다른 Linux 상자)는 라우팅 테이블을 통해 패킷을 실행하고 패킷을 보낼 다음 네트워크를 결정합니다.

답변2

두 가지 "경로" 단계로 이루어집니다. 하나는 수신 패킷용이고 다른 하나는 로컬 애플리케이션에서 생성된 패킷용입니다.

iptables와 라우팅은 완전히 다른 두 가지 개념에 적용됩니다. 라우팅은 "이 패킷이 어디로 가야 합니까?"라는 질문에 답하는 반면, iptables는 "어떤 방식으로든 이 패킷을 특별히 필터링하거나 처리해야 합니까?"에 답합니다.

필터링 프로세스를 남용하여 패킷을 강제로 어딘가로 보낼 수 있지만, 이는 원래 의도가 아니었지만 인터넷에는 특정 방식으로 이를 수행해야 한다고 생각하는 사람들이 너무 많습니다. (미안해요. 제 호언장담은 제가 가장 싫어하는 불만 중 하나입니다.)

관련 정보