新年伊始云稚,我們要盡快調整好心態(tài)投入到工作當中去。
DHCP Snooping是預防dhcp攻擊的一種手段燕雁,通過設置信任端口和非信任端口讓非法的dhcp服務器無法攻擊客戶端鲸拥,同時它還提供對dhcp報文的檢查,如dhcp報文中的chaddr字段和以太幀頭中的源mac是否匹配禁荒。
DHCP Snooping中還涉及到一個重要的概念是OPTION 82角撞,通過在非信任端口上啟用OPTION 82功能,讓客戶端發(fā)出的dhcp報文攜帶option82字段热康,然后支持dhcp Snooping option82功能的服務器再根據客戶端攜帶的option82信息分配地址劣领。tw自研交換機的option82支持兩個子選項(1)Agent Circuit ID和(2)Agent RemoteID。
sub-option 1奕锌,為代理電路id(即circuitid)子項村生。子選項通常在dhcp中繼設備上配置,定義了在傳輸報文的時候要攜帶dhcp客戶端所連接交換機端口的vlan-id及二層端口號辽话。通常sub-option 1與sub-option 2子選項要共同使用來標識dhcp源端的信息。
sub-option 2典徘,為代理遠程id(即remoteid)子項。該子選項也通常在dhcp中繼設備上配置逮诲,定義了在傳輸報文的時候要攜帶中繼設備的mac地址信息础废。通常與sub-option1子選項要共同使用來標識dhcp源端的信息。
這些子選項在報文中的格式是這樣的
代碼??? 長度? 代理信息字段
+------+------+------+------+------+------+--...-+------+
|?? 0 ? |?? N?? |??? s1? |?? s2? |?? s3? |? s4? |.......| sN? |
+------+------+------+------+------+------+--...-+------+
DHCP OPTION82功能的測試
1帘瞭、搭建支持option82功能的DHCP服務器
2蒿讥、配置tw自研交換機的option82功能
3芋绸、pc是否能根據不同的option82信息獲取到不同的地址
搭建支持option82功能的DHCP服務器
這里我用的是centos系統(tǒng)下面yum命令安裝的dhcp服務器,找到/etc/dhcp/dhcpd.conf文件廷蓉,進行編輯马昙。
普通的dhcpd.conf文件
ddns-update-style interim; #表示dhcp服務器和dns服務器的動態(tài)信息更新模式
ignore client-updates; #忽略客戶端更新
subnet 192.168.1.0
netmask 255.255.255.0 { #意思是我所分配的ip地址所在的網段為192.168.145.0 子網掩碼為255.255.255.0
range 192.168.1.200 192.168.1.210; #租用IP地址的范圍
option domain-name-servers ns.example.org;
option domain-name "example.org";
option routers 192.168.1.1; #路由器地址,這里是當前 dhcp 服務器的IP地址
option subnet-mask 255.255.255.0; #子網掩碼
default-lease-time 600; #默認租約時間
max-lease-time 7200; #最大租約時間
}
帶有option82功能的dhcpd.conf文件
ddns-update-style interim; #表示dhcp服務器和dns服務器的動態(tài)信息更新模式 ignore client-updates; #忽略客戶端更新
class "port1" { match if option agent.circuit-id=00:04:00:01:00:03; }
class "port2" { match if option agent.circuit-id=00:04:00:01:00:01; }
subnet 192.168.1.0 netmask 255.255.255.0 {
pool {
allow members of "port1";
default-lease-time 600;
max-lease-time 7200;
range 192.168.1.3 192.168.1.100;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8; } }
subnet 192.168.2.0 netmask 255.255.255.0 {
pool {
allow members of "port2";
default-lease-time 600;
max-lease-time 7200;
range 192.168.2.101 192.168.2.199;
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8; } }
選擇第二個文件,因為它支持根據option82的circuit id去分配不同的IP地址子房。
linux系統(tǒng)下面啟用dhcp服務器的命令為service dhcpd restart证杭,通過cat /var/log/messages可以查看日志信息
配置tw自研交換機的option82功能
首先開啟全局和端口的dhcp snooping功能
設置連接dhcp服務器的端口為信任端口
啟用端口的option82功能
pc是否能根據不同的option82信息獲取到不同的地址
pc連接交換機的端口3解愤,抓到的完整報文如下
pc連接到端口1獲到192.168.1.1網段的地址琢歇。
pc連接交換機的端口1,抓到的完整報文如下
pc連接到端口1獲到192.168.2.1網段的地址揭保。
由此可見秸侣,不同端口可以獲取到同一DHCP服務器不同網段的地址宠互。
pc連接端口1攜帶的circuit id為000400010001,dhcpd.conf文件中
class "port2" {match if option agent.circuit-id=00:04:00:01:00:01;}
匹配到的是"port2"搏色,該網段為192.168.2.1券册,地址池為range 192.168.2.101 192.168.2.199
pc連接端口3攜帶的circuit id為000400010003,dhcpd.conf文件中
class "port1" {match if option agent.circuit-id=00:04:00:01:00:03;}
匹配到的是"port1"烁焙,該網段為192.168.1.1骄蝇,地址池為range 192.168.1.3 192.168.1.100
這是dhcp snooping option82的一個應用場景,通過編輯dhcp.conf文件來獲取不同網段的地址九火。其中還需要注意一個問題,因為dhcp服務器只有一張網卡考榨,要想同時分配兩個網段的ip地址也需要網卡支持兩個網段的ip鹦倚,所以我們給網卡配置了一個靜態(tài)ip后有配了一個虛擬ip。
option82最基本的功能就介紹到這兒了掀鹅。