⚠️ 들어가기 앞서
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터망 과목을 공부하며 정리한 글입니다.
이전에 라우팅 테이블과 라우팅 알고리즘에 대해 알아볼 때는 패킷에 쓰여진 destination IP address만을 보고 forwarding 작업을 수행하였다. 이를 destination based forwarding
이라고 한다.
이것을 확장시킨 개념인 generalized forwarding
은 destination IP address 뿐만 아니라 헤더에 있는 다른 다양한 필드들을 가지고 다양한 작업을 수행할 수 있는 매커니즘을 의미한다.
헤더의 값을 확인하고 해당하는 조건이 있으면 (match
) 특정한 액션을 수행한다 (action
)고 하여 match + action
이라고도 한다.
이외에도 generalized forwarding의 match 중 여러 조건이 동시에 충족되었을 때, 여러 액션들 중 어떤 액션을 수행할지를 결정해주는 priority
가 있다.
또한 counter
가 있는데 이것은 트래픽의 양을 패킷 수와 바이트로 표시하는 것을 말한다.
Generalized forwarding의 4가지 요소: match, action, priority, counter
generalized forwarding 정보가 들어 있는 flow table의 예시는 위 사진과 같다. 하나씩 살펴보면 다음과 같은 뜻을 담고 있다.
3.4.*.*
이면 2번 라우터로 포워딩하시오.1.2.*.*
이면 그 데이터를 버리시오.10.1.2.3
이면 그 데이터를 컨트롤러로 보내시오.*
는 와일드카드 문자로서 모든 문자에 매칭된다(즉 필터링 조건이 없다)는 뜻이다.
OpenFlow는 네트워크 컨트롤러가 스위치망을 통해 네트워크 패킷의 경로를 정의하는 소프트웨어 정의 네트워크(SDN) 프로토콜이다. (IT위키)
match는 header에 있는 값들을 확인해서 match되는 것을 비교를 한다. 헤더 필드에는 위 그림과 같이 2, 3, 4 계층을 모두 포함한다. 그리고 각 match가 충족될 때 어떤 액션을 취할 것인지가 Action 필드에 담겨 있다.
어떤 포트로 포워딩을 할 수도 있고, 패킷을 드랍할 수도 있고, 헤더의 특정 필드를 수정할 수도 있고, 캡슐화해서 컨트롤러로 보낼 수도 있다.
destination based forwarding
: dest. IP가 51.6.0.8
이면 포트 6으로 포워딩하라firewall
: TCP 포트가 22
이면 드랍하라 / src. IP가 128.119.1.1
이면 드랍하라layer-2 destination based forwarding
: MAC주소가 22:A7:23:11:E1:02
이면 포트 3으로 포워딩하라위 그림은 h5, h6 host에서 출발한 datagram이 라우터 s1, s2를 거쳐 h3, h4 host로 가는 과정을 도식화한 것이다.