네트워크/네트워크 보안
DHCP snooping
CBROJIN
2025. 6. 24. 15:14
🔐 실습 목표
Access 단말(Infra PC)이 DHCP 서버로부터 정상적으로 IP를 할당받되, Access 스위치에서는 불법 DHCP 서버를 차단.
🧩 전체 구성도
- Access-2 : VLAN 20, 클라이언트 연결, DHCP Snooping 활성화
- Distribution-1 : VLAN 20, 100(SVI), 릴레이 수행(ip helper-address 192.168.50.5)
- ASA-1: 릴레이 경유 장비, DHCP 서버와 연결
- DHCP 서버: Ubuntu 서버, 192.168.50.5
🧩 주요 설정
*Access-2 (L2 Switch)* *Distribution-1 (L3 Switch)*
ip dhcp snooping ip dhcp snooping
ip dhcp snooping vlan 20 ip dhcp snooping vlan 20,100
interface Gi1/1 interface Gi1/1
ip dhcp snooping trust ip dhcp snooping trust
interface Gi0/2
ip dhcp snooping trust
! 문제 상황 발생 : Access-2 , Distribution-1에 dhcp snooping 설정 후 dhcp server에서 ip 할당이 안됨.
🧩 원인 분석
* Distribution-1 에서 실행*
debug ip dhcp snooping packet
debug ip dhcp snooping events
1. Distribution-1 전역만 켠 경우
ip dhcp snooping <-- 켜도 정상 동작
2. VLAN 목록까지 지정
ip dhcp snooping vlan 20,100 <-- 이 순간부터 실패
3. 추가 조치
- ip dhcp relay information trust-all
- no ip dhcp snooping information option
모두 적용해도 giaddr 값이 0.0.0.0 으로 남아 여전히 실패
4. 원인
가상 IOSv-L2/IOU 는 Snooping 엔진과 Relay 엔진이 동일 소프트웨어 경로로 동작
SVI가 giaddr 를 넣어 다시 네트워크로 재주입할 때 입력 포트가 아직 untrusted 로 표시되어 스누핑이 자체 패킷을 곧바로 차단.
시뮬레이션 가상화 장비의 한계로 생각됩니다.
🧩 결론 및 해결
Distribution-1(config)# no ip dhcp snooping
Distribution-1(config)# ip dhcp relay information trust-all <-- 이 설정이 있어야 동작
- Distribution-1에서 snooping 기능 자체를 비활성화하고 relay만 수행
- 이후 giaddr 설정 정상적으로 되고 IP 할당 완료됨
✅ DHCP Snooping이란?
DHCP Snooping은 L2 스위치에서 DHCP 공격을 방지하기 위한 보안 기능입니다. 스위치가 DHCP 패킷을 검사하고, 신뢰된 포트를 통해서만 DHCP 서버의 응답이 전달되도록 제어함으로써, 불법 DHCP 서버(Rogue DHCP)를 차단할 수 있습니다.
왜 필요한가?
- Rogue DHCP 서버 차단
악의적인 사용자가 DHCP 서버를 임의로 설정하면, 클라이언트가 엉뚱한 IP나 게이트웨이를 받아 Man-in-the-Middle 공격이나 DoS 공격이 가능해집니다.
--> DHCP Snooping은 비신뢰 포트에서 들어오는 DHCP Offer/Ack을 차단해 이걸 막아줍니다. - DAI, IP Source Guard 등과 연계
DHCP Snooping은 단독으로도 쓰이지만, Dynamic ARP Inspection(DAI), IP Source Guard(ISG) 등 L2 보안 기능의 기반이 되기도 합니다.
--> 즉, ‘MAC/IP/포트’ 간의 신뢰 관계를 만들고 검증하는 데 중요한 역할을 합니다.
작동 방식 요약
- 신뢰 포트(trusted)
일반적으로 DHCP 서버가 연결된 uplink 포트는 신뢰 포트로 지정. 이 포트로 들어오는 DHCP 메시지는 차단하지 않고 그대로 전달됩니다. - 비신뢰 포트(untrusted)
단말이 연결되는 포트는 기본적으로 모두 비신뢰 포트.
--> 이 포트로 들어오는 DHCP Offer, Ack은 차단됨. 단, Discover, Request는 허용. - 바인딩 테이블 생성
스위치는 DHCP 과정을 통해 MAC, IP, VLAN, 인터페이스 정보를 바탕으로 바인딩 테이블을 자동으로 생성 합니다.
--> 이 바인딩 정보를 기반으로 DAI나 IP Source Guard에서 검증이 가능합니다.