DHCP 서버는 Router, L3스위치에서 구성할 수 있다.
나는 이번에 L3 스위치에서 DHCP 서버를 구성했다.
1) L2SW마다 VLAN그룹으로 나눴기 때문에 DHCP pool에서 VLAN에 맞는 ip를 할당하기 위해 L3스위치마다 DHCP서버를 구성했다.
2) Router의 부하를 최대한 줄이고, 라우팅을 최대한 줄이기 위해 L3SW마다 DHCP서버를 구성했다.
[Topology]
위와 같은 Topology에서 L3SW마다 DHCP 서버를 구성했다.
DHCP Discover
DHCP Offer
DHCP Request
DHCP Reply
L2SW1의 Fa0/1에 End-Device가 연결한 상황이라고 가정해 보자.

아래 Sequence Diagram을 보면 L2SW1이 DHCP서버가 동작 중인 L3SW1과 L3SW3에 DHCP Discover를 전달하는 것을 알 수 있다.
L3SW1과 L3SW3는 각각 End user에 DHCP Offer메세지를 보내므로, End-Device가 DHCP Offer를 2번 받게 되는 것을 알 수 있다.
하지만 End Device는 가장 먼저 받은 DHCP Offer에 이미 DHCP Request를 보냈으므로 L3SW2로부터 받은 DHCP Offer메세지는 Discard 한다.

참고로 이 Diagram은 EndDevice에서 Network-Device로 오가는 패킷을 Wireshrk로 캡쳐하여 분석해서 만든 Diagram이다.
[Wireshark 패킷 분석 Diagram, dot1x와 DHCP]
L2SW1(config)# interface fastethernet 0/1
L2SW1(config-if)# switchport mode access
L2SW1(config-if)# switchport access vlan 10
L2SW에서 인터페이스에 VLAN을 지정해줘야 DHCP 서버와 통신이 가능하다.
# DHCP 할당시 제외할 주소의 범위, 10.1부터 10.3까지 제외된다.
# Network ID와 BroadCast는 자동으로 제외된다.
Switch(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.3
Switch(config)# ip dhcp excluded-address 192.168.10.61 192.168.10.62
# VLAN10은 pool의 이름이다.
Switch(config)# ip dhcp pool VLAN10
# DHCP로 할당할 주소, 서브넷 마스크
Switch(dhcp-config)# network 192.168.10.0 255.255.255.0
# Default gateway 주소 설정
Switch(dhcp-config)# default-router 192.168.10.1
# 구글의 DNS서버 사용
Switch(dhcp-config)# dns-server 8.8.8.8
# 할당받은 IP를 유지할 IP 주소 임대 기간이다. <일> <시간> <분> 순으로 설정한다.
Switch(dhcp-config)# lease 7 0 0
# L3SW에서 VLAN을 생성해준다.
Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1 255.255.255.0
Switch(config-if)# no shutdown
# DHCP가 동작하는지 확인하는 cmd
Switch(config)# service dhcp
DHCP Pool을 생성하면서 IP주소 대역이 VLAN과 매핑되는 방법이 궁금했었다. 대체 L3SW는 어떻게 알고 VLAN에 맞는 IP를 할당해주는 걸까?
L2스위치는 802.1Q라는 프로토콜을 활용해 프레임에 VLAN tag를 달고 L3스위치로 전달한다.
L3SW는 DHCP Discover의 VLAN 태그를 확인하고, 해당 VLAN에 매핑된 IP 풀에서 IP를 할당한다.