네트워크 기본 스터디를 진행하면서 내용을 정리해보았습니다.
블로그 내에 기존에 정리했던 내용을 모아서 정리한 부분도 있고, 약간 수정하기도 하면서 정리를 해보았습니다.
아마도 계속 조금씩 추가 정리를 하게 될 것 같습니다.
스위치가 허브와 다른 점.
- 스위치가 Hardware의 Address를 인지하고 있음. 즉, 어떠한 Frame Header에 있는 Address를 인지하여,
해당 Address를 가진 Port로만 Packet을 전송할 수 있다.
스위치의 기능
1. Learning
Frame을 받아서, Source MAC Address를 읽어서 Mac-Address-Table에 Source Mac Address를 Port
와 함께 MAC Address Table에 저장한다. (Destination Mac address은 Mac Address Table 검색용)
2. Flooding
데이터가 입력 된 포트를 제외한 모든 포트에 데이터를 보냄. 데이터를 받아서 수신지를 자신의 브리지
테이블에서 비교해서 없을 경우에는 어느 포트 쪽에 수신지가 존재하는지 알 수 없으므로, 전 포트에
모두 보내게 된다.
3. Forwarding
수신지가 송신지의 세그먼트 이외의 다른 세그먼트에 존재 시에 수신지 포트로만 데이터를 보내는 것.
4. Filtering
송신지와 수신지가 같은 세그먼트 내에서 존재할 경우에는 다른 포트로 보낼 필요가 없으므로 다른 포
트를 막음. Collision Domain을 나눠주는 기능을 제공.
5. Aging
MAC-Address Table에서 최초 학습하고 지정된 시간동안, 해당 Mac Address의 통신이 없으며 Table에
서 삭제되며, 지정 시간 이전에 통신을 하게 되면, Timer는Refresh 된다. (default : 5분[300초]) 됨.
Vlan
- Broadcast Domain을 나누는 가상의 Local Network.
- Network를 분리하여, 보안을 강화할 수 있다
- Vlan ID : 1 ~ 4094
1. Normal VLAN : 1 ~ 1005 ( Reserved : 1002 ~ 1005)
2. Extended VLAN : 1006 ~ 4094
VLAN Mode
- Access : 설정한 특정 VLAN에 대한 정보만 정보 전송.
※ 802.1Q 에서는 Native VLAN은 Tagging 하지 않음
- Trunk : 복수 개의 VLAN 정보를 전송할 수 있는 포트 유형
VLAN Tagging
- Switch Port로 Frame이 들어올 때, 해당 Port에 설정된 VLAN 정보가 Tagging 되며, 동일한 VLAN 정보로 설정된 Port로
나갈 때에는 VLAN 정보가 Untagging 된다. 단, Trunk Port로 전송 시에는 Tagging/Untagging 되지 않고 전송 된다.
Native VLAN
- 802.1Q에서 존재하며, 오직 하나의 VLAN만 Native VLAN으로 설정 가능 (Default : VLAN 1)
- Switch 양 단간의 Native VLAN은 동일해야 함.
- 다른 VLAN과 달리 Native VLAN은 Tagging을 하지 않음.
VTP
- 다수의 Switch의 VLAN 정보를 동기화 하기 위한 protocol.
- Switch 간의 VTP 정보를 교환하여, revision Number가 높은 Switch VLAN 정보로 동기화 된다.
- 동일한 Domain Name 간에 동기화 됨.
- Password 설정 시에는 Password도 동일해야 정보 동기화 가능
- 매 5분 마다 혹은 변경 시마다 VTP 광고가 Multicast로 보내지게 된다.
VTP Mode
- Server : VLAN 생성, 삭제, 변경 및 VLAN 정보 전달
- Client : VLAN 생성, 삭제는 불가. 자신의 VLAN 설정 정보를 전달
- Transparent : VLAN 정보를 독립적으로 운영. 다른 Switch의 VTP는 전달은 함.
Spanning Tree Protocol.
- 동작 방식
1. Root Switch 선출
2. Root Switch를 제외한 Switch에서 Root Port 선출
3. 하나의 Segment에 Designated Port 선출
4. Root / Designated Port가 아닌 Port는 Alternate Port가 되며, Block 됨.
Root Port 선출 방식
1. BID가 가장 낮은 BPDU를 수신한 Port
2. Cost 값이 낮은 Port
3. 인접 Switch의 BID가 낮은 Port
4. 인접 Switch의 Port ID가 낮은 Port
5. 자신의 Port ID가 낮은 Port
Portfast
- Listening, Learning 과정 없이, 바로 Forwarding 상태로 전환하는 기능
- Loop 구조가 생기지 않는 종단 장비가 연결된 Port에 설정
- BpduGuard와 함께 사용.
SW(config)# spanning-tree portfast default
SW(config-if)# spanning-tree portfast.
Uplink Fast
- 직업 연결된(Direct) Link Down 시, Block 상태의 Port를 즉시 Forwarding 상태로 변경
- 미 설정 시, Listening, Learning을 거쳐서 변경되므로, 30초 소요
SW(config-if)# spanning-tree uplinkfast
Backbone Fast
- 간접 Link Down 시, Blocking Port를 바로 Listening으로 전환하여 20초의 Convergence Time을 줄임.
(20초 : BPDU MAX Age / 2초 간 10회)
1. Link가 Down되어, Root Switch까지의 경로가 차단된 스위치에서 inferior BPDU를 전송.
2. inferior BPDU를 전송 받은 스위치에서는 자신의 Root Switch의 BID값보다 우선순위가 낮으므로,
Root Switch로 가는 경로에 Root Link Query를 보내, Root Switch까지의 경로를 체크
3. Root Switch에서 Root Link Query Reply를 받으면, 해당 스위치는 Blocking Port를 바로 Listening 변경
BPDU Guard.
- 포트를 통해서 BPDU를 수신했을 때, 해당 포트를 자동으로 Shutdown하는 기능.
- 일반적으로 BPDU를 수신할 일이 없는 종단포트에 설정한다. [ 장비간 포트에는 설정하지 않음 ]
- 전체 포트에 설정하거나, 특정포트에만 설정. [ 전체모드 설정 시 Portfast가 설정된 포트에만 설정]
SW(config)# spanning-tree portfast bpduguard default
SW(config-if)# spanning-tree bpduguard enable
BPDU Filtering
- 포트를 통해서 BPDU를 송.수신하지 않도록 함.
- 전체모드 설정 시 : 송신만 금지. 포트로 BPDU를 수신 시, 포트에 Filtering이 제거되고, BPDU에 따라 동작.
- 특정포트 설정 시 : 송.수신 모두 금지. Spanning-Tree Protocol이 동작하지 않는 효과
- BPDU가 필요 없는 포트(종단포트)에 BPDU 송신을 줄여서 불필요한 동작을 제거.
SW(config)# spanning-tree portfast bpdufilter default
SW(config-if)# spanning-tree bpdufilter enable
.
Loop Guard
- BPDU를 받지 못해도, Block상태의 포트가 Forwarding상태로 변환되는 것을 막음.
→ Loop Guard에 의한 BLOCK로 변경. (LOOPGUARD_BLOCK)
→ 다시 정상적으로 BPDU 수신 시, UNBLOCK 상태로 자동 변경.
- 실제적인 Topology 변화(포트가 Down, Inferior BPDU 수신)시 에는, 정상적으로 BPDU를 수신으로
포트 상태가 정상적으로 전환된다.
- 설정은 전체 설정 및 포트 별 설정 이 모두 가능하지만, 동작은 VLAN별 로 동작하게 된다.
SW(config)# spanning-tree loopguard default
SW(config-if)# spanning-tree guard loop
UDLD (UniDirectional Link Detection)
- 스위치 간의 단방향 링크 발생 시, 해당 포트를 Shutdown하여 Loop발생이나 패킷이 유실되는 것을 방지.
- 포트별로 동작하며, 접속된 상태 장비에서도 UDLD 기능을 지원해야 가능. (UDLD 패킷을 송수신하여 동작)
- Normal Mode : 광케이블의 결선오류로 인한 단방향 링크 감지
- Aggressigve Mode : 광케이블과 UTP의 단방향 트래픽으로 인한 단방향 링크 감지
SW(config-if)# udld port [aggressive | enable | message
Root Guard
- 현재 Root Switch ID보다 우선순위가 높은 Root Switch ID를 가진 BPDU 수신 시, 해당 포트를 Shutdown
- Root Switch가 임의로 변경되어 네트워크에 영향을 주는 것을 방지할 수 있음.
- Root Guard가 설정된 포트에서 BPDU가 더 높은 데이터가 들어오게 되면, 해당 포트는 Block됨.
Block된 포트에서 다시 BPDU가 낮은 데이터가 들어오게 되면, 다시 Forwarding 상태로 전환됨.
SW(config-if)# spanning-tree guard root
SW# show spanning-tree inconsistentports : Block된 포트 확인