반응형

 

 

 

 

📌 OSPF란

OSPF는 링크 상태 프로토콜이며, 링크는 라우터 인터페이스라고 볼 수 있습니다. 인터페이스에 대한 설명에는 인터페이스의 IP 주소, 마스크, 연결된 네트워크 유형, 해당 네트워크에 연결된 라우터 등이 포함됩니다.

OSPF는 Open Shortest Path First 알고리즘을 사용하여 모든 대상에 도달하기 위한 최단 경로를 구축하고 계산합니다. 최단 경로는 Dijkstra 알고리즘을 사용하여 계산됩니다.

  1. OSPF 초기 구성 시 또는 라우팅 정보의 변경으로 인해 라우터는 링크 상태 알림을 생성합니다. 이 알림은 해당 라우터에 있는 모든 링크 상태에 나타냅니다.
  2. 모든 라우터는 플러딩을 통해 링크 상태를 교환합니다. 링크 상태 업데이트를 수신하는 각 라우터는 링크 상태 데이터베이스에 복사본을 저장한 다음 다른 라우터에 업데이트를 전파합니다.
  3. 각 라우터의 데이터베이스가 완료되면 라우터는 모든 대상에 대한 최단 경로 트리를 계산합니다. 라우터는 최단 경로 트리, 대상, 관련 비용을 계산하기 위해 Dijkstra 알고리즘을 사용하고 해당 대상에 도달하기 위한 다음 홉을 사용하여 IP 라우팅 테이블을 형성합니다.
  4. OSPF 네트워크에서 링크 비용 또는 네트워크 추가 또는 삭제와 같은 변경 사항이 발생하지 않는 경우 OSPF는 자동으로 실행됩니다. 변경 사항은 링크 상태 패킷을 통해 전달되며, 최단 경로를 찾기 위해 Dijkstra 알고리즘이 다시 계산됩니다.

📌 OSPF 장점

  • OSPF를 사용하는 경우 홉 수에 제한이 없습니다.
  • VLSM를 적용하여 IP 주소 할당이 매우 유용합니다.
  • OSPF는 멀티캐스트를 사용하여 링크 상태 업데이트를 전송합니다. 이렇게 하면 OSPF 패킷을 수신하지 않는 라우터에서 프로세스 리소스 사용이 줄어듭니다. 주기적으로 업데이트가 전송되는 것이 아니라 라우팅 변경이 발생하는 경우에만 업데이트가 전송됩니다. 따라서 효율적인 대역폭이 보장됩니다.
  • OSPF는 라우팅 변경 사항이 주기적으로 전파되는 것이 아니라 즉시 전파됩니다.
  • OSPF는 트래픽을 로드 밸런싱합니다.
  • OSPF는 라우터를 영역으로 나눌 수 있습니다. 이를 통해 전체 네트워크에서 링크 상태 업데이트가 급증하는 것을 제한할 수 있습니다. 또한 경로를 수집하고 서브넷 정보의 불필요한 전파를 줄이는 메커니즘을 제공합니다.
  • OSPF는 다양한 비밀번호 인증 방법을 통해 라우팅 인증을 허용합니다.
  • OSPF는 태킹을 이용하여, BGP같은 외부 경로 프로토콜에서 들어온 경로를 추적할수 있습니다.

📌 OSPF 구성

R1(config)# router ospf <process-id>
R1(config)# network <network or IP address> <mask> <area-id>

예시)
RTA(config)# router ospf 100 
RTA(config)# network 192.168.0.4 0.0.255.255 area 0.0.0.0 
RTA(config)# network 192.168.0.3 0.0.0.0 area 23
  • OSPF process-id는 라우터에 로컬인 숫자 값입니다. 다른 라우터의 process-id와 일치하지 않아도 됩니다.
  • 동일한 라우터에서 여러 OSPF 프로세스를 실행할 수는 있지만 라우터에 추가 오버헤드를 추가하는 여러 데이터베이스 인스턴스를 생성하므로 권장되지 않습니다

📌 OSPF 인증

  • 라우터가 사전 정의된 비밀번호를 기반으로 라우팅 도메인에 참여할 수 있도록 OSPF 패킷을 인증할 수 있습니다.
  • 기본적으로 라우터는 Null 인증을 사용하며, 이로 인해 네트워크를 통한 라우팅 교환이 인증되지 않습니다. 두 가지 인증 방법이 있습니다. 단순 비밀번호 인증 및 Message Digest 인증(MD-5)입니다.
**단순 비밀번호 인증**
R1(config)# ip ospf authentication-key key  (특정 인터페이스 아래에 있음)
R1(config)# area area-id authentication. (이 값은 아래에 router ospf <process-id>있음)

예시1)
RTA(config)# interface Ethernet0
RTA(config)# ip ospf authentication-key mypassword
예시2)
RTA(config)# router ospf 10 network 10.0.0.0 0.0.255.255 area 0 
RTA(config)# area 0 authentication
**Message Digest 인증**
R1(config)# ip ospf message-digest-key key-id md5 key  (인터페이스 아래에 사용) 
R1(config)# area area-id authentication message-digest (아래에서 router ospf <process-id>사용)

예시1)
RTA(config)# interface Ethernet0
RTA(config)# ip ospf message-digest-key 10 md5 mypassword 
예시2)
RTA(config)# router ospf 10 network 10.0.0.0 0.0.255.255 area 0 
RTA(config)# area 0 authentication message-digest 

📌 OSPF 백본 및 Area 0

  • 두개 이상의 영역이 설정된 경우 꼭 Area 0이 존재해야합니다. 이를 백본이라고 합니다.
  • 백본은 모든 Area의 중앙에 있어야 합니다.
  • 백본은 모든 Area의 라우팅 정보를 주입하고 다른 Area로 전파합니다.
  • Area내에서 생성된 경로는 라우팅 테이블에서 O로 표시가되고, 다른 Area에서 시작되는 경로는 inter-area또는 라우팅 테이블에서 O IA로 표시 됩니다.
  • 다른 라우팅 프로토콜에서 시작되고 재배포를 통해 OSPF에 주입되는 경로를 external routes라고 말하고, 라우팅 테이블에서 O E1, O E1로 표시됩니다.

📌 가상 링크

  • 백본에 물리적으로 연결되지 않은 영역을 가상으로 연결
  • Area 0의 불연속성이 발생하는 경우 백본 패치

Area 0에 물리적으로 연결되지 않은 경우 가상 링크를 사용하여 다른 Area 라우팅 경로를 제공합니다.

가상 링크는 하나의 ABR이 백본에 연결된 공통 영역이 있는 두 ABR간 설정되어야 합니다.

가상 링크를 구성하려면 RTA, RTB 모두에게 설정
R1(config)# area <area-id> virtual-link <RID>

예시)
RTA(config)# router ospf 10 area 2 virtual-link 10.0.0.22 
RTB(config)# router ospf 10 area 2 virtual-link 10.0.0.11
  • OSPF를 사용하다보면 두 개의 다른 OSPF 백본 Area 0 이 있는 네트워크를 연결하려는 경우가 있습니다. 이런 경우 서로 존재하지않은 Area를 만들어서 서로 가상링크로 연결하여 사용한다. 다른 경우 몇가지 라우터 장애로 인해 백본이 둘로 분할되는 경우에 대비하여 이중화를 위해 가상 링크를 이용합니다.

📌 Neighbor

  • 세그먼트를 공유하는 라우터는 서로간에 neighbor라고 합니다. Neighbor는 Hello 프로토콜을 통해 맺어집니다. Hello 패킷은 멀티캐스트를 통해 각 인터페이스에서 주기적으로 전송됩니다.
  • 라우터는 인접한 Hello 패킷에 나열되는 즉시 인접한 라우터가 됩니다.
  • Area-id : 공통 세그먼트가 있는 두 라우터이며, 해당 인터페이스는 해당 세그먼트의 동일한 영역에 속해야 합니다. 인터페이스는 같은 네트워크 서브넷을 가져야합니다.
  • Authentication : OSPF를 사용하면 특정 Area에 대한 비밀번호의 설정이 가능합니다. 네이버가 되려는 라우터는 특정 세그먼트에서 동일한 비밀번호를 교환해야 합니다.
  • Hello and Dead Intervals : OSPF는 각 세그먼트에서 Hello 패킷을 교환합니다. 이는 세그먼트에서 라우터의 존재를 확인하고 멀티 액세스 세그먼트에서 지정 라우터(DR)를 선택하기 위해 라우터에서 사용하는 keepalive 형식입니다.
  • Hello 패킷은 라우터가 OSPF 인터페이스에서 전송하는 Hello 패킷 간의 시간(초)을 지정합니다.
  • Dead 간격은 인접 디바이스에서 OSPF 라우터의 Hello 다운을 선언하기 전에 라우터 패킷이 표시되지 않은 시간(초)입니다.
  • OSPF에서는 이러한 간격이 두 네이버 간에 정확히 동일해야 합니다. 이러한 간격이 서로 다른 경우 이러한 라우터는 특정 세그먼트에서 인접한 라우터가 되지 않습니다. 이러한 타이머를 설정하는 데 사용되는 라우터 인터페이스 명령입니다.
R1(config)# ip ospf hello-interval seconds
R1(config)# ip ospf dead-interval seconds
  • Stub area flag : 두 라우터가 인접 디바이스가 되려면 패킷의 stub area Hello 플래그에 동의해야 합니다. stub area은 이후 섹션에서 설명합니다. stub area의 정의는 인접한 라우터 선택 프로세스에 영향을 미칩니다.

 

 

 

 

 

 

참고자료

https://www.cisco.com/c/en/us/support/docs/ip/open-shortest-path-first-ospf/7039-1.html

반응형
반응형

 

 

 

 

 

Port-Security 란?

특정 포트에 Port-Security 기능을 사용하여 포트에 학습할 수 있는 MAC주소의 수를 제한하거나 포트에 MAC 주소를 설정하여 허가된 MAC 주소만 접속 가능하도록 설정하는 것입니다. 

 

 

 

 

사용 목적
  • 스위치는 하나의 포트에 여러 개의 MAC주소를 학습할 수 있도록 되어있고 제한이 없다.
  • 이러한 점을 이용하여 여러 개의 MAC주소를 학습하게 하여 스위치의 MAC Address table을 가득차게 만들고 더이상 MAC주소를 학습하지 못하게 된 스위치는 그 이후에 들어오는 모든 Frame을 Flooding 시켜 허브처럼 동작하게 만든다. 이러한 공격하는 기법을 MAC Flooding Attack이라고 한다.
  • 내부 네트워크까지 침입한 공격자는 Sniffing 환경을 구성하여 중간에서 패킷을 훔쳐볼 수 있다. 이런 공격으로 대표적인 것은 MAC주소를 변경하여 네트워크 시스템에 들어갈 수 있는 ARP Spoofing이 있다.

 

 

이제 실습을 해보겠습니다.

 

 

GNS3를 이용하여 구성하였습니다.

SW1 가지고 있는 MAC 주소

SW1#show mac address-table 
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
 100    0050.7966.6802    DYNAMIC     Et1/0
 100    0050.7966.6804    DYNAMIC     Et1/1
 100    0050.7966.6805    DYNAMIC     Et1/2
Total Mac Addresses for this criterion: 3

 

 

 

SW2 가지고 있는 MAC 주소

SW2#show mac address-table 
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
 100    0050.7966.6806    DYNAMIC     Et1/2
 100    0050.7966.6807    DYNAMIC     Et1/1
 100    0050.7966.6808    DYNAMIC     Et1/0
Total Mac Addresses for this criterion: 3

 

 

 

 

Port-Security 활성화
SW1(config)#interface ethernet 1/0
SW1(config-if)#switchport port-security

 

 

 

 

Port-Security 학습 가능한 최대 MAC주소 개수 설정
SW1(config)#interface ethernet 0/0 
SW1(config-if)#switchport port-security
SW1(config-if)#switchport port-security maximum 5 (기본은 1개 장비마다 다르지만 최대 4097개까지 가능)

 

 

SW2에 MAC주소는 총 3개 입니다. 하지만 Maximum을 2개로 테스트 했을 경우 Log 입니다.

SW1(config-if)#switchport port-security maximum 2

*Mar 26 14:14:01.841: %PM-4-ERR_DISABLE: psecure-violation error detected on Et0/0, putting Et0/0 in err-disable state 
*Mar 26 14:14:01.842: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0050.7966.6806 on port Ethernet0/0. 
*Mar 26 14:14:01.842: %IP-4-DUPADDR: Duplicate address 192.168.100.1 on Vlan100, sourced by aabb.cc80.0200 
*Mar 26 14:14:02.847: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down. 
*Mar 26 14:14:03.843: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to down

 

Port-Security의 학습 3가지 방식

 

Static Port-Security MAC Address

특정 포트에 사용할 사용자의 MAC주소를 직접 입력하여 설정하고 NVRAM에 저장할 수 있다.

SW1(config)#int ethernet 1/0
SW1(config-if)#switchport port-security
SW1(config-if)#switchport port-security mac-address 0050.7966.6804

 

해당 포트에 다른 MAC주소를 설정해놨을때 차단되었다는 Log 입니다.

*Mar 26 14:38:44.398: %PM-4-ERR_DISABLE: psecure-violation error detected on Et1/0, putting Et1/0 in err-disable state
*Mar 26 14:38:44.398: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0050.7966.6802 on port Ethernet1/0.
*Mar 26 14:38:45.403: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet1/0, changed state to down
*Mar 26 14:38:46.399: %LINK-3-UPDOWN: Interface Ethernet1/0, changed state to down

 

 

Dynamic Port-Security MAC Address

특정 포트에 사용할 사용자의 MAC주소를 동적으로 학습하지만 학습한 MAC주소는 NVRAM에 저장할 수 없다

스위치가 Reboot이 되면 Port-Security에 학습했던 MAC주소는 삭제된다.

(명령어 X)

 

 

 

Sticky Port-Security MAC Address

특정 포트에 사용할 사용자의 MAC주소를 동적으로 학습하고, 학습한 MAC주소는 NVRAM에 저장할 수 있다.

스위치가 Reboot이 되어도 Port-Security에 학습했던 MAC주소는 NVRAM에 저장된다.

SW1(config)#interface ethernet 0/0
SW1(config-if)#switchport port-security
SW1(config-if)#switchport port-security mac-address sticky

 

 

 

 

 

Port-Security Violation Mode 3가지

 

Violation shutdown

Port-Security가 동작하는 포트에서 위반했을 경우 해당 포트는 Shutdown이 되며 err-disabled 상태로 넘어간다.

Port-Security Default Violation 이다.

SW1(config)#interface ethernet 0/0
SW1(config-if)#switchport port-security
SW1(config-if)#switchport port-security mac-address 0050.7966.6804
SW1(config-if)#switchport port-security violation shutdown

 

 

 

Violation restrict

Port-Security가 동작하는 포트에서 위반한 MAC주소를 가진 장비의 모든 Frame을 Drop시킨다.

Drop과 동시에 위반한 MAC주소에 대해서 Log가 발생한다.

SW1(config)#interface ethernet 0/0
SW1(config-if)#switchport port-security
SW1(config-if)#switchport port-security maximum 2
SW1(config-if)#switchport port-security violation restrict

 

최대 2개까지 가능하게 했을때 0050.7966.6806의 MAC주소가 제한 되었다는 Log 입니다.

*Mar 26 15:15:47.206: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0050.7966.6806 on port Ethernet0/0.

 

 

 

Violation protect

Port-Security가 동작하는 포트에서 위반한 MAC주소를 가진 장비의 모든 Frame을 Drop시킨다.

restrict와 동일하게 동작하지만, protect는 Log를 발생시키지 않는다.

SW1(config)#interface ethernet 0/0
SW1(config-if)#switchport port-security
SW1(config-if)#switchport port-security maximum 2
SW1(config-if)#switchport port-security violation
SW1(config-if)#switchport port-security violation protect

 

 

 

 

 

 

Port-Security Aging Time 2가지

특정 포트에 Port-Security가 동작하면 해당 포트의 연결된 장비의 MAC주소에 대한 유지 시간을 설정할 수 있다.

포트의 MAC주소 개수를 제한하면서 기존의 MAC주소를 수동으로 삭제하지 않고 aging time을 설정하여 관리할 수 있다. 기본 aging time 은 0분이고 최대 1440분이다.

 

Absolute

특정 포트 Port-Security에 등록된 MAC주소가 설정한 aging time이 만료되어야 Port-Security에 등록된 MAC주소가 삭제된다. 

SW1(config)#interface ethernet 0/0
SW1(config-if)#switchport port-security 
SW1(config-if)#switchport port-security aging time 10
SW1(config-if)#switchport port-security aging type absolute 

  

 

 

Inactivity

특정 포트 Port-Security에 등록된 MAC주소로 설정한 aging time동안 Data Traffic이 없는 경우에 해당 Port-Security에 등록된 MAC주소가 삭제된다.

SW1(config)#interface ethernet 0/0 
SW1(config-if)#switchport port-security  
SW1(config-if)#switchport port-security aging time 10
SW1(config-if)#switchport port-security aging type inactivity

 

 

 

 

 

 

해당 포트에 Port-Security 설정 확인입니다.

SW1#show port-security interface ethernet 0/0
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Restrict
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 2
Total MAC Addresses        : 2
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 0050.7966.6806:100 - 가장 마지막에 연결된 MAC주소
Security Violation Count   : 20 - 위반된 MAC주소 횟수

 

 

 

 

저는 스탠다드로 이렇게 사용합니다.

SW1(config)#interface ethernet 0/0 
SW1(config-if)#switchport port-security  
SW1(config-if)#switchport port-security aging time 1
SW1(config-if)#switchport port-security aging type inactivity
SW1(config-if)#switchport port-security maximum 5
SW1(config-if)#switchport port-security violation restrict

 

 

 

 

 

감사합니다 !!

부족한 부분이나 빠진 부분이 있으면 댓글로 남겨주세요.

 

 

자세한 내용은 CISCO 홈페이지에서 확인 가능합니다.

https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst4500/12-2/25ew/configuration/guide/conf/port_sec.html#wp1054687

 

반응형

+ Recent posts