본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

호스트 엔드포인트 정책 요약

원문 보기 위키 갱신

호스트 엔드포인트 정책은 일반(untracked·pre-DNAT·normal) 유형별로 어떤 트래픽 흐름에 적용되는지가 조금씩 달라요. 이 문서는 모든 흐름과 모든 정책 유형에 대해 적용 규칙을 한곳에 모아 정리한 레퍼런스예요. 패킷이 어디서 들어와 어디로 가는지에 따라 어떤 정책이 걸리는지 빠르게 판단할 수 있어요.

출처: 문서

본문

일반 호스트 엔드포인트 정책은 호스트 인터페이스로 도착하고/또는 호스트 인터페이스로 보내지는 트래픽에 적용되지만, untracked 정책과 pre-DNAT 정책의 적용 규칙은 일부 경우 달라요. 여기서는 모든 규칙을, 가능한 모든 흐름과 모든 유형의 호스트 엔드포인트 정책에 대해 함께 정리해요.

호스트 인터페이스에 도착하고 로컬 워크로드, 즉 로컬에서 호스팅되는 파드, 컨테이너 또는 VM을 목적지로 하는 패킷:

  • Pre-DNAT 정책이 적용돼요.

  • applyOnForward가 true이면 일반 정책도 적용돼요. applyOnForward가 false이면 일반 정책은 적용되지 않아요.

  • Untracked 정책은 기술적으로는 적용되지만, 이런 흐름에 대해 실질적인 긍정 효과는 없어요.

    참고: 정확히 말하면, 들어오는 호스트 인터페이스의 untracked 정책은 forward 방향으로 적용될 수 있고, 그렇다면 커넥션 트래킹 없이 패킷을 워크로드로 포워딩하는 효과가 있어요. 하지만 그런 다음, 되돌아가는 방향으로는 되돌아오는 패킷이 매칭할 conntrack 상태가 없고, untracked 정책이 정의할 수 있는 이그레스 규칙도 적용되지 않아요 — 그래서 워크로드의 정책이 해당 소스 IP를 명시적으로 허용하지 않으면 되돌아오는 패킷은 드랍돼요. 이는 untracked 정책이 전혀 없는 것과 사실상 같은 결과라서, 실제로는 untracked 정책이 이 흐름에 적용되지 않는 것과 마찬가지예요.

호스트 인터페이스에 도착하고 호스트 네임스페이스의 로컬 서버 프로세스를 목적지로 하는 패킷:

  • Untracked, pre-DNAT, 일반 정책이 모두 적용돼요.

  • 패킷이 untracked 정책에 의해 명시적으로 허용되면, pre-DNAT와 일반 정책은 건너뛰어요.

  • 패킷이 pre-DNAT 정책에 의해 명시적으로 허용되면, 일반 정책은 건너뛰어요.

호스트 인터페이스 (A)에 도착하고 같은 또는 다른 호스트 인터페이스 (B)로 포워딩되는 패킷:

  • Untracked 정책은 호스트 인터페이스 A와 B 양쪽에 대해 적용되지만, 그 정책들에 정의된 인그레스 규칙만 적용돼요. forward 방향은 인터페이스 A에 적용되는 untracked 정책의 인그레스 규칙이, 되돌아가는 방향은 인터페이스 B에 적용되는 untracked 정책의 인그레스 규칙이 결정하므로, 그 규칙들은 대칭으로 정의되어야 해요.

  • Pre-DNAT 정책은 적용되는데, 구체적으로는 인터페이스 A에 적용되는 pre-DNAT 정책의 인그레스 규칙이 적용돼요. (되돌아가는 방향은 conntrack 상태가 허용해요.)

  • applyOnForward가 true이면 일반 정책이 적용돼요: 구체적으로는 인터페이스 A에 적용되는 일반 정책의 인그레스 규칙과, 인터페이스 B에 적용되는 일반 정책의 이그레스 규칙이에요. (되돌아가는 방향은 conntrack 상태가 허용해요.) applyOnForward가 false이면 일반 정책은 적용되지 않아요.

  • 패킷이 untracked 정책에 의해 명시적으로 허용되면, pre-DNAT와 일반 정책은 건너뛰어요.

  • 패킷이 pre-DNAT 정책에 의해 명시적으로 허용되면, 일반 정책은 건너뛰어요.

로컬 서버 프로세스(호스트 네임스페이스)에서 호스트 인터페이스 밖으로 보내지는 패킷:

  • Untracked 정책은 적용되는데, 구체적으로는 그 호스트 인터페이스에 적용되는 untracked 정책의 이그레스 규칙이에요.

  • 일반 정책은 적용되는데, 구체적으로는 그 호스트 인터페이스에 적용되는 일반 정책의 이그레스 규칙이에요.

  • Pre-DNAT 정책은 적용되지 않아요.

로컬 워크로드에서 호스트 인터페이스 밖으로 보내지는 패킷:

  • Untracked 또는 pre-DNAT 호스트 엔드포인트 정책은 적용되지 않아요.

  • applyOnForward가 true이면 일반 정책이 적용돼요: 구체적으로는 나가는 인터페이스에 적용되는 일반 정책의 이그레스 규칙이에요. (되돌아가는 방향은 conntrack 상태가 허용해요.) applyOnForward가 false이면 일반 정책은 적용되지 않아요.

더 알아보기 (Learn more)

핵심 축은 로컬 프로세스 행선지인지 포워딩인지, 그리고 applyOnForward 값이에요. untracked·pre-DNAT 정책이 먼저 매칭되면 이후 정책 평가를 건너뛴다는 우선순위도 기억해 두면 흐름 추적이 쉬워져요.