ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [네트워크] 15. AS 라우팅, BGP, SDN
    CS/네트워크 2023. 6. 19. 13:58

    현재까지는 이상적인 라우팅을 살펴보았습니다. 하지만 실제 네트워크는 flat하게 만들어지지 않습니다.

    실제 네트워크는 Autonomous System(AS)로 되어 있습니다.

     

    Intra AS routing

    현재까지 살펴본 flat하게 구성된 네트워크입니다. 같은 AS 안에선 같은 프로토콜을 사용합니다.

    다른 AS와 이어지기 위해 gateway router(border router)를 사용합니다.

    AS 안에 프로토콜은 OSPF, RIP가 있습니다.

    AS 안에서는 link state 알고리즘(OSPF), distance vector 알고리즘(RIP)을 사용합니다.

     

    Inter AS routing

    AS간 라우팅은 BGP가 있습니다.

    AS간 알고리즘은 Path Vector 알고리즘(BGP)을 사용합니다.

    여기서 path vector란 reachability를 알려주는 과정을 의미합니다.

    이 알고리즘은 최소 cost보다 연결됐는지 안 됐는지에 대한 유무에 따라 봅니다.(policy기반)

     

     

    OSPF(Open Shortest Path First)

    link state 알고리즘을 이용해 advertisement를 통해 broadcast 합니다.

    OSPF는 local area와 backbone의 두 계층으로 이루어져 있습니다.

    따라서 router는 3가지로 나뉘어집니다.

     

     


     

     

    BGP (Inter AS routing)

    그럼 이제부터 AS간 라우팅이 어떻게 이루어지는지 살펴보도록 하겠습니다.

    BGP(Border Gateway Protocol)는 eBGP(바깥과 communication)과 iBGP(안에서 communication)으로 이루어져 있으며, 

    reachability information과 policy를 줍니다.

     

    BGP는 semi-premanent TCP connection입니다. Application Protocol이며, path를 알려줘서 path vector protocol 입니다.

     

    X로 가기 위해 BGP advertisement를 통해 broadcast를 하는 과정입니다.

     

    advertise를 할 때, AS-path와 NEXT-HOP를 알려줍니다.

    NEXT-HOP은 경로로 가기 위한 가장 가까운 라우터입니다.

     

    BGP의 큰 특징은 Policy 기반 라우팅을 한다는 것입니다.

    아래 그림을 보겠습니다.

    이 그림에서 Y에서 W로 가는 방법은 2가지 입니다.

    CAw가 첫 번째 방법이고, CBAw가 두 번째 방법입니다.

    여기서 CBAw라는 두 번째 방법을 쓴다면, C는 A로 보내는 트래픽을 줄이고 B에게 넘길 수 있으므로 B의 입장에서는 손해가 발생합니다.

    따라서 B는 BAw라는 경로를 C에게 advertise하지 않습니다.

    이게 바로 policy based routing입니다.

     

     

     

    조금 더 자세한 상황을 보겠습니다.

    1. 최종 목적지 X로 가고 싶을 때, 3a는 AS2에게 eBGP를 통해 path advertisement를 받습니다.
    2. 2c는 이를 받고 iBGP를 통해 Next Hop과 AS Path를 모든 라우터에 알려줍니다.
    3. 여기서 AS2의 policy에 따라 AS1으로 advertise 할 지 결정합니다.

     

    다른 상황을 보겠습니다.

    이번엔 AS3와 AS1이 직접 연결되어 있습니다.

    여기서도 policy에 따라 결정합니다.

    AS3의 policy를 통해 AS2를 거칠지 안 거칠지 결정합니다.

     

     

    BGP message

    • OPEN : TCP connection을 맺습니다.
    • UPDATE : 새로운 path를 advertise합니다.
    • KEEPALIVE : UPDATE 정보가 없을 때 connection을 유지하도록 합니다.
    • NOTIFICATION : 에러가 발생할 때 전달합니다.

     

    BGP의 forwarding table

     

    BGP의 forwarding table은 단순한 구조로 되어 있습니다.

     

     

     

    Hot Potato Routing

    일종의 그리디 알고리즘이라고 할 수 있겠습니다.

    2d의 입장에서 X로 보내고 싶을 때, 2a와 2c로 보내는 방법이 있습니다. 

    어떤 것이 최적의 경로일지 모르지만, 당장 2a로 가는 것이 201로 더 짧기 때문에 2a로 보냅니다.

    이것이 hot potato routing입니다.

     

     

     

     

     

    BGP 정리

    • cost가 아닌 policy에 따라 결정됩니다.
    • 기왕이면 짧은 path를 사용합니다.
    • 당장 AS에서 빨리 내보낼 수 있는 hot potato routing을 사용합니다.

    inter과 intra 방식의 차이에 대해 잘 숙지합시다.

     

     

     


     

     

    어러가지 라우팅 schema

     

     

     

    • unicast : 특정 대상과 연결합니다.
    • broadcast : 모든 곳으로 연결합니다.
    • multicast : 그룹이 있어서 해당 그룹과 연결합니다.
    • anycast : DNS에서 사용하는 방법으로, 특정 서버가 기능을 못 할때, 가장 가까운 곳으로 연결해주는 방법입니다.
    • Geocast : 특정 지역과 연결하는 방법입니다.

     

     

     


     

     

    SDN (Software Defined Networking)

     

    만약 위 그림에서 u에서 z로 가는 path와 x에서 z로 가는 path를 다르게 하고 싶다면 어떻게 할까요?

    기존 방법이라면 항상 같은 경로가 나오기 때문에 로드밸런싱 등이 어렵게 됩니다.

     

     

    SDN의 핵심은 software를 통해 라우팅하는 control plane과, 명령을 내리면 데이터를 보내는 하드웨어 영역인 data plane으로 나뉘는 것입니다.

     

     

     

     

    따라서 remote controller와 control agent를 두어 logically centralized를 하는 것입니다.

    왜 logically centralized를 할까요?

    • network 를 management하기 쉬워집니다.
    • 프로그래밍하듯 forwarding시킬 수 있습니다.

     

    sdn은 control plane과 data plane으로 나눠서 작업을 분리합니다.

    이렇게 분리하면 ca(control agent)에는 flow table이 들어갑니다. 이를 기반으로 open flow를 할 수 있습니다.

     

     

     

    sdn은 3가지 구조로 분리할 수 있습니다.

    첫 번째로 network control applications 영역은 brain의 역할을 하며 라우팅이나 로드밸런싱 등을 합니다.

    두 번째로 sdn controller는 network 의 os 역할을 하며, 핵심이라고 할 수 있습니다.

    세 번째로 data plane은 여러 스위치가 있는데, 빠르고 간단하고 저렴하다는 특징이 있습니다.

    또한 open flow를 통해 여러 기능을 지원합니다.(라우터, 스위치, 방화벽, NAT)

     

    OpenFlow

    open flow는 기본적으로 TCP 통신을 통해 controller와 switch가 통신을 합니다.

    여기서 중요한 특징으로 match+action이라는 특징이 있습니다.

    이는 pattern을 보고 match한다면 해당 action을 수행한다는 의미입니다.

    이를 통해서 라우터, 스위치, firewall, NAT 등 여러 형태의 기능을 제공할 수 있게 됩니다.

     

     

    sdn은 이렇게 여러 장점이 많지만, 대기업에서 사용을 좋아하지 않는다는 점에서 많이 사용되지는 않습니다.

     

     

     

     

     

     

    'CS > 네트워크' 카테고리의 다른 글

    [네트워크] 17. LAN(arp), MPLS  (0) 2023.06.19
    [네트워크] 16. Link Layer Protocol  (0) 2023.06.19
    [네트워크] 14. Network Layer  (0) 2023.06.07
    [네트워크] 13. TCP congestion control  (0) 2023.04.22
    [네트워크] 12. TCP flow control  (1) 2023.04.17

    댓글

Designed by Tistory.