오래 못 할 짓 하지 않기
[ 네트워크 ] 19. Network layer : IPv6 / Routing Protocol 본문
[ 네트워크 ] 19. Network layer : IPv6 / Routing Protocol
쫑알bot 2024. 11. 21. 15:30IPv6
📌특징
- Header : 40 Bytes
- Network Layer 단계에서 Flows 기법 사용 가능
Datagram의 format은 다음과 같다.
[ IPv4와 다른점 ]
- No Checksum ( 속도가 더 빠르다. )
- No Fragmentation / reassembly
- No Options
- Src / Dest Address 길이가 128bits이다.
IPv4↓
📌Tunneling
: IPv4 Datagram의 Payload에 IPv6 Datagram을 담아 보낸다.
아래 사진과 같이 Tunneling을 사용하는 라우터들끼리는 IPv4를 지원해야한다.
터널을 Physical하게 뜯어보면 다음과 같이 나온다.
터널은 IPv4 라우터로 이루어져 있고,
이전까지 이동하던 IPv6 Datagram이 Ipv4에 Encapsulation된다.
A ~ F로 가던 Datagram이 B와 E사이에서 Tunneling을 거친다면
그 안에 사용되는 IPv4의 Datagram이 새로 만들어져야 할 것이다.
이 Datagram들의 Src=B / Dest= E(= Tunneling의 시작과 끝 )로 된다.
즉, Tunneling의 Datagram들은 전달되면서 목적지에 관련해서 중간중간 변하는 게 없다.
Generalized Forwarding
- (기존) Destination-based forwarding
: Dest IP 주소를 참고하여 Forward(만) 한다.
- Generalized forwarding
: 여러 Header Fields를 참고하여 Action을 정한다.
action ( Drop , Copy , Modify , log packey )
즉, 더욱 다양한 동작을 한다.
* Flow : 현재 # Port로 들어온 Datagram을 어느 Action을 취할지. (어떤 흐름으로 동작하게 할지)
Flow와 관련해서 4가지 룰을 거친다.
1) Match
: Header fields의 특정 값 → 정해진 Action (If문이라고 생각하면 됨)
ex) src/dest IP, Port Num 비교
2) Action
: Matching 된 Packet에 대해 수행할 동작
- Drop : Packet 폐기
- Forward : 특정 포트를 통해 다른 Router로 보냄
- Modify : 패킷 수정
- Send to Controller : 패킷을 컨트롤러로 전달
3) Priority
: 여러 규칙이 겹치면, 우선순위를 정해두어 충돌 해결
4) Counter
: 매칭된 패킷 수 , 바이트 수 기록
예) 미리 규칙을 다 정해놨다고 했을 때
- 이런 게 들어오면 이렇게 하고
- 이런 게 들어왔는데, dest는 이러면 이렇게 된다...
정해두는 거임
📌OpenFlow
각각 Layer에서의 Header Fields를 가지고 Match
> Action을 실행한다.
예)1
→ Dest IP addr가 51.6.0.8인 Packet에 대해서는 Port 6번으로 Forwarding한다.
예)2
→ TCP Dest Port가 22인 Datagram은 Drop 시킨다.
→ IP src addr가 128.119.1.1인 Datagram은 Drop 시킨다.
아래 예제를 한 번 풀어보면 쉽게 이해가 될 것!
웬만한 Device는 다 [ Match + Action ] 구조를 가지고 있다.
- Router
Match : Longest Destination IP Prefix
Action : 알맞은 Link로 Forward
- Switch
Match : Dest MAC 주소
Action : Packet forward / Flood
- Firewall
Match : IP 주소 및 TCP/UDP Port 번호
Action : Packet Permit / Deny
- NAT
Match : IP 주소 + Port
Action : IP 주소 및 Port를 Rewrite
Routing Protocol
우린 Control Plain에 대해 다룰 때,
Routing Table을 참고하여 Forwarding하는 흐름까지 보았다.
그렇다면 Routing Table이 어떻게 만들어지는지 알아보자
📌Routing Algorithm
목표 : Packet이 전송되는 Good Path를 만들기 위해
* Path : 패킷이 Src부터 Dest까지 Router를 거치는 순서
* Good : 최소 비용 / 가장 빠른 / Congestion가 가장 적은 상황에 따라 다르다.
Node(vertex)와 Edge로 나타낸다.
Good을 평가하기 위해서 각각의 Node 와 Vertex에 Cost를 붙인다.
기준은 두 개다.
- x축 = 경로 변화 속도 ( Static : Dynamic )
- y축 = 정보 공유 방식 ( Global : Decentralized )
Static : 네트워크 상태 변화에 크게 반응 X
Dynamic : 링크나 경로의 변화에 주기적으로 업데이트
Global : 모든 라우터가 네트워크 전체의 링크 비용과 정보를 가진다. ex) LS 알고리즘
Decentralized : 인접 라우터의 정보만 가지고 있다 ex) DV 알고리즘
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
(출처)
한동대학교 컴퓨터 네트워크
'3학년 2학기 > 네트워크 (Network)' 카테고리의 다른 글
[ 네트워크 ] 20. Network layer (Control Plane) : Routing Protocol / Algorithm (0) | 2024.11.25 |
---|---|
[ 네트워크 ] 18. Network layer : IP Addressing / NAT(Network Address Translation) (0) | 2024.11.18 |
[ 네트워크 ] 17. Network layer : Router 내부 동작 (0) | 2024.11.14 |
[ 네트워크 ] 중간 2 준비 ( Socket Programming ) (0) | 2024.11.10 |
[ 네트워크 ] 16. Network layer : Data Plane (0) | 2024.11.07 |