본문 바로가기

Network

Layer 2 skills

반응형

Layer 2 

1. VLAN

2. trunk 

3. etherchannel  +  port channel 

4. STP (Spanning Tree Protocol)

 

 

 

 

1. VLAN (Virtual LAN)

 

논리적으로 분할된 switch network를 말하는데,

기본적으로 L2는 broadcast domain을 나눌 수 있는 기능이 없어

따라서 해당 기능을 L2에 적용하기 위해선 VLAN이 필요한데,

VLAN에는 총 세 가지 주요 기능들이 있어

 

 

- broadcast domain 분할

 

- 보안성 강화

 

- load balancing 

 

 

첫 번째로 볼 broadcast domain 분할 기능이야

현재 많은 protocol들이 broadcast 전송방식을 사용하기 때문에 broadcast traffic이 많아지면

장비들의 성능은 저하될 수밖에 없어

따라서, L2에서 VLAN을 통한 network 분리를 하게 되면

같은 VLAN끼리만 braodcast frame을 전송하게 되겠지?

이를 통해 broadcast traffic 양도 줄이게 되는 효과를 볼 수 있어

 

 

 

두 번째로 보안성 강화

서로 다른 VLAN끼리의 통신은 반드시 L3 기능이 들어간 라우터나 L3 switch를 거쳐야만 통신이 가능해

그런데, VLAN 없이 통신을 하게 된다면

단순하게 L2 switch mac table을 통해서 sniffing 공격을 당할 수 있고,

MAC flooding 공격으로 L2 switch를 HUB처럼 동작하게 만들 수도 있어

따라서 서로 다른 VLAN끼리 통신을 위해선

L3 장비를 거치게 되는데 해당 장비에 다양한 보안정책을 적용해서

VLAN으로 분리된 network의 보안성을 강화할 수 있어

 

 

 

세 번째로는 Load balancing 이야

load balancing은 부하 분산이라는 뜻인데

L2에서 VLAN을 사용하지 않고 통신을 하게 된다면

단순히 STP의 priority에 따라 route가 결정되면서

모든 traffic이 고정된 route로만 switch를 거쳐서 통신을 하게 돼

이렇게 되면 이중화를 구현할 수 없기 때문에 VLAN을 설정해서

VLAN별로 priority를 따로 부여하여

vlan 11은 sw1으로 vlan 12는 sw2로 route를 분산시킬 수 있도록 만들 수 있어

 

 

 

vlan 설정 후 확인 

show vlan brief

현재 vlan11과 12가 fa0/1와 fa0/2에 할당되어 active 상태로 있음을 확인할 수 있다.

 

 

 

 

 

 

 

2. trunk

 

trunk는 복수 개의 VLAN frame을 전송할 수 있는 link를 말해

하나의 port에 하나의 VLAN만 소속시킬 수 있는 access mode와 다르게

trunk mode는 여러 개의 VLAN을 하나의 port에 소속시킬 수 있도록 하는 방식이야

우리가 사용할 protocol은 802.1Q에서 정의된 표준 trunking protocol이야

 

 

 

 

ethernet frame을 보면 TPID, TCI, TYPE 이렇게 세 가지가 보일 거야

이 세 가지가 바로 802.1Q tag로 802.1q를 encapsulation 하면 다음과 같이 

ethernet frame에 들어가게 돼

TCI에서 0x00b는 VLAN number로 vlan 12번이 지금 encapsulation 됐음을 볼 수 있어

 

 

 

trunk encapsulation 명령 예시

 

int fa0/1

switchport trunk encapsulation dot1 q   (802.1q encapsulation 명령)

switchport mode trunk                          (fa0/1 trunk mode로 전환)

switchport trunk allowed vlan 11,12      (trunk를 허용할 vlan 설정)

 

 

 

 

 

3. etherchannel

 

etherchannel은 두 switch 간에 연결된 여러 개의 port들을 하나의 port처럼 동작시키는 기술이야

만약 중요 회선이 단절되었을 경우에라도 통신은 지속적으로 이뤄져야 하잖아?

이를 위해 회선 이중화가 필요한데, 이때 적용하는 기술이 etherchannel 이야

좀 있어 보이게 말하자면 loadbalancing을 수행하기 위한 기술이다!라고 하지 ㅎㅎ

자 그렇다면 etherchannel에서 사용하는 protocol이 뭐가 있는지 알아볼까? 

 

 

LACP와 PAgP mode 차이

 

 

LACP는 active mode와 passive mode 두 가지 상태로 나뉘어 있고

PAgP는 desirable mode와 auto mode 두 가지 상태로 나뉘어 있어

위의 그림을 참고하고 어떤 상태로 있을 때 protocol이 정상적으로 동작하는지 확인해두도록 하자

 

 

etherchannel 설정 시 access mode일 때와 trunk mode일 때 고려해야 되는 상태들이 있는데...!

 

 

- access mode: port speed, duplex mode, vlan number가 동일해야 etherchannel 가능

- trunk mode: encapsulation, native vlan, allowed vlan number가 동일해야 etherchannel 가능

 

 

 

 

etherchannel 설정 예시

 

 

int range fa0/1-2

switchport trunk encapsulation dot1 q

switchport mode trunk

 

int portchannel 11   (etherchannel로 만들어질 port의 번호를 지정)

int range fa0/1-2

channel-group 11 mode active   (LACP mode로 portchannel 11에 적용)

 

portchannel의 역할은 물리적인 interface들을 하나로 묶어서 하나의 channel로 만드는 역할이야

즉, 물리적인 interface를 묶어 논리적인 interface로 만들어주는 역할을 하지!

 

 

sh etherchannel summary 명령으로 etherchannel의 상태를 확인해볼까?

 

layer 2에서 in use 상태로 LACP mode로 연결이 정상적으로 이뤄졌다.

 

 

## L3 etherchannel ##

 

위에 예시는 L2에서 적용한 etherchannel이었다면, L3에도 etherchannel을 적용할 수 있어

L2 etherchannel과 유사하지만 한 가지 다른 점은 port-channel에 ip를 부여해준다는 거야

위의 etherchannel Topology에 다음과 같이 적용해봤어

 

 

 

위에서 적용한 L2 etherchannel의 경우는 routing 기능이 없는 L2에서 이뤄지겠지만

L3 etherchannel의 경우 routing 기능까지도 적용할 수 있게 돼

 

 

 

 

이렇게 되면 load-balancing의 기준을 MAC 주소로만 했었던 etherchannel에서

이제는 ip 주소를 통해서 load-balancing 도 가능하게 되는 거야

이 부분에 대해서는 추후에 ECMP를 하면서 다뤄보도롤 할게!

 

 

 

4. STP (Spanning Tree Protocol)

 

L2 switch는 보통 이중으로 구성하는데

이중화 구성을 통해서 switch나 링크가 down 되어도 

network가 중단 없이 동작하도록 하고, 

traffic을 분산시켜 network의 성능을 향상해주도록 하는데

문제는...!!

 

이중화로 인하여 ethernet frame looping이 발생할 수 있어

looping이 발생하면, switch는 역할을 수행하지 못하고

broadcast storm으로 인한 hub 역할밖에 할 수 없어

따라서 이를 방지하기 위해 각각의 switch에 priority를 부여하여 특정 port로만 연결을 시키고

특정 port가 down이 되었을 때 이중화를 통한 network를 이어갈 수 있도록 해주는 기술이야!

 

 

 

 

 

위에서 봤듯이 switch 별로 priority를 부여해 제일 낮은 priority를 가진 switch를 root switch로 지정

이때 root switch를 결정하는데 기준이 되는 data를 BPDU(Bridge Protocol Data Unit)라고 해 

BPDU에서 가장 중요한 부분은 바로 bridge ID야! 

이 bridge ID에 구성요소들을 통해서 root switch를 결정하게 돼

 

 

 

Bridge ID 구성

 

Priority(2 byte) MAC adddress (6 byte)

 

 

priority: 기본값이 16진수로 0x8000, 10진수로 32768

이를 확인할 수 있는 명령이 있는데 바로 show spanning-tree vlan [number]로 확인할 수 있어

밑에 토폴로지를 예시로 vlan 11에 대한 정보를 switch 별로 알아볼게

 

 

 

 

현재 AGG1 switch 가 root switch이고, 2960 switch의 fa0/4 port가 block 상태임을 알 수 있어

AGG1과 2960 switch에 show spanning-tree vlan 11 명령으로 priority를 확인해보자

 

 

 

 

해당 switch가 root switch임을 알 수 있고

동시에 priority가 11인 것도 볼 수 있어 (why 11?)

priority = [ 기본 priority + ex-sys id(vlan number) ]

 

 

 

 

 

2960 switch는 8203으로 

spannig-tree vlan 11 priority 8192 명령을 기본적으로 실행시킨 상태야

여기에 vlan number인 11을 더해서 다음과 같은 priority가 나오는 거고!

그리고 fa0/4 port를 보면 BLK로 spanning-tree-protocol로 인해 blocking 된 것을 볼 수 있지

 

이처럼 STP를 통해서 L2는 이중화 작업을 구성할 수 있게 돼!

나중에 L3에서도 이중화 작업을 수행하는 protocol인 HSRP에 대해서 배울 텐데

STP와 HSRP의 이중화 작업은 동일하지만 Layer가 다른 protocol임을 알아두도록 하자

 

 

 

 

 

 

자 여기까지가 Layer 2에서 필요한 개념들과 protocol들이었어

다음 시간에는 Layer 3에 필요한 개념들과 protocol들을 배워보도록 할게

 

 

반응형

'Network' 카테고리의 다른 글

Failover (Active-Standby)  (1) 2022.11.08
Failover link, stateful link  (0) 2022.11.08
3-tier architecture  (2) 2022.11.07
OSPF  (0) 2022.11.07
Layer 3 skills (HSRP)  (0) 2022.11.07