Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
이중화
네트워크의 경로를 2개 이상으로 만들어, 특정 경로 장애 발생 시 다른 경로를
사용하여 서비스에 지장이 없도록 하는 것을 말한다.
예를 들어 아래에서 R1에서 R2로의 최단 경로에 장애가 발생시, 이중화가 없다면 R1에서 R2로의 트래픽이 전혀 전달될 수 없다.
만약 백업 경로를 R1 -> R3 -> R2 로 설정해 두었다면, 장애 발생 시에도 통신을 원활히 진행할 수 있다.
이중화 구현 종류
- Link Aggregation (이더채널, 티밍 등) 을 사용한 링크의 이중화
- Spanning-Tree 를 활용한 Layer2 경로의 이중화
- 듀얼포트 LAN 카드를 활용한 링크의 이중화(Client , Server)
- GATEWAY의 역할로 사용되는 장비를 이중화하는 Gateway 이중화
- 라우팅 프로토콜을 활용한 라우팅 경로 이중화.(RIP, OSPF, EIGRP 등)
우리는 이 중에서 라우팅 경로 이중화를 진행해 보자.
라우팅 경로 이중화
HQ에서 두 곳의 지사로 VPN을 설정한다고 가정해 보자.
한 router가 장애 시, 모든 트래픽에 장애가 발생하는 것을 방지하기 위해 두 개의 router에 각자 두 곳의 지사로 VPN을 설정할 것이다.
두 곳의 router가 두개의 VPN을 모두 사용하면 속도 측면에서는 좋을지 몰라도 비용은 많이 발생한다.
특히 경로의 다중화가 가장 큰 문제이다.
경로 다중화는 관리 대상이 늘어날 뿐만 아니라 패킷이 갈 때와 올 때의 경로가 달라질 수 있다.
이런 경우를 비대칭 라우팅이라고 한다.
반대로 대칭형 라우팅은 가고 오는 길 같기 때문에 보안 정책 설정이 쉽다.
비대칭 라우팅의 해결을 위해 StateFul이라는 개념이 나오게 된다.
특정 경로만 먼저 사용하려면 어떻게 해야 할까?
경로 우선순위 설정
HQ로부터의 경로를 확인해 보면 [AD/Metrix]의 정보가 보인다.
Administrative Distance(AD)
라우팅 경로의 Administrative Distance(AD)는 라우터가 여러 경로를 가질 때 어떤 경로를 우선시할지를 결정하는 데 사용되는 값입니다. 이 값은 각 경로의 신뢰도를 나타내며, 낮은 값일수록 해당 경로를 더 신뢰하게 됩니다.
다른 경로들 중에서 가장 낮은 Administrative Distance를 가진 경로가 라우터에게 가장 우선되는 경로로 간주됩니다. 일반적으로 다음과 같은 Administrative Distance 값이 사용됩니다:
1. Directly connected interface: 0 (가장 우선시 됨.)
2. 정적(Static) 경로: 1 (라우팅 프로토콜 보다 우선시 됨.)
3. EIGRP 외부 경로: 170
4. OSPF 내부 경로: 110
5. RIP 경로: 120
6. 외부 BGP 경로: 20
예를 들어, 라우터가 동일한 목적지에 대해 두 가지 경로를 가지고 있을 때, 하나는 정적 경로(AD 1)이고 다른 하나는 OSPF 경로(AD 110)일 경우, 정적 경로가 더 낮은 AD 값을 가지므로 라우터는 정적 경로를 우선하여 사용합니다.
만약 두 경로가 같은 AD면(같은 프로토콜) Metrix 값을 확인하게 된다.
Metric
라우팅 경로의 Metric(메트릭)는 경로 선택에 영향을 미치는 다양한 요소의 측정값입니다. 메트릭은 각 경로의 품질이나 비용을 나타내며, 경로 선택 알고리즘에 의해 사용되어 가장 적합한 경로를 선택하는 데 도움이 됩니다.
메트릭 값이 작을수록(또는 값이 높을수록, 프로토콜에 따라 다름) 경로가 더 선호되며, 라우터는 더 좋은 품질이나 낮은 비용을 갖는 경로를 선택하도록 경로를 결정합니다.
라우팅 경로 이중화 문제
R1에서 R2로의 최단 경로에 장애가 발생 시, 이중화가 없다면 R1에서 R2로의 트래픽이 전혀 전달될 수 없다.
만약 백업 경로를 R1 -> R3 -> R2 로 설정해 두었다면, 장애 발생 시에도 통신을 원활히 진행할 수 있다.
따라서 우리는 static 경로로 라우팅 경로를 세팅하되, 백업 경로를 더 높은 AD로 설정하여 기본적으로는 Best path를 사용하도록 설정하자.
우리가 이러한 경로 이중화를 세팅하는 궁극적인 목적은 R1의 구성 파일 백업을 장애 없이 진행하기 위해서이다.
GNS3 환경 구성
백업 라우팅 경로 설정
#R1
ip route 100.1.0.0 255.255.255.0 10.1.12.2 10 #100.1.0.0으로의 주 경로
ip route 100.1.0.0 255.255.255.0 10.1.13.3 20 #100.1.0.0으로의 대체 경로(R3로)
#R2
ip route 100.1.1.0 255.255.255.0 10.1.12.1 10 #100.1.0.0으로의 주 경로
ip route 100.1.1.0 255.255.255.0 10.1.23.3 20 #100.1.0.0으로의 대체 경로(R3로)
ip route 10.1.12.1 255.255.255.255 s1/0 10 #10.1.12.1으로의 주 경로
ip route 10.1.12.1 255.255.255.255 10.1.23.3 20 #10.1.12.1으로의 대체 경로(R3로)
ip route 10.1.13.1 255.255.255.255 s1/0 10 #10.1.13.1으로의 주 경로
ip route 10.1.13.1 255.255.255.255 10.1.23.3 20 #10.1.13.1으로의 대체 경로(R3로)
Shutdown 전에는 R1(10.1.12.1)으로의 트래픽은 바로 S1/0 인터페이스를 타도록 되어 있다.
우리는 백업 경로를 설정해 주었으므로 R1에서 R2 사이 회선을 shutdown해도 R1과 R3간의 네트워크가 백업 경로를 타고 가게 된다.
AD 우선순위에 가려져 보이지 않던 경로가,
회선 Shutdown 후에는 10.1.23.3(R3)로 바뀌어 있다.
따라서 트래픽이 대체 경로로 타고 간다.
(R1 <-> R3 <-> R2)
FTP로 R1의 구성 파일 백업하기
우리가 이러한 경로 이중화를 세팅한 이유는 R1의 구성 파일 백업을 장애 없이 진행하기 위해서이다.
FTP 설정은 이전 가이드를 참고하자.
https://everenew.tistory.com/350
세팅 후, Window 10에서 파일질라를 통해 접속해 보자.
Router 설정 파일 백업하기
archive를 이용하여 정기적으로 Config Backup 하기
Router(config)# ip ftp username <사용자명>
Router(config)# ip ftp password <비밀 번호>
Router(config)# archive
Router(config-archive)# path ftp://<ftp서버ip>/R1-TEST
Router(config-archive)# write-memory
Router(config-archive)# time-period 1440 #1440분(24시) 이후 백업
Archive 이후 파일질라에서 확인해 보면, 백업 파일이 보인다.
또는 wr 명령어로 config 파일을 startup 파일에 저장 시에도 자동으로 FTP 서버로 백업된다.
kron을 이용한 정기적인 명령 스크립트를 이용한 방법
kron policy-list backup
cli sh run | redirect ftp://<ftp서버_ip>/backup/Router-CFG!
cli sh run 명령으로 running-config정보를 출력한 후,
ftp://<ftp서버_ip>/ciscobackup/ 폴더 아래 Router-CFG라는 파일로 Redirection 시키는 명령어
Router(config)# kron occurrence backup1 at 22:45 recurring
Router(config-kron-occurrence)# policy-list backup(정책 이름)
Router# sh kron schedule # kron schedule 상황 보기
NTP 세팅
라우터와 FTP 서버 간의 시간이 동기화되지 않으면, cron을 통한 예약 백업에 문제가 발생하기 쉽다.
혹은 롤백을 하는 데 있어서 시간이 다르면, 어떤 파일이 롤백 대상 파일인지 알기 힘들 수 있다.
따라서 FTP 서버에 NTP 서버를 설치하여 시간이 동기화되도록 만들어보자.
#ntp 설치
sudo apt-get install -y ntp
#ntp 설정
sudo nano /etc/ntp.conf
pool은 주석 처리
Server 127.127.1.0으로 자기 자신의 time을 client에게 전달하도록 세팅한다.
그리고 접근 제한에 라우터들의 네트워크에서는 접근가능 하도록 세팅해 주자.
이후 재시작
sudo service ntp restart
라우터에서 NTP 서버 지정하기
Router(config)# clock timezone [Time Zone Offset]
Router(config)# ntp server [Ubuntu NTP Server IP]
[Time Zone Offset]에는 라우터의 시간대 오프셋을 지정합니다. 예를 들어, UTC로부터 -5시간인 경우 "-5"를 입력
[Ubuntu NTP Server IP]에는 Ubuntu NTP 서버의 IP 주소를 입력
패킷 확인 시 NTP 패킷이 확인된다.
do show ntp associations로 세팅된 정보 확인
do show ntp status 로 ntp 상태 확인
이때 router에서는 동기화에 몇 분간의 시간이 소요된다.
iburst 설정으로 빠르게 동기화하려 하더라도, GNS의 라우터에서는 동기화에 5분 정도의 시간이 소요된다.
잘못된 줄 알고 ntp를 계속 restart 하면 계속 시간을 받아오지 않을 수 있으니 주의하자.
방금 떠나버린 버스를 기다리듯이 어련히 기다려주자.
이러한 세팅을 통해, 한쪽 경로에 문제가 생기더라도 정상적으로 FTP 서버로 업로드하는 이중화(네트워크 가용성)를 제공하였다.
'개발 > 네트워크 & Ubuntu' 카테고리의 다른 글
[GNS3] SLA & EEM으로 라우팅 경로 자동 복구 (for FTP, NTP, Log server) (0) | 2024.02.19 |
---|---|
이중화 개념 & Layer2 경로 이중화(Spanning-Tree, STP, Raid STP) (0) | 2024.02.12 |
[GNS3] 라우터 간의 IPSec VPN & Tunneling 적용하기 (1) | 2024.02.12 |
Apache2 Load Balancer 적용, Redis로 세션 불러오기 (1) | 2024.02.02 |
[On-premise] 내부망에서 Ubuntu server로 DNS와 DHCP 동작 시키기 (1) | 2024.02.02 |