본문 바로가기

개발👩‍💻/네트워크

13-2:Network Layer: control plane

728x90

SDN control plane

SDN에 대해서는 앞에서도 다뤘듯이 Software defined networking의 약자이고

전통적으로 네트워크 계층은 분산적으로 라우팅을 처리를 했었다.

라우터별로 기본적으로 라우터마다 라우팅 알고리즘이 동작하고 라우터들끼리 통신해서 전체적인 라우팅을 처리하도록 만들어졌었다.

전통적인 방식에서는 라우터가 하드웨어랑 위에서 특별한 하드웨어가 존재하고 라우터에서 돌아가는 특정 OS가 있었다. 시스코라는 스위치 만드는 회사에서는 시스코 전용 OS를 만들어 사용했고, 그 위해서 지원하는 몇가지 프로토콜들을 위에서 일종의 소프트웨어를 올려서 같이 판매를 했다. 라우터 하나에 하드웨어뿐 아니라os 소프트웨어까지도 포함되어 판매가 되었었다. 이상황에서 네트워크 계층에 새로운 기능을 추가하고싶으면 중간에 미들박스라는 것을 새로 추가했다. 미들박스도 하드웨어로 만들어서 판매했다. 방확벽, 로드벨런서 같은 경우는 새로운 미들박스를 구해서 하나씩 추가함으로써 네트워크를 동작하는 방식을 취했었다.

어느순간부터는 네트워크 컨트롤 플레인에 대해서 다시 생각해보는 기회가 생겼다.

어쨋든 지금 다시 간단히 복습해보면 라우터마다 컨트롤 플레이니이 동작하는 방식이 이썽ㅆ다.

전통적인 방식은 per-router control plane 이고 각각의 라우터가 각각의 컨트롤 플레인을 가지고 있고, 라우터들끼리 서로 통신을 통해서 자신의 로컬 포워딩테이블을 업데이트 해 나아갔다.

그에 반에서 SDN 방식에서는 원격의 리모트 컨트롤러가 따로 존재하고 이는 결국 여러개의 서버들로 구성된 분산시스템인데,

 어쨋들 이 리모트 컨트롤러 역할을 하는 애가 있고, 얘가 각각의 라우터의 정보를 모두 리모트 컨트롤러로 모으고 그정보를 활용해서 전체적인 관전에서 포워딩 테이블을 만들고 각각의 라우터들한테  포워딩 테이블을 인스톨을 하는 것이다.

 

그래서 위와같이 동작하는 것이 SDN이었다 

굳이 중앙집중형으로 컨트롤 플레인을 만들어야 하나. 어떤 정점이 있을까

-> 네트워크 관리가 쉬워진다.

-> 하나의 라우터가 잘못설정되어있을 때 전체 네트워크에 영향을 미치는 문제를 해결할 수 있다. 트레픽을 처리하는 과정에서 좀더 유연하게 처리할 수 있다. 내가 원하는 경로로 패킷을 이동할 수 있도록 하나하나 세팅할 수도있다.

 

오픈 플로우도 배웠었는데, 

프로그래밍 같은게 어느정도 가능 했었다.

그래서 프로그래밍을 통해서 자연스럽게 라우터를 프로그래밍을 함으로써 컨트롤을 좀더 자유롭게 할수가 있다.

 

그래서 SDN의 발전을 생각해보면 옛날엔 메인 프레임을 따로 팔았었다. 하드웨어랑 os랑 응용이랑 묶어서 항상 판매를 했다. 오늘 날에는 이렇지 않다. 

오늘날에는 어떤 하드웨어가 있으면 그 위에 운영체제를 골라서 설치할 수 있다. 그 위에 어플리케이션도 여러 os를 지원하는 애들이 많아서 골라서 사용할 수도 있다.

 

이와 비교해보면 비슷한 부분이 있다.

 

옛날에는 모든 것이 합쳐져 있었다. 판매가 됐을 뿐더러, 오픈이 되어 있지 않고 판매하는 영업 비밀이었을 것이다. 그래서 발전히 상당히 느려질 수 밖에 없었다. 다 종속이되어 있기 대문에 운동이, 그래서느렸던 것이고 그래서 산업도당연히 커질 수도 없을 것이다. 오늘날에 PC로 생각해보면 CPU만드는 회사들 생각해보면 인더스트리가 있다.

각각 표준화가 되어서 각각의 전문적인 전문성을 가지고 특정하드웨어를 생성한다.

OS도 완전히 분리가 되어서, 하드웨어와 완전히 분리된 상태

 

응용도 언제든지 시킬 수 있는 상태

 

완전히 독립적으로 발전이 닝ㄹ어날 수 있다.

운영체데, 어플레케이션 등 발전이 일어날 수 있다.

빠른 속도로  발전이 일어났고 산업도 굉장히 커졌다. 

SDN도 이와같은 방식으로 커질수있다고 예측한다.

 

SDN이 어떤 점들을 해결해줄 수 있냐면, 정통적인 라우팅 방식을 생각해보면 목적지 주소만 가지고 라우팅을 하는 .

그럼 이상황에서 코스트가 가장 적은 길을 택한다고 하자.

u에서 z까지는 두 빨간 줄 경로에 따라서 코스트가 낮은것을 선택할 것이다.

 

어떠한 이유로 코스트가 더 크긴 하지만 위의 것으로 가게 하고 싶다고 했을 때 바꿀 수 있을까?

전통적인 방식에서는 쉬운 방법은 아니지만 코스트를 변경하면 되기 때문에 그러나 코스트를 변경하면 라은 라우터들한테도 영향을 주기 때문에 쉽지 않을 것이다.

 

실제로는 코스트로 할 수 있는 게 그렇게 많지는 않다.

 

또 u->z 가는데 로드 벨런식을 해서 로드를 양쪽으로 나누고 싶다고 하자 . 똑같 u->z로 가는 것이다. 그러나 하는 포트 1, 포트2 로 각자 내보낸다. 그런데 현재 목적지 기반으로하는 아루팅 알고리즘에서는 이것이 불가능하다고 생각하면 된다.

비삿한 경우인데, w가 중간 경로인데 w가 v에서 들어오는 트래픽이 있고 x에서 들어오는 트래픽이 있는데, 하나는 포트 1, y쪽으로 보내고 하는 포트 2 쪽으로 보낼 수도 있을 것이다.

현재 라우팅 방식, 전통적인 방식에서는 불가능하다.

 

목적지 주소만 확인하는 게 이니라 모든헤더에 있는 정보를 활용해서 라우팅에 활용을 하는 방법이다.

 

그래서 SDN같은 경우에는 중요 특징들이 있는데 플로우 기반의 포워드 방식이 일단 필요하고, 어픈플로우라고 해서 배웠었다.

이러한 방식을 통해 각각의 라우터는 플로우 베이트스 포워딩을 지원을 해야한다. 그리고 기본적으로 컨트롤 플레인과 데이터플레이ㅇㄴ이 다른 쪽에서 실행이된다 .데ㅣ터 플레인 같은 경우 각 라우터에서 실행이도니느 것이고,

컨트롤 플레인은 완전 원격에 있는 리모트 컨트롤러에서 실행이 된다. 이러헥 완벽하게 컨트롤 데이터 플레인이 분리되어 있다. 이게 또하나의 특징이다.

 

그리고 실제 동작하는 컨트롤 플레인의 기능들 로드 벨런서 기으을 하는 것도 있을것도 라우팅 기능을 하는 것도 있는데 결국에는 커늩롤 플레인이 분리되어 있다고 ㅂ말했는데 완전히 데이터 플레인에 속하는 스위치와는 분리되어 동작한다.

실제로 위쪽은 소프트웨어 디파인드였다.그래서 당연히 프로그램ㅇ이 당연히 가능하고 컨트롤을 상대적으로 자유롭게 할 수 있다.

 

그래서 SDN의 구성요소를 보면

데이터 플레인에 속하는 스위치가 존재해야한다고 했다.

 

그래서 sdn방식으로 컨트롤이 가능해햐는 스위치ㅣ 일 것이다. 제너럴 라이즈드 포워딩을 지원하는 그런 하드웨어가 존재를 해야한다. 그리고 플로우 기반으로 포워딩 테이블을 계산을 하고 위쪽에 있는 컨트롤이 시키는대로 컨트롤업데이트할 수 있는 기능들을 스위치가 제공해야할 것이다.

오픈플로우같은 일종의 api들을 제공을 해서 스위치 외부에서 sdn 컨트롤러가 컨트롤할수있게 api들을 오픈을 해주어야 할 것이다.

 

그래서 프로토콜도 당연히 컨트롤러랑 통신하기 위해서 필요하다.

 

그리고 이제 나머지부분은 컨트롤 플레인 부분인데 sdn에 컨트롤러 역할을 하는 것이 있을 것이고 이게 네트워크의 os역할을 한다. 

네트워크 정보들을 라우터들한테 받을 것이고 이 정보들을 모아서 유지를 해야한다. 이러한 역할을 하는 거싱 sdn  컨트롤러다. 위쪽에 있는 실제 네트워크 컨트롤을하는 어플리케이션이랑 통신을 할 것이다 

그래서 응용 프로그램은 운용체제 기능활용하기 위해 시스템콜 사용하듯, sdn 시스템콜이 아니라 northbound API것을 노출을 한다 결국에 sdn 컨트롤러 가능을 사용하기 위한 api들을 노출 시켜준다. 우쪽에 있는 네트워크 컨트롤러 어플리케이션은 공게되었는 노스바운드 api를 활용해서 응용프로그램을 구현한다. 

 

그리고 밑에쪽도 당연히 연결이 되어 있다. southbound api 스위치들 라우터들과 동신을 한다.

 

sdn 컨트롤러 같은 경우 서버 한대로 구성하는 것이 아니라 서버 여러대를 두어 분산시스템으로 상ㅇ한다. 저장해야할 양도 엄청 많다. 적어도 한 as에 속하는 라우터에 대한 정보를 다 저장을 해야하니 상대적으로 많은 메모리 성능이 필요한ㄹ 것이다. sdn 컨트롤러 가 다운이 된다면 그럴 경웨도 동작할 수 있도록 여분의 서버들을 둬서 백ㅓㅂ을 만들어 놔야 한다.

이런것들을 고려를 해서 회사 시스템으로 구축을 한다.

 

마지막 구성요소는 네트워크를 제어하는 어플리 케이션들이다.

라우팅알고리즘, 라익스트라 알고리즘이 존재를 할것이고 로드 벨런싱 같은 것도 여기서 제공할 수 있을 것이다. 소프트웨어로 구현된느 동작이니 자유롭게 구현을 할 수 있는 것이다.

기능을 추가하고 싶을 때 미들박스를 사용해서 추가를 할 필요없이 소프트웨어로 기능하나를 쉽게 추가를 할 수가있다.

 

결국에는 네트워크 컨트롤 어플리케이션이 컨트롤을 하는 가장 핵심. sdn 컨트롤러에 의해서 제공되는 northbound api 통해 서비스를 활용을 한다. 

 

그래서 네트워크 컨트롤 어플리케이션가은 경우 예전처럼 하나의 라우터의 전용 os 위에서돌아가는 어플, 이것과는 완전 다르게 

완전별도로 설치를 할 수 있는개념이 되었다.

 

결국에 sdn 컨트롤러 부분을 세분화해서보면 실제로 밑에 ㅣㅇㅆ는 스위치랑 통신하기 위한 부분이 있을 것이다. 통신하기위한 부분이 있어야 sdn 컨트롤러가 라우터를 컨트롤 할수 있을 것이고 라우터에서 받은 정보를 내 에스디엔 컨트롤러 상에 저장할 수도 있을 것이다.

 

중간이 네트워크 상에 정보를 저장하고 관리하는 컴포넌트라고 생각하면 된다 네트워크 밑에 있는 스위치의 링크상태 ,스위치 상태를 저장하는 공간이다. 기본적으로 분산 데이터베이스처럼 그냥 데이터를 저장할 수 있는 컴포넌트임을 생각하면 된다.

그리고 또하나의 컴포넌트는 위쪽에 네트어크 어플리케이션이 있을 텐데 사용할 수 있도록 api들을 노출시켜주는 인터페이스 레이어가 존재한다. 

 

그래서 sdn 컨트롤러부분은 3가지의 컴포넌트 부분으로 구성이 된다.

오픈플로우 프로토콜 같은 경우 앞에서 간단히 살폈지만 결국 네트워크 스위치와 위쪽의 에스디엔 컨트롤러 사이에서 동작하고 기본적으로 티시피를 사용해서 통신을 한다.

그래서 메시지의 종류들이 좀 있는데 컨트롤러 쪽에서 스위치로 보내는 메시지들이 있을 것이다. 

그래서 스위치가 어떤 기능을 갖고 있는지등을 물어볼 수도 있고 스위치의 설정이 어떻게 되어있고 설정하는 것 까지도 할 수 있는 컨피규어 메시지가 있을 것이고 오픈 플로우에 플로우테이블이 존재하는데 그래서 포워딩테이블을 엔트리들을 생성, 삭제, 수정할수 있는 모디파이 스테이트 메시지가 있을 것이고 패킷 아웃같은 경우 컨트롤러가 현재 내가 보내느 패킷을 어떤 포트로 내보내라고 알려줄 수도 있을 것이다.

이럴때 사용ㅇㅎ나느 것이 패킷아웃 메시지이다.

거꿀로 스위치에서 컨트롤러로 보내느 경우도 있을 것이다. 이와 같은경우 어떤 패킷을 받았는데 어떻게 처리할지 모르겠다고하면 컨트롤러에서 이것을 넘겨줄 수가 있을 것이다. 

플로우 리무브드같은 경우 플로우 테이블에서 어떤 엔트리가 지워졌을 때 이런 메시지를 통해서 내 테이블에서 엔트리가 지워짐을 오픈플로우 컨트롤러한테 알린다. 

포트 스테이터스 같은경우는 밑에 스위치에 어떤 포트가 갑자기 동작안한다던가 하면 그러면 해당 스위치가 컨트롤러한테 내 포트가 동작하지 않음을 알려야 한다. 이럴 때 사용하는 것이 포트 스테이터스이다.

 

그래서 간단히 에스디엔에서 컨트롤 데이터 플레이인이 어떻게 서로 상호작용을 할까 

예시가 s1이라는 스위치가 있는 것이고 스위치에서 빨간표시가된 부분이 링크가 failure가 되어 사용할 수 없는 상태가 되면 s1이 리모트 컨트롤러한테 이정보를 알려줘야 할 것이다. 오픈플로우에 포트 스테이터스 메시지를 사용해서 컨트롤러한테 알려주는 것을 의미한다.

 

그러면 오픈 컨트롤러에 컴니케이션 컴포넌트가 있었는데 결국 바당서 링크 스테이트를 저장할 수 있는 공간에다가 업데이트를 할 것이다. s1이 링크가 있었는데 링크를 사용할 수 없게 되엉싿고 링크스테이트 인포를 업데이트할 것이다. 그러면 어플리케이션 레이어 에니는 다익스트라, 링크스테이트 라우팅 알고리즘 동작하고 있고 링크가 스테이터스가 업데이트되면 동작하도록 세팅하면 업데이트가 되는 순간 얘가 동작을 할 것이다 다익스트라링크 스테이트 알고리즘이 네트워크 그래프와 링크 스테이트 정보를 참조해서 실제 최적의 라우팅 정보를 계산을 할 수 있다.

그런 다음에 계산을 다했으면 최적의 플로우 테이블을 만들어 낼 수 있을 것이다. 이것을 맞춰서 업데이트를 해주는 작업이 필요할 것이다. 업데이트된 플로우테이블을 업데이트가 필요한 스위치들한테 업데이트 할 것이다.  s3는 관련이 없었으니 전달하지 않고 s1,2,4,는 관련이 있다고하면 전달을 해줄 것이다.

 

SDN이 남아있는 첼린지들이 많다. 이것이 완벽히 대체한 상태는 아니기 때문에 기본적으로 에스디엔 컨트롤러 부분이 분산 시스템이라고 했는데 이는 실제로 구현하기도 힘들고 성능적으로 안정적이게 만드릭도힘들다. 이부분에 대해서 어떻게 하면 어높은 성능을 제공하고 안정적이고 신뢰성있고 복구가 슆게 가능한 시스템을 만드는 것이 첫 챌린지이다. 그리고 어떤 특정한 미션에 최적화된것들을 제공할 수 있는것도첼린지이다, 리엍타임, 안정, 보안적으로 안전한 특정한 미션에 맞춘 요구조건에 맞는 에스디엔을 만들수도  있다

하나의 에이에스 상에서만 에스디엔이 동작한다고 생각하면된다 인터넷 규모로가면 처리 저장할 것이 너무 많아진다. 

이론 상으로운 인터넷 스케일링이되면 전세계의 모든 라우팅 정보를 한곳에서 다 결정을 할수있다고 생각하면 정말 최적의 경로를 선택할 수있을 것이라고 예상한다.

자동 트래픽 분산시켜 로드가 한쪽에 몰린문제를 해결할수도 있을 것이다. 이론적으로는 최고의 방법이지만 실제로는 어렵기 때문에 하나의 첼린지라고 할수있다.

그리고 5g에서도 중요한 역할을 맡고 있다.

 

포워딩 테이블을 만들어 내는데 라우팅 테이블을 활용을 한것이다 .이것이라니라 컨제스쳔 컨트롤 같은 고셍서도 사용할 수 있을 것이다. 단순히 센더쪽에서 리시버쪽에 정보만을 가지고 컨제스천 컨트롤하는 것이 아닌 중간 라우터들이 보고하는 정보들을 컨트롤러는 다 가지고 있을 수 이싿 그ㅐㄹ서 그 정보를 활용해서 센더한테 ㅈ속도 트래픽 정보를 알려줄 수 있다 좀더 정확히 컨제스쳔 컨트롤을 할 수 있을 것이다. 이와같이 에스디엔은 무궁무진한 가능성 이 있다.

 

ICMP: Internet Control Message Protocol

이게 결국에는 라우터가 호스트한테 정보를 알려줘야할 때가 있다 예를 들어 에러가 발생했을 때 내가 한 호스트인데 다른 호스트한테 메시지를 보낸하고 해보자. 대상호스트가 원래는 가능했는데 어느순간 접근이 불가능한 상황이되면 해당호스트에 접근할 수없을을 알아야한다.

기존에 tcp ip에 대해서는 보낸 메시지를 받는 애가 ack를 보내야지 알수있고, ttl로 timeout이 무한정 연기되는 것을 막을 수 있어야 했다. 무한정 계속 다시 리스랜스미션을 하는 것을 막기 위해서 에러 리포팅이 필요하다. 중간의 라우터가 이 호스트에 도달할 수 없음을 센더에게 알려줄 수 있다. 이럴때사용하는 것이 이 프로코톨이다.

네트워크 계층인데 실제로는 ip위에서 동작을 한다.

icmp메시지는 결국에 타입이랑 코드, 그리고 ip 데이터그램에서 처음 8바이트를 포함해서 보낸다

타입과 코드는 굉장히 종류가 많다. 

 

Type  Code  description

0        0         echo reply (ping)

3        0         dest. network unreachable

3        1         dest host unreachable

3        2         dest protocol unreachable

3        3         dest port unreachable

3        6         dest network unknown

3        7         dest host unknown

4        0         source quench (congestion

                     control - not used)

8        0         echo request (ping)

9        0         route advertisement

10      0         router discovery

11      0         TTL expired

12      0         bad IP header

 

Traceroute and ICMP

트레이스 라우트라는 프로그램이 있다 이것을 사용하면 

a->b도달하기위한 사이에 있는 필요한 라우터들의 정보들과 a->b까지도달하는데 거릴는 홉의 수들을 알수가 있다.

이것도 결국에 ICMP를 통해서 구현한다

소스쪽에서는 UDP 세그먼트를 보내게 되는데 처음 보낼때는 TTL값을 1로 세팅을 한다.

1로설정하면 첫라우터까지는 도달을 하고, 도달하는 순간 TTL 값이 -1이 되면서 TTL->0이 될 것이다. 0이면 이 메시지를 다음 라우터로 전달하지 않고 여기서 버려버린다. 

그리고 icmp 메시지를 원래보냈던 a한테 알려줄 것이다.

그러면 icmp 메시지를 a가 받을 것이다.

ttl expired로 센더가 받으면 이 메시지가 포함하고 있는 게 해당 메시를 보낸 라우터의 이름과 ip 주소를 보내줄 것이다.

그것을 트레이스 루트에서는 저장을 하는 것이다.

그러면 첫번째 a->b가는데 있는 첫라우터의 이름과 ip 주소를 얻을 수있다. 이것을 반복하면 ttl1, ttl2, ..

중간경로에 있는 모든 라우터의 이름과 ip 주소를 얻을 수 있게 된다.

b에 도착할때까지 이것을 반복해서 b에 도착하면 몇번째 시도에서 이게 도달을 햇는지를 보면,

몇 번의 홉이 걸리는지 계산할 수 있을 것이다.

이것을계속 반복을 한다고 생각하면된다.

b에 도착하게 되면 성공적을 도착을했지만, 보낼때 목적지포트를 이상한 것으로 설정을 하면 실제로 이 b에서는 이 포트에서 돌고있는 서비스가 없을테니 도착하지 못했다는 메시지를 a한테 보낼 것이다. 

이런식으로 트레이스 라우터가  icmp를 통해서 어떤 경로를 통해서 갔는지 중간 라우터의 이름과 정보를 알 수 있게 된다.

 

Network management, configuration

- SNMP

 

 

무엇이 네트워크 메니지먼트냐면 우리가 as라고 하더라도 그 안에는 굉장히 많은 하드웨어 소프트웨어 컴포넌트들이 있을 것이다. 굉장히 많은데 이것들을 모니터링, 설정, 컨트롤도 해줘야 한다.

그래서 이런것들을 관리할 수 있는 방법이 필요하다고 이해하면 된다.

그래서 네트워크 관리의 핵심요소들에 대해서 설명을 보면

관리 서버가 있을 것이다.

기본적으로 사람과 상호작용을하는 응용이다.

실제로 여기서 네트워크 동작으로 제어하기 위한 작업들이 시작되고 네트워크 관리자가 이 서버를 가지고 관리를 한다.

관리가 되는 장치들이 있을 수 있는데, 네트워크 장비, 소프트웨어들도 포함될 것이다. 호스트,라우터 스위치 미들박스 등이 포함될 것이다.

 

그리고 관련된 데이터들이 있을 것이다. 

각각의 장치들이 가지고 있는 정보들이 포함되어 있을 것이다.

 

이런 것들을 결국에 메트워크 메니지먼트 프로코톨을 통해서 관리를 하게 된다.

어떤 프로토콜이 존재를 해야 이것들을 제어할 수 있을 것이다.

어떤 장치들이 통신하려면 항상프로토콜이 필요하다.

네트워크 운영자가 관리할때 필요한 사용할수있
는 방법들이 몇가지 있다.

1. CLI 활용

ssh 등 원격에 있는장치에 접근해서 해결하는 방식

2. SNMP/MIB

프로토콜을 이용해서 해결할 수 있다.

simple network management protocol의 약자이며 이 프로토콜을 기본적으로 사용하고, 여기서 이 프로토콜을 사용해서 관리하는 데이터는 MIB라고 한다. 이같은 경우에는 Management Infomation Base의 약자이다. 

 

SNMP 

동작하는 방법이 크게 두가지가 있다.

1. 리퀘스ㅡ 보내고 리스폰스 하는 방법

매니징 서버에서 어떤 데이터를 요청하면 관리대상이 디바이스에서 원하는 정보를 리턴하는 것이다.

2 trap mode

리퀘스트할때 답장이오는 것이 아니라

디바이스에서 특정 시나리오가 발생해서 문제가 발생하든지 했을 때 관리서버에게 알려준다. 이런것을 트랩메시지라고 한다.

SNMP 에서도 종류가 있는데

리퀘스트와 관련된 것들이 대부분이다.

어떻게 가져올지 그리고 어떻게 세팅할지 답장을 어떻게 줄지 등이 대부분이다.

위 GerRequest, setRequest 같은경우 매니져 쪽에서 에이전트로, 매니징 서버에서 디바이스로 보낼 때 이 메시지를 사용한다.

리스폰스, 트랩은 디바이스 -> 매니징 서버로 보낼 때 사용한다.

 

그리서 여기까지해서 네트워크 계층에 대해 다뤄봤다.

 

지금까지 네트워크 컨트롤 방법

- SDN

컨트롤러 어떤 모듈 존재하고, 동작하는지 전반적인 

- per-routing -

- OSPF

intra AS 

- BGP

inter AS

- ICMP

 - network management

 

반응형

'개발👩‍💻 > 네트워크' 카테고리의 다른 글

14-2:Network Layer:Link Layer  (0) 2021.06.04
14-1:Network Layer:Link Layer  (0) 2021.06.04
13-1:Network Layer: control plane  (0) 2021.06.03
12-2:Network Layer: control plane  (0) 2021.06.03
12-1:Network Layer: control plane  (0) 2021.06.02