[네트워크] 8. Intra-&Inter- AS Routing and SDN2

ERror.ASER·2021년 6월 7일
0

네트워크

목록 보기
11/14
post-thumbnail

OpenFlow

• SDN 컨트롤러는 스위치들로부터 link-state 정보나 호스트, 스위치 정보들을 모아서 이런 것을 가지고 network graph를 만들고 라우팅 알고리즘을 적용해서 길을 찾음. 찾은 길을 flow table로 만들어서 그것을 스위치에 전달을 해줌.
• 이 컨트롤러 하부에 OpenFlow가 있음. OpenFlow는 SDN 컨트롤러 하부에 스위치들과 통신을 할 때 쓰는 프로토콜.
• 고안한 라우팅 알고리즘을 기존의 라우터나 이더넷 스위치에 넣어서 동작시키는게 불가능 했었고,
본인들의 생각을 실험하고자 만든게 OpenFlow
⚫ OpenFlow 구성요소 ◼ Flow table
각 노드들이 보내온 데이터 그램을 어디로 전달할 것인가 ◼ Secure channel
컨트롤러가 주고받는 데이터가 SSL 또는 TLS 서비스를 통해서 전달하게끔 되어있는 것. ◼ OpenFlow protocol
채널(스위치)과 컨트롤러 사이에 주고받는 데이터 순서라든지 포맷 등 이런 것을 결정하는게 OpenFlow protocol

⚫ Open Flow 는 크게 세 개로 구별할 수 있다. 1. controller to 스위치 (Synchronous)
◼ controller to 스위치 메시지 종류
◆ Configuration : 어떻게 설정이 되어있는지? 어떤 값으로 설정을 해야하는지
◆ Read-state : flow table 정보, 데이터그램을 전달할 때 데이터가 잘 전달이 되었는지 되지 않았는지, 성공률은 얼마인지. 이 메시지를 통해서 flow table 갱신
◆ Modify-state : 기존에 있는 openflow table에 entry를 추가, 삭제, 수정 한다는 메시지. 이 메시지를 통해서 각 스위치의 flow table 갱신 ◆ Send-packet : 컨트롤러가 ‘특정한 패킷은 무조건 특정 포트로 내보내라’라고 단도직입적으로 이야기 하는 것.
2. 스위치 to controller (Asynchronous)
◼ 메시지 종류
◆ Flow-removed : 스위치에서 특정 flow가 삭제가 됐다
◆ Port status : 스위치가 가지고 있는 특정 포트에 문제가 발생했다든지 등 포트상태
◆ Packet-in : 자기가 갖고 있는 flow table 기반으로 패킷을 전달할 수 없는 경우 컨트롤러에게 직접 패킷을 전달함. 새로운 flow의 데이터 그 램을 발견했음을 알리는 역할도 함.
3. Symmetric (misc) : TCP 연결을 설립하려고 할 때 사용.


S1 – S2 연결이 끊긴 경우 링크 스테이트 정보에 알리고 네트워크 그래프 수정하고 라우팅 알고리즘에게 알린다. 그러면 라우팅 알고리즘은 수정된 정보를 기반으로 새로운 길을 찾고 새로운 flow table을 만든 다음,
modify state 메시지를 통해 스위치들에게 이를 전달한다.

⚫ Openflow table entry

• 크게 rule, action, statistics로 이루어져 있음.
• 기존 네트워크로는 dest 주소만 보고 drop이나 특정 포트로 포워딩이 불가능 했는데 openflow에서는 그것이 가능하다.
• 물론 rule에서 어떤 요소만을 골라내는지에 따라 destination based forwarding도 가능하다. Ex) MAC 주소를 가지고 destination based forwarding이 가능하다.
• 그리고 firewall 장비 없이도 firewall이 구현 가능하다. 예를 들어 특정 포트 번호를 쓰는 프로세스가 굉장히 중요해서 외부의 접근을 막아야 한다면, 그 번호로 접근하는 모든 데이터 그램을 drop 한다든지 할 수 있다

⚫ Match plus Action

이런 기능들이 기존 라우팅에서는 별도로 있었는데 이걸 하나로 만들어서 하나의 SDN 라우터를 가지고 이것들을 수행할 수 있다.

ICMP (Internet Control Message Protocol)

• 데이터를 전달할 때 중간에 여러 호스트와 라우터들을 거치게 되는데, 이런 호스트와 라우터들이 에러 리포팅을 하기 위해 사용함.
• 인터넷 프로토콜은 신뢰성을 보장하는 프로토콜이 아님. 그래서 TCP라는 프로토콜이 만들어졌음.
• ICMP 메시지는 IP 데이터 그램 위에서 동작한다.

• ICMPv6 : IPv4에서는 fragmentation, reassembly가 일어났는데, IPv6으로 오면서 fragmentation, reassembly가 중간에 라우터에게 오버헤드가 되었다.
• 그래서 packet too big 이라는 코드를 추가함으로써 라우터가 전달할 수 없을 만큼 큰 패킷이 오면 버려버리고, source에게 메시지를 전달해주면 source가 전달하려는 fragmentation이 크다는 것을 인지하고, 그 다음부터 작게 보내게 된다.

profile
지우의 블로그

0개의 댓글