라우터/L3 스위치: 3계층 장비
by Frinee이 글은 고재성, 이상훈 저 - "IT 엔지니어를 위한 네트워크 입문"를 공부하고 정리하여 작성하였습니다.
1. 라우터의 동작 방식과 역할
- 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장
- 패킷이 라우터로 들어오면 도착지 IP 주소와 라우팅 테이블을 비교해 최선의 경로로 패킷 전달
- 패킷 포워딩 과정에서 기존 2계층 헤더 정보를 제거한 후 새로운 2계층 헤더를 제작
- 이 동작 방식을 경로 지정, 브로드캐스트 컨트롤, 프로토콜 변환이라 함.
1.1. 경로 지정
- 경로 정보를 모아 라우팅 테이블을 만들고 패킷의 도착지 IP주소를 확인해 경로를 지정하여 패킷을 포워딩함.
- 경로 정보를 얻는 역할과 경로 정보를 확인하고 패킷을 포워딩하는 역할을 수행
- 경로 정보를 얻는 방법
- IP 주소를 입력하면서 얻는 방법
- 관리자가 직접 입력하는 방법
- 라우터끼리 서로 경로 정보를 자동으로 교환하는 방법 등
1.2. 브로트캐스트 컨트롤
- 라우터는 분명한 도착지 정보가 있을 때만 통신을 허락함.
- 라우터의 기본 동작은 멀티캐스트 정보를 습득하지 않고 브로드캐스트 패킷을 전달하지 않음
- 이 기능을 “브로드캐스트 컨트롤/멀티캐스트 컨트롤”이라 함.
1.3. 프로토콜 변환
- 서로 다른 프로토콜로 구성된 네트워크를 연결하는 역할
- 패킷이 들어오면 2계층까지의 헤더 정보를 벗겨내고 3계층 주소를 확인
- 3계층 주소를 확인한 후 2계층 헤더 정보를 새로 만들어 외부로 내보냄
- 저속 전용회선
- WAN 구간: PPP 프로토콜 사용
- LAN 구간: 이더넷 프로토콜 사용
2. 경로 지정 - 라우팅/스위칭
- 라우터가 패킷을 처리할 때 두 가지 작업을 수행
- 경로 정보를 얻어 경로 정보를 정리하는 역할
- 정리된 경로 정보를 기반으로 패킷을 포워딩하는 역할
- 라우터는 서브넷 단위로 라우팅 정보를 습득하고 라우팅 정보를 최적화하기 위해 서머리(summary) 작업을 통해 여러 개의 서브넷 정보를 뭉쳐 전달
- 목적지 주소와 라우팅 테이블 정보가 정확히 일치하지 않더라도 목적지에 가장 근접한 정보를 찾아 패킷을 포워딩해야 함
2.1. 라우팅 동작과 라우팅 테이블
- 라우팅 동작
- 인접한 라우터까지만 경로를 지정하면 인접 라우터에서 최적의 경로를 다시 파악한 후 라우터로 패킷을 포워딩함.
- 이 기법을 홉-바이-홉(Hop-by-Hop) 라우팅이라 부르고 인접한 라우터를 넥스트 홉(Next Hop)이라 부름
- 라우터는 패킷이 목적지로 가는 전체 경로를 파악하지 않고 최적의 넥스트 홉을 선택해 보내줌
- 넥스트 홉을 지정하는 방법
- 다음 라우터의 IP를 지정하는 방법
- 라우터의 나가는 인터페이스를 지정하는 방법
- 라우터의 나가는 인터페이스와 다음 라우터의 IP를 동시에 지정하는 방법
- 일반적으로는 라우터의 인터페이스 IP 주소를 지정하는 방법을 사용
- 상대방의 넥스트 홉 MAC 주소 정보를 알 때만 라우터의 나가는 인터페이스를 지정하는 방법을 쓸 수 있음
- WAN구간의 PPP나 HLDC와 같은 프로토콜에서 MAC주소를 알 필요가 없는 경우
- 상대방 라우터에서 프록시 ARP가 동작해 상대방 MAC 주소를 아는 경우
- 라우팅 테이블
- 라우터가 패킷 포워딩 경로를 설정할 때는 출발지는 고려하지 않음
- 목적지 주소와 라우팅 테이블을 비교해 경로 포워딩을 결정함.
- 라우팅 테이블을 만들 때는 목적지 정보만 수집하고 목적지 주소를 확인해 패킷을 포워딩
- 라우팅 테이블에 저장하는 정보
- 목적지 주소
- 넥스트 홉 IP 주소, 나가는 인터페이스 (선택 가능)
- 소스 라우팅(Source Routing) 혹은 폴리시 라우팅(Policy Routing)
- 라우터에서 패킷의 출발지 주소를 활용한 PBR(Policy-Based Routing) 기능을 사용하기도 함
- 이때는 라우팅 정책과 관련된 별도의 설정이 필요
- 관리가 어렵고 문제 발생 시 해결이 어려워 특별한 목적에서만 사용
소스 라우팅과 PBR, 정책 라우팅
더보기
- PBR은 출발지 IP뿐만 아니라 도착지IP, 포트 번호와 같은 다양한 조건을 합쳐 사용할 수 있음
- PBR은 출발지 주소를 이용해 경로를 지정한다는 이유로 소스 라우팅이라 부르기도 하는데
- 소스 라우팅의 원래 의미는 출발지에서 경로를 지정하는 것으로 의미가 약간 다름
루프가 없는 3계층: TTL (Time To Live)
더보기
- IP 헤더에는 TTL이라는 필드가 존재하여 살아 있는 시간이 제한됨
- TTL 값의 단위는 홉 단위이며 하나의 홉을 지날 때마다 1씩 줄어듦
2.2. 라우팅(라우터가 경로 정보를 얻는 방법)
- 크게 3가지로 구분함
- 다이렉트 커넥티드
- 스태틱 라우팅
- 다이나믹 라우팅
- 다이렉트 커넥티드
- 사용된 IP 주소와 서브넷 마스크로 속한 네트워크 주소 정보를 알 수 있음
- 이 정보로 해당 네트워크에 대한 라우팅 테이블을 자동으로 만듦
- 이 경로 정보를 다이렉트 커넥티드라 함.
- 다이렉트 커넥티드로 생성된 경로 정보는 강제로 지울 수 없고 해당 네트워크 설정을 지우거나 네트워크 인터페이스가 비활성화되야 자동으로 사라짐
- 스태틱 라우팅
- 관리자가 목적지 네트워크와 넥스트 홉을 라우터에 직접 지정해 경로 정보를 입력하는 방식
- 라우팅 정보를 매우 직관적으로 설정하고 관리할 수 있음
- 다이렉트 커넥티드처럼 연결된 인터페이스 정보가 삭제되거나 비활성화되면 라우팅 정보가 자동 삭제됨.
- 논리 인터페이스는 물리 인터페이스가 비활성화되더라도 남아 있는 경우도 있어 라우팅 테이블에서 사라지지 않음
- 단점
- 스태틱 라우팅은 라우터 너머의 다른 라우터 상태 정보 파악이 어려움
- 그래서 라우터 사이의 회선이나 장애가 발생할 경우 대처가 어려운 문제가 있음
- 그리고 관리해야 할 네트워크 수가 많아지고 복잡해지면 관리자가 직접 관리하기 어려움
- 다이나믹 라우팅
- 라우터끼리 자신이 알고 있는 경로 정보, 링크 상태 정보를 교환해 전체 네트워크 정보를 학습
- 주기적으로 경로 정보가 교환되므로 문제 발생 시 인지하여 대체 경로로 패킷 포워딩하는 것이 가능
- 다이나믹 라우팅에서는 자신이 광고할 네트워크를 선언해야 함
- 다이나믹 라우팅은 세부적으로 여러 종류로 분류할 수 있음
- 라우팅의 역할은 다양한 경로 정보를 체계적으로 데이터베이스화하여 순위를 적절히 부여해 최적의 경로 정보만을 수집하는 것이기도 함
- 라우터가 수집한 경로 정보, 원시 데이터를 토폴로지 테이블이라 함
- 그 중에서 최적의 경로를 저장하는 테이블을 라우팅 테이블이라 함.
- 패킷을 보낼 때는 전체 경로가 아닌 다음 라우터까지만의 최적의 경로로 포워딩을 한다는 것
2.3. 스위칭(라우터가 경로를 지정하는 방법)
- 라우터가 최적 경로 정보를 유지하는 것은 라우터가 최선의 경로로 패킷을 빨리 포워딩하는 것을 지원하기 위함
- 스위칭: 패킷이 들어와 라우팅 테이블을 참조하여 최적의 경로를 찾아 포워딩하는 작업을 일컬음
- 패킷의 목적지가 일치하지 않은 경우도 발생하는데 이땐 Longest Prefix Match 기법을 이용해 가진 경로 중 가장 가까운 경로를 선택함.
- 사실 이 작업은 부정확한 정보 중 가장 비슷한 정보를 찾는 작업이라서 많은 부하가 걸리는 작업
- 그래서 한 번 스위칭을 수행한 정보를 캐시에 저장하고 뒤의 작업을 수행할 때 우선적으로 캐시 정보를 먼저 확인
- 캐시 기술의 경우 출발지 IP, 목적지 IP, 포트 번호 정보, 넥스트 홉 L2 정보까지 포함해 저장하는 경우도 있음
- 레디스(Redis)와 같은 메모리 캐시를 이용해 데이터베이스 부하를 줄이는 기법과 유사
Longest Prefix Match
더보기
- 자신이 갖고 있는 라우팅 테이블에서 가장 좋은 항목을 찾는 알고리즘
- Maximum Prefix Length Match라고도 합니다.
- LPM(Longest Prefix Match Table): 라우터나 스위치에서 관리할 수 있는 라우팅 테이블
2.4. 라우팅, 스위칭 우선순위
- 좋은 경로 정보 우선순위는 경로 정보를 받은 방법과 거리를 기준으로 정함
- 관리자를 통한 경로 학습의 우선순위가 더 높음
- 동일한 방식에서는 코스트가 낮은 쪽이 우선순위가 높음
- 목적지 네트워크 정보가 동일한 서브넷을 사용하는 경우, 정보를 얻은 소스에 따라 가중치를 정하게 됨
- 내가 갖고 있는 네트워크(다이렉트 커넥티드)
- 내가 경로를 직접 지정한 네트워크(스태틱 라우팅)
- 경로를 전달받은 네트워크(다이나믹 라우팅)
- 가중치 순서는 1 > 2 > 3 으로 기본적인 우선순위는 정해져 있지만 필요에 따라 관리자가 우선순위를 조정할 수 있음
- 이런 우선순위를 AD(Administrative Distance: 관리 거리)라 부르며 라우터 생산업체에 따라 조금씩 다름
[AD 값 표]
우선순위 | 기본 디스턴스 |
0 | Connected Interface |
1 | Static Route |
20 | External BGP |
110 | OSPF |
115 | IS-IS |
120 | RIP |
200 | Internal BGP |
255 | Unknown |
- 가중치 값이 동일한 경우 코스트 값으로 정함
- 코스트 값도 동일한 경우 ECMP(Equal-Cost Multi-Path) 기능으로 동일한 코스트 값을 가진 경로 값 정보를 활용해 트래픽을 분산함
- 코스트 값은 일종의 거리를 나타내는 값이며 라우팅 프로토콜마다 기준이 다름
- RIP: 홉 수, OSPF: 대역폭, EIGRP: 다양한 값들의 연산
- 패킷을 스위칭할 때는 Longest Prefix Match 기법으로 우선순위를 정함.
- 라우팅 우선순위
우선순위 구분 적용 방법 1 롱기스트 매치 스위칭 2 AD(관리 거리) 라우팅 3 코스트 라우팅 4 부하 분산(ECMP) 라우팅
3. 라우팅 설정 방법
3.1. 다이렉트 커넥티드
- 라우팅 테이블을 확인해 목적지가 다이렉트 커넥티드라면 라우터는 L2 통신으로 목적지에 도달
- 외부 네트워크로 통신하려면 스태틱 라우팅이나 다이나믹 라우팅에서 얻은 원격지 네트워크에 대한 라우팅 정보도 있어야 함
- IP주소를 잘못 설정하거나 서브넷 마스크를 정상 범위보다 작게 설정할 경우 다이렉트 커넥티드 라우팅 정보가 잘못 입력되게 됨
3.2. 스태틱 라우팅
- 원격지 네트워크와 통신하려면 라우터에 직접 연결되지 않은 네트워크 정보를 입력해야 함
- 다이렉트 커넥티드를 제외하고 라우팅 우선순위가 가장 높음
라우팅 설정 문법 | |
ip route NETWORK NETMAST NEXTHOP | [네트워크 장비: 시스코] |
ex) ip route 20.20.20.0 255.255.255.0 1.1.1.2 | |
route add -net NETWORK/ Prefix gw NEXTHOP | [서버 운영 체제: 리눅스] |
- “목적지(네트워크/호스트 - 서브넷/서브넷 마스크)로 가려면 패킷을 넥스트 홉으로 보내야 한다.” 라는 의미
- 네트워크 규모가 매우 커지거나 인터넷 연결을 할 때에는 라우팅 처리에 어려움이 있음
- 많은 라우팅 정보를 처리하기 위해서는 대용량의 인터넷 라우팅 전용 라우터가 필요함
- 인터넷 라우팅 전용 라우터는 인터넷 사업자가 운영하기 때문에 우리가 이용하는데 문제가 없던 것
- 인터넷 경로 정보를 받아 처리할 만큼 규모가 크지 않은 경우, 스태틱 라우팅을 확장한 디폴트 라우팅을 사용함
- 디폴트 라우팅은 스태틱 라우팅의 IP주소와 서브넷 마스크를 모두 0으로 만든 방법
- 서브넷 마스크를 이용해 네트워크를 뽑는 2진수 and 연산을 사용
- 서브넷 마스크 1은 체크, 0은 체크하지 않음
※ 디폴트 게이트웨이: 라우팅 능력이 없는 장비에서 사용함
3.3. 다이나믹 라우팅
- IT 환경을 구축할 때에는 SPoF를 없애기 위해 두 개 이상의 경로를 유지함
- 스태틱 라우팅 만으로는 대체 경로를 구성하긴 힘듦
- 네트워크 회선이 끊기거나 라우터에 장애가 발생하면 능동적으로 대처하기도 힘듦
- 다이나믹 라우팅 프로토콜을 사용하면 라우터끼리 정보를 교환하여 경로정보를 최신으로 유지함
- 라우터끼리도 자신들만의 프로토콜로 정보를 교환함
- 일반적으로 라우팅 프로토콜은 유니캐스트 라우팅 프로토콜을 말함.
- 역할에 따른 분류
- 인터넷에는 AS(Autonomous System)라는 자율 시스템이 존재
- IGP(Interior Gateway Protocol): AS 내부에서 사용하는 라우팅 프로토콜
- EGP(Exterior Gateway Protocol): AS 간 통신에 사용되는 라우팅 프로토콜
- AS 내부의 연결은 효율성, AS와의 연결은 조직 간 정책이 더 중요함
- 동작 원리에 따른 분류
- IGP 라우팅 프로토콜은 동작 원리에 따라 나뉨.
- 디스턴스 벡터
- 인접한 라우터에서 경로 정보를 습득하는 라우팅 프로토콜
- 시스코사가 개발한 IGRP, EIGRP 가 있음
- 다른 라우터의 정보는 인접 라우터를 통해 간접적으로 전달 받음
- 간단한 네트워크를 구축하는 데 많이 사용되었음
- 링크 스테이트
- 라우터에 연결된 링크 상태를 서로 교환하고 각 네트워크 맵을 그리는 라우팅 프로토콜
- 링크 상태를 교환하기 때문에 직접적인 상태 정보를 받을 수 있음
- 링크 상태를 교환해 토폴로지 데이터베이스를 만들고 다시 SPF 알고리즘을 이용해 최단 경로 트리를 만듦
- 최단 경로 트리를 이용해 최적의 경로를 선정한 후 라우팅 테이블에 정보를 추가함
- 경로 파악 작업이 부하로 작용하여 네트워크 규모가 커지면 CPU와 메모리를 많이 소모함
- 최적화를 위해 네트워크를 에어리어(AREA) 단위로 분리하고 분리된 에어리어 내에서만 링크 상태 정보를 교환, ex) OSPF
- 에어리어 내부에서는 전체 링크 정보가 공유되고 외부의 라우터는 가공된 라우팅 테이블 형태로 정보를 전달
- AREA 단위로 네트워크를 구분하고 확장하는 OSPF의 경우
- ABR(Area Border Router): AREA 간 연결시키는 경계 라우터
- ASBR(Autonomous System Border Router): OSPF가 아닌 다른 외부의 정보를 OSPF와 연결시켜주는 외곽 라우터
분류 방법 | 분류 | 설명 |
역할 |
EGP | 서로 다른 AS 간 정보교환용 라우팅 프로토콜, BGP가 속함 |
IGP | AS 내부에서 동작하는 라우팅 프로토콜로 RIP, EIGRP, OSPF, IS-IS 등이 있다. | |
동작원리 | 디스턴스 벡터 | 직접 연결된 장비가 보내준 정보를 기반으로 최적의 경로를 선정하는 라우팅 프로토콜로 RIP, BGP가 있다. |
어드밴스드 디스턴스 벡터 | 디스턴스 벡터보다 다양한 경로 선정을 위한 요소가 있으며 직접 연결된 장비를 지난 장비까지 고려해 경로를 선정할 수 있다. | |
링크 스테이트 | 네트워크 망에 속한 장비가 보내준 정보를 기반으로 토폴로지 맵을 만들고 SPF 알고리즘을 이용해 최적의 경로를 선정한다. OSPF와 IS-IS가 속함 |
다이나믹 라우팅 활용 현황
더보기
- RIP: 소형 네트워크에서 많이 쓰였지만 사용되지 않는 추세
- EIGRP: RIP의 단점을 보완했지만 특정 업체(시스코)가 개발한 프로토콜이어서 활용성이 떨어져 대부분 사라짐
- 최근에 BGP 사용이 늘어남
- 다양한 프로토콜 정보를 한꺼번에 교환할 수 있음
- AS 외부뿐만 아니라 내부에서도 사용 가능
- 정책 기반 라우팅 프로토콜이어서 관리자 의도대로 경로를 변환할 수 있는 장점
자료
- IT 엔지니어를 위한 네트워크 입문 (고재성, 이상훈 저, 2020.10)
'[컴퓨터 과학자 스터디] > 네트워크' 카테고리의 다른 글
통신을 도와주는 네트워크 주요 기술 (0) | 2024.10.28 |
---|---|
로드 밸런서/방화벽: 4계층 장비(세션 장비) (1) | 2024.10.24 |
스위치: 2계층 장비 (2) | 2024.10.20 |
네트워크 통신하기 (2) | 2024.10.16 |
네트워크 연결과 구성 요소 (2) | 2024.10.14 |
블로그의 정보
프리니의 코드저장소
Frinee