[네트워크] 7. IP주소와 라우팅의 활용2

ERror.ASER·2021년 6월 5일
0

네트워크

목록 보기
9/14
post-thumbnail

IPv6

• DHCP, NAT 모두 근본적인 해결책이 아니다. IP주소의 개수를 아예 늘려 버리자.
• 바꾸면서 Header도 바꿔버리자! (우측 그림)
• Src 주소, dest 주소가 128bits(16byte)씩 총 32byte를 차지하고 있고,
8byte가 나머지.
• IPv4는 src, dest 주소가 4byte 씩 총 8byte를 차지하고 있고, 12byte가 나머지.
• IPv6으로 오면서 header에 fragmentation & reassembly가 없어졌다. 전 세계의 네트워크가 많이 균일화 되었기 때문에.
• 그럼에도 fragmentation이 필요하다면? 다시 src에게 알려줘서 애초에 쪼개서 전송하자. (추후 ICMP에서 설명)

• Ver:버전(4또는6)
• Pri : priority 우선도가 높은 애들은 buffer overflow가 나도
keep을 한다든지 등등...
• Flow label : IPv4에서는 없던 개념.
모든 데이터 그램이 개별 취급되던 IPv4와 달리, IPv6에서는 일련된 데이터 그램을 한 덩어리의 flow로 취급할 수 있게 생각함.
• Payload len : payload의 길이
• Next hdr : 상위 레이어에 어떤 프로토콜이 적용되는지, TCP,
UDP 등등...
• Hop limit : TTL과 같은 개념.

Checksum이 없어도 되는건가요?

• Flow label이 생기면서 checksum이 없어짐.→네트워크 전송 속도가 빨라짐.
• 과거에는 중간에 구리선 같은 케이블을 쓰면서 에러가 많이 발생하기 때문에 checksum이 필 요했다면 지금은 그렇지 않음.
• 그래서 현재는 에러가 발생한다면 재전송하는 것이 checksum을 살리는 것보다 효율이 좋음. 중간 라우터에 대한 부담도 적음.

Tunneling

• IPv6에서 IPv4로 들어갈 때, IPv4 헤더를 붙여서 보낸다.
• 그래서 C, D라우터가 보기에는 IPv4 데이터 그램인 것 처럼 보이게 된다. IPv6을 사용하는 라우터 사이에 IPv4 터널을 지난다는 의미로 터널링이라고 한다.
• DHCP, NAT 등의 기술이 잘 버텨준 덕에 아직 IPv6의 사용이 많지는 않다.

Introduction to Routing

• 포워딩 테이블을 만드는데 있어 기본적인 기능을 하는 것이 라우팅 알고리즘.
• src~dest까지의 길을 설정해주는 라우팅 알고리즘에 따라 포워딩 테이블이 만들어지고 포워딩 기능을 수행하
는 것이 라우터의 기능.
• 기존네트워크에서는 모든 라우터가 이 기능을 수행했다면, SDN에서는 중앙 집중형으로 중앙서버가 한다든지 이런 식으로 진행
• 이런 라우팅을 그래프로 주로 표현하는데, 정점과 간선으로 이루어져 있고, src부터 dest 까지의 경로 비용의 합은 적을수록 좋다.
→라우팅 알고리즘이 최소비용의 경로를 찾는다.

⚫ 라우팅 알고리즘의 종류
◼ Static vs Dynamic
• Static : 각 path, route를 관리자가 결정해줌. 중간에 있는 라우터들을 수동으로 설정해줌. 중간에 네트워크 상황이 바뀌면 역시 관리자가 라우터에 접속해서 값들을 수동으로 바꿔줌.
• Dynamic : 라우터들끼리 정보를 주고 받은 다음, 거기에 따라서 길을 설정.
같은 src, 같은 dest일지라도 네트워크 상황에 따라서 route, path가 변할 수 있음.
◼ Global vs Decentralized
• Global : 전체 네트워크 topology를 완벽하게 알고 있고, 각 네트워크에 있는 모든 link cost를 알고 있는 상태에서 경로를 결정하는 경우
(=link state algorithm)
• Decentralized : 전체 topology를 아는 것이 아니라 자기와 직접 연결 되어 있는 이웃들만 알고,
다른 node들에 대해서는 ‘그 node까지의 총 비용’ 과 ‘그 비용으로 보내기 위해 어떤 node를 다음 node로 골라야 하는지’ 정도만 안다. (=distance vector)

• 전체 topology 정보를 알고 그 상황에서 길을 설정하는 것.
• 라우터들끼리 알고 있는 정보를 다른 라우터와 교환해야 함.
• 이 때 쓰이는 것이 LSA(Link-State Advertisement) 메시지 혹은 LSP (Link-State Packet) 이라고 한다.

⚫ LSA 구성요소
◼ Neighbor node information : 나와 연결되어 있는 node 들에 대한 정보 ◆라우터가 변경되거나 추가 될 때
◆ 링크 활성화/비활성화
◆네트워크 상태 정보가 바뀌었을 때
◆그 외 기타 등등 주기적으로 생성된다

⚫만들어진 LSA메시지는 해당 네트워크의 모든 라우터에게 전송이 되고, 그 LSA 메시지를 다 모은 뒤에 각각의 라우터들은 네트워크의 전체 topology를 구성함.
⚫그 후 최소 비용 경로 계산 (Dijkstra). 라우터 개수만큼의 반복이 필요한 알고리즘.
⚫Dijkstra 알고리즘을 사용할 때 Oscillation problem 이 발생할 수 있다.
⚫Link cost를 실시간으로 반영하는 경우에 오른쪽 아래 그림과 같은 상황이 발생할 수 있다.

Distance Vector Routing

• Bellman-ford 알고리즘 기반.
• Link-state algorithm은 advertisement message를 네트워크 전체로 브로드캐스팅.
• Distance vector algorithm은 자신의 이웃들하고만 메시지를 교환하고, 이웃이 나한테 전달 해준 정보가 바뀌었 다면 그것을 기반으로 자신의 distance vector를 갱신함.
• 장점 : good news는 빨리 전달됨.
• 단점 : bad news가 천천히 전달됨.
• 이를 해결하고자 poisoned reverse가 도입됨.
그러나 완벽한 해결책이 아님.


profile
지우의 블로그

0개의 댓글