[네트워크] Generalized Forwarding, Flow Table

oldshoe·2024년 6월 12일

네트워크

목록 보기
25/34

Generalized Forwarding

이전에 라우팅 테이블과 라우팅 알고리즘에 대해 알아볼 때는 패킷에 쓰여진 destination IP address만을 보고 forwarding 작업을 수행하였다. 이를 destination based forwarding 이라고 한다.

이것을 확장시킨 개념인 generalized forwarding은 destiantion IP address 뿐만 아니라 헤더에 있는 다른 다양한 필드들을 가지고 다양한 작업을 수행할 수 있는 것을 의미한다.

헤더의 값을 확인하고 해당하는 조건이 있으면 (match) 특정한 액션을 수행(action)해서 match + action 이라고도 한다.

이외에도 generalized forwarding의 match 중 여러 조건이 동시에 충족되었을 때, 여러 액션들 중 어떤 액션을 수행할지를 결정해주는 priority가 있다.

또한 counter가 있는데 이것은 트래픽의 양을 패킷 수와 바이트로 표시하는 것을 말한다.

  • Generalized forwarding의 4가지 요소
  • match, action, priority, counter

Flow table abstraciton

  • dest. IP가 3.4.. 이면 2번 라우터로 포워딩
  • src.IP가 1.2.. 이면 그 데이터를 drop
  • src.IP가 10.1.2.3 이면 그 데이터를 cotroller로 보내야 함

OpenFlow

match는 header에 있는 값들을 확인해서 match 되는 것을 비교를 한다.
헤더 필드에는 위의 모든 계층을 포함한다.
그리고 각 match가 충족될 때 어떤 액션을 취할 것인지가 Action 필드에 담겨 있다.

특정한 포트로 포워딩 할 수도 있고 패킷을 드랍할 수도 있고 헤더의 특정 필드를 수정할 수도 있고 캡슐화해서 컨트롤러로 보낼 수도 있다.

OpenFlow Example

  • Destination-based forwarding
    dest. IP가 51.6.0.8 이면 포트 6으로 포워딩
  • Firewall
    TCP 포트가 22이면 drop / src. IP가 128.119.1.1 이면 drop

  • Layer 2 destination-based forwarding
    MAC 주소가 22:A7:23:11:E1:02 이면 포트 3으로 포워딩
profile
toomuxi : There are many things in the world that I want to do

0개의 댓글