오래 못 할 짓 하지 않기
[ 네트워크 ] 22. Network layer : SDN 본문
Software Defined Networking
SDN
[ Per Router Control Plane ]
: Router 각자가 Forwarding 하기 위해 Table을 만들고 관리한다.
[ Software - Defined Networking Control Plane ]
Router가 아니라 하나의 Server에서 모든 Router들에 관련된 Table을 가지고 관리한다.
Packet 요청이 올 때마다 해당 정보에 맞는 Router로 보낸다.
이런 SDN은 Logically Centralized 한 특성을 가진다.
그렇다면 왜 Logically Centralized Control Plane을 쓸까?
1. 관리가 편리하다.
- router 구성을 오해하는 경우를 피할 수 있다.
- Traffic flow에 큰 유동성을 줄 수 있다.
2. Table-based Forwarding
- Table을 각 라우터가 계산하지 않아도 되고, Server에서만 계산하고 뿌려주면 되기에 그나마 더 가볍다.
📌 기존(전통) Routing 방식의 한계
1. 경로 지정 문제
Q : Network operator가 [ u-z로 가는 경로 ] 를 uvwz 말고, uxyz로 가려고 하면?
A : Link weight를 재설정 해서 올바르게 계산되어 Cost Effective한 경로로 이동하게 한다.
* 하지만 제어가 쉽지는 않다.
2. 부하 분산
Q : u-z로 가는 길을 uvwz 랑 uxyz로 나누려고 한다면? = Load balancing을 하려고 한다면?
A : Traditional에서는 못 함
3. 트래픽 차별화
u에서 z로 가는 빨간색,파란색 두 개의 경로가 있고. 경우에 따라 이걸 다르게 써서 보내고 싶다.
예를 들어 사진에 대한 패킷은 빨간색, Text는 파란색 Traffic으로
하지만 Routing 알고리즘으로 한다면, Destination만 보고 경로를 정하기 때문에 불가능하다.
>> SDN은 합니다.
📌 Data Plane Switches
- 스위치를 통해 빠르고 간단하게 이루어지는 Forwarding을 Hardware로 구현해두었다.
> Switch Control 과 관련된 Table-based API를 사용한다. → OpenFlow
ex) 컨트롤하는 영역 / 그렇지 않은 영역을 나누어둠
> Controller와의 통신이 이루어지는 프로토콜
📌 SDN Controller ( network OS )
- Network 상태를 유지하고 있는 역할을 한다.
- 위 아래 Layer들과 소통한다.
- Performance + Scalability + Fault-tolerance 를 위해 분산된 형태로 작동한다.
📌 Network - control application
- 이 네트워크를 사용하는 계층으로서 , Routing + Access Control + Load Balance를 담당한다.
+ 어디에도 종속되지 않아서 Unbundled하다는 특성이 있다.
* OpenFlow protocol
TCP를 사용한다.
[ SDN 작동 방식 ]
다음 이미지를 보면, s1과 s2에서 Link 에러가 발생한 걸 알 수 있다.
1. Link Failure 를 감지하여, OpenFlow port status Message를 이용하여
Controller에게 현재 상태를 알린다.
2. SDN Contoller가 OpenFlow 메시지를 받고 Link 상태에 대한 정보를 Update한다.
3,4. Dijkstra 알고리즘을 돌려서, 4. 경로 재탐색
* Link status가 바뀔 때마다 돌린다 .
5. Routing App이 SDN Controller에 있는 Flow table과 소통하여
새로운 Flow table을 계산한다.
6. 업데이트가 필요한 곳에게 OpenFlow 프로토콜을 이용하여 Update한다.
Internet Control Message Protocol
ICMP
: Host ↔ Router 사이에서 정보를 주고받을 때 사용된다.
[ 정보 ]
- Error 감지
- Request / Reply 에 대한 Echo (ex, ping)
종종 IP로 간주될 때가 있지만
엄밀히 말하면, ICMP는 IP datagram에 담겨 이동하기에
ICMP = IP Layer 위에 있다.
Traceroute and ICMP
본인(Src) 기준 Dest를 3개의 Hop 떨어진 Router로 잡고, Segment를 보낸다.
하지만 우린 3개인 걸 알 수 없는 상태이다.
- src에서 dest까지 한 개의 Hop을 건너고, 도착했다는 메시지가 오지 않으면
> TTL을 +1시켜서 다시 보낸다.
TTL 1로도 도착 안 해? = Dest message가 안 왔을 경우
> TTL = 2
TTL 2로도 도착 안 해 ?
> TTL = 3
이렇게 계속 올려서 나중에 Dest message가 오면 그 TTL로 Count한다.
📌원리
1. 출발지가 TTL 값을 1부터 시작하여 증가시키며 UDP 패킷을 전송한다.
2. n번째 라우터에서 TTL이 0이되면 ICMP 메시지 반환 ( TTL은 한 hop을 지날 때마다 1씩 줄어든다.)
3. 라우터는 자신의 이름과 IP주소도 포함하여 전달
📌종료 조건
- UDP 패킷이 목적지에 도달
→ 목적지에서 port unreachable 메시지를 응답
→ 출발지에서 전송 중단.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
(출처)
한동대학교 고윤민교수님 - 컴퓨터 네트워크
'3학년 2학기 > 네트워크 (Network)' 카테고리의 다른 글
[ 네트워크 ] 24. Link layer : LAN (Ethernet) (0) | 2024.12.05 |
---|---|
[ 네트워크 ] 23. Link layer : Multi Access Protocol , ARP (0) | 2024.12.02 |
[ 네트워크 ] 21. Network layer (Control Plane) : Autonomous System (0) | 2024.11.28 |
[ 네트워크 ] 20. Network layer (Control Plane) : Routing Protocol / Algorithm (0) | 2024.11.25 |
[ 네트워크 ] 19. Network layer : IPv6 / Routing Protocol (0) | 2024.11.21 |