Transition from IPv4 to IPv6
32-bit 주소 체계를 가지는 IPv4의 IP주소 부족 문제를 해결하기 위해 IPv6가 등장하였다. 하지만 모든 IPv4가 IPv6로 대체된 것은 아니다.
따라서 이렇게 서로 다른 주소 체계를 가지는 router들의 통신을 위해서는, transition from IPv4 to IPv6가 필요하다.
1) Dual Stack

▶ Dual stack router
: Server는 IPv4와 IPv6 둘 다에 대한 traffic을 가지게 된다.
--> 별도의 transition없이, IPv4 client, IPv6 client 모두와 통신이 가능하다.
2) NAT-PT (NAT-Protocol Translation)

▶ NAT enabled device
: Server와 Host 사이의 translation을 해 주어, 서로 다른 주소체계(IPv4, IPv6)를 가진 server와 host가 통신할 수 있도록 해준다.
3) Tunneling

▶ Tunnel
: 최종 client와 server의 주소체계는 같은데, 중간에 주소체계가 바뀔 때, tunneling 기법을 이용한다.
- 두 IPv6 network는 tunneling을 통해 중간의 IPv4 network를 통과할 수 있다.

IPv6 client network와 IPv6 server network가 통신을 하려고 한다. 그런데 중간에 IPv4 network가 있다. (core 부분)
--> tunneling!
- IPv6와 IPv4가 바뀌는 부분, 즉 진입부와 진출부 router에 tunnel이 생긴다.
- tunnel 이전 부분에서는 IPv6 datagram만이 존재한다. IPv6 datagram header의
- source: 기존 source
- destination: 최종 destination - tunnel 이후에는 IPv4 datagram 안에 IPv6 datagram이 encapsulate된다. IPv4 datagram header의
- source: tunnel의 시작 부분
- destination: tunnel이 끝나는 부분 - IPv4 network를 다 통과하여 tunnel이 끝나면, 진출부 router에서 IPv4 datagram을 떼어낸다.

: tunneling하는 동안 IPv6는 IPv4 안에 encapsulate되고, tunneling이 끝나면, IPv4가 떼어진다.
- IPv6 datagram 입장에서 보면, IPv4 looks like a link layer.

: IPv6가 link-layer fram에 encapsulate되는 것과, tunneling에서 IPv4 datagram에 encapsulate되는 과정은 거의 똑같다.
--> Via tunneling, IPv4 looks like a link layer to IPv6 datagram.
IPv6: adoption
: IPv4에서 IPv6로 많이 바뀌기는 했지만, 바뀐 것은 주로 edge 부분이고, 아직 core 부분은 IPv4인 경우가 많다.
--> Edge의 주소체계가 IPv6로 동일하다 하더라도, core 부분을 통과하기 위해서는 tunneling이 요구된다.
Generalized Forward, SDN
우리는 지금까지 전통적인 목적지 기반 forwarding에 대해 이야기했다. 이제부터 SDN에 대해 배워보자.
SDN은 remote central controller를 가지고, router는 이 remote central controller에게 자신이 가진 정보를 전달한다. 따라서 이러한 controller가 모든 router의 목적지 이동 방법을 다 계산해서 router에게 알려준다.
Forwarding: Traditional vs. SDN
▶ 전통적인 forwarding
: Forwarding table을 기반으로, 목적지 기반 forwarding을 한다. 즉, IP 주소의 목적지 주소로 forwarding만 하는 것이다. 그리고 이때, 중간 router에서 어느 방향으로 향할 지는 각각의 router가 결정한다.
▶ SDN
: Flow table을 기반으로, genearalized, flow-based forwarding을 한다. 즉, IP 주소의 목적지 주소로 forwarding만을 하는 것이 아니라, drop/copy/modify/log packet 등 다양한 기능을 수행한다. 또, 중간 router에서 어느 방향으로 향할지는 각각의 remote central controller에서 그 flow 흐름대로 각각의 router에게 flow table을 통해 알려준다.
Flow table
: Flow table은 forwarding table과 달리, 목적지 주소로의 forwarding 외에도 다양한 기능을 수행한다.
그리고 이러한 기능을 수행하기 위해, 여러 계층의 헤더를 읽고, 그 정보들을 바탕으로 다양한 action (block/drop, forward, modify, send to controller/special server)을 수행한다.

- match + action: 다양한 헤더 정보를 읽고(match), 다양한 action(action)
OpenFlow: Flow Table Entries

OpenFlow: examples

OpenFlow abstraction

- match + action: 다양한 device에서 하는 기능을 수행할 수 있도록 한다.
OpenFlow: example

▶ Flow table: "flow based forawrding"
--> Remote central controller가 목적지로의 모든 흐름, 즉 경로를 flow table을 통해 각각의 router들에게 전달한다.
- 전통적인 방식 - 목적지 기반 forwarding: "hop by hop" --> 그 다음 router는 router 각자가 결정해서 목적지로 forwarding한다.
Middleboxes
: Any intermediary box performing functions apart from normal, standard functions of an IP router on the data path between a source host and destination host.
--> 새로운 기능을 추가하기 어려운 core에 새로운 기능을 추가하기 위한 것으로, 추가적인 기능을 총칭하는 말!


Middleboxes
Middlebox 이전에는 core에 새로운 기능을 추가하고자 할 때, 하드웨어적 해결법을 이용했다. (문제가 많음)
--> "whitebox" hardware: 소프트웨어만 업데이트하면, middlebox 기능을 할 수 있다.
- SDN: remote central controller도 일종의 middlebox이다.
- NFV (Network Functions Virtualization)
The end-end argument

- Internet approach: end-to-end
출처: 이화여자대학교 이미정교수님 컴퓨터네트워크
'Computer Network > 컴퓨터네트워크' 카테고리의 다른 글
| [컴퓨터네트워크] 1122 (2) | 2023.11.26 |
|---|---|
| [컴퓨터네트워크] 1117 - Ch5. Network Layer: Control Plane (1) | 2023.11.17 |
| [컴퓨터네트워크] 1110 (0) | 2023.11.11 |
| [컴퓨터네트워크] 1108 (0) | 2023.11.10 |
| [컴퓨터네트워크] 1103 (2) (0) | 2023.11.08 |