junyeokk
Blog
Network·2025. 06. 13

Generalized Forwarding

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-08_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_7.50.49.png
  • 패킷 헤더의 특정 비트를 검사(match)하고, 그에 따른 동작을 수행(action)하는 방식

  • 기존에는 단순히 목적지 IP 주소만 보고 전달했지만, 이제는 더 많은 필드를 보고, 더 다양한 행동을 할 수 있음

  • 패킷이 도착하면, 헤더 값을 추출함. 플로우 테이블에서 일치하는 규칙(match)을 찾고 해당 행동(action)을 수행

    구분전통적인 ForwardingGeneralized Forwarding
    기준 필드목적지 IP 주소IP 외에도 MAC, 포트 번호, 프로토콜 등 다양한 헤더 필드
    가능한 동작전달 (forward)전달, 삭제(drop), 복사(copy), 수정(modify), 로그(log), 컨트롤러로 전달
    구현 위치라우터 내 고정 로직프로그래머블한 흐름 테이블 기반
    표 형식포워딩 테이블플로우 테이블 (flow table)

Flow table

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-08_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_7.52.10.png %E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-08_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_7.52.51.png
  • Flow Table은 라우터나 스위치 내부에 있는 테이블로 “어떤 조건의 패킷이 들어오면, 어떤 동작을 해라” 라는 규칙들이 들어 있음

    항목설명
    match어떤 헤더 필드 값들과 일치하는지를 나타냄
    action일치 시 수행할 동작 (forward, drop, modify, controller로 전송 등)
    priority여러 규칙이 동시에 일치할 때 어떤 것을 우선 적용할지
    counters해당 규칙에 일치한 패킷 수, 바이트 수 등 통계 정보 유지
  • 동작 흐름

    • 패킷이 도착하면 Flow Table에서 match 조건을 순서대로 검사함
    • 가장 우선순위 높은 일치하는 규칙 찾고, 그에 따라 지정된 action 수행
    • 해당 카운터 증가
  • 장점

    • 특정 사용자, 특정 포트, 특정 서비스에 따라 맞춤 처리
    • 컨트롤러가 동적으로 flow rule을 설정 가능 (e.g., OpenFlow)
    • 어떤 플로우가 얼마나 많은 데이터를 쓰는지 추적 가능
    • 미리 설정된 규칙으로 위험 패킷을 차단하거나 감시 가능