study/networking
[Network Study] 후니의 쉽게 쓴 시스코 네트워킹 - Part 6(1)
sunyo
2022. 12. 28. 17:18
"6장 스위치를 켜라!" 시작!
SECTION 01
스위치와 브리지
- 스위치와 브리지에 관한 내용은 Part 4 참고
https://dev-sunyo.tistory.com/12
SECTION 02
스패닝 트리로 가는 첫 번째 관문 2가지
- 스패닝 트리 알고리즘(SPT, Spanning Tree Protocol)
- 스위치나 브리지에서 발생하는 루핑을 막아주기 위한 프로토콜
- 스위치나 브리지 구성에서 출발지부터 목적지까지의 경로가 2개 이상 존재할 때
1개의 경로만을 남겨두고 나머지는 모두 끊어두었다가,
사용하던 경로에 문제가 발생하면 그때 끊어두었던 경로를 하나씩 살리는 것
- 브리지 ID(Bridge ID)
- 브리지나 스위치들이 통신할 때 서로를 확인하기 위해 하나씩 가지고 있는 번호
- Bridge Priority(16비트) + MAC Address(48비트)로 구성
- Path Cost
- 한 스위치에서 다른 스위치로 가는데 드는 비용
- 링크의 속도(대역폭)가 빠르면 빠를수록 Path Cost는 더 작은 값이 됨
즉, 링크 속도가 빠르면 빨리 도착하므로, Path Cost는 더 적게 들게 됨 - IEEE는 Path Cost를 정수값으로 지정
SECTION 03
스패닝 트리를 잘하려면 3가지만 기억하세요!
- 기본 동작 3가지
1. 네트워크당 하나의 루트 브리지(Root Bridge)를 갖는다.
2. 루트 브리지가 아닌 모든 브리지(Non Root Brdige)는 무조건 하나씩의 루트 포트(Root Port)를 갖는다.
3. 세그먼트(Segment) 당 하나씩의 데지그네이티드 포트(Designated Port)를 갖는다.
번외) 스패닝 트리 프로토콜에서 루트 포트와 데지그네이티드 포트가 아닌 나머지 포트는 다 막음 - 네트워크당 하나의 루트 브리지(Root Bridge)를 갖는다.
- 네트워크 : 라우터에 의해 나누어지는 브로드캐스트 도메인
- 하나의 브로드캐스트 도메인에 하나씩 루트 브리지 존재
- 루트 브리지 : 스패닝 트리 프로토콜을 수행할 때 기준이 되는 브리지(스위치)
- 루트 브리지가 아닌 모든 브리지(Non Root Brdige)는 무조건 하나씩의 루트 포트(Root Port)를 갖는다.
- 루트 포트 : 루트 브리지 쪽에 가장 가까운 포트
- 세그먼트(Segment) 당 하나씩의 데지그네이티드 포트(지정 포트, Designated Port)를 갖는다.
- 세그먼트 : 브리지 또는 스위치 간에 서로 연결된 링크
- 브리지나 스위치가 연결되어 있을 때 세그먼트에서 반드시 한 포트는 Designated Port로 선출되어야 함
SECTION 04
누가 누가 더 센가? STP에서 힘 겨루기
- 루트 포트와 데지그네이티드 포트 선정 4단계
1. 누가 더 작은 Root BID를 가졌는가?
2. 루트 브리지까지의 Path Cost 값은 누가 더 작은가?
3. 누구의 BID(Sender BID)가 더 낮은가?
4. 누구의 포트 ID가 더 낮은가? - BPDU(Bridge Protocol Data Unit)
- 스패닝 트리 정보를 브리지들 간 주고받기 위해 사용하는 특수한 프레임
- Root BID, Root Path Cost, Sender BID, Port ID 등이 실려 있음
- 브리지나 스위치가 부팅을 하면, 브리지(스위치)는 각각의 포트로 BPDU를 매 2초마다 내보내
서로의 스패닝 트리 정보를 주고받음 - 어떤 BPDU가 가장 좋은지 결정하기 위해 위의 4단계의 순서 정하기를 사용
SECTION 05
스위치에서 대장 브리지(Root Bridge) 뽑기
- 스위치 B, C 부팅
- 스위치 B, C는 BPDU 주고 받음
BPDU에는 자신의 BID 넣음 - 스위치는 받은 BPDU에 BID 비교하여 더 낮은 BID를 가진 스위치를 루트 브리지로 선택
32768.2222.2222.2222(스위치 B)가 32768.3333.3333.3333(스위치 C) 보다 작으므로
스위치 B가 루트 브리지
4. 잠시 후 스위치 A 부팅
5. 스위치 A는 BPDU에 자기의 BID를 실어 스위치 B, C에 보냄
6. 스위치 A의 BID가 제일 낮으므로, 스위치 A가 루트 브리지
이때, 스위치 C를 루트 브리지로 만들고 싶다면
Bridge Priority 필드를 수정하여 가장 낮은 BID를 가지게 함
#브리지의 Priority를 디폴트 값인 32768에서 100으로 변경
#spanning-tree vlan 1 priority 100
SECTION 06
졸병 브리지(Non Root Bridge)의 루트 포트 선출기
- 루트 포트
- Path Cost가 가장 적게 드는 포트
- 루트 포트 선정 과정
- 각 스위치들을 패스트 이더넷(100 Mbps)으로 연결되어 있다고 가정
이 경우 Path Cost는 19 - 따라서 스위치 B는 E0 포트, 스위치 C는 E0 포트가 루트 포트로 선정
- 각 스위치들을 패스트 이더넷(100 Mbps)으로 연결되어 있다고 가정
SECTION 07
스패닝 트리의 마지막 단계
데지그네이티드 포트(Designated Port) 뽑기
- 데지그네이티드 포트
- 브리지와 브리지로 연결된 세크먼트강 각각 한 개의 데지그네이티드 포트를 뽑아야 함
- 데지그네이티드 포트는 스패닝 트리에서 어떤 포트를 풀어주고 막을지 결정
- 세그먼트상에서 Root Path Cost를 서로 비교해
더 작은 Root Port Cost를 가진 포트가 데지그네이티드 포트로 선정
- 데지그네이티드 포트로 선정 과정
- 세그멘트 1 : 스위치 A의 E0 포트가 데지그네이티드 포트로 선정
- 세그멘트 2 : 스위치 A의 E1 포트가 데지그네이티드 포트로 선정
- 세그멘트 3 : 두 포트의 Root Path Cost가 같은 경우 'STP에서의 힘 겨루기 4단계' 거침
- STP에서 힘 겨루기 4단계
- 누가 더 작은 Root BID를 가졌는가? => 동점
두 스위치가 똑같은 루트 BID(32768.1111.1111.1111) 가짐 - 루트 브리지까지의 Path Cost 값은 누가 더 작은가? => 동점
Root Path Cost가 19로 동일 - 누구의 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 포트가 데지그네이티드 포트로 선정
- 누가 더 작은 Root BID를 가졌는가? => 동점
SECTION 08
스패닝 트리 프로토콜의 5가지 상태 변화
- 스패닝 트리 구성 시 포트의 5가지 상태
- Disabled
- 고장 난 포트로 Shut Down 된 상태
- Blocking
- Disabled 되어 있는 포트를 다시 살렸을 때 Blocking 상태
- 데이터는 전송되지 않고, 오직 BPDU만 주고받음
- Listening
- Blocking 상태에 있는 포트가 루트 포트나
데지그네이티드 포트로 선정되면 Listening 상태 - 이때, Non Designated 포트가 되면 Blocking 상태가 됨
- Blocking 상태에 있는 포트가 루트 포트나
- Learning
- Listening 상태에 있던 포트가
포워딩 딜레이 디폴트 시간인 15초 동안 상태를 유지하면 Learning 상태 - 맥 어드레스를 배워 맥 어드레스 테이블 만듦
- Listening 상태에 있던 포트가
- Forwarding
- 포트가 Learning 상태에서 다른 상태가 되지 않고,
다시 포워딩 딜레이 디폴트 시간인 15초 동안 상태를 유지하면 Learning 상태에서 Forwarding 상태로 - Forwarding 상태여야 포트는 데이터 프레임을 주고받을 수 있음
- 포트가 Learning 상태에서 다른 상태가 되지 않고,
- Disabled
- 5가지의 상태 변화를 통해 스위치나 브리지는 링크를 막고 열면서 스패닝 트리를 만듦
SECTION 09
베운 거 써먹기 - 직접 한번 구성해 보자고요!
- 그림 1에서 스패닝 트리 구성하기
- 그림 2) 루트 브리지, 루트 포트, 데지그네이티드 포트 선출
- 루트 브리지 : BID가 가장 낮은 스위치 C
- 그림 3) 포트 상태
- Non Designated 포트는 Blocking 상태
- Blocking 상태인 포트가 있는 곳은 링크가 모두 끊어짐
- 그림 4) 완성된 스패닝 트리
SECTION 10
스패닝 트리에 변화가 생기던 날
- 평화로운 스패닝 트리
- 루트 브리지는 2초마다 Hello BPDU를 Non Root Bridge에 전송
- Hello BPDU를 받은 Non Root Bridge는 자신의 데지그네이티드 포트를 통해 다시 전달
- Non Root Bridge는 지정된 시간 동안 Hello 패킷을 받으면 루트 브리지 가는 길에 문제 없음을 판단
만약 문제가 발생됐다고 판단하면 스패닝 트리를 재편성
- 스패닝 트리 재편성 용어 정리
- Hello Time
루트 브리지는 자신에게 연결된 브리지들에게 헬로 BPDU를 헬로 타임마다 한 번씩 보냄
디폴트 헬로 타임은 2초 - Max Age
브리지들이 루트 브리지로부터 헬로 패킷을 받지 못하면 맥스 에이지 시간동안 기다린 후
스패닝 트리 구조 변경 시작
디폴트 맥스 에이지는 20초 - Forwarding Delay
브리지 포트가 블로킹 상태에서 포워딩 상태로 넘어갈 때까지 걸리는 시간
- Hello Time
- 스패닝 트리 문제 발생
- 스위치 A, C 간의 링크에 문제 발생
- 스위치 C에 2초 후에 헬로패킷이 들어오지 않으면 맥스 에이지 동안 기다림
맥스 에이지 후 아무런 연락이 없으면 스패닝 트리 변경 - 스위치 B가 루트 포트(스위치 B의 E0 포트)를 통해 받은 헬로패킷을
다시 데지그네이티드 포트(스위치 B의 E1 포트)를 통해 뿌리고
그 BPDU를 스위치 C의 E! 포트를 통해 받음 - Blocking 상태인 스위치 C의 E1 포트를 루트 포트로 선정
스위치 C의 E0 포트는 Blocking 상태가 됨 - 이때 스위치 C의 E1 포트는 블로킹에서 리스닝, 러닝을 거쳐 포워딩 상태로 됨
- 한 링크가 끊어졌을 때 스패닝 트리 프로토콜을 이용해
다른 경로를 살리는 데 걸리는 시간이 대략 50초 정도 소요
SECTION 11
카타리스트 스위치 바라보기
- PoE(Power over Ethernet)
- 이더넷 케이블 위에 데이터와 전원을 같이 보내는 방식의 스위치
- 전원 실어 보내는 이유
IP 전화기, AP 등 네트워크 케이블에 연결되어야 하는 장비에 또 하나의 전원 케이블을 연결하지 않더라도
네트워크 케이블에서 전원을 제공하기 위함
- SFP(Small FormFactor Pluggable)
- 광케이블을 접속하기 위한 접속 방식 중 하나
- Dual Purpose Uplink
- 연결을 광케이블로 하고 싶을 때는 SFP 포트를
UTP 연결 시 Base T 포트 선택
- 연결을 광케이블로 하고 싶을 때는 SFP 포트를
SECTION 12
카타리스트 스위치 구성하기
- 스위치 디폴트 구성 확인
- 스패닝 트리 프로토콜을 자동으로 활성화
#스위치 디폴트 구성 확인
#show interface status
- 스위치 IP 주소 세팅
- 스위치의 경우 IP 주소를 세팅하지 않아도 동작에 문제없지만,
스위치를 제대로 관리하기 위해 세팅
- 스위치의 경우 IP 주소를 세팅하지 않아도 동작에 문제없지만,
#유저모드에서 프리빌리지 모드로 변경
>enable
#프리빌리지드 모드에서 구성 모드로 변경
#configure terminal
#IP 주소 세팅
#interface vlan 1
#ip address 132.168.100.1 255.255.255.0
- 디폴트 게이트웨이
- 스위치가 붙어있는 라우터 인터페이스의 IP 주소가 디폴트 게이트웨이
#디폴트 게이트웨이 구성
#ip default-gateway 192.168.1.1
- 스위치 포트의 속도와 Duplex 세팅
#속도 세팅
#speed 10
#duplex 세팅
#duplex half
다음 내용은 아래 링크로
https://dev-sunyo.tistory.com/15