(네트워크)고가용성
[카카오 클라우드 스쿨] 네트워크에서 고가용성에 대해 알아보고, 실습해 보자
고가용성(High availablity)
절대로 고장 나지 않음 = 고가용성
- 사용자가 원하는 서비스를 요청했을 때 얼마만큼의 응답률을 보이는가?
- 고가용성이 구축되어 있는 환경은 서비스 다운타임이 거의 없는 환경을 의미함
- (ex 서버를 2개로 구성하면 하나가 고장나도 계속 사용 가능)
- 고가용성을 위해서는 이중화를 구축해서 서비스의 다운타임을 줄여야 함
- 고가용성을 위해서는 Active/Standby (Master/Slave, Primary/Secondary ..)와 같은 환경을 구축한다
- Standby는 두 가지로 구분함
- Hot Standby
- 전원이 켜저 있는 상태에서 항시대기
- Active가 죽었을 때, 복구하는 시간이 빠르다
- 전기세가 많이 나오는 단점
- Cold Standby
- 전원이 꺼져 있는 상태에서 대기
- 전원이 꺼져 있으므로 비용 발생이 없다
- Hot Standby
- DB에서 알아두면 좋은 것들
- 구성 방식
- 클러스터링 : 서버들을 풀에 등록하고 작동 - 한 대처럼 운영한다
- DB운영: Standby-Standby 방식(하나로 주로 처리하다가 고장나면 다른놈이 작동)을 많이 씀
- 안정화
- Replication: Master/Slave로 2 대로 구성하여 백업 자동화, Master에서만 Write가 가능하고, Slave에 이를 복제하는 방식
- Galera Cluster: Replication과는 다르게 모든 노드에서 Write가 가능하다
- 구성 방식
네트워크에서 사용하는 고가용성
- FHRP: First Hop Redundancy Protocol
- Hot Standby Router(Routing 아님) Protocol - Cisco 전용, 벤더 의존적인 프로토콜
- Virtual Router Redundancy Protocol - 표준 프로토콜
- 사실 두개 기능 똑같이 쓰임
- FHRP 작동 방식
- HSRP
- 일반적인 FHRP은 로드밸런싱을 지원하지 않음(한쪽이 문제있으면 다른쪽으로 보내기만 함)
- HSRP에서는 Vlan별 별도의 Active를 두고 이중화를 구현한다
- 안정적으로 24시간 OnLine(인터넷 연결 가능)을 유지시키기 위해 FHRP를 사용한다
- HSRP 작동 예시
FHRP 실습
1 . 다음과 같이 구성한다
2 . 외부 IP 구성
- KT는 실제 상황을 가정한 네이밍임
R1#conf t
R1(config)#hostname KT
KT(config)#int f0/0
KT(config-if)#ip add 192.168.1.105 255.255.255.0
KT(config-if)#no sh
R2#conf t
R2(config)#hostname SK
SK(config)#int fa0/0
SK(config-if)#ip add 192.168.1.205 255.255.255.0
SK(config-if)#no sh
3 . 내부 IP 구성
KT(config-if)#int f0/1
KT(config-if)#ip add 172.16.1.101 255.255.255.0
KT(config-if)#no sh
KT(config)#do ping 192.168.1.205
SK(config-if)#int f0/1
SK(config-if)#ip add 172.16.1.102 255.255.255.0
SK(config-if)#no sh
SK(config)#do ping 192.168.1.105
4 . 기본 라우트 구성
KT(config-if)#ip route 0.0.0.0 0.0.0.0 192.168.1.1
KT(config)#do ping 8.8.8.8
SK(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1
SK(config)#do ping 8.8.8.8
5 . NAT 구성 (우리는 Dynamic PAT 구성할 것)
- 내부PC와 접속하기 위함
- 양쪽에 둘다 집어넣어야 함
KT(config)#access-list 1 permit any
KT(config)#ip nat inside source list 1 int fa0/0 overload
KT(config)#int fa0/0
KT(config-if)#ip nat outside
KT(config-if)#int fa0/1
KT(config-if)#ip nat inside
SK(config)#access-list 1 permit any
SK(config)#ip nat inside source list 1 int fa0/0 overload
SK(config)#int fa0/0
SK(config-if)#ip nat outside
SK(config-if)#int fa0/1
SK(config-if)#ip nat inside
6 . centOS 1번 실행
- gateway 주소 변경
- 라우팅 테이블 확인
7 . 기본 게이트웨이의 STANDBY / ACTIVE 설정!
KT(config-if)#int fa0/1
KT(config-if)#standby 10 ip 172.16.1.254
SK(config-if)#int fa0/1
SK(config-if)#standby 10 ip 172.16.1.254
8 . 위 불안정적 상태를 안정적으로 Active하게 만들자
- 우선순위 값을 지정한다 (클수록 우선)
- 우선순위 권한을 언제든 넘길 수 있도록 설정한다
- KT로 권한이 넘어오게 된다
- track으로 줄일 우선 순위 값을 설정 할 수 있음
KT(config-if)#standby 10 priority 110
SK(config-if)#standby 10 preempt
KT(config-if)#standby 10 preempt
KT(config-if)#standby 10 track f0/0 20
9 . KTISP를 통하는 라우터를 종료시켜 보면
- KT는 Standby가 되며, SK는 Active가 된다
- 다시 KT를 켜면, Active를 되찾아 온다
KT(config)#int f0/0
KT(config-if)#sh
KT(config-if)#no sh
Dynamic Routing 실습
- Dynamic Routing
- 라우터 사이에서 라우팅 프로토콜을 이용해서 네트워크 정보를 교환한다
- 목적지로 찾아갈 수 있는 최적 경로를 선택한 다음, 그 최적 경로를 라우팅 테이블에 Install함
- OSPF(Open Shortest Path First) : 표준프로토콜
1 . 다음과 같이 구성한다
2 . Router1
router ospf 1
network 192.168.1.0 0.0.0.255 area 0
network 10.10.10.0 0.0.0.3 area 0
3 . Router2
router ospf 1
network 192.168.2.0 0.0.0.255 area 0
network 10.10.10.0 0.0.0.3 area 0
- 구성 완료