라우터만 알면 네트워크 도사?
라우팅
- 서로 다른 네트워크간 통신하기 위해 사용
- 브로드캐스트 영역을 나눠줌
- 자신이 가야 할 길을 가장 빠르고 효율적으로 알아서 찾아 감
- 관리자가 세팅해야 하는데, 세팅을 하는 명령어는 라우터의 제조회사에 따라 모두 다름
라우터가 하는 일
- 경로 결정 (Path Determination): 데이터 패킷이 목적지까지 갈 수 있는 길을 검사하고, 어떤 길로 가야는 것이 가장 적절한지 결정
- 스위칭 (Switching): 그 길이 결정되면 그 쪽으로 데이터 패킷을 스위칭함
// 스위칭은 스위치가 하는 일과는 다른 것임
라우팅 알고리즘
- 라우터가 어디로 가는 길이 가장 빠르고 안전한 길인지 계산할 때 쓰는 알고리즘
- 라우팅 테이블을 만들어 관리, 테이블에는 어디로 갈려면 어떻게 가라고 하는 정보도 들어있음
- 이러한 기능을 위해 라우터는 메모리와 인터페이스를 가지고 있음
라우터의 생김새
- 라우터의 앞쪽에는 램프들이 (전원, 상태표시, 링크표시) 있고, 뒤에는 케이블 연결할 수 있게 되어있음
- 일체형으로 이미 구성이 되어있는 단독형이 있고, 모듈형으로 껍데기만 산 다음에 자기가 필요한 모듈들을 하나하나 꽂아서 쓸 수 있음
- 네트워크가 나중에 확장될 가능성이 있다면 모듈형이 적합
- 라우터의 가격은 소프트웨어의 가격과 하드웨어의 가격으로 나뉘어짐
- 라우터에 들어가는 소프트웨어를 시스코에서는 IOS (Internetwork Operating System) 라고 함
인터페이스
- 라우터에 나와있는 접속 가능한 포트라고 생각하기
- 이더넷은 내부 네트워크와 접속시에 사용하는 인터페이스, 즉 내부의 허브나 스위치 등과의 연결을 위한 포트
- 시리얼은 WAN 과의 접속을 위한 것, 즉 외부 네트워크로의 연결을 위해서 사용하는 포트
- DSU / CSU 와 연결 시켜야 하는데, DSU는 전용선을 위한 모뎀이라고 생각하면 됨
라우티드 프로토콜 (Routed Protocol)
- 라우터가 라우팅을 해주는 고객을 뜻함
- TCP/IP, IPX, Apple Talk 등이 있음
- TCP/IP 같은 라우티드 프로토콜이 라우터를 통해 다른 네트워크로 여행을 떠남
라우팅 프로토콜 (Routing Protocol)
- 라우팅 알고리즘이라고도 함
- 라우터에 살면서 라우티드 프로토콜들에게 목적지까지 가장 좋은 길을 가게 하는 역할
- RIP, OSPF, EIGRP 등이 있음
라우팅 테이블 (Routing Table)
- 목적지, 목적지까지의 거리, 어떻게 가야 하는가 등의 내용이 저장됨
- 끊임없이 업데이트 되는데, RAM에 저장되기 때문에 전원이 꺼지면 내용이 사라짐
스태틱 라우팅 프로토콜 (Static Routing Protocol)
- 사람이 일일이 경로를 입력해주는 것
- 라우터는 사람이 입력해준대로 데이터를 보내기만 함, 시키는 대로만 하면 되니까 라우팅 속도도 빨라지고, 성능도 좋고, 메모리도 적게 듦
- 라우팅 테이블을 라우터끼리 교환할 필요도 없어 네트워크의 대역폭 절약 가능
- 따라서 외부에 자신의 정보를 알리지 않으므로 보안에도 강함
- 단점으로는 사람이 일일이 입력해야하므로 번거롭고, 입력한 경로에 문제가 생기면 큰일남
다이나믹 라우팅 프로토콜 (Dynamic Routing Protocol)
- 입력한 정보에 문제가 생기면 알아서 판단해 그 때마다 가장 좋은 길을 선택하는 것
- 일일이 경로 입력 할 필요 없으나, 라우터가 할 일이 많져 부담이 됨
- RIP, IGRP, OSPF, EIGRP 등이 여기에 속함
- 작은 규모의 네트워크에 연결된 네트워크에는 스태틱, 크고 많은 경로 처리라면 다이나믹 사용
AS (Autonomous System)
- 하나의 네트워크 관리자에 의해서 관리되는 라우터들의 집단
- 한 회사의 기업, 또는 단체의 라우터 집단 정도로 생각하기
- AS로 묶어주는 이유: 라우터가 가지는 정보를 효율적으로 관리, 인터넷 서비스를 좀 더 간편하게 사용
- AS 안에 있는 라우터들은 자신의 AS 에 속해있는 라우터에 대한 정보만 알고 있으면 됨
- AS 밖으로 나갈 때는 AS에 있는 문지기 라우터 (ASBR) 에게 정보를 물어봐서 인터넷으로 나가면 됨
- 문지기 라우터는 자신의 AS와 인접한 다른 AS들에 대한 정보를 가지고 있고, 밖으로 나가는 라우터나 외부 AS에서 자기 AS 쪽으로 오는 라우터에게 정보 제공함
- 라우터가 AS 내부에서 사용하는 라우팅 프로토콜을 IRP 또는 IGP 라고 함
- AS 외부에서 라우팅 주고 받기 위해 사용하는 라우팅 프로토콜을 EGP, BGP 라고 함
라우터 구성의 시작
- 콘솔 케이블을 이용
- 콘솔 케이블을 라우터의 콘솔 포트에 연결하고 나머지 한 쪽은 컴퓨터의 시리얼 포트에 연결
- AUX (Auxiliary) 포트를 이용
- 모뎀을 연결하고 모뎀을 통해 구성
- 라우터에는 모뎀에 대한 세팅이 모두 되어 있어야 함
- 문제 발생시를 대비한 것이기 때문에 일반적이지는 않음
- 텔넷 (Telnet)을 이용한 라우터 구성
- 하이퍼 터미널을 이용해서 사용 가능
- 콘솔과 같고 접속 방법만 TCP/IP로 다름
- 라우터의 IP 주소만 알고있고 네트워크에 접속만 되어 있다면 어디서도 구성 가능
- 네트워크 연결이 끊어질 경우 텔넷 접속이 불가능하다는 단점
- 네트워크 관리 시스템 (NMS)
- NMS 구성은 어렵지만 일단 NMS에서 라우터를 세팅한다고 가정하면 방법 중 가장 쉬움
- TFTP 서버로 라우터를 구성
- 앞에 4가지 방법처럼 직접 명령을 라우터에게 세팅하는 것이 아닌, 이미 다른 곳에서 만들어 놓은 라우터의 구성 파일을 TFTP 서버에 저장해 두었다가 라우터로 다운로드 하는 방식
- 이 다운로드에 사용되는 프로토콜이 TFTP (Trivial File Transfer Protocol) 임
라우터의 모드
- RXBOOT 모드
- 평소에는 사용하지 않음
- 라우터의 패스워드를 모르거나, 라우터의 이미지 파일 (IOS)에 문제가 생긴 경우 복구를 위해 사용하는 모드
- ROMMON 모드라고도 함 (ROM Monitor 모드)
- 셋업 모드
- 라우터를 처음 구매해서 파워를 켰거나, 라우터에 구성 파일이 없는 경우 라우터가 부팅하면서 자동으로 들어가는 모드
- 이 모드에 들어가면 라우터는 구성에 관계된 질문을 던지고 사용자가 답하면서 구성 파일을 만듦
- 유저 모드
- 라우터에 콘솔로 접속했을 때 '>' 가 나오는 모드
- 핑을 해본다든지, 트레이스를 해본다든지 등
- 라우터의 구성 파일을 보거나 구성 자체를 변경하는 것은 불가능
- 프리빌리지 모드 (Privileged Mode)
- 운영자 모드
- 유저 모드에서 enable 이라는 명령을 사용하면 들어감
- 프롬프트가 '>' 에서 '#' 을 바뀜
- 구성 볼 수 있고 변경도 가능
- 구성 모드
- 라우터의 구성 파일을 변경하는 경우에 사용하는 모드, 보통 Config 모드라고 함
라우터의 내부
- 위쪽이 라우터를 움직이는 프로그램들이 사는 공간
- 아래쪽에 콘솔 포트, AUX 포트, 인터페이스가 있음
- 인터페이스란 네트워크와 라우터에서 직접 연결되는 부분으로, 허브나 스위치랑 연결하는 이더넷 인터페이스 또는 DUS 나 CSU와 연결하는 시리얼 인터페이스가 있음
- 램 (RAM)
- 파워가 켜지면 라우터를 운용하는 운용 시스템 (시스코에서는 IOS) 가 RAM 위로 올라옴
- 그 다음 라우팅 테이블이 들어감 (라우팅 테이블이란 목적지까지의 약도)
- 구성 파일 (라우터의 주소, 라우팅 프로토콜, 보안에 대한 정보) 이 올라가서 실제 라우터를 움직임
- 이 외에도 ARP캐시니, 패스트 스위칭에 대한 캐시 등을 가지고 있음
- NVRAM (Non Volatile RAM)
- 비휘발성 램, 즉 전원을 꺼도 내용이 사라지지 않는 램을 뜻함
- 램에서 지워지면 안 될것들을 백업해두는 메모리
- 라우팅 테이블은 그때그때 변하는 다이나믹한 정보라 저장하지 않음
- 어떤 인터페이스의 IP adress는 얼마인지, 어떤 라우팅 프로토콜을 쓰는지, 어떤 식으로 라우팅 테이블을 관리하는지에 대한 Configuration 파일은 지워지면 안 되므로 RAM이 꺼질 때 NVRAM에 저장함
- Flash 메모리
- 라우터를 움직이는 운영체제인 IOS는 플래시 메모리에 저장
- 전원을 꺼도 데이터가 지워지지 않음
- 라우터에 따라서 플래시 메모리를 교체하거나 확장 가능
- NVRAM 과의 차이점은 플래시 메모리가 용량이 더 큼
- NVRAM은 오직 구성파일 저장용으로 사용되지만, 플래시 메모리는 주로 IOS 이미지 파일 저장에 사용
- 플래시 메모리에 저장되어 있던 IOS는 전원이 켜지면서 RAM으로 뛰어 오르고, 전원이 꺼지면 RAM에서 내려와 플래시 메모리에 머무름
- 롬 (ROM)
- 라우터의 가장 기본적인 내용들을 적어놓음 (파워가 켜지면 어떤 순서로 라우터 스스로의 상태를 점검할지, 어디서 운영체제 (IOS)를 가져다가 메모리에 올릴 것인지 등)
- 기본적인 IOS가 들어있어 문제가 생길 경우 기본적인 IOS를 롬에서 가져옴
라우팅 테이블을 관리하는 방법
- 디스턴스 벡터 (Distance Vector)
- 목적지까지의 거리와 그 목적지까지 가려면 어떤 인접 라우터를 거쳐서 가야 하는 방향만을 저장
- 따라서 인접 라우터들과 주기적으로 라우팅 테이블을 교환해서 정보를 관리
- 모든 라우팅 정보 가질 필요 X, 메모리 절약 O
- 아무 변화가 없어도 업데이트 해야하므로 트래픽 낭비 생김, 변화가 생겨도 거쳐서 오므로 시간이 오래 걸림
- 작은 규모의 네트워크에 적합
- RIP, IGRP가 여기에 속함
- 링크 스테이트 (Link State) 알고리즘
- 한 라우터가 목적지까지의 모든 경로 정보를 다 알고 있는 것
- 모든 정보를 가지고 토폴러지 데이터베이스 생성
- 토폴러지 데이터베이스를 이용하여 SPF (Shortest Path First) 알고리즘 계산
- 이 결과를 가지고 라우터가 SPF 트리 생성하고 해당 트리로 라우팅 테이블을 만듦
- 모든 경로를 알고 있으므로 중간에 변화가 생겨도 알아내는데 걸리는 시간이 짧음
- 모든 정보를 관리해야 하므로 메모리 소모 많음, 계산할 것도 많아서 CPU가 일을 많이 함
- 라우팅 프로토콜이 여기에 속함
핑과 트레이스
- 단순형 핑을 사용했을 때, 출발지 주소는 라우터를 떠나는 쪽 인터페이스로 잡힘
- 출발지 주소를 변경하려면 확장형 핑 사용해야 함
- 목적지까지의 경로를 하나하나 분석해주는 기능을 가진 것이 트레이스
- TTL 이라는 값을 하나씩 증가시키면서 돌아오는 에러 메시지를 가지고 경로를 확인해 주는 기능 제공
라우팅 프로토콜과의 한 판
RIP (Routing Information Protocol)
- 표준 라우팅 프로토콜
- 내부용 라우팅 프로토콜 (IGP)
- RIP 라우팅 프로토콜에서 라우터가 좋은 길을 결정하는 기준이 되는 요소는 홉 (Hop) 카운트
- RIP 라우팅 프로토콜에서 최대한 갈 수 있는 홉 카운트의 거리는 15개까지
- 라우터의 메모리를 적게 사용하는 장점
- 홉 카운트에만 의존하므로 회선의 속도가 느려도 그 쪽으로만 전송함
- 어떤 목적지로 가는 경로가 4개가 있는데, 모두 홉 카운트가 같다면 라우터는 이 4곳으로 패킷을 분산해 전송 = 로드밸런싱
Back to Back 라우터 구성
- 원래는 두 개의 라우터를 연결할 때, 라우터와 DSU/CSU를 V.35 케이블로 각각 연결하고, DSU/CSU 사이를 전용선으로 다시 연결해야 함
- Back to Back 구성은 V.35 케이블을 이용해 직접 라우터 대 라우터를 연결, 즉 DSU/CSU를 생략
- 중요한 것은 한 쪽의 케이블은 DTE, 다른 한 쪽은 DCE로 동작해야 함
라우터 루핑 (Router Looping)
- 패킷이 목적지를 찾지 못하고 끊임없이 순환하는 현상
- 2 개 이상의 라우터들이, 동일 목적지 네트워크 경로에 대해 부정확한 라우팅 정보를 갖는 경우
- 각 라우터의 Convergence time 의 차이로 인해 발생
// Convergence time: 토플리지 변화가 일어났을 때, 이를 반영하여 네트워크가 재구성 될 때까지 소용되는 시간
// "라우터 간에 서로 변경된 정보를 주고받는데 걸리는 시간" 이라고 알아두면 좋음
해결 방법
- 맥시멈 홉 카운트 (Maximum Hop Count)
- 최대 홉 카운트를 15로 정하고, 15를 넘어가는 라우팅 경로에 대해 unreachable 로 설정
- Flush time 이 지나면 테이블에서 아예 삭제함
- 네트워크의 규모가 커질 경우에는 치명적인 약점을 드러냄
- 홀드 다운 타이머 (Hold Down Timer)
- 어떤 경로가 죽었다고 판단하면 이 경로에 대한 상태에 대해서 업데이트가 들어와도 바꾸지 않음
- 일정 시간이 지난 다음에 바꿀 수 있음
- 한 쪽이 죽었는데 다른 쪽에서 자신이 가지고 있던 죽은 쪽의 홉 카운트보다 큰 값이 들어오면 무시
- 스플릿 호라이즌 (Split Horizon)
- 두 라우터 간의 루핑을 막기 위해 만들어진 기술
- 라우팅 정보가 들어온 곳으로는 같은 정보를 내보낼 수 없음
- 만약 하나의 라우터가 어느 네트워크 정보를 인접한 라우터에게서 받았다면 그 인접한 라우터가 자신보다 그 네트워크에 더 가까이 있을 것이 분명하며, 또 다른 라우터들로부터 정보를 받을 필요가 없다는 뜻
- 라우트 포이즈닝 (Route Poisoning)
- 네트워크가 다운되면 라우터가 네트워크에 대한 값을 16, 즉 사용할 수 없는 값으로 만듦
- 완전히 지워버리는 것이 아니라 잘못된 라우팅 정보를 받는 일을 예방할 수 있음
- 포이즌 리버스 (Poison Reverse)
- 스플릿 호라이즌처럼 라우팅 정보를 보내온 쪽으로 알려주지 않는 것이 아닌, 라우팅 정보를 되돌려 보내기는 하되 이 값을 무한대 값으로 쓰는 방식
- 무한대로 쓸 수 없는 값이므로 라우팅 업데이트가 들어와도 무시함
VLSM(Variable Length Subnet Mask)
- 라우터의 각 인터페이스 별로 서브넷 마스크가 전부 제각각인 경우, 여러가지 종류의 서브넷 마스크를 VLSM이라고 함
- RIP나 IGRP 라우팅 프로토콜은 VLSM을 지원하지 않음
- 왜냐면 라우팅 테이블을 주고 받을 때 서브넷 마스크 정보를 포함하지 않기 때문
- 스태틱 라우팅 프로토콜이나 EIGRP, OSPF같은 라우팅 프로토콜을 사용해야 함
IGRP (Interior Gateway Routing Protocol)
- 표준 프로토콜이 아니라 시스코에서 만들어낸 프로토콜이라 시스코 라우터에서만 사용가능
- 홉카운트로만 경로를 설정하지 않고 다음 다섯가지 방법으로 결정
- Bandwidth(대역폭)
- 속도, 단위는 초당 킬로비트 Kbps
- Delay(지연)
- 경로를 통해서 도착할 때까지의 지연되는 시간
- 원래 회선 상에 아무 트래픽이 없을 때를 가정하고 제공되는 수치임
- Reliability(신뢰성)
- 케이블이나 전용선 등 전송 매체를 통해 패킷을 보낼 때 생기는 에러율을 나타내는 수치
- Keepalive라는 것을 이용해서 측정
- Load(부하, 하중)
- 출발지와 목적지 상의 경로에 어느 정도의 부하가 걸리고 있는지를 측정
- MTU(Maximum Transmission Unit)
- 경로의 최대 전송 유닛의 크기
- 바이트로 표시
- 90초에 한 번씩 라우팅 테이블의 업데이트가 발생
- 최대 홉 카운트가 255로 커다란 네트워크에 적용해도 문제 없음
- VLSM을 지원하지 못하고 시스코 라우터에서만 적용된다는 단점
OSPF(Open Shortest First)
- OSPF는 변화가 생기면 바로 전달이 가능해 속도가 빠름
- 큰 네트워크에 적합한 프로토콜
- 특히 Area 라는 개념을 적용해 전체 OSPF 네트워크를 작은 영역으로 나누어 관리해 효율적
- VLSM을 확실하게 지원
- IP주소를 효과적으로 사용할 수 있고 라우팅 테이블을 줄이는 부수적인 효과 있음
- 이를 위해 서머리제이션(Route summarization)을 지원해 여러 라우팅 경로를 하나로 묶어주는 기능이 탁월
// Route Summarization: 복수 개의 네트워크를 하나로 표시하는 것
- 표준 라우팅 프로토콜이며, 링크 스테이트 라우팅 알고리즘임
OSPF와 RIP의 차이점
- 네트워크 크기의 제한에 있어 RIP는 15개까지인데 OSPF는 제한 없음
- RIP는 30초마다 브로드캐스트가 발생해 대역폭 낭비가 심하지만
OSPF는 네트워크에 변화가 있을 때만 정보가 날아가고 그것도 멀티캐스트이기 때문에 실용적 - RIP는 홉 카운트만을 따지기 때문에 속도나 딜레이와 상관없이 무조건 홉 카운트 적은것만 선호하지만
OSPF는 많은 요소를 합쳐서 경로를 선택해 훨씬 정확한 경로선택이 가능
Neighbor 란?
- 주위에 있는 OSPF 라우터들을 의미
- Hello 패킷을 멀티캐스팅해서 이웃을 찾은 후, 라우터들은 자신의 DB에 이웃 저장
Neighbor를 찾는 과정
① Down State
- 다운되어 있던 라우터가 켜지는 상태
② Init State
- 헬로 메시지를 멀티캐스팅
- 헬로를 받은 라우터들은 자신들의 이웃 목록에 해당 라우터 추가
- 멀티캐스트를 이용하므로, 네트워크 내에서 OSPF로 동작하는 라우터만 메시지를 수신함
③ Two-way state
- 헬로 메시지를 받은 라우터들이 유니캐스트를 이용해서, 자신의 정보 전달
루프백 (Loopback) 인터페이스
- 루프백 인터페이스는 시스코 라우터에 존재하는 특별한 가상의 인터페이스
- 이 인터페이스를 생성하고, IP를 할당해서, 이 주소에, ping 을 할 수도 있고, 여러 목적(예. OSPF의 Router ID)을 위해 사용할 수 있음
참고
'책 > 후니의 쉽게 쓴 시스코 네트워킹' 카테고리의 다른 글
[책] 후니의 쉽게 쓴 시스코 네트워킹 - Part 11 (0) | 2023.03.15 |
---|---|
[책] 후니의 쉽게 쓴 시스코 네트워킹 - Part 9, 10 (0) | 2023.03.12 |
[책] 후니의 쉽게 쓴 시스코 네트워킹 - Part 5, 6 (0) | 2023.02.11 |
[책] 후니의 쉽게 쓴 시스코 네트워킹 - Part 3, 4 (0) | 2023.02.09 |
[책] 후니의 쉽게 쓴 시스코 네트워킹 - Part 1, 2 (0) | 2023.02.08 |