고재성, 이상훈님의 책을 보며 정리한 내용입니다.
문제가 될 시 해당글 삭제하겠습니다.
스위치 장비 동작
- 스위치는 네트워크에서 통신을 중재하는 장비이다.
→ 스위치를 사용하면 여러 단말이 한꺼번에 통신할 수 있어 통신하기 위해 기다리거나 충돌 때문에 대기하는 문제가 해결된다. - 스위치의 핵심 역할은 누가 어느 위치에 있는지 파악하고 실제 통신이 시작되면 자신이 알고 있는 위치로 정확히 패킷을 전송하는 것이다.
→ 이것은 스위치가 2계층 정보를 이해하고,
→ MAC 주소와 단말이 위치하는 인터페이스 정보(포트번호)를 매핑한 MAC 주소 테이블(임시 테이블)을 갖고 있어서 가능하다. - 테이블에 없는 도착지 주소를 가진 패킷이 스위치로 들어오면 스위치는 전체 포트로 패킷을 전송한다.(브로드캐스트, 플러딩)
- 테이블에 있는 도착지 주소를 가진 패킷이 스위치로 들어오면 스위치는 해당 포트로만 패킷을 전송한다.(유니캐스트)
플러딩
- 스위치를 부팅하면 네트워크 관련 정보가 아무 것도 없다.
→ 이 때 네트워크 통신을 중재하는 자신의 역할을 하지 못하고 허브처럼 동작한다. (브로드캐스팅)
→ 이 방식을 플러딩이라 한다.
→ 스위치는 LAN 에서 동작하므로 자신이 정보를 갖고 있지 않더라도 어딘가 장비가 있을 수 있다고 가정하고 이와 같이 동작한다. - 이런 플러딩 동작은 정상적이나 계속될 경우 스위치의 역할을 하고 있지 못하다는 소리와 같다.
- 패킷이 스위치에 들어오면 해당 패킷 정보의 MAC 주소를 보고 이를 학습해(어드레스 러닝) MAC 주소를 테이블을 만든 후, 이후 패킷이 들어올 시 이를 통해서 패킷을 전송한다.
→ MAC 주소 학습 시, 출발지 MAC 주소 정보를 학습한다.
어드레스 러닝
- MAC 주소 테이블(출발지 MAC 주소 : 포트)을 만들고 유지하는 과정을 어드레스 러닝이라 부른다.
- 어드레스 러닝은 출발지 MAC 주소 정보를 사용하므로 브로드캐스트 / 멀티캐스트에 대한 MAC 주소를 학습할 수 없다. (두 가지 모두 목적지 MAC 주소 필드에서만 사용하기 때문이다)
포워딩 / 필터링
- 스위치의 기본적인 동작 방식은 아래와 같다
- 패킷이 스위치에 들어오면 MAC 주소(출발지)를 확인하고,
- 자신이 가진 MAC 테이블과 비교해 맞으면 해당 포트로 패킷을 보내주고,
- 아니면 모든 포트에 브로드캐스팅 한다.(플러딩)
- 이 때, MAC 테이블에 매핑하는 동작을 포워딩한다 하고, (통신이 다른 포트에는 영향을 미치지 않는다)
- 다른 포트로는 해당 패킷을 보내지 않으므로 이 동작을 필터링이라고 한다.
- 스위치에서는 포트 별로 포워딩 / 필터링이 동시에 이루어질 수 있다.
- 또한, 유니캐스트에서만 포워딩 / 필터링을 수행한다.
VLAN(Virtual Local Area Network)
VLAN 이란?
- 물리적 배치와 상관없이 논리적으로 LAN 을 분할, 구성하는 기술이다.
- VLAN 을 구성하면 하나의 장비에서 서로 다른 네트워크를 갖도록 논리적으로 분할한 것이므로 VLAN 끼리 통신하기 위해서는 3계층 장비가 필요하다.
VLAN 의 종류와 특징
- 포트 기반의 VLAN (스위치의 포트가 VLAN 선정 기준)
- 초기에 스위치가 고가였고 VLAN 기술을 사용해 스위치를 분할해 여러 네트워크에 사용하는 것이 목적이었다.
- 이를 포트 기반의 VLAN 이라 부르고, 우리가 일반적으로 언급하는 VLAN 이다.
- MAC 주소 기반의 VLAN(사용자 PC의 MAC 주소가 VLAN 선정 기준)
- 단말이 연결되면 단말의 MAC 주소(MAC 주소 테이블)를 인식한 스위치가 해당 포트를 지정된 VLAN 으로 변경한다.
- 단말에 따라서 VLAN이 변경 될 수 있어 다이나믹 VLAN 이라고 부른다.
VLAN 모드(Trunk/Access) 동작 방식
→ VLAN 간의 통신은 3계층 장비의 도움이 필요하다!!
- 서로 다른 VLAN 간의 통신은 물리적으로 같은 스위치더라도 다른 네트워크로 인식하기 때문에 3계층 장비를 사용해야 한다.
→ 스위치 포트에 VLAN(포트 기반의 VLAN) 을 설정하여 네트워크를 분리하면 물리적으로 스위치를 분리할 때보다 효율적으로 장비 사용이 가능하다.(낭비되는 포트가 없어진다 ! ) - 여러 개의 VLAN 이 존재하는 상황에서 스위치를 서로 연결해야 하는 경우, 각 VLAN 끼리 통신하려면 VLAN 개수만큼 포트를 연결해야 한다.
→ 물리 스위치 내에 VLAN 간 통신을 위한 포트를 사용해야 한다!
(VLAN 을 많이 사용하는 대형 네트워크에서는 포트 낭비가 심해진다…) - 이 문제를 해결하기 위한 방법이 VLAN 태그 기능이다.
→ 하나의 포트에서 여러 개의 VLAN 을 함께 통신할 수 있게 해준다.
→ 해당 포트를 태그 포트 or 트렁크 포트라고 부른다.
(반대로 일반적인 포트를 언태그 포트 or 엑세스 포트라고 부른다) - VLAN 태그 기능의 추가로 스위치의 MAC 테이블에는 VLAN 필드가 추가되었다.
→ 언태그 포트로 패킷이 들어올 경우, 같은 VLAN 으로만 패킷을 전송한다.
→ 태그 포트로 패킷이 들어올 경우, 태그를 벗겨내면서 태그 된 VLAN 쪽으로 패킷을 전송한다.
- 가상화 서버(VMware 등…) 가 여러 VLAN 과 연결되어야 할 때도 있다. → 이 경우 서버와 연결된 스위치의 포트더라도 언태그 포트가 아닌 태그 포트로 사용한다. → 가상화 서버 내부에 가상 스위치가 존재하므로 스위치간 연결로 생각하면 된다.
STP(Spanning Tree Protocol)
- IT 환경에서는 SPoF(Single Point of Failure : 단일 장애점)로 인한 장애를 피하기 위해서 매우 많이 노력한다.(이중화, 다중화된 네트워크 )
- 두 대 이상의 스위치로 디자인 할 경우, 패킷이 네트워크를 따라 계속 전송되므로 네트워크를 마비 시킬 수 있다.(루프)
루프란?
브로드캐스트 스톰(루프의 대부분의 원인)
- 브로드캐스트 동작방식
- 루프 구조로 연결된 네트워크에서 단말에서 브로드캐스트를 발생시키면, 스위치는 패킷이 유입된 포트를 제외하고 모든 포트로 플러딩한다.
- 이 패킷을 받은 스위치는 패킷이 유입된 포트를 제외하고 모든 포트로 다시 플러딩 한다.
- 위 방식이 반복된다.
- 브로드캐스트 스톰 상황이 발생하면
- 네트워크에 접속된 단말의 속도가 느려진다. (많은 브로드캐스트를 처리해야 하기에 CPU 사용률이 높아진다)
- 네트워크 접속 속도가 느려진다. (거의 통신 불능 수준)
- 네트워크에 설치된 스위치에 모든 LED 들이 동시에 빠른 속도로 깜빡거린다.
스위치 MAC 러닝 중복 문제
- MAC 어드레스 플래핑
- 스위치는 출발지 MAC 주소를 학습하는데 직접 전달되는 패킷과, 스위치를 돌아 들어간 패킷 간의 포트가 달라 MAC 주소를 정상적으로 학습할 수 없다.
- 스위치 MAC 주소 테이블에서는 하나의 MAC 주소에 대해 하나의 포트만 학습할 수 있으므로 동일한 MAC 주소가 여러 포트에서 학습되면 MAC 주소 테이블이 반복 갱신 되어 정상적으로 작동하지 않는다.
STP(Spanning Tree Protocol) 란?
- STP 는 스위치 루프를 미리 확인하고 적절히 포트를 사용하지 못하게 만들어 루프를 예방하는 매커니즘이다.
- STP 를 사용하려면 전체 스위치가 어떻게 연결되는지 알아야 한다.
- 전체적인 스위치 연결 상황을 파악하려면 스위치 간에 정보를 전달하는 방법이 필요한데, 이를 위해 스위치는 BPDU(Bridge Protocol Data Unit) 이라는 프로토콜을 사용한다.
→ 이를 통해 스위치 간에 정보를 전달하고 수집된 정보를 이용해 전체 네트워크 트리를 만들어 루프 구간을 확인한다. - 이렇게 확인된 루프 지점을 데이터 트래픽이 통과하지 못하도록 차단해 루프를 예방한다.
스위치 포트의 상태 및 변경 과정
- Blocking
- 패킷 데이터를 차단한 상태로 상대방이 보내는 BPDU 를 기다린다.
- 총 20초인 MAX AGE 기간 동안 상대방 스위치에서 BPDU 를 받지 못하거나 후 순위 BPDU 를 받았을 때 포트는 리스닝 상태로 변경된다.
→ BPUD 를 받지 못했다는 소리는 멀티 스위치가 아니라는 말! - BPDU 기본 교환 주기는 2초이고 10번의 BPUD 를 기다린다.
- Listening
- 리스닝 상태는 해당 포트가 전송 상태로 변경되는 것을 결정하고 준비하는 단계로 이 상태부터 자신의 BPDU 정보를 상대방에게 전송하기 시작한다.
- 총 15초간 대기한다.
- Learning
- 러닝 상태는 이미 해당 포트를 포워딩하기로 결정하고 실제로 패킷 포워딩이 일어날 때 스위치가 곧바로 동작하도록 MAC 주소를 러닝하는 단계
- 총 15초간 대기한다.
- Forwarding
- 패킷을 포워딩하는 단계. 정상적인 통신 가능
- 스위치에 신규 장비를 붙이면 통신하는데 50초가 소요된다. (스위치는 루프를 예방하기 위해서 매우 방어적으로 동작한다)
STP 동작 방식
- 하나의 루트(root) 스위치를 선정한다.
- 전체 네트워크(LAN)에 하나의 루트 스위치를 선정한다.
- 자신을 전체 네트워크의 대표 스위치로 적은 BPDU 를 옆 스위치로 전달한다.
- 루트가 아닌 스위치 중 하나의 루트 포트를 선정한다.
- 루트 브릿지로 가능 경로가 가장 짧은 포트를 루트 포트라고 한다.
- 루트 브릿지에서 보낸 BPDU를 받는 포트이다.
- 하나의 세그먼트에 하나의 지정 포트를 선정한다.
- 스위치와 스위치가 연결되는 포트는 하나의 지정 포트를 선정한다.
- 스위치 간의 연결에서 이미 루트 포트로 선정된 경우 반대쪽이 지정 포트로 선정되어 양 쪽 모두 포워딩 상태가 된다.
- 스위치 간의 연결에서 어느 쪽도 루트 포트가 아닌 경우, 한쪽은 지정 포트로 선정되고 다른 한쪽은 대체 포트가 되어 차단 상태가 된다.
- BPDU 가 전달되는 포트이다.
향상된 STP(시간이 너무 오래 걸리는 것을 해결)
- RSTP
- STP 는 이중화된 스위치 경로 중 문제가 발생하였을 시 백업 경로를 활성화하는데, 30-50초가 걸린다.
- 이를 해결하기 위한 해결책이 RSTP 이고 2-3초 정도로 절체 시간이 짧아 일반적인 TCP 기반 애플리케이션 세션을 유지할 수 있다.
- MST
- STP 는 VLAN 개수와 상관없이 스패닝 트리 1개만 작동하게 된다.
- 하지만 STP 는 루프가 생기는 한개의 포트와 회선만 활성화되므로 자원을 효율적으로 사용할 수 없다.
- 또한 VLAN 마다 최적의 경로가 다를 수 있는데, 포트 하나만 사용할 수 있다 보니 멀리 돌아 통신하는 경우도 생긴다.
- 이 문제를 해결하기 위해서 VLAN 마다 다른 STP 가 동작하는 PVST(Per Vlan Spanning Tree) 가 개발되었다.
- 하지만 STP 자체가 스위치에 부담을 주는 프로토콜인데 PVST 는 VLAN 마다 별도의 STP가 동작하므로 더 많은 부담이 되었다.
- 때문에 최종적으로 VLAN을 그룹으로 묶고 그룹마다 별도의 STP 가 동작하는 MST(Multiple Spanning Tree) 가 개발되었다.
'CS > 네트워크' 카테고리의 다른 글
[IT 엔지니어를 위한 네트워크 입문] Chapter6. 로드 밸런서 / 방화벽 : 4계층 장비(세션 장) (0) | 2023.01.10 |
---|---|
[IT 엔지니어를 위한 네트워크 입문] Chapter5. 라우터 / L3 스위치 : 3계층 장비 (0) | 2023.01.10 |
[IT 엔지니어를 위한 네트워크 입문] Chapter3. 네트워크 통신하기 (0) | 2023.01.10 |
[IT 엔지니어를 위한 네트워크 입문] Chapter2. 네트워크 연결과 구성요소 (0) | 2023.01.10 |
[IT 엔지니어를 위한 네트워크 입문] Chapter1 네트워크 시작하기 (1) | 2023.01.10 |