본문 바로가기
네트워크

4.4 일반화된 포워딩 및 소프트웨어 기반 네트워크(SDN)

by 학식러 2023. 3. 31.

 

 

-각각의 라우터들은 flow table을 가지고 있다.

 

-flow table은 논리적으로 중앙에 있는 원격 컨트롤러(logically-centralized routing controller)에 의해 계산되고 나누어진다.

 

-원격 컨트롤러는 실제로는 더 많을지 모르지만 개념적으로는 중앙에 하나가 있다고 생각하면 된다.

 

-원격 컨트롤러가 각각의 라우터에 필요한 local flow table을 생성해서 데이터 평면에 내려준다.

그러면 각각의 실제 라우터들은 중앙에 있는 원격 컨트롤러가 만들어준 flow table을 장착하고 기존의 라우터들이 했던 forwarding 하는 일을 한다.

 

 

-Open Flow data plane abstraction

 

Open Flow : 중앙에 있는 원격 컨트롤러가 실제 라우터에게 Flow table을 전달하는데 라우팅 컨트롤러와 실제 라우터 사이에 정보를 주고받는 프로토콜 이름.

 

open flow 결과로 중앙에 있는 원격 컨트롤러가 계산해서 만든 flow table을 갖게 된다.

 

flow : 헤더필드에 의해 정의될 수 있는 것

 

 

-generalized forwarding : flow table에는 패킷을 다루는 규칙들이 적혀있다. 그 규칙들이 일반적이기 때문에 generalized forwarding이라고 한다.

 

-flow table의 항목

 

매치(패턴) : 헤더 필드의 값들을 매치시키는 방법을 정의.

 

액션 : 패턴에 매칭이 되면 무슨 일을 해야 할지 결정해준다.

ex) 매치된 패킷을 drop(삭제), forward(포워딩), modify(수정) 하거나, 컨트롤러로 보냄

 

우선순위 : 하나 이상의 패턴에 매칭될 경우 어떤 것을 우선적으로 적용할지를 결정.

 

카운터 : 해당 패턴에 맞는 패킷들의 수, 바이트의 수를 저장.

 

ex) 출발지 주소가 1.2.으로 시작하면 목적지가 어떤것이든 상관없이 삭제해라.

 

 

매치에 맞으면 action을 하게 된다.

 

 

4.4.3 매치 플러스 액션 작업의 OpenFlow 예

 

1. 목적지 기반 포워딩

 

전통적인 라우터로서 동작.

 

대부분 여러 필드들이 *로 되어있음. 관계없다는 의미.

 

IP destination 파트만 51.6.0.8로 지정되어 있고 나머지는 *

 

Action은 port 6

 

=> 의미 : 다른 것들은 볼 필요가 없고 목적지 주소가 51.6.0.8이면 포트번호 6으로 보내라.

 

 

2. 방화벽

 

TCP destination 필드만 22번.

 

=> 의미 : TCP 목적지 주소가 22번이면 drop해라. => TCP 22번을 막는 것 = 방화벽

 

 

IP 출발지 주소 128.119.1.1 를 제외하고 나머지는 *

 

=> 의미 : 출발지가 128.119.1.1에서 나온 것들은 전부 drop 시켜라. = 방화벽

 

 

 

3. 2계층 목적지 기반 포워딩

 

MAC 목적지를 제외하고 나머지 *

 

=> 의미 : MAC 목적지 주소가 22:A7 ... 인 패킷들은 전부 port3로 보내라. layer 2 스위치 역할을 할 수 있다.

 

 

-OpenFlow 장점

 

match + action을 가지고  다른 종류의 서비스들을 통합시킬 수 있다.

 

지금까지는 방화벽 따로, 라우터 따로, 스위치 따로 있었는데 하나의 장비를 가지고 다양한 일을 할 수 있다.

 

router : 가장 긴 목적지 IP prefix가 나오면 action으로 링크로 나갈 수 있음.

 

Switch : 맥 주소를 가지고 포워드나 flood를 할 수 있음.

 

방화벽 : IP주소, TCP/UDP 포트번호를 가지고 허락하거나 부인함.

 

NAT : IP 주소 , 포트번호를 가지고 주소나 포트번호를 다시 rewrite함.

 

 

-OpenFlow 예시

 

 

 

호스트 h5, h6에서 시작한 데이터그램이 호스트 h3, h4로 전달되어야 하는데 s1을 거쳐서 s2로 간다고 가정.

 

 

s3에 있는 flow table의 형태 :

IP 출발지 주소가 10.3으로 시작하면 포트3으로 보내라.

 

s1에 있는 flow table의 형태 :

포트 1번으로 들어왔고

IP 출발지 주소가 10.3으로 시작하면 포트4로 보내라.

 

 s2 :

포트 2번으로 들어왔고

IP 목적지 주소가 10.2.0.3이면 포트3으로 보내라.

목적지 주소가 10.2.0.4이면 포트4로 보내라.

'네트워크' 카테고리의 다른 글

5.1 네트워크 계층: 제어 평면, 개요  (0) 2023.04.03
4.5 미들박스  (0) 2023.03.31
4.3.4 IPv6  (0) 2023.03.30
4.3.3 네트워크 주소 변환(NAT)  (0) 2023.03.30
4.3 인터넷 프로토콜(IP): IPv4, 주소체계, IPv6  (0) 2023.03.29

댓글