개발하는 프로 국밥러
article thumbnail

IT 엔지니어를 위한 네트워크 입문

고재성, 이상훈님의 책을 보며 정리한 내용입니다.

문제가 될 시 해당글 삭제하겠습니다.


스위치 장비 동작

스위치

  • 스위치는 네트워크에서 통신을 중재하는 장비이다.
    → 스위치를 사용하면 여러 단말이 한꺼번에 통신할 수 있어 통신하기 위해 기다리거나 충돌 때문에 대기하는 문제가 해결된다.
  • 스위치의 핵심 역할은 누가 어느 위치에 있는지 파악하고 실제 통신이 시작되면 자신이 알고 있는 위치로 정확히 패킷을 전송하는 것이다.
    → 이것은 스위치가 2계층 정보를 이해하고,
    → MAC 주소와 단말이 위치하는 인터페이스 정보(포트번호)를 매핑한 MAC 주소 테이블(임시 테이블)을 갖고 있어서 가능하다.
  • 테이블에 없는 도착지 주소를 가진 패킷이 스위치로 들어오면 스위치는 전체 포트로 패킷을 전송한다.(브로드캐스트, 플러딩)
  • 테이블에 있는 도착지 주소를 가진 패킷이 스위치로 들어오면 스위치는 해당 포트로만 패킷을 전송한다.(유니캐스트)

플러딩

  • 스위치를 부팅하면 네트워크 관련 정보가 아무 것도 없다.
    → 이 때 네트워크 통신을 중재하는 자신의 역할을 하지 못하고 허브처럼 동작한다. (브로드캐스팅)
    → 이 방식을 플러딩이라 한다.
    스위치는 LAN 에서 동작하므로 자신이 정보를 갖고 있지 않더라도 어딘가 장비가 있을 수 있다고 가정하고 이와 같이 동작한다.
  • 이런 플러딩 동작은 정상적이나 계속될 경우 스위치의 역할을 하고 있지 못하다는 소리와 같다.
  • 패킷이 스위치에 들어오면 해당 패킷 정보의 MAC 주소를 보고 이를 학습해(어드레스 러닝) MAC 주소를 테이블을 만든 후, 이후 패킷이 들어올 시 이를 통해서 패킷을 전송한다.
    → MAC 주소 학습 시, 출발지 MAC 주소 정보를 학습한다.

어드레스 러닝

  • MAC 주소 테이블(출발지 MAC 주소 : 포트)을 만들고 유지하는 과정을 어드레스 러닝이라 부른다.
  • 어드레스 러닝은 출발지 MAC 주소 정보를 사용하므로 브로드캐스트 / 멀티캐스트에 대한 MAC 주소를 학습할 수 없다. (두 가지 모두 목적지 MAC 주소 필드에서만 사용하기 때문이다)

포워딩 / 필터링

  • 스위치의 기본적인 동작 방식은 아래와 같다
    1. 패킷이 스위치에 들어오면 MAC 주소(출발지)를 확인하고,
    2. 자신이 가진 MAC 테이블과 비교해 맞으면 해당 포트로 패킷을 보내주고,
    3. 아니면 모든 포트에 브로드캐스팅 한다.(플러딩)
  • 이 때, 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

  • 서로 다른 VLAN 간의 통신은 물리적으로 같은 스위치더라도 다른 네트워크로 인식하기 때문에 3계층 장비를 사용해야 한다.
    스위치 포트에 VLAN(포트 기반의 VLAN) 을 설정하여 네트워크를 분리하면 물리적으로 스위치를 분리할 때보다 효율적으로 장비 사용이 가능하다.(낭비되는 포트가 없어진다 ! )
  • 여러 개의 VLAN 이 존재하는 상황에서 스위치를 서로 연결해야 하는 경우, 각 VLAN 끼리 통신하려면 VLAN 개수만큼 포트를 연결해야 한다.
    물리 스위치 내에 VLAN 간 통신을 위한 포트를 사용해야 한다!
    (VLAN 을 많이 사용하는 대형 네트워크에서는 포트 낭비가 심해진다…)
  • 이 문제를 해결하기 위한 방법이 VLAN 태그 기능이다.
    → 하나의 포트에서 여러 개의 VLAN 을 함께 통신할 수 있게 해준다.
    해당 포트를 태그 포트 or 트렁크 포트라고 부른다.
    (반대로 일반적인 포트를 언태그 포트 or 엑세스 포트라고 부른다)
  • VLAN 태그 기능의 추가로 스위치의 MAC 테이블에는 VLAN 필드가 추가되었다.
    → 언태그 포트로 패킷이 들어올 경우, 같은 VLAN 으로만 패킷을 전송한다.
    → 태그 포트로 패킷이 들어올 경우, 태그를 벗겨내면서 태그 된 VLAN 쪽으로 패킷을 전송한다.

VLAN

  • 가상화 서버(VMware 등…) 가 여러 VLAN 과 연결되어야 할 때도 있다. → 이 경우 서버와 연결된 스위치의 포트더라도 언태그 포트가 아닌 태그 포트로 사용한다. → 가상화 서버 내부에 가상 스위치가 존재하므로 스위치간 연결로 생각하면 된다.

STP(Spanning Tree Protocol)

  • IT 환경에서는 SPoF(Single Point of Failure : 단일 장애점)로 인한 장애를 피하기 위해서 매우 많이 노력한다.(이중화, 다중화된 네트워크 )
  • 두 대 이상의 스위치로 디자인 할 경우, 패킷이 네트워크를 따라 계속 전송되므로 네트워크를 마비 시킬 수 있다.(루프)

루프란?

브로드캐스트 스톰(루프의 대부분의 원인)

  • 브로드캐스트 동작방식
    1. 루프 구조로 연결된 네트워크에서 단말에서 브로드캐스트를 발생시키면, 스위치는 패킷이 유입된 포트를 제외하고 모든 포트로 플러딩한다.
    2. 이 패킷을 받은 스위치는 패킷이 유입된 포트를 제외하고 모든 포트로 다시 플러딩 한다.
    3. 위 방식이 반복된다.
  • 브로드캐스트 스톰 상황이 발생하면
    1. 네트워크에 접속된 단말의 속도가 느려진다. (많은 브로드캐스트를 처리해야 하기에 CPU 사용률이 높아진다)
    2. 네트워크 접속 속도가 느려진다. (거의 통신 불능 수준)
    3. 네트워크에 설치된 스위치에 모든 LED 들이 동시에 빠른 속도로 깜빡거린다.

스위치 MAC 러닝 중복 문제

  • MAC 어드레스 플래핑
    • 스위치는 출발지 MAC 주소를 학습하는데 직접 전달되는 패킷과, 스위치를 돌아 들어간 패킷 간의 포트가 달라 MAC 주소를 정상적으로 학습할 수 없다.
    • 스위치 MAC 주소 테이블에서는 하나의 MAC 주소에 대해 하나의 포트만 학습할 수 있으므로 동일한 MAC 주소가 여러 포트에서 학습되면 MAC 주소 테이블이 반복 갱신 되어 정상적으로 작동하지 않는다.

STP(Spanning Tree Protocol) 란?

  • STP 는 스위치 루프를 미리 확인하고 적절히 포트를 사용하지 못하게 만들어 루프를 예방하는 매커니즘이다.
  • STP 를 사용하려면 전체 스위치가 어떻게 연결되는지 알아야 한다.
  • 전체적인 스위치 연결 상황을 파악하려면 스위치 간에 정보를 전달하는 방법이 필요한데, 이를 위해 스위치는 BPDU(Bridge Protocol Data Unit) 이라는 프로토콜을 사용한다.
    → 이를 통해 스위치 간에 정보를 전달하고 수집된 정보를 이용해 전체 네트워크 트리를 만들어 루프 구간을 확인한다.
  • 이렇게 확인된 루프 지점을 데이터 트래픽이 통과하지 못하도록 차단해 루프를 예방한다.

스위치 포트의 상태 및 변경 과정

  • Blocking
    1. 패킷 데이터를 차단한 상태로 상대방이 보내는 BPDU 를 기다린다.
    2. 총 20초인 MAX AGE 기간 동안 상대방 스위치에서 BPDU 를 받지 못하거나 후 순위 BPDU 를 받았을 때 포트는 리스닝 상태로 변경된다.
      BPUD 를 받지 못했다는 소리는 멀티 스위치가 아니라는 말!
    3. BPDU 기본 교환 주기는 2초이고 10번의 BPUD 를 기다린다.
  • Listening
    1. 리스닝 상태는 해당 포트가 전송 상태로 변경되는 것을 결정하고 준비하는 단계로 이 상태부터 자신의 BPDU 정보를 상대방에게 전송하기 시작한다.
    2. 총 15초간 대기한다.
  • Learning
    1. 러닝 상태는 이미 해당 포트를 포워딩하기로 결정하고 실제로 패킷 포워딩이 일어날 때 스위치가 곧바로 동작하도록 MAC 주소를 러닝하는 단계
    2. 총 15초간 대기한다.
  • Forwarding
    1. 패킷을 포워딩하는 단계. 정상적인 통신 가능
  • 스위치에 신규 장비를 붙이면 통신하는데 50초가 소요된다. (스위치는 루프를 예방하기 위해서 매우 방어적으로 동작한다)

STP 동작 방식

  1. 하나의 루트(root) 스위치를 선정한다.
    • 전체 네트워크(LAN)에 하나의 루트 스위치를 선정한다.
    • 자신을 전체 네트워크의 대표 스위치로 적은 BPDU 를 옆 스위치로 전달한다.
  2. 루트가 아닌 스위치 중 하나의 루트 포트를 선정한다.
    • 루트 브릿지로 가능 경로가 가장 짧은 포트를 루트 포트라고 한다.
    • 루트 브릿지에서 보낸 BPDU를 받는 포트이다.
  3. 하나의 세그먼트에 하나의 지정 포트를 선정한다.
    • 스위치와 스위치가 연결되는 포트는 하나의 지정 포트를 선정한다.
    • 스위치 간의 연결에서 이미 루트 포트로 선정된 경우 반대쪽이 지정 포트로 선정되어 양 쪽 모두 포워딩 상태가 된다.
    • 스위치 간의 연결에서 어느 쪽도 루트 포트가 아닌 경우, 한쪽은 지정 포트로 선정되고 다른 한쪽은 대체 포트가 되어 차단 상태가 된다.
    • BPDU 가 전달되는 포트이다.

향상된 STP(시간이 너무 오래 걸리는 것을 해결)

  1. RSTP
    1. STP 는 이중화된 스위치 경로 중 문제가 발생하였을 시 백업 경로를 활성화하는데, 30-50초가 걸린다.
    2. 이를 해결하기 위한 해결책이 RSTP 이고 2-3초 정도로 절체 시간이 짧아 일반적인 TCP 기반 애플리케이션 세션을 유지할 수 있다.
  2. MST
    1. STP 는 VLAN 개수와 상관없이 스패닝 트리 1개만 작동하게 된다.
    2. 하지만 STP 는 루프가 생기는 한개의 포트와 회선만 활성화되므로 자원을 효율적으로 사용할 수 없다.
    3. 또한 VLAN 마다 최적의 경로가 다를 수 있는데, 포트 하나만 사용할 수 있다 보니 멀리 돌아 통신하는 경우도 생긴다.
    4. 이 문제를 해결하기 위해서 VLAN 마다 다른 STP 가 동작하는 PVST(Per Vlan Spanning Tree) 가 개발되었다.
    5. 하지만 STP 자체가 스위치에 부담을 주는 프로토콜인데 PVST 는 VLAN 마다 별도의 STP가 동작하므로 더 많은 부담이 되었다.
    6. 때문에 최종적으로 VLAN을 그룹으로 묶고 그룹마다 별도의 STP 가 동작하는 MST(Multiple Spanning Tree) 가 개발되었다.
  1.  
profile

개발하는 프로 국밥러

@gugbab2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!