본문 바로가기

네트워크/네트워크 좀 더 알아보기-스위치

이더채널/HSRP/VRRP

이더채널

이전에 STP에 관해 배울 때 두개의 스위치에 여러 인터페이스가 서로 연결되어있으면 루프 방지를 위해 하나의 포트만 선택한다고했다.


여기서 보면 fa0/1만 사용하는 것을 볼 수 있다.

이더채널은 여러개의 물리적 인터페이스를 하나의 논리적 인터페이스로 묶어 모두 사용 가능하게해주는 기술이다.

이 기술의 가장 큰 장점은 부하분산이 가능하다는 것과 여러 채널을 동시에 이용하니 속도가 그만큼 빨라진다는 것.

만약 짝수로 묶을 시 각 포트 별로 균등하게 분산이 가능하다. 따라서 더 효율적으로 사용이 가능하다.

ex) 위의 경우 4개의 포트가 있다 여기서 4개를 전부 다 묶을 경우 각 포트 별로 25%씩 트래픽을 받는다.

홀수로 묶을 경우 균등하게 분배되지 않는다.

ex) 3개를 묶을 경우 하나의 인터페이스에는 50% 나머지는 25%씩 분배


이더채널은 방식에 따라 3가지로 나뉜다.

1. LAGP -> 표준, 16개의 채널을 묶을 수 있으며 최대 8개까지 사용이 가능하다.

2. PAGP -> 8개까지 묶을 수 있으며 최대 8개 사용이 가능하다.   

3. ON -> 프로토콜을 사용하지않고 묶는 방법.


Switch(config)#int range f0/1-4

인터페이스 모드에 들어간다. 여기서는 range명령어를 써서 인터페이스를 한번에 설정해주었다.

Switch(config-if-range)#channel-group 1 mode active

들어가서 같은 그룹 번호로 포트를 묶어준다. mode는 active로 해준다. mode에 관해선 뒤에 설명하겠다..


반대편 스위치도 똑같은 설정을 진행해주면된다.


위와 같이 모든 포트가 활성화되어있는 것을 확인 가능하다.

모드에는 총 5가지가 있다.

active -> LACP를 사용

passive -> 상대가 LACP를 사용하면 나도 LACP를 사용

desirable -> PAgP를 사용

auto -> 상대가 PAgP를 사용하면 나도 PAgP를 사용

on -> on방식 사용



HSRP(Hot Standby Router Protocol)


LAYER2에서 이중화는 보통 STP가 담당한다. STP는 자동으로 루프구조를 끊고 있다가 해당 포트가 죽을 경우 다른 포트를 살려내 통신을 진행한다.

LAYER3에서의 이중화는 보통 HSRP를 통해 해준다. 따라서 HSRP는 보통 L3 스위치에 구동시킨다.

HSRP는 version 1과 2가 존재한다. 

version 2는 보통 독립적인 멀티캐스트를 쓰거나 IGMP snooping을 설정하기위해서 사용한다.

*IGMP snooping: cisco에서 CGMP라 부른다. 일반적으로 스위치는 멀티캐스트 주소를 인식하지 못한다. 따라서 멀티 캐스트 주소를 받을 경우 모두                        flooding 시켜버린다. 이걸 방지하고자 IGMP snooping을 사용하여 스위치에게 멀티캐스트를 인식시켜준다.


HSRP의 동작방식은 다음과 같다.

우선 스위치가 두개 이상 연결되어있고 각 스위치가 정보를 교환하여 우선순위를 정한다.

이때 1순위 스위치를 active 스위치라 한다.

2순위 스위치는 standby 스위치라하며, active 스위치가 다운 될 시 바로 standby 스위치가 active 상태가 된다.

나머지 스위치는 listen 상태이다.(지켜보고 있는 상태)


HSRP가 구동 중인 스위치는 서로 연결되어 가상의 맥주소와 IP를 생성한다.

이 스위치 밑의 호스트들은 모두 게이트웨이를 생성된 가상의 IP 주소로 설정한다.

처음에는 이 가상의 IP 주소와 맵핑된 맥주소는 active 스위치의 맥주소이다.

따라서 호스트들이 가상의 IP로 데이터를 보내면 모두 active 스위치로 간다.

그러다가 active 스위치 다운 시 standby 스위치가 active 스위치가 되며,

가상의 IP 주소와 맵핑된 맥주소가 자신의 맥주소라 알린다. 따라서 그 후에는 원래는  standby였던 스위치로 데이터를 전송하게된다.

즉 호스트들은 모두 가상의 IP로 데이터를 보내지만 이 가상의 IP와 맵핑된 맥주소를 바꿔서 이중화를 구성한다.




위와 같은 구조에서 HSRP를 구성해본다. 여기서 host들은 모두 가상의 IP를 게이트웨이로 잡았으며 access 스위치와 연결되고 이 access 스위치는 다시 분배 스위치와 연결된다. 그리고 이 분배스위치를 모두 게이트웨이 스위치가 하나로 묶어준다.



DSW1(config)#int vlan 10

DSW1(config-if)#ip add 10.1.10.252 255.255.255.0

DSW2와의 통신을 위해 IP를 지정해준다.

DSW1(config-if)#standby 1 ip 10.1.10.254

HSRP의 가상 IP는 10.1.10.254로 해주겠다는 뜻이다.

DSW1(config-if)#standby 1 preempt delay minimum 30

preempt의 개념에 관해 잘 알아둘 필요가 있다.

DSW1이 현재 active 스위치이며 HSRP 정보 교환을 f1/1에서 한다고 가정하자.

위의 망 기준으로 볼 때 만약 f1/1이 접속이 끊긴다면 당연히 DSW2가 active 스위치가 될 것이다.

그렇다면 DSW1의 f1/2가 끊긴다면 어떻게 될까? 이때도 물론 DSW2가 active 스위치로 바뀌어야한다.

그러나 바뀌지 않는다. 그 이유는 간단하다. HSRP 정보를 직접 교환하는 포트(f1/1)는 당연히 정보가 안오므로 바뀌어야 정상이다.

그러나 f1/2는 다운된다고 바뀌지 않는다. 해당 포트는 HSRP 정보를 직접 교환하고있지도 않으며,

또한 해당 포트가 에러로 인해 shutdown과 no shutdown을 반복하면 그때마다 active와 standby가 변경된다.

이러한 연유로 관리자가 직접 확인해서 바꾸라는 뜻으로 자동으로 바뀌지 않는 것이다.

그러나 preempt 명령어를 쓰면 자동으로 바뀌는 것을 확인 할 수 있다.

뒤에 delay minimum 30초는 이런 뜻이다. 만약 해당 스위치가 다운되서 standby였는데 다시 활성화된다면? active 상태로 바뀐다. 근데 해당 스위치가 active 상태로 바뀌면 맥테이블, 라우팅 테이블 등등 구성해야할 것이 많다. 따라서 30초의 정비 시간을 주고 그 후에 active 상태로 전환하라는 뜻이다.

DSW1(config-if)#standby 1 time 1 3

hello time이 1초고 hold time이 3초이다. 3초가 지날동안 데이터를 못 받을 시 active와 standby 교체가 일어난다.

DSW1(config-if)#standby 1 track fa 1/2 50

f1/2가 다운되면 우선 순위를 50 낮추라는 뜻이다. 이것이 앞서 말한 preempt와 연결되는 개념이다. preempt를 활성화 안시켜주면 해당 명령어로 인해 우선순위는 낮춰지지만 active와 standby 교체가 일어나지않는다.

DSW1(config-if)#standby 1 priority 110

우선순위를 110으로 해준다. 참고로 우선순위가 큰 스위치가 active 스위치가 된다.



DSW2도 위와 같이 설정해준다.

DSW2(config)#int vlan 10

DSW2(config-if)#ip add 10.1.10.253 255.255.255.0

DSW2(config-if)#standby 1 ip 10.1.10.254

DSW2(config-if)#standby 1 preempt

DSW2(config-if)#standby 1 time 1 3

DSW2(config-if)#standby 1 priority 90




DSW1#show standby brief

                     P indicates configured to preempt.

                     |

I nterface   Grp  Pri P State   Active          Standby         Virtual IP

   Vl10        1    60    Active  local           10.1.10.253     10.1.10.254

show standby brief 명령어를 통해 HSRP 상태 확인이 가능하다.



HSRP를 통해서 인터넷을 접속을 불가능하게 만드는 공격이 가능하다.

특정 컴퓨터로 접속해서 자신이 우선 순위가 더 높은 스위치라고 광고하면 모든 데이터는 해커의 컴퓨터 쪽으로 가게 된다.

그렇게 되면 보안 상 위험하고 또한 인터넷과 같은 외부망으로 접근이 불가능하다.

따라서 보안 설정이 반드시 필요하다.



DSW1(config-if)#standby 1 authentication md5 key-string cisco1

DSW2(config-if)#standby 1 authentication md5 key-string cisco1

위의 명령어를 입력 시 서로 간 인증 후 HSRP 패킷을 교환한다.


HSRP와 vlan을 사용하여 이런 식으로도 구성이 가능하다.


위의 토폴로지를 보면 vlan 20이 추가되었다. 여기서 중요한 것은 host 1은 게이트웨이가 10.1.10.254이다. 이 게이트웨이는 DSW1과 맵핑된다.

host 2는 게이트웨이가 10.1.20.254이다. 이 게이트웨이는 DSW2와 맵핑된다.

즉 vlan 10은 DSW1을 통해서만 통신이 가능하고 vlan 20은 DSW2를 통해서만 통신이 가능하다.




DSW1(config-vlan)#int vlan 20

DSW1(config-if)#ip add 10.1.20.252 255.255.255.0

DSW1(config-if)#standby 2 ip 10.1.20.254

DSW1(config-if)#standby 2 preempt

DSW1(config-if)#standby 2 time 1 3

DSW1(config-if)#standby 2 track f1/2 50

DSW1(config-if)#standby 2 priority 90

만드는 법은 위와  완전히 똑같다. 다른 것은 DSW2의 우선 순위 값을 더 높게 준다는 것 뿐!!!



DSW2(config)#vlan 20
DSW2(config-vlan)#int vlan 20
DSW2(config-if)#ip add 10.1.20.253 255.255.255.0
DSW2(config-if)#standby 2 ip 10.1.20.254
DSW2(config-if)#standby 2 preempt
DSW2(config-if)#standby 2 time 1 3
DSW2(config-if)#standby 2 track f1/2 50
DSW2(config-if)#standby 2 priority 110

이렇게 주고 확인을 해보면

DSW1#show standby bri
                     P indicates configured to preempt.
                     |
Interface   Grp  Pri P State   Active          Standby         Virtual IP
  Vl10        1    110 P Active  local           10.1.10.253     10.1.10.254
  Vl20        2    90  P Standby 10.1.20.253     local           10.1.20.254

각각 active, standby 하나씩을 갖고 있는 것을 확인 할 수 있다.




VRRP(Virtual Router Redundancy Protocol)

VRRP 또한 이중화 프로토콜이며, HSRP와 거의 유사하다. 아니 거의 똑같다고 보면된다.

다음과 같은 몇가지 사소한 차이점이 있긴하다.

-preempt가 기본

-가상 IP가 없어도 된다.(자기 자신의 IP로 광고 가능)

-master/slave 구조(master=active, slave=standby)


위와 같은 토폴로지에서 그냥 vlan 10번만 구성해보겠다.


DSW1(config)#int vlan 10

DSW1(config-if)#no standby 1

DSW1(config-if)#int vlan 20

DSW1(config-if)#no standby 2

우선 구동 중인 HSRP를 모두 종료시켜준다.
반대쪽도 똑같이 해준다.




DSW1(config)#track 1 int f1/2 line-protocol
track 1번에 int f1/2의 line-protocol 상테를 저장한다. 뒤에 저장한 것으로 우선 순위를 감소 시킬 수 있다.
DSW1(config)#int vlan 10
DSW1(config-if)#vrrp 1 ip 10.1.10.254
가상 IP를 준다
DSW1(config-if)#vrrp 1 priority 110
우선 순위 지정해준다.
DSW1(config-if)#vrrp 1 timer advertise msec 500
광고 시간을 조정한다. 여기서 주의 할 점은 꼭 마스터만 광고시간을 지정해주어야한다.
DSW1(config-if)#vrrp 1 track 1 decrement 50
track 1에는 int f1/2의 line-protocol 상태가 들어있다. 만약 다운 시 우선 순위를 50 감소시키라는 명령어이다.


DSW2(config)#track 1 int f1/2 line-protocol
DSW2(config-track)#int vlan 10
DSW2(config-if)#vrrp 1 ip 10.1.10.254
DSW2(config-if)#vrrp 1 priority 90
DSW2(config-if)#vrrp 1 timers learn
slave는 해당 명령어를 통해 광고 시간을 지정 할 수 있다.



DSW2#show vrrp bri

Interface          Grp Pri Time  Own Pre State   Master addr     Group addr

    Vl10               1   90  3648       Y  Backup  10.1.10.252     10.1.10.254