기초 물방울/네트워크

OSPF 실습 LAB 정리 #1

Weeding 2023. 1. 13. 08:30
반응형
SMALL

LAB #1

- OSPF에서 사용하는 Packet의 종류에 대해 확인 합니다.
- Ethernet 구간과, Serial에서 OSPF Packet이 사용하는 IP에 대해 확인 합니다.

- OSPF Neighbor가 성립되는 단계에 대해 Wireshark 또는 Debug로 확인 합니다

 

- debug ip ospf packet
- debug ip ospf adj
- clear ip ospf process

 

문제1.

구성도와 같이 R1, R2 사이에 IP를 설정하고, OSPF Area0을 설정하시오.

 

 

문제2.

R1, R2 간을 Wiresharkcapture한 후,  R2에서 "clear ip ospf process(ospf 재시작)"neighbordown/up 한 후 OSPF 관련 Packet을 확인하세요.

- Ethernet 구간에서 OSPF관련 packet이 어떠한 IP를 사용하는지 확인하세요.

- Serial 구간에서 OSPF관련 packet이 어떠한 IP를 사용하는지 확인하세요.

 

224.0.0.5 멀티캐스트 주소를 사용한다.

 

문제3.

OSPF에서 사용하는 Packet의 종류 5가지를 확인 하고, 각각이 어떤 IP를 사용하는지 확인하세요.

  1. Hello Packet 
    = 224.0.0.5 // 재시작시에는 10.1.21.1 / 10.1.21.2 가 SA/DA로 나오게 된다. (LS Update)
  2. DBD (DB Description) Packet
    = OSPF의 네트워크 정보인 LSA들의 요약된 정보를 알려줄 때 사용
    = 10.1.21.1 / 10.1.21.2 

  3. LSR (LS Request) Packet
    = Neighbor에게서 수신한 DBD에 자신이 모르는 네트워크가 있을 때 상세 요청 할 때 사용.
    = 10.1.21.1 

  4. LSU (LS Update) Packet
    = LSR을 받거나 자신이 알고있는 네트워크 상태가 변했을 때 해당 네트워크 정보를 전달할 때 사용.
    = 224.0.0.5 
  5. LSAck (LS Acknowledge) Packet
    = OSPF 패킷을 정상적으로 수신하였을 때 사용.
    = 224.0.0.5 

clear ip ospf process 로 ospf 재시작을 하면 뜨는 패킷들. 주소가 다시 업데이트 되는것을 확인할 수 있다.

 

 

 

문제4.

Debug ip ospf packet으로 OSPF 관련 Packet을 확인하세요.

 

 


 

 

LAB #2

학습 목표

- OSPF에서 Neighbor가 맺어지는 단계를 Wireshark로 확인 합니다.
- OSPF에서 Neighbor가 맺어지는 단계를 Debug로 확인 합니다.
- OSPF에서 Neighbor가 맺어지는 인자에 대해서 확인 하고 문제가 발생되는 경로 발생되는 log message를 확인 합니다.
- debug ip ospf adj
- show ip ospf neighbor
- show ip ospf interface e0/0
- (config-if)#mtu 1480
- (config-if)#ip ospf hello-interval 10
- (config-router)#router-id 2.2.2.2

◆ LAB  OSPF OSPF Neighbor Discovery

 

문제1.

구성도와 같이. R1,R2 사이에 IP를 설정하고, OSPF AREA0를 설정하세요.

 

 

문제2.

R1,R2사이에,  Neighbor가 맺어지는 단계를 확인하세요. (아래의 단계를 Wireshark를 통해 확인 하세요.)

(Down, Init, Two-way, Exstart, Exchange, Loading, Full)

우선, 한쪽 라우터에 router ospf 1 만 입력해놔도 hello packet이 와이어샤크에 보이게된다
연결이 되고나면 즉시 DBD패킷, LSR, LSU, LSA 패킷이 와이어샤크에 보이게 된다.

 

 

문제3.

R2S1/0Hello interval 10sec 8sec로 변경해 보세요. 변경 후 R4와의 Neighbor 관계를 확인하세요.

(show ip ospf neighbor) neighbor가 맺어지지 않는 이유를 확인 하고, R1S1/0Hello interval8sec 변경 후에 Neighbor가 다시 맺어지는 것을 확인하세요

 

명령어 = R2(config-if)#ip ospf hello-interval 8

헬로우 인터벌 조정 후 조정 된것 확인하고, 그 다음 약 20초 후? neighbor가 맺어지지 않는것을 확인함.

 

R1에서 hello interval을 맞춰주니 약2~3초만에 neighbor가 맺어지는 것 확인!
negibor가 맺어지며 바로 다시 DBD, LSR, LSU, LSAck Packet들이 교환되는걸 확인할 수 있다.

 

 

문제4.

R2S1/0AREA0에서 1으로 변경해 보세요변경 후, R1와의 Neighbor 관계를 확인하세요

 

아래 그림처럼 Received invalid packet : mismatched area ID from backbone area from 10.1.12.1 e0/0이 뜨면서

라우팅 테이블에 연결이 사라지게 된다. 그리고 Neighbor도 끊어지게 된다.

 

하지만, 와이어샤크에서는 hello packet은 여전히 올라오고 있다. OSPF 설정이 사라진건 아니기 떄문.

 

다시 변경을 하니 OSPF가 바로 맺어지면서 DBD, LSR, LSU, LSAck Packet들이 교환되는걸 확인할 수 있다.

 

 

문제5.

R2S1/0MTU Size1500에서 1480으로 변경 해 보세요.

변경 후, R1과Neighbor 관계를 확인하세요. (show ip interface s1/0)

 

R2(config-if)# ip mtu 1480

아래와 같이 R2의 mtu size를 변경하고 꼭 clear ip ospf process 명령어를 통해 ospf 재구동을 해야한다!

(안그러면 남아 있는 데이터베이스 기록 때문에 정상적으로 표시가 나오질 않음)

 

R2 Mtu size 1480으로 조정 후 ospf 재시작, 그리고 바로 neighbor 상태 확인
R1도 재시작 후 상태 확인

시간이 지나면 아래처럼 neighbor가 Down으로 바뀐다.

 

하지만, R1, R2의 상태 변화를 지켜보면 Down, Exchange, Exstart 상태들이 지속적으로 바뀐다.

이는 헬로패킷이 전송은 되고 있지만 mtu size가 달라서 주고받고 있지는 않기 때문에 상태변화가 아래와 같은 내용으로 이루어지고 있는 것이다.

 

** OSPF 네이버간 상태는 항상 모든 상태를 거치면서 차례로 변화하는 것은 아니다.

각 상태에서 발생할 수 있는 상황에 따라 몇 단계를 건너 뛰기도 하고 다시 이전 상태로 돌아갈 수도 있다.

 

 

 

 

문제6.

R1 Router ID2.2.2.2로 변경 후에, Neighbor의 상태를 확인하세요.

 

양쪽 다 neighbor가 맺어지지 않고, router-id가 충돌된다는 메시지가 나온다. 

 

하지만 Hello Packet은 와이어샤크에 보이고 있다.

 

 

 


 

LAB #3

- OSPF에서 사용하는 Metric의 계산법을 확인 합니다.
- OSPF Unequal-Cost Loadbalancing을 적용하는 방법을 확인 합니다.
- OSPF에서 Auto-cost Reference-bandwidth의 사용법을 확인 합니다.
- OSPF경로의 AD값을 변경하는 방법을 확인 합니다.
 
- show ip ospf interface e0/0
- show ip ospf
- show ip route ospf
- interface e0/0

     ip ospf cost 10

- router ospf 1

     auto-cost reference-bandwidth 1000

     distance 80 2.2.2.2 0.0.0.0 10

문제 조건에서 e0/1 -> e0/0 , e0/0 -> s1/0 으로 수정

 

문제1.

구성도와 같이, R3을 연결하고, Loopback을 광고하세요.

  

 

문제2, 3

R1에서 2.2.2.0/24로 가는 경로가, E0/0으로 선택된 이유는 무엇입니까

R1에서 E0/0, S1/0의 bandwidth를 확인 하세요, OSPF 관점에서 Fa0/0, S1/0의 cost가 얼마 인지 확인하세요.

 

E0/0은 OSPF Cost가 10 (10^8/10Mbps)

S1/0은 OSPF Cost가 64 (10^8/1.54Mbps)

그렇기에 R1은 E 0/0으로 가는 경로를 선택하게 된다. 

확인은 sh ip route ospf | in 2.2.2.로 확인하면 된다.

 

** ethernet 

= 하나의 인터넷 회선에 다수의 시스템이 연결되어 통신이 가능. 

= 보통 LAN 이라하며 가장 많이 사용하는 이더넷 표준

 

** Serial

= 하나 혹은 두 개의 전송 라인을 사용하여 데이터를 송수신하는 통신 방법

= P to P 를생각하면됨. 충돌 메커니즘을 줄일수는 있지만 단순함.

  

** bandwidth

1. serial = 1544 Kbit

2. ethrnet = 10000 Kbit

3. fastethernet = 100000 Kbit

 

우선 인터넷 전송 속도를 측정하는 단위로는 'bps'가 있다.

bps는 데이터 용량 단위처럼 1024가 아닌 항상 1000 단위이다.

 

 

근거리 값이라고 원거리보다 무조건 빠른게 아니다.

실제 bandwidth를 확인해보면 LAN / WAN 선의 대역폭 값이 1544로 실제 근거리가 빠른 것을 알 수 있다.

산출한 대역폭 값을 이용하여 Cost 값을 구하는 공식은 아래와 같다.

 

OSPF 메트릭을 cost라 부르며, 출발지로부터 목적지까지의 각 인터페이스에 기준 대역폭을 실제 대역폭으로 나눈 값의 합계이다. 시스코 IOS의 OSPF 기준 대역폭은 10⁸ (10^8)이다. 각 인터페이스들의 대역폭은 kbit(10^3) 단위이기 때문에 예를 들어 fastethernet 0/0은 100,000,000

 

패스트 이더넷(100,000,000bps)의 코스트는 10⁸/100,000,000 이므로 1입니다. 

루프백 인터페이스(8,000,000,000 bps)의 코스트는 10⁸/8,000,000,000 (=0.0125) 이므로

계산시 소수점 이하는 버리므로 1입니다.

 

 

인터페이스 별로 Bandwidth 값과 cost 값을 계산한 표, 이를 통해 Cost 값을 보면 어떠한 케이블로 연결되어 있는지 유추가 가능하다.

 

 

 

 

문제4.

R1에서 2.2.2.0/24로 가는 경로의 Metric이 얼마인지 계산해 보세요.

 

R1 ---- E0/0 ---- Loopback0

        (cost 10)    (cost 1)     = cost 11

OSPF Metric 정리

  • 기준 Bandwidth = 10^8
  • Metric 값 = 기준 Metric / 회선Bandwidth
  • 회선 Bandwidth가 100M 이상은 Metric이 동일하게 나오므로, 기준 값을 변경해서 사용
    - Router(config-router)# auto-cost reference-bandwidth [ 1 - 4294967 Mbit ]
  • Interface Cost변경 : 다른 벤더의 장비 연결 시 주로 사용 (Metric 값의 계산 방법이 다를 경우)
    - Router(config-if)# ip ospf cost [ 1 - 65535 

 

 

문제5.

R1에서 2.2.2.0/24로 가는 경로가, Fa0/0, S1/0으로 Loadbalancing 되도록 설정하세요. (cost값을 변경하세요.)

 

OSPF는 Variance나 offset-list를 사용할 수 없기 때문에 interface의 cost를 변경하여, cost가 상이한 경로에 대해 loadbalancing 할 수 있다.

 

** offset-list란?

- 라우팅 테이블에 등록된 특정 네트워크의 Metric 값을 조정하여 최적 경로를 변경하는 기능.

- offset-listㅐ는 Metric의 증가만 가능하다. (기존 값을 감소 시킬 수 없다.)

 

R1의 e0/0 , s1/0 의 cost를 64로 변경해주고 나서 라우팅 테이블 확인
Cost값이 같음에 따라 경로가 2개씩 올라와 있는걸 확인할 수 있다.

 

int e 0/0의 cost 값을 10으로 바꿔주고 나서 경로 확인을 해보면 cost가 더 적은 e0/0 경로만 올라온걸 확인가능.

또한 와이어샤크에서 cost 변경시 LSU와 LSAck 가 올라온걸 확인할 수 있다!

 

 

문제6.

R1에서 OSPF Bandwidth를 이용한 COST의 계산이,  10^8이 아닌 10^9으로 계산되도록 변경하고, COST 값을 다시 확인

하세요.

 

10^8로 계산하게 되면, 1G의 경우 소수점이 나오게 됩니다.

그렇기 때문에 Giga interface가 있는 경우, 10^9로 계산해야 정확히 계산이 됩니다.

  

 

문제7.

R1R2가 광고하는 경로, 2.2.2.0/24에 대해서 AD110에서 80으로 변경하세요.


R1(config)#access-list 2 permit 2.2.2.0 0.0.0.255
R1(config)#router ospf 1
R1(config-router)#distance 80 0.0.0.0 255.255.255.255 2

 

 

문제8.

R2에서 1.1.1.1/32, 1.1.3.1/32AD70으로 변경되도록 설정하세요.

기존 R2 라우팅 테이블

 

R2(config)#access-list 3 permit 1.1.1.0 0.0.2.255
R2(config)#router ospf 1
R2(config-router)#distan
R2(config-router)#distance 70 0.0.0.0 255.255.255.255 ?
  <1-99>       IP Standard access list number
  <1300-1999>  IP Standard expanded access list number
  WORD         Standard access-list name
  <cr>
R2(config-router)#distance 70 0.0.0.0 255.255.255.255 3

 

AD 70으로 변경 후 R2 라우팅 테이블

 

 

 


 

LAB #5 

학습목표

- OSPFRouter ID의 선택과정을 확인 합니다.
- OSPFRouter IDManual 설정법과 적용하는 방법에 대해 확인 합니다.

- Wireshark를 통해 Router ID를 확인 합니다

 

 

문제1. 구성도와 같이. R1,R2사이에 IP를 설정하고, OSPF AREA0를 설정 하세요.

 

문제2.

R2에서 show ip ospf neighbor로 보면, R111.11.11.11로 보이는 이유는 무엇입니까?

* 라우터 ID를 임의로 설정하지 않을 경우 루프백 인터페이스에서 가장 높은 IP주소가 설정.

   루프백 인터페이스가 없을 경우 물리적 인터페이스에서 가장 높은 IP주소가 설정 (관리용)

 

- R1OSPF에서 사용하는 Router ID는 무엇이며, IP를 사용하는 이유는 무엇입니까?

* 라우터 ID를 임의로 설정하지 않을 경우 루프백 인터페이스에서 가장 높은 IP주소가 설정.

   루프백 인터페이스가 없을 경우 물리적 인터페이스에서 가장 높은 IP주소가 설정 (관리용)

 

- R1Router ID1.1.1.1로 변경해 보세요, 확인은 R2에서 show ip ospf neighbor로 확인 하세요.

변경 후 바로 R2에서 neighbor를 확인해보면 FULL/BDR이 남아있다. 몇초 지나면 바로 1.1.1.1만 남게 된다.

 

문제3.

R1,R2간에 Packet Capture를 통해 Router ID부분을 확인 하세요.

 

 

문제4.

R2에서 “show ip ospf database” 통해 상대방의 Router ID를 확인 하세요.

 

 

 


 

LAB #7

학습 목표

- Passive interface를 사용하는 환경에 대해 이해 합니다.

- Passive interface의 설정법과, 설정 후 동작 방식에 대해 확인 합니다

 

문제1.

구성도와 같이 AREA0를 구성하세요. (R1E0/1OSPF에 포함하지 마세요.)

 

 

문제2.

PC에서 R2Loopback0 (2.2.2.2/32)으로 통신이 되는 것을 확인하세요.

 

확인2.1

만약 R1에서 E0/1(1.1.1.0/24)OSPF로 광고하지 않는 경우,  PC1에서는 PC>2.2.2.2로 통신이 되지 않는 것을 확인하세요.

통신안됨. R1에 있는 E0/0, S1/0 까지만 핑이 가는중.

 

확인2.2

R1에서 E0/1(1.1.1.0/24)OSPF로 광고하는 경우, PC1에서 PC>2.2.2.2로 통신이 되는 것을 확인하세요.

통신되는것 확인.

 

 

 

문제3.

R1,SW간에 Packet Capture를 통해, Hello message를 확인하고 Hello message가 불필요하게 전송되는 것을 차단하세요. (어떠한 경우에 Passive-interface를 사용해야 하는지 확인하세요.)

 

R1(config)#router ospf 1
R1(config-router)#passive-interface ethernet 0/1

 

 

확인3.1

R1,SW1간에 Packet Capture를 해보면, Hello message가 보이지 않는 것을 확인 할 수 있습니다

- R1의 e0/1로는 neighbor가 없기 떄문에 hello message가 필요 없어집니다.

 

확인3.2

Passive-interface는 어떠한 경우에 사용되는지 확인하세요.

- Routing으로 광고는 해야하지만, Neighbor는 필요 없는 Network를 광고하는 경우 사용합니다. 

(주로 Host들이 들어 있는 Network에 사용됩니다) 

 

- OSPF neighbor가 없는 인터페이스에 대해서 passive-interface 명령어를 사용하면 간단하면서도 강력한 OSPF 보안 대책이 된다. 이 인터페이스로는 OSPF hello packet을 전송하지 않을 뿐만 아니라, 상대가 hello packet을 전송해도 무시한다.

 

int e 0/1 = Passive-interface 적용 전
int e 0/1 = passive-interface 적용 후

 

 

 


 

LAB # 8

학습 목표

- OSPF에서 L2 Protocol에 따른 Network Type을 확인 합니다.
- Broadcast 환경에서 OSPF의 동작 방식을 확인 합니다.
- Point-to-Point 환경에서 OSPF의 동작 방식을 확인 합니다.
 

 

문제1.

구성도와 같이 구성하고, 각각 Loopback을 광고하세요. OSPF AREA0로 설정하겠습니다.

 

 

문제2.

"show ip ospf interface e0/0“ "show ip ospf interface s1/0"command를 이용하여, OSPF가 각각의 interface를 어떠한 network type으로 인지하였는지 확인하세요.

 

= ethernet, e0/0은 broadcast 

= serial, s1/0은 point to point

 

 

 

문제3.

ethernet의 경우, DR이 선출되는 것을 확인하고, 어떠한 RouterDR이 되었는지 확인하세요.

Serial의 경우, DR이 선출되지 않는 것을 확인 하고, DR이 선출되지 않는 이유를 확인하세요.

 

= Ethernet이나 NBMA 같은 멀티 액세스 환경에서는 DR이 없는 경우 LSA를 교환할 떄 중복이 많이 발생한다.

고로, 중계 역할을 하는 DR을 만들어 사용하고, 당연히 중복이 많이 없는 PTP (serial)에서는 사용하지 않는다.

 

 

 

문제4.

E0/0, S1/0Neighbor를 맺는 단계가 서로 상이 한지 Wireshark로 확인하세요.

 

 

 

문제5.

E0/0, S1/0Neighbor를 맺는 단계가 서로 상이 한지 debug로 확인하세요.

 

 

 

 


 

LAB #9

학습 목표

- OSPF에서 DR, BDR을 선출하는 이유에 대해서 확인 합니다.
- OSPF에서 DR, BDR이 선출되는 조건에 대해서 확인 합니다.
- OSPF에서 DR, BDR이 사용하는 주소에 대해서 확인 합니다. (224.0.0.6, 224.0.0.5)

 

 

문제1.

구성도와 같이 OSPF AREA0를 구성하세요.

 

 

 

 

문제2.

R4DR, R2BDR이 되도록 설정 하세요.

 

R4(config)#int e 0/0
R4(config-if)#ip ospf priority 100

 

R2(config)#int e0/0
R2(config-if)#ip ospf priority 50

 

 

 

문제3.

DR(R4)/BDR(R2)를 확인하고, DROther간에는 Neighbor의 상태가 2-way상태에 머물러 있는 것을 확인 하세요.

 

 

** 2WAY 상태

neighbor와 쌍방향 통신이 이루어진 상태.

즉, R1, R3간에는 Hello만 주고받고 있는 상태.

 

 

문제4,

R4 Fa0/0Wiresharkcapture한 상황에서,  R1Loopback100을 생성하고, OSPF로 광고 하세요.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
LIST