기타 IT 관련 정보/네트워크 기초 지식

[후니의 쉽게 쓴 시스코 네트워킹]3주차

benjykim 2018. 3. 25. 10:20
반응형

1. 용어정리( > : 설명, >> : 정리)


Q. 콜리전 도메인을 나누어 줄 수 있는 장비는 무엇인가?

A. 브리지(Bridge)와 스위치(Switch)



> 스위치가 나오기 전까지는 이 역할을 브리지 혼자 다 했지만 이제 브리지보다 빠른 스위치가 나와서 브리지는 스위치에게 그 자리를 내주었다. 그러나 원조는 브리지이다.


>> 따라서 스위치의 모든 기능은 브리지에서 출발한다는 것을 잊어서는 안된다.



 - 스위치(Swicth)

: 스위치는 예를 들어 1번 포트에 연결된 PC가 2번 포트에 연결된 PC와 데이터를 주고받는 동안에도 3번 포트에 연결된 PC와 4번 포트에 연결된 PC가 서로 데이터를 주고받을 수 있게 하는 장비이다. 이걸 전문적인 용어로는 '포트별로 콜리전 도메인이 나누어져 있다'라고 말한다.


> 즉 1, 2번 사이에서 통신이 일어나면 나머지 모든 PC들은 기다려야만 하는 허브와는 달리 다른 PC들도 동시에 통신이 가능하다. 이것이 스위치와 허브의 가장 큰 차이다.



- 허브와 스위치의 차이

: 허브는 일차선 도로라고 생각하면 된다. 어느 한 순간에는 한 대의 차 밖에 달릴 수 없다. 하지만 스위치는 포트 수 별로 차선이 만들어진다. 즉 8포트 스위치는 8차선 도로라는 의미이다.


> 물론 스위치의 기능은 허브에 비해서 우수하다. 예를 들어 스위치는 허브가 처리할 수 없는 콜리전 문제의 해결이나 에러 처리 능력에 있어 우수하다.


> 하지만 허브는 허브대로 장점이 있다. 일단 스위치보다 싸다는 것이 가장 큰 장점이다. 또 데이터 처리 속도가 일반적으로 스위치에 비해 빠르다.(속도 차이가 많이 나는 것은 아님.) 들어온 데이터에게 별로 해줄 일이 없기 때문이다. (들어오는 대로 내보내면 된다.)



Q. 스위치 사용 OR 허브 사용?

A. 네트워크에서 어떤 데이터들이 돌아다니느냐에 따라 다르다. 예를 들어 채팅이나 메일 정도를 쓰는 경우는 네트워크 상에 트래픽이 적기 때문에 PC들을 스위치에 붙이는 건 아무래도 낭비라고 할 수 있다. (그러나 요즘은 스위치의 가격이 많이 내려서 허브 대신 스위치로 쓰는 추세이다.)



- 브리지

: 브리지는 허브보다 한 수 위의 장비인데 허브는 나누지 못하는 콜리전 도메인을 나누어주는 역할을 한다. 중간에 서서 브리지 테이블을 보면서 통신이 다리 한쪽에서만 일어나면 다리를 못 건너가게 하고, 다리틑 통과해야지만 통신이 가능하면 그때만 다리를 건너게 해준다.

(브리지가 관리하는 장부 - 맥 어드레스 테이블)



- 브리지와 스위치의 기능


1) Learning : 배운다.

2) Flooding : 모르면 들어온 포트를 제외한 다른 모든 포트로 뿌린다.

3) Forwarding : 해당 포트로 건네준다.

4) Filtering : 다른 포트로는 못 건너가게 막는다.

5) Aging : 나이를 먹는다.



1) Learning

: 출발지의 맥 어드레스(MAC Address)를 배운다. 즉 브리지나 스위치는 자신의 포트에 연결된 'A'라는 PC가 통신을 위해서 프레임을 내보내면 그때 이 PC의 맥 어드레스를 읽어서 자신의 맥 어드레스 테이블(브리지 테이블이라고 한다.)에 저장한다. 그리고 나중에 어떤 PC가 'A'에게 통신할 경우에 자신의 브리지 테이블을 참고해서 다리를 건너게 할 것인지 아니면 못 건너가게 할 것인지를 결정한다.


> 만약 세그먼트(여기선 구역이라고 생각하면 됨) E0에 있는 맥 어드레스 0000.0000.1111 을 가진 PC가 통신을 하게 되면 이더넷의 기본 성질에 따라 세그먼트 E0에 연결되어 있는 모든 장비는 그 프레임을 받게 되는데, 이 때 브리지는 이 프레임을 받아서 이 프레임이 어디서 출발한 것인지를 확인한다. (맥 어드레스 확인) 그 다음, 브리지 테이블에 이 정보를 적는다. (세그먼트 E0에 맥 어드레스 0000.0000.1111을 가진 녀석이 살고 있다.)


<그림 1>

세그먼트 E0 

브릿지(브릿지 테이블)

그먼트 E1 

 0000.0000.1111

Bridge

0000.0000.3333 

 0000.0000.2222


0000.0000.4444


2) Flooding

: 들어온 포트를 제외한 나머지를 모든 포트로 뿌리는 것을 의미한다. 브리지는 '어떤 프레임에 대해서 브리지를 열어줄 것인가 아니면 못 건너가게 막을 것인가'를 브리지가 관리하는 브리지 테이블을 보고 결정한다고 했다. 그런데 들어온 프레임이 찾아가는 주소가 만약 브리지 테이블에 없는 주소라면 어떻게 할까? 

다시 말해서 이 주소가 다리를 건너야하는지 아니면 안 건너도 되는지를 알지 못한다면 어떻게 해야할까? 이 때 사용되는 것이 'Flooding'이다. 그냥 나머지 포트로 뿌려준다. 이런 Flooding은 브로드캐스트나 멀티캐스트의 경우에도 발생한다.


<그림 2>

 세그먼트 E0

브릿지(브릿지 테이블) 

세그먼트 E1 

 0000.0000.1111

Bridge

(0000.0000.1111

0000.0000.2222

0000.0000.3333

0000.0000.4444)

0000.0000.3333 

 0000.0000.2222

세그먼트 E2 

0000.0000.4444 

 

 0000.0000.5555

 


> 0000.0000.1111을 가진 PC가 맥 어드레스 0000.0000.5555를 가진 PC와 통신을 하려고 프레임을 보냈다. 브리지는 이 프레임을 받고 목적지를 보니 0000.0000.5555가 자신의 맥 테이블에는 없다는 것을 알았다. 왜냐하면 0000.0000.5555는 지금까지 한 번도 통신을 하지 않았기 때문에 브리지가 출발 주소를 배우지 못한 것이다. 따라서 브리지는 이 프레임을 자신의 모든 포트로 뿌리게 된다.(들어온 포트는 제외함.)



3) Forwarding

: 포워딩은 브리지가 목적지의 맥 어드레스를 자신의 브리지 테이블에 가지고 있고, 이 목적지가 출발지의 목적지와 다른 세그먼트에 존재하는 경우에 일어난다. 한마디로 목적지가 어디 있는지를 알고 있는데 그 목적지가 다리를 건너가야만 하는 경우 Forwarding이 발생한다. Forwarding은 이전에 위에서 배운 Flooding이 모든 포트로 프레임을 뿌리는 것과 달리 오직 해당 포트쪽으로만 프레임을 뿌려준다.


> <그림 2>에서 브릿지 테이블에 0000.0000.5555를 추가했다고 하자. 이때 세그먼트 E0에 있는 0000.0000.1111이 0000.0000.5555쪽으로 프레임을 보냈다. 그러면 이를 접수한 브리지는 자신의 브리지 테이블을 보고 0000.0000.5555가 세그먼트 E0이 아닌 세그먼트 E2라는 것을 알게 된다. 따라서 다리를 건너야 한다는 것을 알게 된다. 이 경우 0000.0000.1111로부터의 프레임을 해당 세그먼트인 E2쪽으로 넘겨주게 되는데 이것을 바로 Forwarding이라고 한다.



4) Filtering

: 필터링은 브리지를 못 넘어가게 막는다는 것을 뜻한다. 필터링은 브리지가 목적지의 맥 어드레스를 알고 있고, 출발지와 목적지가 같은 세그먼트 상에 있는 경우이다. 이 경우에는 브리지를 건너가지 않아도 통신이 일어날 수 있다. 따라서 브리지는 다리를 막는 필터링을 실시한다. 브리지의 이러한 필터링 기능 때문에 허브와는 다르게 콜리전 도메인을 나누어 줄 수 있는 것이다.


필터링은 0000.0000.1111에서 같은 세그먼트에 있는 0000.0000.2222에 프레임을 보낼 때 발생한다.



5) Aging

: 브리지 테이블의 내용을 영구적으로 저장할 수 없다. 시간이 지나면 새로운 맥 어드레스를 기억해야하기 때문에 기존의 정보들을 테이블에서 지우게 된다. 그 시간은 디폴트로는 5분, 즉 300초이다. Aging이란 것은 바로 이것과 관련된 타이머이다. 즉 어떤 맥 어드레스를 브리지 테이블에 저장하고 나면 그때부터 Aging이 가동되어서 저장한 후 300초가 지나도록 더 이상 그 출발지 주소를 가진 프레임이 들어오지 않으면 테이블에서 해당 정보를 삭제한다.


> 만일 Aging타이머가 다 끝나기 전에 같은 출발지를 가진 녀석이 또 브리지로 들어오면 브리지는 타이머를 리셋하고 처음부터 다시 카운트를 한다. 이것을 'Refresh'라고 한다. 



Q. LOOPING은 왜 생기나?

A. 브리지나 스위치에 목적지까지의 경로가 두 개 이상 존재하면 반드시 루핑이 발생하고 이를 막는 것이 스패닝 트리 알고리즘이다.


- Spanning Tree Algorithm(스패닝 트리 알고리즘)

: 스위치나 브리지에서 발생할 수 있는  루핑을 미리 막기 위해 두 개 이상의 경로가 발생하면 하나를 제외하고 나머지 경로들을 자동으로 막아두었다가 만약 기존 경로에 문제가 생기면 막아놓은 경로를 풀어서 데이터를 전송하는 알고리즘이다. 

                                                                                                                           





반응형