프로그래밍[Univ]/네트워크

[네트워크] Routing

Cloud Travel 2012. 5. 8. 22:49

* AS(Autonomous System)

 - Routing 관점에서 인터넷은 여러개로 쪼개져 있다.

 - 이 각각의 단위를 AS라고 한다. 

  > 여기서 AS란? 하나의 관리기관에 소속된 Network 라우터들의 집합을 말한다.

   ex) KT AS망, SKT AS망이 존재할 것이다.

 - 각각의 AS는 고유한 IP주소를 갖고 있다.

 - 하나의 AS내에서는 동일한 라우팅 Protocol을 사용한다.(IGP)

 - AS간의 routing Protocol은 EGP이다.

  

- IGP는 RIP과 OSPF로 분류되는되 사용되는 알고리즘에 따라서 불리는게 달라진다.

 - EGP는 BGP라는 것이 있다.

 - 위의 그림에서와 같이 AS간의 routing protocol은 대표 router가 담당하므로, 모든 router가 두개의 방식을

   모두 구현할 필요는 없다.


* IGP Algorithm

 


 - Distance Vector(RIP Algorithm)

  > 인접한 노드의 정보를 교환하여 최단 거리를 생각해 둔다.

   


 - Link State Algorithm

  

    ⓐ Link State Packet 작성. Link Sate Packet은 자신이 인접해 있는 Router에 대해서만 작성한 것이다.

        연결정보 뿐만 아니라, Flooding에 사용될 AGE와 SEQ를 추가로 정의 해준다.

    ⓑ 각 Router는 모든 Router에게 자신의 Link State Packet을 보내야 한다.

     > 이때 사용되는 방식이 Flooding방식이다. 전달 받은 정보를 연결된 나머지 port로 broadcasting을 해준다.

     > 이때 받았던 것을 중복적으로 받게되어 traffic이 발생하며, 어떤것이 최신의 것인지 알 수 없다.

        이를 해결하는것이 아까 Link State에 정의된 age와 sequence 값이다.

     > Link State Packet을 전달 받은 각 노드는 정보를 합쳐서 Link state database를 제작할 수 있다.

      

    ⓒ 최단 경로를 계산한다. > Dijkstra Algorithm 

 

 - Distance vector algorithm과 Link state routing algorithm의 차이점

   > 전체 네트워크 구성을 아는가? 모르는가?

   > Distance vector algorithm은 주변의 router로 받는 정보만 가지고 하기 때문에 전체 구성을 알 수 없다.

   > Link state algorithm은 flooding된 결과로 link state database를 모든 노드가 알고 있어, 네트워크 구성을 안다.


* AS간의 라우팅(BGP : Border Gateway Protocol)

 - BGP의 전달방식은 예를 통해서 알아 보도록하자.

 

 - 각 AS의 대표 router는 다른 AS의 대표 router에게 정보를 전달해준다. 예를 들어 AS1의 router정보가 다른 

    router에게 전달되는 과정은 다음과 같다.

  ⓐ 자신의 UPDATE message를 작성한다. UPDATE message에는 AS를 찾아가는데 필요한 router PATH와 

       정보를 받는 router의 ip 주소, 자신에게 연결된 network이름을 작성한다. 

       UPDATE message

        - AS_PATH = {AS1}

        - NEXT_HOP = {R1's IP address}

        - NLRI = {N1,N2}

   ⓑ 전달된 UPDATE message를 r2로 보내며 r2는 AS_PATH에 자신을 추가하고, 다음 router에게 자신에게 

      전달하면 된다고 r4에게 알려준다.

       Modify UPDATE message

       - AS_PATH = {AS1, AS2}

       - NEXT_HOP = {R2's IP address}

       - NLRI = {N1, N2}

   ⓒ 이렇게 반복된 결과 r3에는 다음과 같은 AS1에 대한 연결정보를 가질 것이다.

       AS1에 대한 연결 정보

       - AS_PATH = {AS1,AS2,AS4}   // AS2,4를 거쳐서 1로 가는 군!!

       - NEXT_HOP = {R4's IP address}  // 나는 AS1로 보내기 위해서 일단 R4로 보내면 되는 구나!

       - NLRI = {N1, N2}    // AS1에는 N1, N2 network가 존재하는구나...

 - 만약, 경로가 2개가 있을때 cost가 최소가 되는(AS_PATH의 원소개수가 최소인) 경로를 따라간다.

   But, BGP는 AS Policy(AS간의 정책요소(사업적 개념, 제휴 그룹 같은 것))에 의해서 꼭 최단 경로를

   따라 가는 것은 아니다.