2022.06.24 - [네트워크] - 라우터/L3 스위치 : 3 계층 장비
앞서 라우터의 개념들을 알아보았다. 이번에는 라우팅의 우선순위와 각 라우팅 설정 방법에 대해 자세히 알아보자.
다이렉트 커넥티드
라우터나 PC에 IP 주소, 서브넷 마스크를 입력하면 다이렉트 커넥티드 라우팅 테이블이 생성된다.
라우팅 테이블을 확인해 목적지가 다이렉트 커넥티드라면 라우터는 L2 통신(ARP 요청)으로 목적지에 도달한다.
만약 목적지가 외부 네트워크인데 다이렉트 커넥티드 정보만 있다면 외부 네트워크와 통신이 불가능하다. 외부와 통신하기 위해서는 스태틱 라우팅이나 다이나믹 라우팅에서 얻은 원격지 네트워크에 대한 적절한 라우팅 정보가 있어야 한다.
외부 네트워크 라우팅 정보가 있더라도 다이렉트 커넥티드 정보가 잘못 입력된다면 통신이 불가하다. 이는 외부로 나가는 첫 길목이 다이렉트 커넥티드이기 때문이다. 그래서 IP 주소와 서브넷 마스크의 범위를 올바르게 설정해야 한다.
스태틱 라우팅
원격지 네트워크와 통신하려면 라우터에 직접 연결되지 않은 네트워크 정보를 입력해야 한다.
해당 정보를 쉽게 추가하고 경로를 직접 제어할 수 있는 방법이 바로 스태틱 라우팅이다.
스태틱 라우팅 설정 문법은 아래와 같다.
라우팅 설정 방법 | |
ip route NETWORK NETMASK NEXTHOP | 네트워크 장비: 시스코 |
route add -net NETWORK /Prefix gw NEXTHOP | 서버 운영 체제: 리눅스 |
이 문법을 말로 이해하기 쉽게 표현하면
"목적지(네트워크/호스트 - 서스넷/서브넷 마스크)로 가려면 패킷을 넥스트 홉으로 보내야 한다"
그림과 같이 라우팅 테이블에는 다이렉트 커넥티드 정보만 존재하기 때문에 20.20.20.20/24로 패킷을 보내고 싶어도 라우팅 정보가 없어 버려진다. 그래서 스태틱 라우팅으로 R2 라우터 인터페이스로 보내라고 설정한다.
스태틱 라우팅은 네트워크 규모가 매우 커지거나 인터넷 연결을 해야 할 때는 라우팅 처리하는데 어려움이 있다. 인터넷에는 현재 840000개 이상의 라우팅 정보가 있다.
이런 대용량 라우팅 정보를 처리하기 위해서는 대용량의 인터넷 라우팅 전용 라우터가 필요하다. 전용 라우터는 KT, SK Broadband, LGU+ 같은 인터넷 사업자가 운영한다.
ISP : Internet Service Provider의 약자로 KT, SK Broadband, LGU+ 같은 곳을 말한다.
하지만 일반적인 회사에서 운영하는 라우터는 인터넷의 모든 라우팅 정보를 가질 만큼 크지 않기 때문에 대부분 인터넷 사업자로부터 회선을 임대해 사용하는 만큼 모든 인터넷 경로 정보를 받아 처리하는 것은 부적절하다. 이런 경우 스태틱 라우팅을 확장한 디폴트 라우팅을 사용하면 문제가 해결된다.
모든 패킷을 인터넷 사업자에게 보내기 위해 A 클래스 단위로 스태틱 라우팅을 만든다면 그림과 같이 200개 이상의 스태틱 라우팅 설정이 필요하다.
200개 이상의 명령어들은 사실 모든 주소를 1.1.1.1로 보내라는 말과 같다. 그래서 옥텟 단위의 명령어를 1비트 단위로 쪼개면 다음과 같다.
ip route 0.0.0.0 128.0.0.0 1.1.1.1
ip route 128.0.0.0 128.0.0.0 1.1.1.1
이 두 줄의 스태틱 라우팅을 한 단계 확장해 서브넷 마스크 1을 모두 없애면 다음과 같이 표현할 수 있다.
ip route 0.0.0.0 0.0.0.0 1.1.1.1
위와 같이 목적지 주소의 서브넷 마스크가 모두 0인 스태틱 라우팅을 디폴트 라우팅이라고 한다.
서브넷 마스크는 2진수 and 연산을 사용하고 1은 체크, 0은 IP 주소와 상관없이라는 의미이기 때문에 0.0.0.0은 모든 네트워크라는 의미가 된다.
현재 디폴트 라우팅은 다양한 곳에서 사용되고 있고 서버에서 디폴트 게이트웨이를 설정하면 서버의 라우팅 테이블에 디폴트 라우팅이 생성된다.
네트워크 장비에서 디폴트 라우팅은 라우팅 능력이 있는 장비에서 사용하고 디폴트 게이트웨이는 이런 능력이 없는 장비에서 사용한다.
다이나믹 라우팅
IT 환경을 구축할 때는 SPoF(Single Point of Failure)를 없애기 위해 두 개 이상의 경로를 유지하는데 이 경우, 대체 경로에 대한 고민이 필요하다. 이를 스태틱 라우팅만으로 구성한다면 한 홉이 넘어간 네트워크 상태가 변경될 때 신속히 대응할 수 없다.(수동적)
스태틱 라우팅은 최적의 경로만 입력하는 것이 아니라 대체 경로까지 고려해 추가로 설정해야 하므로 네트워크 크기가 커지면 고려해야 할 경로가 많아진다.
이러한 문제를 해결하고자 다이나믹 라우팅 프로토콜을 사용한다. 관리자가 직접적인 개입 없이 라우터끼리 정보를 교환해 경로 정보를 최신으로 유지 가능하다. 이러면 관리자가 중간에 직접 개입할 필요가 없어진다.
라우팅 뒤에 프로토콜이 붙은 것은 라우터끼리 자신들만의 프로토콜로 정보를 교환하기 때문이다.
주기적으로나 특별한 변화가 있으면 경로 정보를 교환하므로 중간 경로에 문제가 발생하더라도 대체 경로를 찾는 작업이 자동으로 수행된다.
라우팅 프로토콜에는 여러 가지가 있지만 최근 OSPF, BGP 프로토콜이 주로 사용된다.
유니캐스트 경로 정보를 교환하는 프로토콜과 멀티캐스트 경로 정보를 교환하는 프로토콜이 별도로 존재하는데
RIP, IGRP, OSPF, IS-IS, EIGRP, BGP는 유니캐스트 라우팅 프로토콜,
DVMRP, MOSPF, PIM은 멀티캐스트 라우팅 프로토콜이다.
역할에 따른 분류
일반적인 라우팅 프로토콜은 유니캐스트 라우팅 프로토콜을 말한다. 이를 분류하는 방법은 주로 사용하는 역할과 동작 원리에 따라 구분한다.
인터넷에는 AS(Autonomous System)라는 자율 시스템이 존재하는데 SKT, KT, LGU+ 같은 인터넷 사업자가 한 개 이상의 AS를 운영한다.
AS 라우팅 프로토콜에는 2 가지 종류가 있다.
- IGP(Interior Gateway Protocol) : AS 내에서 사용하는 라우팅 프로토콜
- EGP(Exterior Gateway Protocol) : AS 간 통신에 사용하는 라우팅 프로토콜
동작 원리에 따른 분류
IGP 라우팅 프로토콜은 동작 원리에 따라 디스턴스 벡터(Distance Vector)와 링크 스테이트(Link-State)로 나뉩니다.
두 동작 원리를 적절히 배합해만든 어드밴스트 디스턴스 벡터(Advanced Distance Vector)가 있지만 최근에는 많이 사용되고 있지 않다.
- 디스턴스 백터 : 인접한 라우터에서 경로 정보를 습득하는 라우팅 프로토콜(ex:BGP)
- 링크 스테이트 : 라우터에 연결된 링크 상태를 서로 교환하고 각 네트워크 맵을 그리는 라우팅 프로토콜(ex:OSPF)
디스턴스 백터는 인접한 라우터에서 경로 정보를 습득하고 인접이 아닌 라우터 정보는 인접 라우터를 통해 간접적으로 건너 받는다. 인접 라우터가 이미 계산한 결과물인 라우팅 테이블을 전달받고 계산하므로 정보 처리에 리소스가 많이 필요 없다는 장점이 있다.
하지만 멀리 떨어진 라우터의 경로 정보를 얻는 데 많은 라우터를 거쳐야 하므로 모든 라우팅 정보가 동기화되는 데 많은 시간이 필요하다.
링크 스테이트 라우팅 프로토콜은 용어 그대로 라우터들에 연결된 링크 상태를 교환하는 라우팅 프로토콜이다.
링크 상태를 교환하므로 이미 최적의 경로를 연산한 결과물인 라우팅 테이블과 달리 직접적인 상태 정보를 받아볼 수 있다.
또한 토폴로지 데이터베이스를 만들고 정보를 다시 SPF(Shortest Path First) 알고리즘을 이용해 최단 경로 트리를 만든다.
하지만 링크 상태 정보를 받아 각자 처리 후 전체 네트워크 맵을 그리고 경로 파악하는 방식은 부하로 작용할 수 있어 네트워크 규모가 커지면 CPU와 메모리 자원을 많이 소모하게 된다.
따라서 네트워크 변화를 더 빨리 감지하고 리소스를 최적화하기 위해 네트워크를 에어리어(Area) 단위로 분리하고 분리된 에어리어 내에서만 링크 상태 정보를 교환한다.
에어리어 내부에서는 전체 링크 정보가 공유되지만 에어리어 외부의 라우터는 링크 상태가 직접 보내지는 것이 아니라 가공된 라우팅 테이블 형태로 정보를 전달한다. 이런 방법으로 대형 네트워크에서 링크 스테이트 라우팅 프로토콜을 효율적으로 사용할 수 있다.
<참고> 다이나믹 라우팅 활용 현황
기존에는 연산이 별로 필요없고 유지보수도 간단한 RIP 라우팅 프로토콜이 소형 네트워크에서 많이 사용됐지만 느린 정보교환, 홉 수 제한 등의 여러 제약 때문에 사용되지않는다.
RIP의 단점을 보완한 EIGRP 라우팅이 유행하던 때가 있었지만 특정업체가 개발한 라우팅 프로토콜이어서 다른 회사 장비에서 사용할 수 없고 전체 맵을 그리거나 정책 기반 라우팅 프로토콜의 다양한 장점을 사용할 수 없어 대부분 사라졌다
최근에는 BGP 사용이 늘고 있다. BGP는 다양한 프로토콜 정보를 한꺼번에 교환할 수 있고 AS 외부, 내부에서도 사용할 수 있다. BGP는 정책 기반이라 관리자 의도대로 동적으로 변환 가능하다.
또한 라우팅 테이블이 크거나 IPv4, IPv6 네트워크가 혼재되어 있거나 멀티테넌트 환경인 경우, 다양한 정보교환을 목적으로 BGP 프로토콜을 사용한다. 이때 사용하는 BGP를 MP-BGP(Multiprotocol Border Gateway Protocol) 라고 부른다.
'CS > 네트워크' 카테고리의 다른 글
DNS(Domain Name System)란 (0) | 2022.07.06 |
---|---|
NAT/PAT 란? (0) | 2022.07.06 |
라우터(L3 스위치 : 3계층 장비)란? (0) | 2022.06.24 |
STP(Spanning Tree Protocol) (0) | 2022.06.22 |
VLAN(Virtual Local Area Network) (0) | 2022.06.21 |