IPv6
IPv6 Addressing
IPv6 Motivation
- 32-bit address space soon to be completely allocated
- header format helps speed processing/forwarding
- header changes to facilitate QoS
IPv6 Addressing
- 128-bit address: 16-bit씩 끊어서 콜론(:)으로 분리하여 표현
- x:x:x:x:x:x:x:x
IPv6 Datagram Format
- flow label: identify datagrams in same "flow"
- next header: identify the protocol to which the data field of this datagram will be delivered
- fixed-length 40 bytes header (32 bytes for src/dst adresses)
- no fragmentation allowed at router
- no header checksum: removed entirely to reduce processing time at each hop
- options: allowed as extension headers, indicated by
next header
field
- IPv6에도 IPv4처럼 QoS 관련 필드 존재
- Unlike IPv4, multiple IPv6 addresses can be allocated to 1 NIC
- IPv6 router cannot perform pkt fragmentation, the IPv6 sender may fragment an IPv6 pkt at the source host
Transition from IPv4 to IPv6
How will network operate with mixed IPv4 & IPv6 routers?
Dual Stack IPv4/IPv6
- routers have both IPv4/IPv6 address on one interface
- 모든 라우터들이 IPv4와 IPv6 패킷을 처리할 수 있는 dual stack을 가지는 방법
- 4계층 프로토콜인 TCP, UDP는 IPv6용 TCP, UDP가 따로 정의되어 있지는 않다.
- Telnet, Ping, Traceroute, SSH, DNS, TFTP are also modified considering IPv6 address
전송 계층의 TCP, UDP 등의 프로토콜은 기본적으로 IP 버전에 구애받지 않고 동일한 프로토콜을 사용합니다. 단지 네트워크 상에서 패킷을 전달하는 라우터 등에서는 듀얼 스택을 통해 IPv4와 IPv6 패킷을 구별하여 처리하는 방식으로 동작
NAT-PT (NAT-Protocol Translation)
- protocol translation btw IPv4 and IPv6 as well as addresses
- NAT-PT는 IPv4 패킷을 IPv6 패킷으로 변환하는 기술로 최근 NAT64로 재표준화되었다
Tunneling
- IPv6 datagram carried as payload in IPv4 datagram
- IPv6 패킷의 payload 안에는 또 다른 IPv6 헤더가 들어갈 수 있음 (chain of extenshion header)
- 두 IPv6 호스트가 통신을 위해 중간에 IPv4 only 라우터 망을 거쳐가야 하는 경우 사용
Generalized Forward and SDN
Software-Defined Networking (SDN)
Logically Centralized Control Plane
- A distinct (typically remote) controller interacts with local control agents (CAs)
- control plane and data plane in different device
Software-Defined Networking (SDN)
- providing middleboxes and link-layer functions in an integrated manner 👉 network-wide behavior can be programmed!
- each router contains a flow table that is computed and distributed by a locally centralized routing controller
- match + action
- match: Layer 1 ~ 4 address
- action: forwarding, load balancing, rewriting header (NAT), blocking/dropping or deep pkt inspection (firewall)
- SDN 망에 연결된 호스트에서 생성한 pkt들을 처리하는 중간 네트워크 노드들을 packet switch라고 하며, flow table을 참조하여 forwarding, dropping, blocking 등 다양한 기능을 수행한다
- SDN 망에 연결된 호스트에서 생성한 pkt들은 특정 노드들로 구성된 e2e path를 통과하도록 제어할 수 있다
- 기존 Internet 라우터들과 다르게 하나의 msg에 속한 pkt들이 모두 같은 e2e path를 거치게 제어할 수 있다
SDN은 네트워크 제어를 중앙화하여 유연성과 관리 용이성을 향상시키는데, 이는 로직적으로 중앙 집중화된 제어 시스템(Logically centralized control plane)을 사용하여 네트워크를 제어하는 개념
OpenFlow
OpenFlow Data Plane
- Flow: group of pkts which share certain properties for delivery (match), defined by header fields
- Generalized forwarding: simple pkt-handling rules
- Pattern: Match values in packet header fields
- Action: for matched packet - drop, forward, modify, or send matched pkt to controller
- Priority: disambigutae overlapping patterns
- Counter: # bytes and # pkts
- Flow table in a router (computed and distributed by controller) define router's match+action rules
- flow table에 없는 pkt: not match -> drop
1. src=1.2.*.*, dest=3.4.5.* -> drop
2. src=*.*.*.*, dest=3.4.*.* -> forward(2)
3. src=10.1.2.3, dest=*.*.*.* -> send to controller
OpenFlow abstraction
- match + action: unifies different kinds of devices
- Router
- match: longest destination IP prefix
- action: forward out a link
- Firewall
- match: IP addresses and TCP/UDP port numbers
- action: permit or deny
- Switch
- match: destination MAC address
- action: forward or flood
- NAT
- match: IP address and port
- action: rewrite(modify) address and port
Q: How do forwarding tables (destination-based forwarding) or flow tables (generalized forwarding) computed?
A: by the control plane
'CS > 컴퓨터네트워크' 카테고리의 다른 글
[Ch5] Hierarchical routing, RIP, OSPF, BGP (1) | 2023.12.31 |
---|---|
[Ch5 Network Layer Control Plane] Routing Algorithm: Link State, Distance Vector (0) | 2023.12.25 |
[Ch4] IPv4, Network Address Translation(NAT) (1) | 2023.12.03 |
[Ch4 Network Layer] Network Layer, Router (0) | 2023.12.02 |
[Ch3] TCP congestion control (2) | 2023.11.27 |