Book/CCNA

IP Routing

Hayley Shim 2016. 1. 5. 14:34

라우터구조 : http://www.netmanias.com/ko/?m=view&id=blog&no=5515 [출처 : 넷매니아즈]

What?

Routing : 한 디바이스로부터 패킷을 취해 네트워크를 통해 상이한 네트워크 상의 또 다른 디바이스로 전송하는 것. 라우터들은 인터네트워크의 모든 네트워크로의 트래픽(traffic)을 추적함

(참고 : http://www.netmanias.com/ko/post/blog/5502/arp-bridging-ip-routing/switching-and-routing-part-2-ip-routing)

패킷을 라우팅하기 위해 라우터가 필요한 정보

- 수신지 어드레스

- 인접라우터 : 이를 통해 라우터는 원격 네트워크에 관해 학습 가능

- 모든 원격 네트워크의 가능한 경로

- 각 원격 네트워크로의 최적경로

- 라우팅 정보를 유지하고 검증하는 방법

라우터는 인접한 라우터들 또는 관리자로부터 원격 네트워크에 관한 정보 학습 후 라우팅 테이블 만듦

네트워크가 직접적으로 연결되어 있다면 라우터는 그 네트워크에 어떻게 도달할 수 있는지를 알고 있음. 원격 네트워크에 도달하는 방법

1. 정적 라우팅 : 관리자가 모든 네트워크의 위치를 라우팅 테이블에 입력해야 함. 만일 네트워크 내에 변화가 일어나면 정적 라우팅을 사용할 경우는 관리자가 수동으로 모든 라우터들을 업데이트 해야함

2. 동적 라우팅 : 인접라우터와 통신하는 라우터상에서 작동 중인 라우팅 프로토콜들의 프로세스. 동적 라우팅 프로토콜은 자동적으로 모든 라우터들에게 변경 내용을 알려줌

 

IP Routing Process

호스트 A(170.16.10.2)의 사용자가 호스트 B(170.16.20.2)의 IP address에 ping 수행시,

1. Internet Control Message Protocol(ICMP)는 echo request payload 생성

2. ICMP는 해당 payload를 Internet Protocol(IP)로 전달하고 IP에서 패킷을 생성. 패킷은 IP source address, IP destination address, Protocol field 가짐

3. 일단 패킷이 생성되면 IP는 목적지 IP 주소가 로컬 네트워크인지 원격 네트워크인지 판단 

4. 목적지가 원격 네트워크일 경우 패킷은 원격 네트워크로 전송되기 위해 먼저 default gateway로 전송되어야 함

5. 위 그림에서 Host 172.16.10.2(호스트 A)의 default gateway는 172.16.10.1. 이 패킷이 default gateway로 전송되기 위해 라우터의 인터페이스 Ehternet 0의 하드웨어 주소를 알아야 함. 왜냐하면 패킷은 Data Link layer로 전송되어 프레임화되고 라우터의 인터페이스로 전송되기 때문. 호스트는 로컬 LAN 상의 하드웨어 주소를 가지고 통신할 수 있기 때문에 호스트 A가 호스트 B와 통신할 수 있는지 인지하는 것이 중요하고 로컬 네트워크 상 default gateway의 Media Access Control(MAC) 주소로 패킷을 보내야만 함

6. 호스트의 Address Resolution  Protocol(ARP) cache는 default gateway의 IP 주소가 하드웨어 주소와 resolved 되었는지 점검함

1) ARP cache가 하드웨어 주소를 알고 있다면 패킷은 프레이밍을 위해 Data Link layer로 전달됨

2) ARP cache에 하드웨어 주소가 없다면 ARP broadcast는 172.16.10.1의 하드웨어 주소를 찾기 위해 로컬 네트워크로 전송됨. 라우터는 요청에 응답하고 Ethernet 0의 하드웨어 주소를 제공

7. 일단 패킷과 목적지 하드웨어 주소가 Data Link Layer로 전송된다면 LAN  driver는 LAN type을 통해 media access를 제공하기 위해 사용됨. 프레임이 생성되면 control 정보를 통해 패킷을 캡슐화함. 프레임에 하드웨어 목적지 주소, 발신지 주소, Ether-Type 필드, FCS가 더해짐

8. 프레임이 완성되면 한번에 한 bit 단위로 physical layer로 전송됨

9. collision domain 상의 모든 장비는 bit를 수신하고 프레임을 생성

1) CRC가 일치하면 하드웨어 목적지 주소가 일치하는지 아닌지 확인

2) 일치하면 네트워크 레이어에서 사용되는 프로토콜을 찾기 위해 Ether-Type field 점검

10. 패킷은 프레임으로부터 생성

11. IP는 패킷을 수신한 후 IP 목적지 주소를 점검. 패킷의 목적지 주소가 수신지 라우터 상에 없으면 라우터는 라우팅 테이블 안이 목적지 IP 주소를 look up함

12. 라우팅 테이블은 172.16.20.0 네트워크에 대한 entry를 가지고 있어야 함. 그렇지 않으면 패킷은 즉시 버려질 것이고 ICMP 메시지가 원래 장비로 전송될 것

13. 찾지 못한다면 패킷은 exit interface로 전송됨(예시에서 Ethernet 1)

14. 라우터는 Ethernet 1 버퍼로 패킷을 packet-switch 함

15. Ethernet 1 버퍼는 목적지의 하드웨어 주소를 알 필요가 있고 먼저 ARP cache를 점검함

16. Data link layer는 목적지, 발신지 하드웨어 주소, Ether-Type, FCS field를 가지고 프레임을 생성. 프레임은 한번에 한 bit 씩 physical layer로 전송됨

17. Host B는 프레임을 수신하고 즉시 CRC로 동작. FCS field가 일치한다면 그 다음으로 하드웨어 목적지 주소 점검. 그 다음, Ether-Type field는 프로토콜을 결정하기 위해 점검

18. 네트워크 레이어에서 IP는 패킷을 수신하고 IP 헤더 상 CRC를 동작하고 통과하면 목적지 주소를 점검. 일치하다면 payload를 전송하기 위해 Protocol field 점검

19. Payload는 echo request를 알고 있는 ICMP로 전송됨. ICMP는 즉시 패킷을 버리고 echo replay로 새로운 payload를 생성함으로써 이에 응답

20. 그리고나서 발신지, 목적지 주소, Protocol field, payload를 포함하는 패킷이 생성됨. 이제 목적지 장비는 Host A

21. IP는 목적지 IP 주소가 로컬 LAN 또는 원격 네트워크 상의 장비인지 점검. 목적지 장비가 원격 네트워크에 있기 때문에 패킷은 default gateway로 전송되어야 함

22. default gateway IP 주소는 윈도우 장비의 레지스트리에서 발견됨. ARP cache는 하드웨어 주소가 이미 IP 주소로부터 resoloved 되었는지 아닌지 점검

23. Default gateway의 하드웨어 주소가 발견되면 패킷과 목적지 하드우어 주소는 프레이밍을 위해 Data Link layer로 전송됨

24. Data Link layer는 패킷에 정보를 프레임화하고 헤더에 아래 요소들을 포함

- The destination and source hardware addresses

- The Ether-Type field with 0x0800 (IP) in it

- The FCS field with the CRC result in tow

25. 프레임은 한번에 한비트로 Physical layer로 전송됨

26. 라우터의 Ethernet 1 인터페이스는 비트를 수신하여 프레임을 생성. CRC가 동작하고 FCS field를 점검

27. CRC를 통과하면 하드웨어 목적지 주소를 점검. 라우터의 인터페이스가 일치하기 때문에 프레임으로부터 패킷이 생성되고 네트워크 레이어에서 무슨 protocol이 전달되었는지 보기 위해 Ether-Type field 점검

28. protocol은 IP로 결정되고 IP는 IP 헤더 상 CRC를 점검하고 목적지 IP 주소를 점검

29. 라우터는 172.16.10.1 네트워크로 가는 방법을 알기 때문에 패킷은 인터페이스 ehternet 0으로 전송됨

30. 라우터는 172.16.10.2 에 대한 하드웨어 주소가 이미 resolved 되었는지 아닌지 결정하기 위해 ARP cache 점검

31. 172.16.10.2로의 하드웨어 주소가 이미 Host B로의 경로 상에 저장되었기 때문에 하드웨어 주소와 패킷은 Data Link layer로 전송됨

32. Data Link layer는 목적지, 발신지 하드웨어 주소를 가진 프레임을 생성하고 Ether-Type field 안에 IP를 넣음. CRC는 frame에서 동작하고 FCS field 안에 위치

33. 그리고나서 프레임은 한번에 한 bit씩 로컬 네트워크 상에 Physical layer로 전송될 것

34. 목적지 host가 프레임을 수신하여 누가 패킷을 전송했는지 찾기 위해 CRC를 동작하고 목적지 하드웨어 주소를 점검하고 Ehter-Type field를 봄

35. IP가 지정된 수신자이고 패킷이 네트워크 레이어 상 IP로 전송된 후 Protocol field를 점검. IP는 ICMP에 payload를 주기 위해 지시를 찾고 ICMP는 패킷이 ICMP echo reply인지 결정

36. ICMP는 user interface에 exclamation point(!)를 전송함으로써 응답을 수신함을 인지. 그리고나서 ICMP는 목적지 host로 4회 이상의 echo request를 전송

 

IP 라우팅

1. Static Routing

2. Default Routing

3. Dynamic Routing

 

Static Routing

- 관리자가 수동으로 각 라우터들의 라우팅 테이블에 경로를 추가하는 과정

-정적 라우팅 장점

1) 라우터 CPU 상 부담 없음

2) 라우터들 간에 대역폭을 낭비하는 일이 없음

3) 보안성(관리자만이 어떤 네트워크의 라우팅을 설정할 수 있으므로)

-정적 라우팅 단점

1) 관리자는 인터네트워크를 실제로 이해해야만 하고 각 라우터가 경로를 정확히 환경설정 하도록 어떻게 연결되어 있는지를 알아야 함

2) 만일 한 네트워크가 인터네트워크에 첨가되면 관리자는 기존 네트워크의 모든 라우터상에 추가된 네트워크로의 경로를 추가해야 함

3) 대규모 네트워크에서는 거의 실행하기 어려운데 이는 관리자가 모든 시간을 여기에 할애해야 하기 때문

-정적경로를 라우팅 테이블에 추가하는데 사용되는 명령

· ip route [destination_network][mask][next_hop_address or exit interface][administrative_distance][permanent]

-ip route : 정적경로를 만드는데 사용되는 명령

-destination network : 라우팅 테이블을 위치시키고자 하는 네트워크

-Mask : 네트워크상에서 사용될 서브넷 마스크를 가리킴

-next hop address : 패킷을 받고 원격 네트워크로 전송할 next hop 라우터의 어드레스. 이것은 직접적으로 연결된 네트워크상에 있는 라우터 인터페이스. 경로를 추가하기 전에 라우터 인터페이스에 ping을 수행할 수 있어야만 함

-exit interface : 필요한 경우 next hop address 대신 사용. WAN처럼 point to point 링크 상에 있어야만 함. 이 명령은 예를 들면 Ethernet과 같은 LAN 상에서는 실행되지 않음

-administrative_distance : 디폴트로 정적 경로들은 1의 administrative distance를 가짐. 명령의 마지막에 administrative weight를 추가함으로써 디폴트 값을 바꿀 수 있음

-permanent : 만일 인터페이스가 종료되거나 라우터가 다음 hop 라우터와 통신할 수 없다면 경로는 라우팅 테이블로부터 자동적으로 파기됨. Permanent 옵션을 선택하면 어떤 일이 일어나더라도 라우팅 테이블 내의 입력값들을 보존할 수 있음

 

 

Default Routing

- 라우팅 테이블 안에 없는 원격 네트워크를 수신지로 하는 패킷을 다음 hop 라우터로 전송하기 위한 프로세스. 단지 stub 네트워크 상에서만 디폴트 라우팅을 사용할 수 있음. 즉, 한개의 출구포트만을 네트워크 상에서 사용할 수 있음

- 디폴트 경로를 설정하기 위해 네트워크 어드레스나 정적 경로의 마스크 위치에 와일드 카드를 사용할 수 있음

- 디폴트 경로를 네트워크와 마스크 정보 대신 와일드 카드를 사용하는 정적경로라고 생각할 수 있음

· ip classless : 모든 cisco 라우터들은 classful router이다. 다시 말해 라우터의 각 인터페이스상의 디폴트 서브넷 마스크를 예상해서 처리. 라우터가 라우팅 테이블 안에 없는 수신지 서브넷에 대한 패킷을 받는다면 라우터는 디폴트로 패킷을 폐기(drop)할 것. 디폴트 라우팅을 사용했을 때는 ip classless 명령을 사용해서 라우팅 테이블 안에 없는 원격서브넷 앞으로 패킷을 디폴트 테이블에 라우팅할 수 있도록  설정할 필요가 있다.

 

Dynamic Routing

- 프로토콜을 사용해서 라우터상의 라우팅 테이블을 찾고 업데이트 하는 과정

- 이는 정적 라우팅이나 디폴트 라우팅보다 간단하지만 라우터의 CPU 프로세스와 네트워크 링크 대역폭을 많이 소모

- 라우팅 프로토콜은 라우터가 인접한 라우터와 통신할 때 사용하는 규칙들을 정의

· administrative distance

- 라우터가 인접 라우터로부터 받은 라우팅 정보의 신뢰성(trustworthiness)을 평가하는 지표

- 라우팅 프로토콜들을 환경설정하자면 AD(Administrative Distance)를 알아야 함

- AD는 0부터 25까지의 정수로 나타냄. 여기서 0은 가장 신뢰도가 높고 255는 가장 신뢰성이 떨어짐. AD가 255인 라우터를 통해서는 어떤 traffic도 통과할 수 없음

Route Source   Default AD
 Connected interface  0
 Static route  1
 EIGRP  90
 IGRP  100
 OSPF  110
 RIP  120
 External EIGRP  170
 Unknown  255(this route will never be used)

<IP routing example using two hosts and one router>

 

Routing Protocols

- Distance Vector : 원격 네트워크까지의 distance 값을 기준으로 최적의 경로를 찾아냄. 여기서 distance란 매번 패킷이 라우터를 통과하는 횟수. 즉, hop을 말함. 최소한의 hop 수를 가지는 경로가 최적의 경로가 됨. 벡터는 원격 네트워크까지의 방향을 결정함. ex) RIP

- Link State : 통상적으로 SPF(Shorted Path First)라 불림. 각 라우터는 세 개의 개별적인 테이블을 만듦. 이 테이블 중 하나는 직접적으로 연결된 인접라우터들을 추적하고 또하나는 인터네트워크 전체의 토폴로지를 판단하며 나머지 하나는 라우팅 테이블로서 사용됨. Link state 라우터는 어떤 distance vector 라우팅 프롵토콜 보다도 인터네트워크에 관한 상세한 정보를 이해함. ex)OSPF

- Hybrid : distance vector와 link state의 두가지 특징 지님 ex)EIGRP

1. Distance Vector

- distance-vector 라우팅 알고리즘에서는 전체 라우팅 테이블을 인접 라우터에 넘겨줌. 인접라우터는 수신된 라우팅 테이블을 자신의 라우팅 테이블에 결정하여 인터네트워크 맵을 작성. 이를 '소문으로 들은 라우팅(routing by rumor)'라 부르는데 즉, 인접한 라우터로부터 업데이트를 수신한 라우터는 원격 네트워크들에 관한 정보를 실제로 검색을 실행하지 않고 그대로 믿기 때문

- 하나의 네트워크가 같은 원격 네트워크에 대해 다중 링크를 가질 때가 있다. 그런 경우라면 AD가 먼저 체크된다. 만일 AD가 같은 경우에는 그 원격 네트워크로의 최적 경로를 결정하기 위해서는 다른 측정값(metric)을 사용해야 함

- RIP는 인터네트워크로의 최적 경로를 결정하기 위해 hop 수만을 사용

- 동일한 원격 네트워크로의 링크가 한개 이상이고 그 hop 수가 같을 경우 RIP는 자동적으로 round robin load balance를 실행할 것

- RIP는 최대 6개의 equal-cost link로 load balancing을 수행할 수 있음. 그러나 이러한 형식의 라우팅 측정법은 원격 네트워크로의 두개의 링크가 대역폭이 서로 달라도 같은 hop 수를 가지는 경우에 문제 발생

ex) 172.16.10.1으로의 두개의 링크일때,

pinhole 폭주(congestion) : 네트워크 172.16.30.0은 1.544Mbps의 대역폭을 가지는 T1 링크이고 네트워크 172.16.20.0은 56K이기 때문에 라우터는 56K 링크보다는 T1을 선택할 것. 단, RIP 라우팅에서는 hop수만을 측정값으로 사용하므로, T1이나 56K 어느쪽이나 equal cost link로 봄

- distance vector 라우팅 프로토콜이 기동할 때 무엇을 실행하는지 이해하는 것이 중요

- distance vector 라우팅 프로토콜이 각 라우터 상에서 가동되면 라우팅 테이블들은 인접 라우터들로부터 얻어진 경로정보를 가지고 업데이트 됨

(그림예제)

- 그림에서 각 라우터의 라우팅 테이블 안에는 직접 연결된 네트워크들만이 포함

- 각 라우터는 라우팅 테이블 전체를 그 라우터 상의 각각의 active interface로 보냄

- 라우팅 테이블 정보 : 네트워크 번호, 출구 인터페이스, 네트워크로의 hop 수

 

(그림예제)

- 그림에서 라우팅 테이블은 인터네트워크 내의 모든 네트워크에 관한 정보를 포함하고 있으므로 완성된 상태. 이들은 converge된 것으로 간주. 라우터들이 converge되는 동안 어떤 업데이트 데이트도 넘겨지지 않음. 이것은 빠른 convergence 시간이 장점이 되는 이유. RIP의 문제점 중 하나는 convergence 시간이 길다는 것

-라우팅 테이블 정보 : 네트워크 번호, 라우터가  원격 네트워크에 도달하기 위해 패킷을 전송하는 인터페이스, 원격 네트워크로의 hop 수 혹은 다른 측정법

 

Routing Loop

- distance vector 라우팅 프로토콜의 느린 convergece 때문에 일치되지 않은 라우팅 테이블이 생기면 그 결과 라우팅 루프가 발생할 수 있음

- 라우팅 루프는 모든 라우터가 거의 같은 시간에 업데이트 되지 않으므로 발생

(그림예제)

라우팅 루프 : 그림에서 네트워크 5가 정지되면 라우터 E는 라우터 C에게 이 사실을 알림 -> 라우터 C는 라우터 E를 통해 네트워크 5로 라우팅하는 것을 멈추게 함 -> 라우터 A,B,D는 네트워크 5의 장애에 관해 아직 모르기 때문에 계속적으로 업데이트 정보를 보냄 -> 라우터 C는 그 도중에 그러한 업데이트를 송신하여, B로 하여금 네트워크 5로의 라우팅을 멈추게 함 -> 라우터 A와 D는 아직 업데이트 되지 않아 그들에게 네트워크 5는 라우터 B를 통한 측정값 4의 라우터로서 아직도 사용 가능한 것처럼 보임 -> 라우터 B와 D는 라우터 A로부터 네트워크 5에 도착할 수 있을 것이라는 정보 수신하여 네트워크 5가 사용 가능하다는 정보를 보냄 -> 이 결과 네트워크 5로 향하는 어떤 패킷도 라우터 A를 거쳐 B로 갈것이고 다시 라우터 A로 되돌아 올 것

라우팅 루프를 방지하기 위한 기능

1. Maximun hop count  : hop수는 패킷이 라우터를 통과할 때마다 무한히 증가. 이러한 문제해결의 한 방법은 최대 hop 수를 정의하는 것. distance vector(RIP)는 15번까지의 hop 수를 허용하며 따라서 16번의 hop 수를 요구하는 어떤 것들도 도달불능으로 판단됨. 패킷들은 계속 루프에 들어가서 보통으로 전송되는 대신 16번 동안 루프를 따라 돌다가 소멸함

 

2. Hold downs

- 다운된 경로를 부활시킬 때까지 일정한 시간을 요구하는 등 다음의 최적경로를 찾기에 앞서 네트워크가 어느 정도 안정할 때까지 기다리게 하는 방법으로 경로가 급격히 변화하지 않도록 해줌

- hold down 타이머 : 라우터가 인접한 라우터들로부터 우선적으로 엑세스할 수 있는 네트워크가 동작하지 않고 접속불가 상태라는 업데이트를 받았을 때 가동

- 인접라우터에서 본래의 네트워크 항목보다 더 적절한 측정값(metric)을 가진 새로운 업데이트를 받는다면 hold down은 제거되어 데이터가 넘겨짐. 단, hold down 타이머 기한이 끝나기 전에 인접라우터에서 업데이트를 받고 그 측정값이 이전의 경로보다 작은 경우 무시되고 hold down 타이머는 계속 동작

- triggered update : 네트워크 안의 변화를 인접 라우터들에게 알리기 위해 hold down 타이머를 reset 하는 것. 인터네트워크 상에 감지된 변화에 따라 바로 인접 라우터들에게 전송되는 새로운 라우팅 테이블을 만듦

- triggered update가 hold down 타이머를 reset할 경우

1)  hold down 타이머가 종료된 경우

2) 라우터가 인터네트워크 내의 링크 수에 비례하여 처리작업을 수신하는 경우

3) 네트워크 상태 변화를 알려주는 다른 업데이트가 수신된 경우

 

3. split horizon

- distance vector 네트워크에서 정보가 온 방향으로는 정보를 되돌리는 것을 금지시킴으로써 부정확한 라우팅 정보와 라우팅의 오버헤드를 경감시킴. 즉, 라우터 A가 라우터 B로부터 수신한 업데이트된 정보를 다시 라우터 B로 되돌리는 것을 막을 수 있음

 

4. Route Poisoning

- 모순된 업데이트에 의해 발생하는 문제를 피하기 위한 방법. 예를 들면, 네트워크 5가 다운되었을 때, 라우터 E는 라우팅 테이블 엔트리에 네트워크 5는 16 혹은 infinity로 표시함으로써 경로 poisoning을 시작함. 이러한 네트워크 5로의 경로를 poisoning함으로써 라우터 C는 네트워크 5로의 경로에 과한 부정확한 업데이트를 받지 않게 됨. 라우터 C가 라우터 E로부터 라우터 poisoning을 수신하면 poison reverse라 불리우는 업데이트를 라우터 E로 돌려보냄. 이로써 세그먼트상의 모든 경로들이 poisoned route information을 받은 것을 확실하게 해줌

 

광고 수익은 기부 활동에 사용됩니다

정보를 얻으신 분들은 광고 클릭 부탁드려요 :)

'Book > CCNA' 카테고리의 다른 글

VLANs  (0) 2016.01.05
Routing Protocol-RIP  (0) 2016.01.05
TroubleShooting TCP/IP  (0) 2016.01.05
Summarization  (0) 2016.01.05
VLSM(Variable Length Subnet Masks)  (0) 2016.01.05