네트워크 교실 4장. 라우팅

sanghee·2021년 12월 2일
0
post-thumbnail

4장. 라우팅

28. 주소와 경로

1계층, 2계층, 3계층

1계층은 통신 매체(케이블)을 통해 신호를 전송한다. 2계층은 케이블로 연결된 구간(세그먼트)의 네트워크 내에서 데이터를 전송한다. 3계층은 네트워크 간 데이터를 전송한다.

IP 주소

어느 네트워크에 있는지, 어느 컴퓨터에 있는지에 대한 주소이다.

MAC 주소(물리 주소)와 IP 주소(논리 주소)의 차이점?

MAC 주소는 같은 네트워크 내에서 수신처를 결정한다. 그에 비해 IP 주소는 수신처의 컴퓨터를 결정하며 데이터의 최종 수신처가 된다.

데이터 → 네트워크 A → 네트워크 B → 네트워크 C → 컴퓨터

MAC 주소는 데이터가 네트워크 A에 위치해 있다면 네트워크 B를, 네트워크 B에 위치해 있다면 네트워크 C를 가리킨다. 계속 주소가 변경된다.

반면 IP 주소는 최종 목적지인 컴퓨터를 가리킨다. 변경되지 않는다.

홉 바이 홉(Hop-by-Hop) == 깡충 깡충

라우터라는 장치가 다음에 어디로 보내야 할지 결정하면서 경로를 결정한다. 이렇게 반복해서 다음 길을 제시하는 방식을 홉 바이 홉이라고 한다. Hop이란 깡충이라는 의미를 가지고 있다.

경로를 정하는 규칙

  1. 다른 네트워크에 수신처가 있는 경우에는 라우터로 송신한다.
  2. 같은 네트워크에 수신처가 있는 경우에는 수신처에 직접 송신한다.

29. 라우터

라우터

라우터란 라우팅을 하는 기기이다. 다른 네트워크에 데이터그램을 송신하기 위함이다.

네트워크 경계선에 배치된다. 복수의 인터페이스를 가질 수 있으며 즉 복수의 네트워크에 연결되어 있다.

라우팅

라우팅이란 데이터그램의 수신처 IP 주소를 근거로 다음에 송신하는 라우터를 결정하는 것이다.

필터링(Filtering)

필터링이란 전송받은 데이터그램을 필터링하는 것으로 조건에 해당하지 않는다면 파기한다. 예를 들어 실습실의 네트워크에서는 사무실의 네트워크로 데이트를 전송하지 못하게 할 수 있다.

라우팅 테이블 == 최적 경로 지도

라우터가 수신한 패킷이 수신처까지 도달하기 위한 최적의 경로가 그려져 있느 지도이다. 이 지도에는 수신처 네트워크까지의 거리, 다음에 도달하는 라우터, 그 라우터에 연결되어 있는 자신의 인터페이스 등이 기재되어 있다.

최장일치의 룰(Longest Match)

실제 데이터그림의 수신처 IP 주소로부터 라우팅 테이블의 수신처 네트워크 주소를 결정해서 다음 라우터, 송신 인터페이스를 결정한다. 여기서 수신처 IP 주소와 수신처 네트워크 주소를 비교할 때 최장일치의 룰을 사용한다. 가장 많이 일치하는 것을 사용한다.

라우터 동작 순서

  1. 호스트로부터 패킷을 수신받는다.
  2. 수신처 IP 주소로부터 수신처 네트워크를 결정한다. 이때 최장일치의 룰을 적용한다.
  3. 라우팅 테이블에서 다음 중계할 라우터, 송신할 인터페이스가 결정된다.
  4. 결정된 인터페이스로부터 패킷을 송신한다.

30. 디폴트 게이트웨이

브로드캐스트 도메인 == 네트워크

브로드캐스트 도메인이란 브로드캐스트가 도달하는 범위를 의미한다. 브로드캐스트는 라우터를 넘어서 전송할 수 없다(flooding에 따른 신호 충돌을 막기 위해).

충돌 도메인과 브로드캐스트 도메인

층돌 도메인은 스위치가 구분한다. 브로드캐스트 도메인은 라우터가 구분한다.

ARP

ARP란 수신처의 IP 주소에 해당하는 MAC 주소를 얻기 위한 프로토콜이다. 수신처가 같은 네트워크가 아닌, 다른 네트워크에 위치하는 경우 ARP는 도달하지 못한다. 라우터를 넘지 못하기 때문이다.

디폴트 게이트웨이(Default Gateway) == 네트워크 출입구

디폴트 게이트웨이는 컴퓨터가 다음에 보낼 라우터이다. 만약 호스트가 다른 네트워크로 데이터를 전송하고 싶다면 디폴트 게이트웨이로 데이터를 보내서 전송한다. 즉, 컴퓨터가 최초로 데이터를 보내는 수신처이다.

수신처의 MAC주소?

먼저 디폴트 게이트웨이로 보낸다고 하였다. 수신처의 MAC 주소로 디폴트 게이트웨이의 MAC 주소를 사용한다.

디폴트 게이트웨이의 IP 주소?

컴퓨터에는 디폴트 게이트웨이의 IP 주소를 미리 수동이나 DHCP(동적으로 클라이언트가 IP 주소를 요청하면 서버가 그에 응해 IP 주소를 할당)로 설정한다.

동작 순서

  1. 다른 네트워크에 데이터를 보내는 경우, 호스트는 디폴트 게이트웨이로 ARP를 수행해서 디폴트 게이트웨이의 MAC 주소를 입수한다.
  2. 호스트는 수신처의 MAC 주소를 디폴트 게이트웨이로, 수신처의 IP 주소를 수신처 호스트로 해서 패킷을 보낸다.
  3. 수신받은 디폴트 게이트웨이는 라우팅을 하고, 중계 라우터, 송신포트를 결정하여 다음에 수신받을 상대(중계 라우터나 수신처)에게 ARP를 수행한다.
  4. ARP에 의해 입수한 MAC 주소를 수신처 MAC 주소로, 자기 자신의 MAC 주소를 송신처 MAC 주소로 갱신하여 송신한다. IP 주소는 변경되지 않는다.

31. 라우팅

라우팅 테이블

라우팅 테이블에는 수신처 네트워크, 다음 라우터, 메트릭, 인터페이스를 가지고 있다. 라우터는 수신처 네트워크를 결정한다. 라우터 테이블을 비교해서 경로를 찾아낸다.

라우팅 테이블에 없는 경우?

라우팅 테이블에 수신처 네트워크가 없는 경우는? 라우터는 해당 데이터그램을 파기해버린다.

정적 라우팅

관리자가 수동으로 경로를 입력하는 것이다. 큰 단점은, 수동으로 입력한 경로를 사용할 수 없는 경우 관리자가 다시 경로를 갱신해야 한다. 수동으로 우회로 변경을 수행하기에 언제 발생할지 모르는 장애를 대비하기가 힘들다.

동적 라우팅

라우터끼리 자동으로 정보를 교환해서 경로를 알아낸다. 언제 발생할 지 모르는 장애를 자동으로 처리하는 장점이 있지만 몇몇 단점도 발생한다.

동적 라우팅의 단점들

  1. 라우터끼리 정보를 교환하기에 회선 전송을 압박한다. 실제 데이터 전송에 사용되는 분량이 줄어든다.
  2. 서로 교환한 정보를 가지고 최적의 경로를 계산해야 한다. 라우터의 처리능력이 필요해진다.
  3. 모든 라우터가 동일한 정보를 가져야 한다.

컨버전스(Convergence)

모든 라우터가 동일한 정보를 가지고 있는 상태를 컨버전스라고 부른다.

32. 라우팅 프로토콜

중복성(Redundancy)

중복성이란 여분이나 중복이 있는 것을 의미한다. 네트워크에서는 여분을 가지고 있어서 장애 등에 대응할 수 있는 것을 가리킨다.

동적 라우팅

동적 라우팅은 자동으로 어떤 장애가 발생했을 때 우회로를 만드는 등 중복성을 유지한다.

자율화 시스템(Autonomous System, AS)

하나의 관리 단체에 의해 관리되는 네트워크 집합체를 의미한다. 인터넷에는 너무 많은 네트워크들이 존재하기에 같은 조직이 관리하는 복수의 네트워크를 AS라고 부른다.

라우팅 프로토콜(Routing Protocol)

근접해 있는 라우터 간의 네트워크 정보를 서로 교환하기 위한 규칙이다. 교환한 정보를 근거로 라우팅 테이블을 변경한다.

라우팅 프로토콜 종류

라우팅 프로토콜은 크게 두가지로 나뉜다.

1. EGP(Exterior Gateway Protocol)

AS 간 라우팅을 위한 프로토콜이다.

2. IGP(Interior Gateway Protocol)

AS 내부의 라우팅을 위한 프로토콜이다.

라우팅 프로토콜의 역할

라우팅 프로토콜은 네트워크 정보교환을 언제 할지, 어떻게 할지, 누구에게 전송할지, 어떤 정보를 전송할지 등을 결정한다. 라우팅 프로토콜이 결정한 방식에 따라 정보를 교환해 컨버전스(모든 라우터가 동일한 정보를 가진 상태) 상태에 도달하는 것이 목표이다.

동작 순서

  1. 라우팅 프로토콜의 규칙에 따라 두 라우터는 네트워크 정보를 교환한다.
  2. 교환한 정보를 바탕으로 최적의 경로를 라우팅 테이블에 기재한다.
  3. 라우팅 테이블을 바탕으로 최적의 경로를 사용한다.

33. RIP

메트릭(Metric)

최적의 경로를 결정할 때의 판단하는 기준을 의미한다. 최적을 결정하기 위한 값으로 계산하여 그 중 최소값을 갖는 것을 최적의 경로라고 이야기한다.

메트릭을 중계 라우터 수(홉수)로 결정한 경우, 중간에 있는 라우터가 적을수록 메트릭이 적고 최적이다.

디스턴스벡터(Distance Vector) == 거리 + 벡터

거리와 방향이 합쳐진 용어이다.

라우팅 업데이트(Routing Update)

라우팅 테이블을 그대로 교환하여 업데이트하는 것을 의미한다. 30초에 한번씩 교환한다. 그리고 6번 이상 수신하지 않으면 장애가 상대 라우터에 장애가 발생했다고 간주하여 상대 라우터를 사용하는 경로들을 파기한다.

RIP(Routing Information Protocol)

RIP이란 라우팅 정보 프로토콜이다. 업데이트를 수신하면 자기가 모르는 네트워크를 테이블에 추가한다. 업데이트를 보내 온 라우터를 중계 라우터로, 업데이트를 받은 인터페이스를 송신 인터페이스로 정한다.

이미 테이블에 존재하는 네트워크에 대해서 새로운 정보가 들어오면 둘 중 메트릭이 작은(최적의) 정보로 업데이트한다.

34. ICMP

ICMP(Internet Control Message Protocol)

인터넷 제어 메세지 프로토콜이다. 에러 보고 프로토콜이라고 생각하면 된다.

ICMP 메시지 == 타입 + 코드

IP 데이터그램에 ICMP 메시지를 넣는다. 해당 메시지에는 타입(ICMP의 코드)과 코드(상세 내용)등이 있다. ICMP 메시지는 크게 두종류가 있따.

1. Query 메시지

상태를 조사하기 위해 사용되는 메시지이다. 아래와 같은 경우에 사용된다.

  1. Echo를 응답하거나
  2. Echo를 요청할 때

2. Error 메시지

에러를 통지하기 위한 메시지이다. 아래와 같은 경우에 사용된다.

  1. 수신처에 도달하지 못하거나
  2. 최적 경로를 다시 통지할 때
  3. 시간 초과에 의해 패킷을 제거해야 할 때

TTL(Time To Live) == 생존시간

IP 데이터그램의 TTL은 라우터를 경유할 때마다 1씩 줄어들고 0이 되면 파기된다. 이유는 중계 라우터가 틀려서 네트워크 내에서 영원히 순환되는 문제를 방지하기 위해서이다. 지구 반대편에 보대더라도 라우터 30개정도면 경유하므로 일반적으로 TTL은 넉넉하게 64개나 128개정도를 둔다.

35. Echo와 Time Exceeded

에코(Echo) == 야호!

ICMP의 메세지의 타입0과 타입8은 각각 에코 응답(Echo Reply)와 에코 요청(Echo Request)였다. 여기서 에코란 아무 의미없이 그냥 에코이며 잘 연결되어있냐를 확인하는 용도이다.

ping

에코의 개념을 이용해 임의의 수신처에게 에코 요청을 보내는 소프트웨어이다. 임의의 수신처에게 에코를 보내 에코를 받는다면, 송신처와 수신처 간의 데이터를 송수신할 수 있음을 알게 된다.

에코의 요청과 응답에 걸리는 시간을 측정하여 네트워크 상태를 조사할수도 있다.

Time Exceeded

타입11은 Time Exceeded 메시지였다. 시간초과는 TTL(Time to Live, 생존시간)과 관련되어 있다. TTL이 0이 되어 파기하고 파기되었음을 이 메세지로 통지한다.

  1. TTL은 라우터를 경유할 때마다 1씩 감소한다.
  2. TTL이 0이 되었다면 해당 데이터그램은 파기된다.
  3. 파기한 라우터는 송신처에 Time Exceeded를 보낸다.

Traceroute

trace + route로 경로를 찾아간다는 의미이다. 즉 수신처까지의 경로를 가르쳐 주는 소프트웨어이다. 이것으로 어느 경로를 거쳐 갔는지를 알 수 있다. 하지만 이러한 정보들는 크래커(Cracker)의 공격에도 이용되므로 주의해야 한다.

Traceroute의 원리

  1. TTL == 1에서 수신처에 패킷을 보내고 첫번째 라우터에서 Time Exceeded를 받는다.
  2. TTL == 2에서 수신처에 패킷을 보내고 두번째 라우터에서 Time Exceeded를 받는다.
  3. 이후부터 TTL을 1씩 늘려가고 수신처까지 패킷을 전달한다.
  4. 수신처까지 데이터가 도달해 응답 패킷을 수신하면, 지금까지 Time Exceeded를 보내온 라우터를 표시한다.
  5. 결론적으로 송신처에서 수신처까지 경유하는 라우터를 조사할 수 있다.

크래커(Cracker)

시스템의 보안을 뚫고 부정적인 목적으로 컴퓨터에 침입해서 악의 있는 행동을 행하는 사람을 말한다. 일번적으로 해커(Hacker)와 혼동해서 사용한다.

profile
👩‍💻

0개의 댓글