거리 벡터 방식과 링크 상태 방식

코코볼·2023년 5월 16일
0

네트워크 보안

목록 보기
8/35
post-thumbnail

▪ 거리 벡터(Distance Vector) 방식

거리 벡터 방식은 자신이 가지고 있는 전체 라우팅 테이블을 이웃한 라우터들에게 브로드캐스트로 매 30초(RIP) 혹은 90초(EIGRP)마다 계속해서 보낸다. 이 간격은 변경할 수 있으며 프로토콜에 따라서 값이 다르다. 만일 라우팅 테이블에 라우터 정보가 많아서 한 번의 브로드캐스트로 모두 보내지 못하면 일부 라우터들은 부분적으로 라우팅 테이블이 갱신될 수밖에 없을 것이다. 거리벡터 방식은 홉 카운트(hop count)에 기초해서 만들어지는데 홉 카운트는 어느 데이터가 최종 목적지까지 갈 때까지 거치는 라우터의 개수를 말한다. TTL=16이어서 라우터를 15개 넘어서면 그 데이터는 버려진다. Wireshark와 같은 도구로 확인할 수 있다.
=>이 기법은 오직 경로상의 라우터 수만 고려하고 연결 속도나 트래픽은 계산하지 않아서 효율성에서 그다지 좋지 못할 수 있다. 소형 네트워크에서 사용된다. 여기에 속하는 프로토콜이 RIP, RIPv2, IGRP이다.

링크상태 방식은 라우팅 경로를 결정할 때 세 가지 라우팅 테이블을 유지한다. 따라서 거리벡터보다 더 많은 메모리를 요구하지만 사실은 더 효율적이다. 테이블 생성은 먼저 각 라우터가 네트워크 내의 모든 라우터들에게 자신을 알리는 ‘Hello 패킷’을 LSP(Link State Packet)로 뿌려서 이웃한 라우터들만 네이버 테이블(neighbor table)에 넣어두고, 이어서 모든 이웃한 라우터들을 토폴로지 테이블(topology table)에 넣어서 각 라우터들은 전체적인 네트워크의 그림을 가질 수 있게 된다. 토폴로지 테이블이 완성되면 SPF(Shortest Path First) 알고리즘을 사용해서 주어진 네트워크에서 각 라우터에 이르는 최적 경로를 알아내서 메인 라우팅테이블(routing table)에 추가하는 순서로 진행된다. 네이버 테이블 >토폴로지 테이블 >라우팅 테이블 순서로 작성된다.

링크상태 프로토콜은 초기화 때에는 주변 네트워크에 LSP를 뿌려서 라우팅 정보를 모으느라 리소스 소비가 많지만 일단 초기화가 완성되어서 전체 라우팅 테이블이 만들어지면 그 다음부터는 각 라우터에서 변경된 라우팅 정보만 LSP로 송수신해서 SPF 알고리즘으로 다시 최적 경로를 계산해서 라우팅 테이블을 업데이트하기 때문에 오히려 시간이 갈수록 리소스 소비가 줄어든다. 이 알고리즘은 링크의 대역폭과 부하 등을 고려해서 만들므로 단순히 홉 카운트만 따지는 거리벡터 방식보다 더 효율적이다. 소규모에서는 거리벡터 방식을 사용하지만 대규모에서는 링크상태 방식을 선호한다.
=>여기에 속하는 프로토콜이 OSPF와 EIGRP, NLSP이다.

Classful과 Classless

앞에서도 살펴본 RIPv1, IGRP와 같은 Classful 라우팅 프로토콜은 서브네팅해서 각 서브넷의 서브넷마스크 정보를 외부에 알릴 때 디폴트 클래스의 서브넷마스크로 외부로 알린다. 이 말은 네트워크가 서브네팅되어서 서브넷마스크가 다르더라도 전체 네트워크에는 클래스별 디폴트 서브넷마스크 한 가지로 표시된다는 뜻이다.

예를 들어서 클래스 C의 네트워크_주소 192.168.100.0을 서브네팅해서 192.168.100.0, 192.168.100.32, 그리고 192.168.100.64 세 개의 네트워크로 나누었다면 서브넷마스크는 255.255.255.224가 되어서 각 네트워크가 192.168.100.0 255.255.255.224, 192.168.100.32 255.255.255.224, 그리고 192.168.100.64 255.255.255.224로 설정되었어도 IP Summary처럼 나중에
Router#sh run으로 확인하면 Classful하게 모두 디폴트 서브넷 255.255.255.0으로 표시된다.
=>설정할 때에도 일일이 서브넷을 쓰지 않고 192.168.100.0 하나만 써 주어도 된다.

하지만 RIPv2, OSPF, EIGRP 등 Classless 라우팅 프로토콜은 서브네팅해서 각 서브넷의 서브넷마스크 정보를 외부로 알릴 때 VLSM(Variable Length Subnet Mask) 기법을 사용하므로 서브네팅된 그대로 서브넷마스크를 외부에 알린다.
위의 예에서 클래스 C의 네트워크_주소 192.168.100.0을 서브네팅해서 192.168.100.0, 192.168.100.32, 그리고 192.168.100.64 세 개의 네트워크로 나누었다면 서브넷마스크는 255.255.255.224가 되어서 각 네트워크가 192.168.100.0 255.255.255.224, 192.168.100.32 255.255.255.224, 그리고 192.168.100.64 255.255.255.224로 설정되는데 나중에
Router#sh run으로 확인하면 classless하게 각각 서브네팅된대로 255.255.255.224로 표시된다.

라우팅 설정은 다음 네 가지 중 하나로 할 수 있는데,

▪ 동적 라우팅에서의 네트워크 설정은 직접 붙어있는 네트워크를 모두 지정해주면 되고

Router(config)#router rip
Router(config-rip)#net 직접연결된네트워크 로 설정하고,
<= 관리자가 외부 네트워크를 알 수 없기 때문에 동적 라우팅 설정은 알고 있는 네트워크만 설정해주면 된다. 동적 라우팅은 외부의 변경된 경로를 자동으로 잡아주는 편리함이 있으나 해당 경로변경으로 인한 새로운 경로를 계산해야하기 때문에 조금 늦게 연결될 수 있다. 여기서 RIP, RIPv2, OSPF, EIGRP 프로토콜을 사용한다.

▪ 정적 라우팅에서의 네트워크 설정은 직접 붙어있지 않은 네트워크를 모두 지정해주며

Router(config)#ip route 192.168.100.0(목적지네트워크주소) 255.255.255.0(목적지네트워크서브넷마스크) 목적지라우터입력IP주소(OR 출발지라우터출력_인터페이스)로 설정한다.
<= 관리자가 모든 네트워크를 다 알고 있을 때 가능하다. 이 정적 라우팅은 거의 경로가 불변인 내부 네트워크 경로를 설정할 때 사용하는데 한 번 설정해 두면 경로변경이 거의 없어서 빠르게 연결된다.

▪ 디폴트 라우팅(Default Routing) 설정은 스위치-라우터나 라우터-라우터에 이르는 경로가 하나밖에 없는(이를 Stub network로 부름) 경우의 정적 라우팅 방식으로써

Router(config)#ip route 0.0.0.0(목적지네트워크주소) 0.0.0.0(목적지네트워크서브넷마스크) 목적지라우터입력IP주소(OR 출발지라우터출력_인터페이스)로 설정한다. 0.0.0.0 0.0.0.0은 any의 의미이다.
<= 관리자가 내부/외부의 모든 네트워크를 알고 있고, 타겟 라우터에 이르는 경로가 하나 일 때 설정한다.

▪ CDP 설정은 Cisco 라우터끼리 직접 연결되어져 있을 때 cdp로 네트워크를 구축할 수도 있다.

RIPv1/RIPv2 : distance vector 방식, Classful, IGP 프로토콜
sh ip route 해서 라우팅 테이블을 보면
R 192.168.101.0/24 [120/1] via 10.10.10.1, 00:00:19, Serial2/0 식으로 보이는데
RIP을 사용해서 이 네트워크는 s2/0 포트를 통해서 10.10.10.0 네트워크의 10.10.10.1 주소로 가서 192.168.101.0 네트워크와 연결된다. [120/1]에서 120은 RIP 프로토콜의 Administrative Distance(관리거리)이고, 1은 Metric으로 하나의 라우터가 떨어져 있다는 의미이다.
=>관리거리는 라우터에서 도달하는 데이터의 신뢰도를 말한다. RIP 120에서 오는 데이터와 OSPF 90에서 오는 데이터가 있다면 라우터는 90에서 오는 패킷을 더 신뢰한다. 보안적으로 보면 특정 네트워크가 의심스럽다면 관리거리를 무한대로 해주거나, distance vector RIP에서는 16으로 hop count를 설정해서 신뢰하지 않게 할 수 있다.

RIP이 활성화되고 정확히 설정되었으면 R_a, R_b, 그리고 R_c의 경로정보가 서로 완전히 일치해야 하는데 이때까지 걸리는 시간을 수렴시간(convergence time)이라고 한다. 여기서는 소규모 네트워크이므로 R_a에서 R_b로 30초, R_b에서 R_c로 30초 걸려서 모두 60초면 충분한 컨버전스 타임이 된다. 더 큰 규모의 네트워크라면 시간이 더 걸리는데 거리벡터 프로토콜이 링크상태 프로토콜보다 이 컨버전스 타임이 더 길다.

Class C에서는 /24가 디폴트 네트워크이지만 서브네팅 해서 /30으로 하면 서브넷 마스크가 달라진다. 이런 네트워크를 RIP으로 설정한다면 RIPv2로 해주어야 한다. 그냥 디폴트로 사용한다면 RIPv1도 된다.

IGRP와 EIGRP

이 두 동적 라우팅 프로토콜은 Cisco 사에서 만든 프로토콜인데 IGRP는 Distance Vector 방식이고 EIGRP는 Link States 방식이다. 현재 IGRP는 거의 사용되고 있지 않다. AS 번호를 지정해서 설정해 주어야 한다. 직접 연결된 네트워크만 설정해 주면 된다.
Link States에서는 Metric이 의미 없다!!!!

OSPF

Link States 알고리즘을 사용하는 라우팅 프로토콜이다.

  • area : 일종의 서브넷(부서)과 같은 것으로 모든 area 1, area 2, ...는 area 0과 접해 있어야 한다!!!
  • wild mask : 이는 서브넷마스크로 호스트의 개수를 표시하는 기법이다.
    NAT(Network Address Translate)와 ACL(Access Control List) 그리고 OSPF 네트워크에서 사용된다.
    255의 보수(compulmentary number)로 표시한다!!!
    a) 19.2168.100.0/24 network address =>255.255.255.0(subnet mask) =>0.0.0.255(wild mask)
    b) 192.168.100.10/24 host address =>255.255.255.0(subnet mask) =>0.0.0.0(wild mask) 주의!!!
    c) 192.168.100.0/30 network address =>255.255.255.252(subnet mask) =>0.0.0.3(wild mask)

0개의 댓글