카테고리 없음

스위치: 2계층 장비

몰라몰라개복치 2024. 3. 27. 16:41

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

 

스위치

  • 2계층 주소인 MAC 주소를 기반으로 동작
  • 네트워크 중간에서 패킷을 받아 필요한 곳에만 보내 주는 네트워크의 중재자 역할
  • 아무 설정 없이 네트워크에 연결해도 MAC 주소를 기반으로 패킷을 전달하는 기본 동작 수행 가능
  • VLAN 기능과 스패닝 트리 프로토콜(STP) 기능 기본적으로 탑재

VLAN - 한 대의 장비에서 논리적으로 네트워크를 분리할 수 있는 기능

스패닝 트리 프로토콜(STP) - 네트워크의 루프를 방지하는 기능

네트워크 루프 - 네트워크가 목적지에 도달하지 못하고 계속 순환하는 현상

PDU

- 각 계층에서 헤더와 데이터를 합친 부분

- 1계층 PDU: 비트(Bits)

- 2계층 PDU: 프레임(Frame)

- 3계층 PDU: 패킷(Packet)

- 4계층 PDU: 세그먼트(Segment)

- 애플리케이션 계층(애플리케이션, 프레젠테이션, 세션 계층) PDU: 데이터

 

 

 

 

4.1 스위치 장비 동작

스위치가 없던 오래된 이더넷 네트워크에서는 패킷을 전송할 때 경합으로 인한 네트워크 성능 저하 발생

→ 경쟁을 없애고 패킷을 동시에 여러 장비가 서로 간섭 없이 통신하도록 도와주는 장비

→ 여러 단말이 한꺼번에 통신할 수 있어 통신 및 충돌 때문에 대기하는 문제가 해결되고 네트워크 전체의 통신 효율성 향상

→ 누가 어느 위치에 있는지 파악하고 실제 통신이 시작되면 자신이 알고 있는 위치로 패킷을 정확히 전송 가능

(스위치가 2계층 주소를 이해하고 단말의 주소인 MAC 주소와 단말이 위치하는 인터페이스 정보를 매핑한 MAC 주소 테이블을 갖고 있어서 가능)

전송하려는 패킷의 헤더 안에 있는 2계층 목적지 주소를 확인하고 MAC 주소 테이블에서 해당 주소가 어느 포트에 있는지 확인해 해당 패킷을 그 포트로만 전송 

테이블에 없는 도착지 주소를 가진 패킷이 스위치로 들어오면 스위치는 전체 포트로 패킷을 전송

 

스위치의 동작 방식 3가지

  • 플러딩(Flooding)
  • 어드레스 러닝(Address Learning)
  • 포워딩/필터링(Forwarding/Filtering)

 

4.1.1 플러딩

스위치 부팅 시, 네트워크 관련 정보 X -> 패킷이 들어온 포트를 제외하고 모든 포트로 패킷을 전달하는 허브처럼 동작

스위치가 허브와 같이 모든 포트로 패킷을 흘리는 동작 방식

  • MAC 주소 테이블에 매칭되는 목적지 MAC 주소 정보가 없으면 모든 포트에 같은 내용의 패킷을 전송
  • 스위치는 LAN에서 동작하므로 자신이 정보를 갖고 있지 않더라도 어딘가에 장비가 있을 수 있다고 가정하여 해당 작업 수행
  • 플러딩 동작이 많아지면 스위치가 제 역할을 하지 못함

 


비정상적인 플러딩

스위치에게 엉뚱한 MAC 주소를 습득시키거나 스위치의 MAC 테이블을 꽉 차게 해 스위치의 플러딩 동작 유도 가능

아무 이유없이 스위치가 패킷을 플러딩한다면(주변 다른 통신을 모니터링할 수 있다면) 스위치가 정상적으로 동작하지 않거나 주변에서 공격이 수행되는 상황임을 인지 필요

 

MAC 주소 테이블

어느 위치(포트)에 어떤 장비(MAC 주소)가 연결되었는지에 대한 정보가 저장되어 있는 임시 테이블

 

ARP 스푸핑

모니터링해야 할 IP의 MAC 주소가 공격자 자신인 것처럼 속여 원하는 통신을 받는 방법

 

참고:https://mikrkosmos97.tistory.com/105

 

ARP 스푸핑, 공격 기법, 과정

먼저 ARP에 대해서 알아보자 ARP Address Resolution Protocol의 약자로서 IP주소를 MAC주소로 변환해주는 프로토콜. IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는

mikrkosmos97.tistory.com

 

 

4.1.2 어드레스 러닝

 MAC 주소 테이블을 만들고 유지하는 과정

  • 패킷의 출발지 MAC 주소 정보를 이용
  • 패킷이 특정 포트에 들어오면 스위치에는 해당 패킷의 출발지 MAC 주소와 포트 번호를 MAC 주소 테이블에 기록
  • 출발지의 MAC 주소 정보를 사용하므로 브로드캐스트나 멀티캐스트에 대한 MAC 주소를 학습할 수 X (두 가지 모두 목적지 MAC 주소 필드에서만 사용하기 때문) - 유니캐스트에서 학습

참고:https://velog.io/@park9910/Network-%EC%9C%A0%EB%8B%88%EC%BA%90%EC%8A%A4%ED%8A%B8-%EB%A9%80%ED%8B%B0%EC%BA%90%EC%8A%A4%ED%8A%B8-%EB%B8%8C%EB%A1%9C%EB%93%9C%EC%BA%90%EC%8A%A4%ED%8A%B8

 

[Network] 유니캐스트 / 멀티캐스트 / 브로드캐스트

목적에 따른 데이터 전송방법

velog.io

 

 

4.1.3 포워딩/필터링

포워딩 - 패킷이 스위치에 들어온 경우, 도착지 MAC 주소를 확인하고 자신이 가진 MAC 테이블과 비교해 맞는 정보가 있으면 매치되는 해당 포트로 패킷을 포워딩

필터링 - 다른 포트로는 해당 패킷을 보내지 않음

  • 스위치는 이런 포워딩과 필터링을 통해 목적지로만 패킷이 전달되도록 동작
  • 통신이 다른 포트에 영향을 미치지 않으므로 다른 포트에서 기존 통신작업으로부터 독립적으로 동작
  • 일반적인 유니캐스트에 대해서만 포워딩과 필터링 작업을 수행
  • 브로드캐스트나 멀티캐스트 모두 출발지가 사용되지 않으므로 이런 트래픽은 전달이나 필터링 작업을 하지 않고 모두 플러딩

 

4.2  VLAN

 하나의 물리 스위치에서 여러 개의 네트워크를 나누어 사용

 

4.2.1 VLAN이란?

물리적 배치와 상관없이 LAN을 논리적으로 분할, 구성하는 기술

(과도한 브로드캐스트로 인한 단말들의 성능 저하, 보안 향상을 위한 차단 용도, 서비스 성격에 따른 정책 적용과 같은 이유로 네트워크 분리 필요)

  • 유니캐스트뿐만 아니라 브로드캐스트도 VLAN 간에 통신할 수 X
  • VLAN 간의 통신이 필요하다면 서로 다른 네트워크 간의 통신이므로 앞에서 배운 것처럼 3계층 장비가 필요
  • 물리적 구성과 상관없이 네트워크를 분리 가능
  • 물리적으로 다른 층에 있는 단말이 하나의 VLAN을 사용해 동일한 네트워크로 묶을 수 있음

 

 

 

4.2.2 VLAN의 종류와 특징

  • 포트 기반의 VLAN
  • MAC 주소 기반의 VLAN

포트 기반의 VLAN

  • 스위치를 논리적으로 분할해 사용하는 것이 목적
  • 일반적으로 언급하는 대부분의 VLAN
  • 어떤 단말이 접속하든지 스위치의 특정 포트에 VLAN을 할당하면 할당된 VLAN에 속하게 됨
  •  VLAN 선정 기준은 스위치의 포트

MAC 기반의 VLAN

  • 스위치의 고정 포트에 VLAN을 할당하는 것이 아니라 스위치에 연결되는 단말의 MAC 주소를 기반으로 VLAN을 할당하는 기술
  • 사용자들의 자리 이동이 많아지면서 개발
  • 단말에 따라 VLAN 정보가 바뀔 수 있어 다이나믹 VLAN(Dynamic VLAN)이라고도 불림

AA PC가 1번 포트에 연결하면 VLAN 10에 속하고 4번 포트에 연결하면 VLAN 20에 속함
AA PC는 어떤 스위치의 어떤 포트에 접속하더라도 동일한 VLAN 10이 할당

 

 

4.2.3 VLAN 모드(Trunck/Access)

  • 스위치의 각 포트에 각각 사용할 VLAN을 설정하는데 한 대의 스위치에 연결되더라도 서로 다른 VLAN이 설정된 포트 간에는 통신할 수 X
  • VLAN이 다르면 별도의 분리된 스위치에 연결된 것과 같으므로 VLAN 간 통신이 불가능
  • 서로 다른 VLAN 간 통신을 위해서는 3계층 장비를 사용 필요
  •  VLAN으로 구분된 네트워크에서는 브로드캐스트인 ARP 리퀘스트가 다른 VLAN으로 전달될 수 없으므로 3계층 장비를 이용해 통신 필요
  • 각 VLAN끼리 통신하려면 VLAN 개수만큼 포트 연결 필요 ( VLAN을 더 많이 사용하는 중.대형 네트워크에서 이렇게 VLAN별로 포트를 연결하면 장비 간의 연결만으로도 많은 포트가 낭비) => VLAN 태그 기능으로 해결

 

 

VLAN 태그 기능

  • 하나의 포트에 여러 개의 VLAN을 함께 전송할 수 있도록 제공
  • 태그(Tagged) 포트 또는 트렁크(Trunk) 포트라고 함
  • 여러 개의 VLAN을 동시에 전송해야 하는 태그 포트는 통신할 때 이더넷 프레임 중간에 VLAN ID 필드를 끼워 넣어 이 정보를 이용
  • 태그 포트로 패킷을 보낼 때는 VLAN ID를 붙이고 수신 측에서는 이 VLAN ID를 제거하면서 VLAN ID의 VLAN으로 패킷을 보낼 수 있음
  • 일반적인 포트를 언태그(Untagged) 포트 또는 액세스(Access)포트 / VLAN 정보를 넘겨 여러 VLAN이 한꺼번에 통신하도록 해주는 포트를 태그 포트 또는 트렁크 포트

 

태그 포트 / 언태그 포트

  • 태그 포트는 여러 개의 VLAN, 즉 여러 네트워크를 하나의 물리적 포트로 전달하는 데 사용
  • 언태그 포트는 하나의 VLAN에 속한 경우에만 사용
  •  태그 포트는 여러 네트워크가 동시에 설정된 스위치 간의 연결에서 사용되며 하나의 네트워크에 속한 서버의 경우에는 언태그로 설정
  • 언태그 포트로 패킷이 들어올 경우, 같은 VLAN으로만 패킷을 전송
  • 태그 포트로 패킷이 들어올 경우, 태그를 벗겨내면서 태그된 VLAN 쪽으로 패킷을 전송

 

  • 가상화 서버가 연결될 때는 여러 VLAN과 통신 가능성 있음 -> 태그로 설정

 


VLAN 간 통신

VLAN은 스위치 통신을 분할하는 기능 때문에 유니캐스트, 멀티캐스트, 브로드캐스트 모두 VLAN을 넘어가지 X

일반적으로 VLAN이 다르다는 것은 별도의 네트워크로 분할한 것이므로 네트워크가 다르고 IP 주소 할당도 다른 네트워크로 할당되는 것이 일반적임 => 다른 네트워크끼리의 통신이 필요하다면 라우터와 같은 L3 장비의 도움 필요

 


 

4.3 STP

IT 환경에서는 SPoF(Single Point of Failure: 단일 장애점)로 인한 장애를 피하기 위해 다양한 노력을 함

네트워크에서도 하나의 장비 고장으로 전체 네트워크가 마비되는 것을 막기 위해 이중화, 다중화된 네트워크를 디자인하고 구성

네트워크를 스위치 하나로 구성했을 때 그 스위치에 장애가 발생하면 전체 네트워크에 장애가 발생

 

4.3.1 루프란?

말 그대로 네트워크에 연결된 모양이 고리처럼 되돌아오는 형태로 구성된 상황

루프 상황이 발생했을 때 네트워크가 마비되고 통신이 안 되는 상황이 발생

 

4.3.1.1 브로드캐스트 스톰

  1. 루프 구조로 네트워크가 연결된 상태에서 단말에서 브로드캐스트를 발생시키면 스위치는 이 패킷을 패킷이 유입된 포트를 제외한 모든 포트로 플러딩
  2. 플러딩된 패킷은 다른 스위치로도 보내지고 이 패킷을 받은 스위치는 패킷이 유입된 포트를 제외한 모든 포트로 다시 플러딩
  3. 루프 구조 상태에서는 이 패킷이 계속 돌아가는데 이것을 브로드캐스트 스톰

 2계층 헤더에는 이런 3계층의 TTL과 같은 라이프타임 메커니즘이 없어 루프가 발생하면 패킷이 죽지 않고 계속 살아남아 패킷 하나가 전체 네트워크 대역폭을 차지할 수 있음

네트워크의 전체 대역폭을 차지하고 네트워크에 연결된 모든 단말이 브로드캐스트를 처리하기 위해 시스템 리소스를 사용하면서 스위치와 네트워크에 연결된 단말 간 통신이 거의 불가능한 상태

 

브로드캐스트 스톰 발생 시 문제점

  1. 네트워크에 접속된 단말의 속도가 느려짐(많은 브로드캐스트를 처리해야 하므로 CPU 사용률이 높아짐).
  2. 네트워크 접속 속도 느려짐(거의 통신 불가능 수준).
  3. 네트워크에 설치된 스위치에 모든 LED들이 동시에 빠른 속도로 깜빡임
  4. 루프가 만들어진 상황에서는 케이블을 제거하기 전까지 네트워크가 마비된 것 같은 상태가 지속

 

4.3.1.2 스위치 MAC 러닝 중복 문제

같은 패킷이 루프를 돌아 도착지 쪽에서 중복 수신되는 혼란을 일으키기도 하지만 중간에 있는 스위치에서도 MAC 러닝 문제가 발생

 

스위치는 출발지 MAC 주소를 학습하는데 직접 전달되는 패킷과 스위치를 돌아 들어간 패킷 간의 포트가 달라 MAC 주소를 정상적으로 학습할 수 X

스위치 MAC 주소 테이블에서는 하나의 MAC 주소에 대해 하나의 포트만 학습할 수 있으므로 동일한 MAC 주소가 여러 포트에서 학습되면 MAC 테이블이 반복 갱신되어 정상적으로 동작 X

 

 

=> 루프 구성 포트 중 하나의 포트만 사용하지 못하도록 셧다운(Shutdown)되어 있어도 루프 예방 가능

 

네트워크의 SPoF를 예방하기 위해 스위치를 두 개 이상 디자인했는데 다시 수동으로 루프를 찾아 강제로 사용하지 못하게 하는 방법은 바람직하지 않다고 판단 => 루프를 자동 감지해 포트를 차단하고 장애 때문에 우회로가 없을 때 차단된 포트를 스위치 스스로 다시 풀어주는 스패닝 트리 프로토콜이 개발

 


SPoF: 하나의 시스템이나 구성 요소에서 고장이 발생했을 때 전체 시스템의 작동이 멈추는 요소

네트워크 루프(Loop): 두 대 이상의 스위치로 디자인하면 패킷이 네트워크를 따라 계속 전송되므로 네트워크가 마비되는 상황

 

 

4.3.2 STP란?

루프를 확인하고 적절히 포트를 사용하지 못하게 만들어 루프를 예방하는 메커니즘

 

  1. 스위치는 BPDU(Bridge Protocol Data Unit)라는 프로토콜을 통해 스위치 간에 정보를 전달하고 이렇게 수집된 정보를 이용해 전체 네트워크 트리를 만들어 루프 구간을 확인
  2. BPDU에는 스위치가 갖고 있는 ID와 같은 고유값이 들어가고 이런 정보들이 스위치 간에 서로 교환되면서 루프 파악이 가능
  3. 이렇게 확인된 루프 지점을 데이터 트래픽이 통과하지 못하도록 차단해 루프를 예방

 

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

스패닝 트리 프로토콜이 동작 중인 스위치에서는 루프를 막기 위해 스위치 포트에 신규 스위치가 연결되면 바로 트래픽이 흐르지 않도록 차단

해당 포트로 트래픽이 흘러도 되는지 확인하기 위해 BPDU를 기다려 학습하고 구조를 파악한 후 트래픽을 흘리거나 루프 구조인 경우, 차단 상태를 유지

 

차단 상태에서 트래픽이 흐를 때까지 스위치 포트의 상태

 Blocking

- 패킷 데이터를 차단한 상태로 상대방이 보내는 BPDU를 기다림

- 총 20초인 Max Age 기간 동안 상대방 스위치에서 BPDU를 받지 못했거나 후순위 BPDU를 받았을 때 포트는 리스닝 상태로 변경

- BPDU 기본 교환 주기는 2초이고 10번의 BPDU를 기다림

 Listening

- 리스닝 상태는 해당 포트가 전송 상태로 변경되는 것을 결정하고 준비하는 단계.

- 이 상태부터는 자신의 BPDU 정보를 상대방에게 전송하기 시작

- 총 15초 동안 대기

 Learning

- 러닝 상태는 이미 해당 포트를 포워딩하기로 결정하고 실제로 패킷 포워딩이 일어날 때 스위치가 곧바로 동작하도록 MAC 주소를 러닝하는 단계

- 총 15초 동안 대기

 Forwarding

- 패킷을 포워딩하는 단계

- 정상적인 통신이 가능

 

스위치는 루프를 예방하기 위해 매우 방어적으로 동작하는데 새로 연결된 단말이 스위치일 가능성이 있어 BPDU를 일정 시간 이상 기다려 스위치 여부를 파악

스위치를 연결하는 경우뿐만 아니라 일반 단말을 연결하더라도 동일한 시간이 필요

 

 

4.3.2.2 STP 동작 방식

1. 하나의 루트(Root) 스위치를 선정.

A. 전체 네트워크에 하나의 루트 스위치를 선정

B. 자신을 전체 네트워크의 대표 스위치로 적은 BPDU를 옆 스위치로 전달

 

2. 루트가 아닌 스위치 중 하나의 루트 포트를 선정

A. 루트 브릿지로 가는, 경로가 가장 짧은 포트를 루트 포트라고 부름

B. 루트 브릿지에서 보낸 BPDU를 받는 포트

 

3. 하나의 세그먼트에 하나의 지정(Designated) 포트를 선정

A. 스위치와 스위치가 연결되는 포트는 하나의 지정 포트(Designated Port)를 선정.

B. 스위치 간의 연결에서 이미 루트 포트로 선정된 경우, 반대쪽이 지정 포트로 선정되어 양쪽 모두 포워딩 상태 설정

C. 스위치 간의 연결에서 아무도 루트 포트가 아닐 경우, 한쪽은 지정 포트로 선정되고 다른 한쪽은 대체 포트(Alternate, Non-designated)가 되어 차단 상태 설정

D. BPDU가 전달되는 포트

 

 

4.3.3 향상된 STP

RSTP

스패닝 트리 프로토콜은 이중화된 스위치 경로 중 정상적인 경로에 문제가 발생할 경우, 백업 경로를 활성화하는 데 30~50초 소요

=> 백업 경로를 활성화하는 데 시간이 너무 오래 걸리는 문제를 해결하기 위해 RSTP(Rapid Spanning Tree Protocol)가 개발

=> 2~3초로 절체 시간이 짧아 일반적인 TCP 기반 애플리케이션이 세션 유지 가능

=> RSTP는 다양한 BPDU 메시지, 대체 포트 개념, 토폴로지 변경 전달 방식의 변화로 일반 STP보다 빠른 시간 내에 토폴로지 변경을 감지, 복구

 

MST

VLAN 개수와 상관없이 스패닝 트리 한 개만 동작. 이 경우, VLAN이 많더라도 스패닝 트리는 한 개만 동작하면 되므로 스위치의 관리 부하가 적음

 VLAN마다 최적의 경로가 다를 수 있는데 포트 하나만 사용할 수 있다보니 멀리 돌아 통신해야 할 경우도 생김

=> VLAN마다 다른 스패닝 트리 프로세스가 동작하므로 VLAN마다 별도의 경로와 트리를 만들 수 있게 됨

=> 최적의 경로를 디자인하고 VLAN마다 별도의 블록 포트를 지정해 네트워크 로드를 셰어링하도록 구성

 

 

 

 

 

참고: https://product.kyobobook.co.kr/detail/S000001834493

 

IT 엔지니어를 위한 네트워크 입문 | 고재성 - 교보문고

IT 엔지니어를 위한 네트워크 입문 | 클라우드/데브옵스 시대에 알아야 할 인프라 지식 서버실이 있고, 서버 관리자가 따로 있었던 시대를 지나 클라우드 서비스가 보편화되었다. 클라우드 서비

product.kyobobook.co.kr