▶스패닝 트리 알고리즘
Spanning Tree Protocol의 약자로 STP라고도 부른다. 스위치나 브리지에서 발생하는 루핑을 막아주기 위한 프로토콜인데,
스위치나 브리지 구성에서 출발지부터 목적지까지의 경로가 2개 이상 존재할 때 1개의 경로만을 남겨두고 나머지는 모두 끊어두었다가, 사용하던 경로에 문제가 발생하면 그때 끊어두었던 경로를 하나씩 살린다.
●브리지ID
브리지나 스위치들이 통신할 때 서로를 확인하기 위해 하나씩 가지고 있는 번호라고 생각하면 된다.
브리지 ID는 16비트의 '브리지 우선순위'와 48비트의 'MAC주소'로 구성되어있다. 브리지 우선순위의 기본값(default)은 32768이고 범위는 0~65535다. MAC주소는 스위치나 브리지의 고유 값으로 브리지 우선순위 뒤에 붙는다.
☆ ☆ ☆
스위치도 이 ID를 사용하지만 스위치ID라고 하지않고 그냥 브리지ID라고 한다. (원래 그렇다고해서 딱히 정확한 이유가 있는건지는 모르겠다.)
●Path Cost
말 그대로 '길을 가는데 드는 비용'이라고 할 수 있는데 네트워크 분야에서 길이란, 장비와 장비가 연결되어 있는 링크를 말한다. 즉, 브리지가 얼마나 가까이 그리고 빠른 링크로 연결되어 있는지를 알아내기 위한 값이다.
예를들어, 두 스위치가 10Mbps로 연결되어 있고 Path Cost는 1000Mbps를 둘 사이의 링크 대역폭으로 나눈값이라고 할때 Path Cost는 100이 된다
Path Cost는 링크의 속도(대역폭)가 빠르면 빠를수록 더 작은 값이 된다. 쉽게 말해서 링크 속도가 빠르면 그만큼 빨리 도착할 테니 Path Cost는 적게 든다고 보면 된다. 하지만 기가비트로 넘어가면 소수점으로 계산되기때문에 그냥 그런 경우 아래 표 IEEE와같이 아예 정수값으로 지정했다. 그래서 10메가,100메가 기가비트 정도는 외워두는 것이 좋다.
그럼 실제 문제를 풀어보자.
위 사진과 같이 스위치C에서 A로 가는 Path Cost는 19이므로 스위치D에서 A로 가는 Path Cost는 38이 된다.
▶스패닝 트리 3가지만 기억하라.
1. 네트워크당 하나의 루트 브리지를 갖는다.
2. 루트 브리지가 아닌 나머지 모든 브리지는 무조건 하나씩의 루트 포트를 갖는다.
3. 세그먼트당 하나씩 의 데지그네이티드 포트를 갖는다.
추가적으로 스패닝 트리 프로토콜에서 루트 포트나 데지그네이티드 포트가 아닌 나머지 모든 포트는 다 막아버린다. 즉, 루트 포트와 데지그네이티드 포트를 뽑는 목적은 어떤 포트를 살릴지 결정하기 위한 것이다.
▶STP 순서 정하기
· 더 작은 Root BID를 가진 브리지를 선정
· 루트 브리지까지의 Path Cost 값이 더 작은 브리지를 선정
· 더 낮은 Sender BID를 가진 브리지를 선정
· 더 낮은 포트 ID를 가진 브리지를 선정
이 프로토콜에서 브리지들은 BPDU(Bridge Protocol Data Unit)라는 특수한 프레임을 사용하여 스패닝 트리 정보를 주고받는다다. BPDU는 브리지나 스위치가 부팅될 때 마다 각각의 포트로 2초마다 보내져, 브리지들 사이에서 누가 루트 브리지인지, 어떤 포트가 루트 포트나 데지그네이티드 포트가 될지 결정하는데 사용된다.
▶Root Bridge 뽑기
기본적으로 맨앞에오는 브리지 우선순위가 더 낮은값이 루트 브리지로 선정되지만 만약 모두 default값이거 같은 값이라면 뒤에어는 MAC주소가 더 낮은 값을 루트 브리지로 선정한다.
▶Non Root Bridge 뽑기
root bridge를 선정한 후 나머지 스위치들은 루트 포트를 뽑는다. 루트 포트는 로트 브리지에 가장 가까운 포트로, Path Cost가 가장 적게 드는 포트를 의미한다.
▶Designated Port 뽑기
▷브리지와 브리지로 연결된 세그먼트강 각각 한 개의 데지그네이티드 포트를 뽑아야 함
▷데이지그네이티드 포트는 스패닝 트리에서 어떤 포트를 풀어주고 막을지 결정
▷세그먼트상에서 Root Path Cost를 서로 비교해 더 작은 Root Port Cost를 가진 포트가 데지그네이티드 포트로 선정
▶데지그네이티드 포트로 선정 과정
▷세그먼트 1: 스위치A의 E0 포트가 데지그네이티드 포트로 선정
▷세그먼트 2: 스위치A의 E1 포트가 데지그네이티드 포트로 선정
▷세그먼트 3: 두 포트의 Root Path Cost가 같은 경우 'STP에서의 힘 겨루기 4단계' 거침
▶STP 힘 겨루기 4단계
1. 누가 더 작은 Root BID를 가졌는가? => 동점
두 스위치가 똑같은 루트 BID(32768.1111.1111.1111) 가짐
2. 루트 브리지까지의 Path Cost 값은 누가 더 작은가? => 동점
Root Path Cost가 19로 동일
3. 누구의 BID(Sender BID)가 더 낮은가? => 스위치 B의 E1 포트 승
Sender BID : 자기 지신의 BID
스위치 B의 Sender BID : 32768.2222.2222.2222
스위치 C의 Sender BID : 32768.3333.3333.3333
따라서 스위치 B의 Sender BID가 더 낮음
스위치 B의 E1 포트가 데지그네이티드 포트로 선정
▶STP 5가지 상태 변화
설명 | 데이터 전송 유무 | MAC주소 배우나? | BPDU 주고받나? | |
Disabled | 포트가 고장나서 사용할 후 없거나 Shut Down 상태 | x | x | x |
Blocking | 처음 켜거나 포트를 다시 살렸을 때 | x | x | o |
Listening | 스위치 포트가 루트 포트나 데지그네이티드 포트로 변경 | x | x | o |
Learning | 리스닝 상태에서 15초(default값)동안 버티면 | x | o | o |
Forwarding | 러닝 상태에서 15초(default값)동안 버티면 | o | o | o |
● 5가지의 상태 변화를 통해 스위치나 브리지는 링크를 막고 열면서 스패닝 트리를 만듦
직접 구성해보기
- 사진 1에서 스패닝 트리 구성하기
● 사진 2) 루트 브리지, 루트 포트, 데지그네이티드 포트 선출
○ 루트 브리지: BID가 가장 낮은 스위치C
● 사진 3) 포트 상태
○ Non Designated 포트는 Blocking 상태
○ Blocking 상태인 포트가 있는 곳은 링크가 모두 끊어짐
- 사진 4) 완성된 스패닝 트리
▶스패닝 트리 문제 발생
- 스위치 A, C간의 문제 발생
- 스위치 C에 2초 후에 헬로패킷이 들어오지 않으면 맥스 에이지 동안 기다림 → 맥스 에이지 후 아무런 연락이 없으면 스패닝 트리 변경
- 스위치 B가 루트 포트(스위치 B의 E0 포트)를 통해 받은 헬로패킷을 다시 데지그네이티드 포트(스위치 B의 E1 포트)를 통해 뿌리고 그 BPDU를 스위치 C의 E! 포트를 통해 받음
- Blocking 상태인 스위치 C의 E1 포트를 루트 포트로 선정 → 스위치 C의 E0 포트는 Blocking 상태가 됨
- 이때 스위치 C의 E1 포트는 블로킹에서 리능, 러닝을 거쳐 포워딩 상태로 됨
☆☆☆
한 링크가 끊어졌을 때 스패닝 트리 프로토콜을 이용해 다른 경로를 살리는데 걸리는 시간이 대략 50초 정도 소요
▶카타리스트 스위치
● PoE(Power over Ethernet)
- 이더넷 케이블 위에 데이터와 전원을 같이 보내는 방식의 스위치
- 저원 실어 보내는 이유 - 네트워크 케이블에 연결되어야 하는 장비에 또 하나의 전원 케이블을 연결하지 않더라도 네트워크 케이블에서 전원을 제공하기 위함
● SFP(Small FormFactor Pluggable)
- 광케이블을 접속하기 위한 접속 방식 중 하나
● Dual Purpose Uplink
- 연결을 광케이블로 하고 싶을 때는 SFP포트를 UTP연결 시 Base T포트 선택
▶카타리스트 스위치 구성
●스위치 디폴트 구성 확인
- 스패닝 트리 프로토콜을 자동으로 활성화
# 스위치 default 구성 확인
# show inerface status
● 스위치 IP주소 세팅
- 스위치의 경우 IP주소를 세팅하지 않아도 동작에 문제 없지만, 스위치를 제대로 관리하기 위해 세팅
# 유저모드에서 프리빌리지 모드로 변경
>enable
#프리빌리지드 모드에서 구성 모드로 변경
# configure terminal
# IP주소 세팅
# interface vlan 1
# ip address 132.168.100.1 255.255.255.0
● default 게이트웨이
- 스위치가 붙어있는 라우터 인터페이스의 IP주소가 default 게이트웨이
# 디폴트 게이트웨이 구성
# ip default-gateway 192.168.1.1
● 스위치 포트의 속도와 Duplex세팅
# 속도 세팅
# speed 10
# duplex 세팅
# duplex half
▶MAC주소 저장 장소?
● 콜리전 도메인 막는 기능
- 스위치나 브르지가 출발지에서 들어오는 MAC주소를 보고 그것을 자신의 MAC주소 테이블에 저장한 후, 그 주소 테이블에 있는 MAC주소를 찾으면 그쪽 포트로만 보내고, 나머지 포트는 막아준다.
● MAC주소를 저장하는 방식
1. Dynamic 방식
MAC주소 하나를 배우고 나면, MAC주소 테이블에 저장하고 사용한다. 이때 이 주소를 사용한지 300초(default)가 지나도록 다시 사용하지 않으면, 이 주소는 MAC주로 테이블에서 지워진다.
2. Permanent 방식
천년만년 절대 지워지지 않는 방식이다. 수동으로 MAC주소를 저장(스태틱 MAC주소)
▶가상의 랜(Virtual LAN)
virtual lan을 줄여서 VLAN이라고 부르는데 한 대의 스위치를 마치 여러대의 분리된 스위치처럼 사용하고, 또 여러 개의 네트워크 정보를 하나의 포트를 통해 전송할 수 있다. 따라서 하나의 스위치에 연결된 장비들도 브로드캐스트 도메인이 서로 다룰 수 있다.
라우터는 스위치로 하나의 링크만을 이용해서 3개의 네트워크 정보를 보낼 수 있다.
▶ VLAN 개념
1. 허브나 브리지에서는 지원하지 않는 기능으로 VLAN은 스위치에서 지원하는 기능이다.
2. VLAN은 한 대의 스위치를 여러 개의 네트워크로 나누기 위해서 사용하는데 스위치가 VLAN으로 나누어지면 나누어진 VLAN 간의 통신은 오직 라우터를 통해서만 도메인이 가능하다.
▶VLAN에 2대의 스위치 구성
- 스위치 안에 있는 각각의 스위치를 VLAN이라고 한다. 따라서 한 대의 스위치가 3개의 VLAN으로 나누어져있다.
- 2대의 스위치는 패스트 이더넷 포트를 통해 연결한다.
- VLAN1,2,3은 서로 통신 불가능하다. 서로 다른 네트워크이기 때문에 라우터를 통해서만 가능하다.
- 같은 VLAN끼리는 스위치를 건너서도 통신이 가능하다.
▶트렁킹
모든 VLAN이 하나의 링크를 통해 다른 스위치나 라우터로 이동시키는 것
▶네이티브 VLAN
모든 VLAN 패킷에 각각 VLAN정보가 존재하지만, 네이티브 VLAN은 정보가 없다. 모든 스위치 네트워크에서 유일하게 한 개의 VLAN만을 네이티브 VLAN으로 세팅 가능.
▶VTP
VLAN Trunking Protocol의 약자로 VLAN 정보를 서로 주고받아 스위치들이 가지고 있는 VLAN 정보를 항상 일치시켜주는 프로토콜.(시스코만의 프로토콜)
▶VTP 간 주고받는 메세지 형
- Summary Advertisement
VTP 서버가 자기에게 연결되어 있는 스위치들에게 5분마다 한번씩 전달하는 메시지
자신이 관리하는 VTP 도메인의 구성에 대한 Revision 넘버를 보냄
- Subset Advertisement
VLAN의 구성이 변경되었을 때나 VTP 클라이언트로부터 Advertisement Request 메시지를 받을 때 전송
- Advertisement Request
클라이언트가 VTP 서버에 Summary Advertisement와 Sebset Advertisement를 요청하는 용도로 사용
▶VTP의 3가지 모드
1. VTP 서버 모드
· VLAN을 생성 및 삭제, 이름 변경, Configuration Revision Number 전달 등을 할 수 있다.
· VTP 도메이느이 나머지 스위치들에게 VTP 도메인 이름 설정, VLAN 구성 등을 할 수 있다.
· VTP 서버는 VTP 도메인 내의 모든 VLAN에 대한 정보를 NVRAM에서 관리한다.
2. VTP 클라이언트 모드
· VTP 서버가 전달해준 VLAN정보를 받고 다른 스위치에게 전달하는 것만 가능하다.
· VLAN 정보를 NVRAM에 저장하지 않기에 리부팅하면 모든 정보를 잃어서 VTP 서버에게서 다시 받아야 한다.
3. VTP 트랜스페어런트 모드
· VTP Transparent모드는 VTP 도메인 영역 안에 있지만 서버로부터 받은 메시지로 자신의 VLAN을 업데이트 하지 않는다.
· 직접 VLAN을 만들고 삭제할 수 있고 이 정보를 다른 스위치에게 전달하지 않는다.
· 서버로부터 받은 메시지를 전달해주는 역할만을 한다.
· 자신의 VLAN 정보를 NVRAM에 저장한다.
☆☆☆
VTP 도메인 이름은 VLAN을 새로 만들거나 변경하기 전에 먼저 만들어야한다.
Config Revision 값은 VLAN이 새로 만들어지거나 지워질 경우 1씩 올라가고 최초 값은 0이다.
▶VLAN 구성하는 명령어
#VTP 도메인 이름 설정
#vtp domain cisco
#VTP 모드 입력
#vtp mode server
#VTP 구성 확인
#show vtp status
#Fastethernat 0/1번을 트렁크로 세팅
#int fa 0/1
#switchport mode trunk
#트렁크 세팅 확인
#show interface fa0/1 switchport
▶VLAN 구성과 이해
서로 다른 VLAN에 속한 장치들이 통신할 수 있도록 한다.
방법:
- VLAN은 네트워크를 논리적으로 분할합니다. 예를 들어, VLAN 1에 PC 1을, VLAN 2에 PC 2를 연결한다.
- 스위치 포트 중 하나를 트렁크 포트로 설정하여, VLAN 간 통신을 라우터로 라우팅한다. 이 트렁크 포트는 여러 VLAN의 데이터를 전달할 수 있다.
- 라우터에서는 인터페이스가 VLAN 별로 데이터를 수신하고 서로 다른 VLAN 간의 통신을 가능하게 한다.
▶ 스위치 설정
●기본설정
○ 스위치의 호스트 이름을 설정
○ 스위치에 관리 IP 주소와 서브넷 마스크를 할당
○ 디폴트 게이트웨이를 설정
●VTP설정
○ VTP 모드를 설정합니다 (예: Transparent)
○ VTP 도메인 이름을 할당
●트렁크 포트 설정과 VLAN 할당
○ 트렁크 포트를 설정하고, 해당 포트가 VLAN 데이터를 전달
○ 특정 포트를 특정 VLAN에 할당 (예: fa0/5를 VLAN 2에 할당)
▶ 서브 인터페이스와 라우터 설정
● 서브 인터페이스 개념
하나의 물리적 인터페이스를 논리적으로 여러 개로 나누어, 다수의 VLAN을 처리할 수 있게 하는 기술
●설정방법
○ 물리적 인터페이스(예: fa0/0)를 활성화
○ 서브 인터페이스(에: fa0/0.1, fa0/0.2)를 생성하고, 각각에 VLAN ID와 IP 주소를 할당
○ 이를 통해 라우터는 하나의 인터페이스를 사용하여 여러 VLAN에 접속할 수 있다.
▶라우터의 고급 구성
●IOS 버전에 따른 구성 차이
○ 예전 IOS 버전에서느 네이티브 VLAN(보통 VLAN 1) 설정이 별도의 서브 인터페이스 없이 주 인터페이스에 직접 적용
○ 새로운 버전에서는 서브 인터페이스를 통해 네이티브 VLAN을 설정
●네이티브 VLAN 설정 방법
○ 서브 인터페이스를 생성하고, VLAN ID(예: 1)와 IP 주소를 할당
○ 이 서브 인터페이스는 네이티브 VLAN의 트래픽을 처리
참고! 개인공부를 위해 간략하게 책 내용을 남긴 글입니다.
'개인 공부 > [CCNA] 후니의 쉽게 쓴 CISCO 네트워킹' 카테고리의 다른 글
8장 라우팅 프로토콜과의 한판 (0) | 2023.11.21 |
---|---|
7장 라우터만 알면 네트워크 도사? (0) | 2023.11.03 |
5장 IP 주소로의 여행 (0) | 2023.11.01 |
4장 네트워크 장비에 관한 이야기 (0) | 2023.10.30 |
3장 TCP/IP와의 만남 (1) | 2023.10.30 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!