[KEDUIT] 클라우드 컴퓨팅과 보안솔루션을 활용한 DC 엔지니어 양성교육 - Day20
1. 서론
오늘은 VLAN과 Floating Static Route를 마무리짓고, STP에 대하여 배워보았다.
2. 본론
1. Cisco IOS
1. VLAN
//PC1-4
# conf t
# no ip domain lookup
# no ip routing
# line c 0
# logging sync
# exec-t 0
//PC1
# conf t
# int f0/0
# no sh
# ip add 1.1.10.1 255.255.255.0
# exit
# ip default-gateway 1.1.10.254
# end
# copy r s
//PC2
# conf t
# int f0/0
# no sh
# ip add 1.1.20.1 255.255.255.0
# exit
# ip default-gateway 1.1.20.254
# end
# copy r s
//PC3
# conf t
# int f0/0
# no sh
# ip add 1.1.10.3 255.255.255.0
# exit
# ip default-gateway 1.1.10.254
# end
# copy r s
//PC4
# conf t
# int f0/0
# no sh
# ip add 1.1.20.3 255.255.255.0
# exit
# ip default-gateway 1.1.20.254
# end
# copy r s
//R1
# conf t
# no ip domain lookup
# line c 0
# logging sync
# exec-t 0
# exit
# int f0/0
# no sh
# int f0/0.10
# encapsulation dot1q 10 native
# ip add 1.1.10.254 255.255.255.0
# exit
# int f0/0.20
# encapsulation dot1q 20
# ip add 1.1.20.254 255.255.255.0
# end
# copy r s
//SW1
# conf t
# no ip domain lookup
# line c 0
# logging sync
# exec-t 0
# exit
# vlan 10
# name VLAN10
# exit
# vlan 20
# name VLAN20
# exit
# int f1/1
# switchport mode access
# switchport access vlan 10
# exit
# int f1/2
# switchport mode access
# swtichprot access vlan 20
# exit
# int range f1/9 - 10
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 10
# switchport mode trunk
# end
# copy r s
//SW2
# conf t
# no ip domain lookup
# line c 0
# logging sync
# exec-t 0
# exit
# vlan 10
# name VLAN10
# exit
# vlan 20
# name VLAN20
# exit
# int f1/3
# switchport mode access
# switchport access vlan 10
# exit
# int f1/4
# switchport mode access
# swtichprot access vlan 20
# exit
# int f1/9
# switchport trunk encapsulation dot1q
# switchport trunk native vlan 10
# switchport mode trunk
# end
# copy r s
2. Floating Route
//R1-4
# no ip domain lookup
# line c 0
# logging sync
# exec-t 0
//R1
# conf t
# int lo0
# ip add 1.1.1.1 255.255.255.0
# exit
# int s1/0
# no sh
# encapsulation frame-relay
# no fram inver
# exit
# int s1/0.12 p
# ip add 1.1.12.1 255.255.255.0
# frame inter 102
# exit
# ip route 1.1.2.0 255.255.255.0 s1/0.12 1.1.12.2
# ip route 1.1.3.0 255.255.255.0 s1/0.12 1.1.12.2
# ip route 1.1.4.0 255.255.255.0 s1/0.12 1.1.12.2
# ip route 1.1.23.0 255.255.255.0 s1/0.12 1.1.12.2
# ip route 1.1.32.0 255.255.255.0 s1/0.12 1.1.12.2
# ip route 1.1.34.0 255.255.255.0 s1/0.12 1.1.12.2
# ip route 1.1.0.0 255.255.192.0 s1/0.12 1.1.12.2 //위에 다 지우고 축약하면
# end
# copy r s
//R2
# conf t
# int lo0
# ip add 1.1.2.2 255.255.255.0
# exit
# int s1/0
# no sh
# encapsulation frame-relay
# no fram inver
# exit
# int s1/0.12 p
# ip add 1.1.12.2 255.255.255.0
# frame inter 102
# exit
# int s1/0.23 p
# ip add 1.1.23.2 255.255.255.0
# frame inter 203
# bandwidth 512
# exit
# int s1/0.32 p
# ip add 1.1.32.2 255.255.255.0
# frame inter 213
# bandwidth 1544
# exit
# ip route 1.1.1.0 255.255.255.0 s1/0.12 1.1.12.1
# ip route 1.1.0.0 255.255.192.0 s1/0.23 1.1.23.3 100 //문제 내주실때 아래쪽 라인이 더 빠르게 설정하라고 하셨음
# ip route 1.1.0.0 255.255.192.0 s1/0.32 1.1.32.3
# end
# copy r s
//R3
# conf t
# int lo0
# ip add 1.1.1.1 255.255.255.0
# exit
# int s1/0
# no sh
# encapsulation frame-relay
# no fram inver
# exit
# int s1/0.23 p
# ip add 1.1.23.3 255.255.255.0
# frame inter 302
# bandwidth 512
# exit
# int s1/0.32 p
# ip add 1.1.32.3 255.255.255.0
# frame inter 312
# bandwidth 1544
# exit
# int s1/0.34 p
# ip add 1.1.34.3 255.255.255.0
# frame inter 304
# exit
# ip rotue 1.1.0.0 255.255.240.0 s1/0.23 1.1.23.2 100
# ip route 1.1.0.0 255.255.240.0 s1/0.32 1.1.32.2
# ip route 1.1.4.0 255.255.255.0 s1/0.34 1.1.34.4
# end
# copy r s
//R4
# conf t
# int lo0
# ip add 1.1.4.4 255.255.255.0
# exit
# int s1/0
# no sh
# encapsulation frame-relay
# no fram inver
# exit
# int s1/0.34 p
# ip add 1.1.34.4 255.255.255.0
# frame inter 403
# exit
# ip route 1.1.0.0 255.255.224.0 s1/0.34 1.1.34.3
# end
# copy r s
3. STP
STP(Spanning Tree Protocol)는 루프 방지를 위한 프로토콜이다. 먼저 위의 구조로 PVST(Per VLAN Spanning Tree)를 구성한다.
//SW1
# conf t
# vlan 10
# name VLAN10
# exit
# int range f1/1 - 2
# switchport mode access
# switchport access vlan 10
# end
# sh spanning-tree vlan 10 brief
//SW2
# conf t
# vlan 10
# name VLAN10
# exit
# int range f1/1 - 2
# switchport mode access
# switchprot access vlan 10
//SW3
# conf t
# vlan 10
# name VLAN10
# exit
# int range f1/2 - 3
# switchport mode access
# switchport access vlan 10
그리고 위와 같은 STP에서 스위치간에 BPDU(Bridge Protocol Data Unit)을 주고받는데, 종류로는 설정 BPDU(From Root Switch)와 TCN BPDU가 있다. BPDU의 기본적인 구조는 위의 그림과 같다. 그리고 Bridge ID는 2bytes(우선순위, Default value는 range인 2^16의 1/2인 32768) + 6bytes(MAC address, 오래될수록 일반적으로 값이 낮음)로 이루어져 있으며, 이 값이 가장 낮은 곳이 Root Switch가 되며 Root의 모든 interface는 forward 상태다.(아래 그림처럼 show spanning-tree vlan 10 br
명령어로 확인 가능) 또한 Port ID의 default는 128이다.
debug spanning-tree debug all
명령어를 통해 위와 같은 값을 얻을 수 있는데 위의 구조에 나온 순서대로 값을 해석해볼 수 있다.
//Switch Port Status
1. Disable
- Data와 BPDU모두 송수신 불가능
2. Block
- BPDU 수신만 가능
3. Listening
- BPDU는 송수신 가능하나 Data는 불가능
4. Learning
- BPDU는 송수신 가능하나 Data는 불가능. MAC주소를 학습
5. Forwarding
- BPDU와 Data모두 송수신 가능
위의 설정상 SW1이 Root Bridge가 되는데, STP로 인하여 SW3의 f1/2가 block 돼있다.
그런데 SW2의 f1/1에 문제가 생기는 경우(Blocked Port의 간접링크에 문제가 생기는 경우) 위의 사진처럼 SW2가 SW3으로 자신이 Root라는 BPDU를 보내는데 이 과정을 10번(20secs, max age) 반복 후 SW3의 f1/2이 block에서 listening 상태로 변한다. 그리고 15초의 1차 Forward Delay 이후 Learning 상태로 변하며, 다음 15초의 2차 Forward Delay 이후 Forward 상태로 변한다.
그리고 위의 과정에서 SW3는 SW1(기존 Root SWitch)에게 TCN(Topology Change Notice)를 보낸다. 그후 SW1은 SW3으로 TC(Topology Change)를 보내고, 마지막으로 SW3에서 SW1로 TCA(Topology Change Acknowledgement)를 보낸다.
//STP의 동작 방식
1. Root Switch 선출(전체 Switch중 Bridge ID가 가장 낮은 Switch). 위의 설정에서는 선출된 Switch의 모든 Port가 Forward 상태인 Designated Port가 됨
2. Root Port 선출
- Root Switch에 링크된 상대 Port는 Root Port
- Path cost가 가장 낮은 Port
- 인접 스위치의 Bridge ID가 가장 낮은 Port
- 인접 스위치의 Port ID(aka. Sender-PID)가 가장 낮은 Port
- 자신의 Port ID가 가장 낮은 Port
3. Designated Port 선출
- End Device는 될 수 없음
- Segment에서 Root Port랑 가까운 Port
//위에 했던 설정으로 STP의 동작 방식을 살펴보면 SW2, SW3의 Root Port가 아닌 Port중 하나가 Designated Port가 돼야 한다. 하지만 Designated Port는 Segment당 1개만 존재할 수 있으므로 Bridge ID가 가장 열등한 SW3의 Port가 block(or Alternative Port) 된다.
(Designated Port는 Segment당 1개, Root Port는 Switch당(Root Switch제외)로 1개)
3. 결론
외울게 많다.
4. 참고자료
Ⅰ. 문웅호, 정보통신망
Ⅱ. 문웅호, 하드웨어
클라우드 엔지니어를 꿈꾸며 공부를 시작한 초보 엔지니어입니다. 틀린점 또는 조언해주실 부분이 있으시면 친절하게 댓글 부탁드립니다. 방문해 주셔서 감사합니다 :)
댓글남기기