따봉도치야 고마워

[네트워크 공부] 후니의 쉽게 쓴 네트워킹 11일차 - Part08 본문

프로그래밍/공부

[네트워크 공부] 후니의 쉽게 쓴 네트워킹 11일차 - Part08

따봉도치 2020. 4. 10. 18:39

IGRP (Interior Gateway Routing Protocol) 라우팅 프로토콜

  • 다이내믹 프로토콜
  • 내부용 라우팅 프로토콜(IGP)
  • 디스턴스 벡터 프로토콜
  • RIP와 다르게 시스코 라우터에서만 사용 가능
  • 경로 선택 기준 : 5 가지 요인을 가지고 경로 결정, RIP보다 좀 더 지능적
  • 90초에 한 번씩 라우팅 테이블 업데이트  (디폴트 최대 홉 카운트 100, 255까지 증가 가능)

1) Bandwidth (대역폭)

- Kbps로 표시, 속도  //clockrate는 bps

- 프로토콜들이 참조하기 위한 값이지, 하드웨어적으로 맞춰야 하는 값이 아님.

- 세팅방법 : 각 인터페이스에 가서 Bandwidth 명령 사용 (디폴트 1544 Mbps)

  • Interface serial 0
  • Bandwidth 56

- sh run 명령으로 확인 가능 (BW 56 Kbit라고 나옴)

 

2) Delay

- 경로를 통해서 도착할 때까지 지연되는 시간, 단위 micro second

- 회선에 아무 트래픽이 없을 때를 가정하고 제공되는 수치 (1~16,777,215)

- 라우터 포트에 연결되어있는 회선의 종류와 대역폭으로 Delay를 계산

- 수동으로 변경 가능하지만 보통 디폴트 사용

 

3) Reliability

- 신뢰성, 케이블/전용선 등 전송 매체를 통해 패킷을 보낼 때 생기는 에러율을 나타내는 수치

= 목적지까지 제대로 도착한 패킷과 에러가 발생한 패킷의 비율

- keepalive를 이용해 출발/목적지 사이의 신뢰도 측정 (0-255 사이, 높을수록 신뢰도 높은 것)

 

4) Load

- 부하/하중, 출발/목적지 경로에 어느 정도의 부하가 걸리고 있는지 측정

- 255분의 몇으로 표시, 1/255면 적은 것

 

5) MTU (Maximum Transmission Unit)

- 경로의 최대 전송 유닛 크기, 바이트로 표시

 

 

 

IGRP 구성을 위한 명령어

  • 구성 모드 접속
  • router igrp [AS number]  //서로 통신해야 하는 라우터들은 같아야 원활
  • network [network-number] 명령으로 IGRP에 참가하는 네트워크 지정

*RIP와 IGRP에선 network-number는 항상 클래스 개념으로 쓰기! (150.140.100.0 인경우 150.140.0.0으로, VLSM지원이 X)

 

- 실제 설정할 때 인터페이스별 주소 배정, 암호, 호스트 네임 설정 등은 모두 RIP와 같고 라우팅 명령만 위처럼 해주면 됨

 

- IGRP 라우팅 상태 조회 : show ip protocol / 라우팅 테이블 : show ip route

- 라우팅 테이블 조회 시 앞에 I라고 적힌 게 IGRP를 의미

 

- 기존 라우팅 프로토콜 해지 : no 붙여서 해당 프로토콜 명령어 입력 ex) no route rip

- 디폴트 최대 홉 카운트 변경 : 

  • conf t
  • router igrp 200
  • metric maximum-hops 255
  • ^Z

 

- 인터페이스에서의 IP 프로토콜 동작 상태 보기 : show ip interface

- 디버그 : debug ip igrp transaction

 

 

Passive interface 명령

- IGRP 라우팅 업데이트가 특정 인터페이스로는 날아가지 않도록 할 때 사용

- 한 라우터에서 2가지 이상의 프로토콜이 쓰일 때

  • router igrp 200
  • network 160.100.0.0
  • passive interface Ethernet 1/0 // Ethernet1/0으론 IGRP 라우팅 업데이트가 안 날아감

 


OSPF (Open Shortest Path First) 라우팅 프로토콜

  • 표준 라우팅 프로토콜.
  • 링크 스테이트 라우팅 알고리즘.
  • 홉 카운트 제한 X. 큰 네트워크에 적합

 

  • Covergence Time : RIP의 경우 30초 + a로 오래 걸리지만, OSPF는 변화 생길 때 바로 전달해서 빠름
  • area라는 개념을 사용해 전체 OSPF 네트워크를 작은 영역으로 나눠 관리 (빠르고 효율적)
  • VLSM 지원 -> IP주소를 효과적으로 사용할 수 있고, 라우팅 테이블도 줄일 수 있음
  • (이를 위해 라우트 서머리 제이 션 지원해 여러 경로를 하나로 묶는 기능도 탁월)
  • 네트워크 변화가 있을 때만 정보가 날아가고 멀티캐스트로 날아가 실용적, 대역폭 낭비 감
  • 많은 요소를 보고 경로 선택해 훨씬 정확한 선택 가능
  • OSPF는 IP 패킷 안에 프로토콜 넘버 89(십진수)로 들어가게 됨. 패킷만 봐도 OSPF 정보인 걸 알 수 있음

 

*IP 패킷

프레임 헤더 프레임 페이로드 CRC
IP 헤더 프로토콜 넘버 패킷 페이로드

*Convergence Time : 라우터 간 변경된 정보를 주고받는데 걸리는 시간

 

 

OSPF는 토폴로지에 따라 동작이 약간씩 다름

1) 브로드캐스트 멀티 액세스 토폴로지 (Broadcast Multi-access Topology)

- 네트워크에 2개 이상의 라우터가 연결되어, 하나의 메시지를 보내면 이 네트워크 상 모든 애들이 정보를 받음

ex. 이더넷 세그먼트

 

2) 포인트 투 포인트 (Point-to-Point)

- 네트워크에 한쌍의 라우터만 존재하는 경우

ex. 전용선

 

3) NBMA (Non Broadcast multi-access)

- 네트워크에 2개 이상의 라우터가 연결되지만 브로드캐스트 능력 없음.

ex. 프레임 릴레이, X.25

 

 

OSPF의 이웃 사랑

- 주위에 있는 OSPF 라우터를 찾아 자신의 DB에 저장 -> 주위 라우터 = Neighbor

- 이웃 관계가 되어야 통신이 가능함

 

(1) 이웃을 찾기 위해 Hello 패킷을 보내고 (멀티캐스트 224.0.0.5로 보내 OSPF 라우터만 수신함)

(2) Hello를 받은 이웃은 해당 라우터를 Neighbor List에 저장 [Init 과정]

(3) 이웃은 해당 라우터에 유니캐스트로 응답. 해당 라우터는 Neighbor 저장

 

- 헬로 패킷은 10초에 한 번 발생하고, 그 내용엔 여러 가지가 있는데 별표 쳐진 부분이 서로 같아야 이웃으로 인정됨

Router ID
Hello/Dead intervals
Neighbors
Area-ID*
DR IP address
BDR IP address
Authentication
password*
Stub area flag*

 

 

Router ID

- OSPF에서 서로를 식별하기 위한 것

- 보통 그 라우터 IP주소 중 가장 높은 IP를 사용함

- RouterID는 자주 바뀌면 안 되기 때문에, 안정된 인터페이스의 주소를 사용해야 함

- 이를 위해 OSPF는 Loopback(루프백) 인터페이스를 사용함

- Loopback 인터페이스는 다운되지 않고 IP의 높낮이에 관계없이 무조건 이 주소가 라우터 ID가 됨

- 이미 라우터  ID가 있는 상태에서 새로 Loopback 인터페이스를 만들고 나면 재부팅해야 재 설정됨

 

OSPF의 DR(Designated Router)와 BDR(Backup Designated Router)

- Priority를 가지고 선출 (반장, 부반장이라고 생각하기)

- OSPF 세그먼트에선 각 라우터들이 OSPF에 참여하면 DR과 BDR에 자신의 Link State를 알림.

- DR, BDR에만 링크 정보를 알림으로써 모든 라우터와 Link State를 교환할 경우의 트래픽을 줄이고, 정보의 Sync를 관리

- DR은 이 정보를 모두 관리하며 링크의 Sync를 맞추는 일, BDR은 DR 라우터가 다운되면 바로 DR의 역할을 수행

 

- Adjacency(어드 제이 션 시) : OSPF에서 모든 라우터가 DR, BDR과 LinkState를 일치해야 하는 것

 

<OSPF DR, BDR 선출 과정>

- OSPF로 동작하는 라우터들은 모두 Priority를 가짐, 디폴트 1

 

1) Priority가 높은 순서

2) 동점일 덴 라우터 ID가 높은 순서

 

- 선출 후엔 더 높은 Priority를 가진 라우터가 와도 변경되지 않지만

- 만약 DR이 다운되면 BDR이 DR이 되고, 해당 라우터가 BDR이 될 수 있음

- 껐다 켜면 다시 선출

 

- 특정 라우터를 DR, BDR로 선출되지 못하게 하려면 Priority를 0으로 세팅

 

 

OSPF 링크 변화

1) 라우터가 처음 켜지거나 새로 OSPF 라우팅으로 구성되면 해당 라우터는 멀티캐스트 주소를 이용해 헬로 패킷을 보냄

- 224.0.0.5로 OSPF 라우터들에게만 전송되는 주소

 

2) 헬로 패킷을 통해 DR과 BDR의 주소를 알게 됨

 

3) 자신이 가지고 있는 링크 정보를 LSA(Link-State Advertisement)에 담아 모든 DR에게 전송.

- 이렇게 업데이트하는 것을 LSU-Link State Update라고 함, 이때도 멀티캐스트

- DR에 정보가 도착하면 BDR은 타이머로 DR이 새로운 라우터에게 받은 정보를 다른 라우터들에게 재전송하는지 기다림 (감시)

 

4) DR은 새로 받은 정보를 멀티캐스트로 전송하고, 전송 후 모든 라우터들에게 ACK를 받아 잘 도착했는지 확인

 

5) 만약 링크가 끊어지면 해당 라우터는 그 정보를 즉시 DR에게 알리고 DR은 그 정보를 모든 OSPF라우터에게 전달, 라우터들은 그 정보를 다시 가까운 네트워크로 Flooding해서 업데이트

 

 

OSPF의 구성

구성모드 접속

  • router ospf [process-id] 
  • network [address] [wildcard-mask] area [area-id]

- process-id : 한 라우터에서 OSPF를 여러 개 돌릴 때 구별용 id (불일치해도 됨), 하나 당 하나의 DB 운용해 여러 개 사용 비추

- wildcard-mask : 서브넷 마스크와 반대로 작성하는 것. ex) 255.255.255.0 -> 0.0.0.255 (0,1반대로)

- area : 전체 OSPF 영역을 작은 단위로 나눠 그 영역끼리만 우선 링크 정보를 업데이트하고, 다른 area들과는 사이에 있는 라우터(Area Border Router, ABR)이 정보를 전달하도록 하는 방식

- area의 가장 기본은 area 0 = '백본 area'

 

*show ip protocols

Routing protocol is "osfp 100" //process-id 를 100으로 했다고 가정

.

.

Router ID 192.168.12.1

.

.

Distance: (defalut is 110)

 

 

*show ip route : O가 붙은게 OSPF

 

*show ip ospf interface

Serial1/0 is up, line protocol is up
Process ID 100, Router ID 192.168.12.1, Network Type POINT_TO_POINT, Cost: 64
.
....Hello 10, Dead 40, Wait 40, Retransmit 5
.
.
.
.


FastEthernet0/0 is up, line protocol is up
Process ID 100, Router ID 192.168.12.1, Network Type BROADCAST, Cost: 1
.
Designated Router (ID) 192.168.12.1, Interface address 172.16.10.1
.
....Hello 10, Dead 40, Wait 40, Retransmit 5
.
.

- OSPF의 인터페이스 방식을 조회

- 시리얼은 POINT-TO-POINT, DR/BDR 필요 없음  |  이더넷은 BROADCAST, DR 선출됨

- 코스트는 OSPF에서 링크의 속도에 따라 부여하는 값. 100,000,000을 대역폭으로 나눈 값 사용

//시리얼 디폴트 대역폭은 1544Mbps. 이더넷은 100Mbps

- 10초에 한번 헬로 패킷, 4번의 헬로에도 응답이 없으면 죽었다고 생각 = Dead Interval (Hello *4)

 

 

*show ip ospf neighbor

- 주변 이웃 조회

- 상태(State)가 FULL이라고 되어있으면 서로간에 인식했고, 테이블 교환이 성공적이여서 통신이 정상적이라는 것

 

 


라우터를 이용한 DHCP 서버 구성

- DHCP (Dynamic Host Configuration Protocol) 

- IP주소 Pool을 가지고 PC나 호스트의 IP주소를 자동으로 배정해주는 것

  • conf t
  • service dhcp : DHCP 서버나 전달 에이전트를 Enable (디폴트가 Enable이긴 함)
  • dhcp pool [name] : DHCP 주소의 Pool의 이름을 지정 -> 이후 DHCP 구성 모드가 됨
  • network 210.240.10.0 255.255.255.0 : IP의 범위를 지정 (210.240.10.1~ 210.240.10.254)
  • default-router 210.240.10.1 : 디폴트 라우터 지정. 호스트가 내부 네트워크에서 목적지 잃었을 때 가는 주소 (현 라우터 이더넷 인터페이스)
  • dhcp excluded-address 210.240.10.1 : 라우터 이더넷 주소로 Pool에서 제외해줌
  • dhcp excluded-address 210.240.10.100 : 서버의 주소로 제외해줌

- PC를 DHCP 클라로 세팅 후 부팅하면 배정됨.

- show ip dhcp binding 명령으로 현재 IP 배정 상태 확인 가능

- show ip dhcp server statistics 명령으로 현재 DHCP 서버로 돌아가는 라우터의 상태도 확인 가능

 

Secondary 주소

- 한 라우터의 인터페이스에 여러 개의 주소 범위를 줄 때 사용하는 명령

- 두 주소 범위 간 통신은 라우터를 거침 (네트워크 부분이 다르면)

ip address 203.210.150.1 255.255.255.0 secondary

ip address 203.210.100.1 255.255.255.0

ip address 203.210.150.1 255.255.255.0 secondary
ip address 203.210.100.1 255.255.255.0

 

 


네트워크 성능 : PPS (Packet Per Second)

- 초당 전송하는 패킷 수

- 10메가 속도의 이더넷을 사용한다고 가정했을 때

  • PPS = 1초 / (IFG + Preamble Time + Frame Time)

 

*IFG (Inter Frame Gap) : 프레임 간 간격. 프레임이 날아갈 때 두어야 하는 최소 간격. -> 시간으로 따지면 9.6 micro초

*Preamble Time : 프레임 앞에 붙은 서두, 6.4 micro초

*Frame Time : 프레임이 날아가는 시간. (1비트 0.1 micro초, = 64byte 51.2초)

 

-> 계산해보면 14,880 PPS가 나옴. 즉 10메가 이더넷에서 가장 작은 패킷만 계속 보내면 초당 14,880 패킷이 날아간다는 것.

     특정 장비가 지원하는 PPS가 이보다 낮다면 제대로 된 성능 발휘 X

 

 

 

Comments