반응형

 

 

 

 

 

DHCP Snooping 란?

Snooping 이란  '기웃거리다, 염탐하다, 훔쳐보다' 라는 의미로 DHCP Snooping 으로 합쳐지면 DHCP 패킷의 내용을 중간에 가로채서 훔쳐보거나 염탐하는 사용자가 있을 수 있습니다. 그걸 방지하기 위해 DHCP Snooping을 이용하여 DHCP 응답을 차단시켜주는 기능입니다.

 

 

 

 

 

테스트는 EVE-NG로 시뮬레이션을 진행합니다.

일단 아래와 같이 기본 Vlan 10으로 설정을 했습니다. 

 

 

일반 유저 인터페이스들은 아래와 같이 설정하였습니다.

SW1(config)#ip dhcp snooping
SW1(config)#ip dhcp snooping vlan 10
SW1(config)#no ip dhcp snooping information option 

SW1(config)#interface range ethernet 0/1 - 3
SW1(config-if-range)#ip dhcp snooping limit rate 15

 

 

DHCP Server가 연결된 인터페이스는 아래와 같이 설정하였습니다.

SW1(config)#interface ethernet 0/0
SW1(config-if)#ip dhcp snooping trust 

 

ip dhcp snooping - DHCP Snooping 기능을 활성화 시켜줍니다.

ip dhcp snooping vlan [Vlan ID] - DHCP Snooping 기능을 적용할 Vlan을 입력해 주세요.

ip dhcp snooping limit rate [num] - 신뢰하지 않는 인터페이스에 초당 DHCP 패킷 수를 조절한다. (넘으면 차단)

ip dhcp snooping trust - DHCP Server가 연결되어있거나 신뢰가능한 인터페이스에 설정해 주세요.

no ip dhcp snooping information option - DHCP option82를 꺼주는 설정인데, 대부분의 enterprise server는 이를 지원하지 않습니다. 궁금하신분은 DHCP option82를 검색하여 확인해보세요 !!

 

 

 

 

DHCP Snooping 기능을 설정한 포트를 확인할 수 있습니다.

SW1#sh ip dhcp snooping 
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
10
DHCP snooping is operational on following VLANs:
10
DHCP snooping is configured on the following L3 Interfaces:

Insertion of option 82 is enabled
   circuit-id default format: vlan-mod-port
   remote-id: aabb.cc00.1000 (MAC)
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Verification of giaddr field is enabled
DHCP snooping trust/rate is configured on the following Interfaces:

Interface                  Trusted    Allow option    Rate limit (pps)
-----------------------    -------    ------------    ----------------   
Ethernet0/0                no         no              15        
  Custom circuit-ids:
Ethernet0/1                no         no              15        
  Custom circuit-ids:
Ethernet0/2                no         no              15        
  Custom circuit-ids:
Ethernet0/3                no         no              15        
  Custom circuit-ids:

 

 

 

 

DHCP Snooping 패킷을 확인해볼 수 있습니다.

SW1#sh ip dhcp snooping statistics 
  Packets Forwarded = 3
  Packets Dropped = 9
  Packets Dropped From untrusted ports = 0

 

 

 

 

 

테스트로 0/1번 포트의 limit rate를 1로 바꿔서 확인해 보세요.

SW1(config)#interface ethernet 0/1
SW1(config-if-range)#ip dhcp snooping limit rate 1

 

해당 포트가 차단된 로그를 볼 수 있습니다.

*Jun 30 10:57:30.646: %SYS-5-CONFIG_I: Configured from console by console
*Jun 30 10:57:49.485: %DHCP_SNOOPING-4-DHCP_SNOOPING_ERRDISABLE_WARNING: DHCP Snooping received 1 DHCP packets on interface Et0/1 
*Jun 30 10:57:49.485: %DHCP_SNOOPING-4-DHCP_SNOOPING_RATE_LIMIT_EXCEEDED: The interface Et0/1 is receiving more than the threshold set 
*Jun 30 10:57:49.485: %PM-4-ERR_DISABLE: dhcp-rate-limit error detected on Et0/1, putting Et0/1 in err-disable state 
*Jun 30 10:57:50.489: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to down
*Jun 30 10:57:51.489: %LINK-3-UPDOWN: Interface Ethernet0/1, changed state to down

 

SW1#sh interfaces status 

Port      Name               Status       Vlan       Duplex  Speed Type
Et0/0                        connected    10           auto   auto unknown
Et0/1                        err-disabled 10           auto   auto unknown
Et0/2                        connected    10           auto   auto unknown
Et0/3                        connected    10           auto   auto unknown

 

 

 

 

 

감사합니다.

 

CISCO - DHCP Snooping에 대한 자세한 내용이 적혀있어요 !!

https://www.cisco.com/c/en/us/td/docs/switches/datacenter/sw/4_1/nx-os/security/configuration/guide/sec_nx-os-cfg/sec_dhcpsnoop.html

반응형
반응형

 

 

 

 

 

DHCP란 ?

사용하는 전자기기가 많아지거나 PC 자체의 변동사항으로 IP 설정이 필요할 경우 매번 관리가 어려워 자동으로 IP를 할당해주는 프로토콜 입니다.

 

 

 

 

DHCP 프로토콜의 원리

DHCP 프로토콜을 통한 IP주소 할당은 임대라는 개념을 가지고 있는데 이는 DHCP 서버가 IP주소를 영구적으로 단말에 할당하는 것이 아니고 임대기간을 설정하여 설정 기간동안만 단말이 IP주소를 사용하도록 하는 것입니다. 임대기간이 끝나면 단말은 임대받은 IP주소를 반납하는 절차를 수행하게 됩니다.

 

 

  • 1 - DHCP Discover (Brodcast)

클라이언트는 DHCP 서버를 찾기 위하여 같은 네트워크상에 Discover 메시지를 브로드캐스트 합니다. 

 

  • 2 - DHCP Offer (Unicast)

클라이언트로부터 Discover 메시지를 받아 DHCP Server는 IP 정보들을 클라이언트에게 제공합니다.

  • 3 - DHCP Request (Brodcast)

클라이언트는 서버로부터 받은 IP 정보들을 할당받겠다고 모든 서버들에게 request 메시지를 보냅니다.

 

  • 4 - DHCP ACK (Unicast)

클라이언트에게 IP 정보를 할당해준 서버로부터 ACK 메시지를 이용해 IP 정보 할당을 승인하겠다는 메시지를 클라이언트에게 보냅니다.

 

 

 

이제 EVE-NG를 이용하여 라우터를 DHCP Server로 만들어 보겠습니다.

아래 그림과 같이 인터페이스 설정 및 Port 설정 Static route 설정이 된 다음에 시뮬레이션을 진행하였습니다.

 

현재 구성은 이렇게 해놨습니다.

 

일단 DHCP Service가 Enable이 기본값이지만 Disabled 상태라면 Enabled 상태로 만들어준다.

R1(config)#service dhcp 
SW1(config)#service dhcp 

 

 

 

 

그리고 DHCP Server로 설정할 라우터에 입력해주시면 됩니다.

 

R1(config)#ip dhcp pool Data10
R1(dhcp-config)#network 192.168.10.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.10.1
R1(dhcp-config)#domain-name cisco.com
R1(dhcp-config)#dns-server 192.168.10.2
R1(config)#ip dhcp pool Data20
R1(dhcp-config)#network 192.168.20.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.10.1
R1(dhcp-config)#domain-name cisco.com
R1(dhcp-config)#dns-server 192.168.10.2

 

pool name은 본인이 마음대로 설정가능합니다.

network는 DHCP로 자동할당하고 싶은 네트워크 대역을 적어주시면 됩니다.

default-router는 네트워크 대역의 게이트웨이를 설정해 주는 것입니다.

따로 DHCP server의 domain-name이 있으면 IP와 적어주시면 됩니다.

 

 

 

그리고 제외하고 싶은 범위를 선택하여 입력해줍니다.

R1(config)#ip dhcp excluded-address 192.168.10.1 192.168.10.10
R1(config)#ip dhcp excluded-address 192.168.20.1 192.168.20.10

 

그리고 VPC에서 확인해봅시다.

VPCS> dhcp 
DDORA IP 192.168.10.11/24 GW 192.168.10.1

VPCS> sh

NAME   IP/MASK              GATEWAY                             GATEWAY
VPCS1  192.168.10.11/24     192.168.10.1
       fe80::250:79ff:fe66:6805/64

같은 네트워크에 있는 VPC는 DHCP를 통하여 문제없이 할당 받았습니다.

 

하지만 다른 대역에 있는 VPC는 할당받지 못하였습니다.

VPCS> dhcp
DDD
Can't find dhcp server

 

이럴때는 R2에서 DHCP 브로드 캐스트 패킷을 받아야하는 포트에 설정해 주세요.

이 작업은 DHCP Relay 설정입니다. 

R2(config)#int ethernet 0/1.20
R2(config-subif)#ip helper-address 192.168.10.1

ip helper-address에 DHCP server 의 게이트웨이를 적어주게 되면 받아올 수 있습니다.

 

 

 

그리고 나서 VPC에서 다시 확인해보면 아래와 같이 나오게 됩니다.

VPCS> dhcp
DORA IP 192.168.20.11/24 GW 192.168.20.1

VPCS> sh

NAME   IP/MASK              GATEWAY                             GATEWAY
VPCS1  192.168.20.11/24     192.168.20.1
       fe80::250:79ff:fe66:6806/64

 

 

 

 

 

 

해당 명령어로 할당한 IP 정보를 볼 수 있습니다.

R1#show ip dhcp binding 

 

 

 

해당 명령어로 DHCP pool 이름과 정보를 볼 수있습니다.

R1#show ip dhcp pool

 

 

 

 

 

 

 

 

감사합니다. 

반응형

+ Recent posts