2012年2月23日 星期四

DHCP Snooping

DHCP
DHCP (Dynamic Host Configuration Protocol)
是用來自動取得IP的一種通訊協定,定義在RFC2131 & RFC2132
最主要有兩個角色:Clinet以及Server。
Clinet就是要需要取得IP的裝置,Server則是配有很多IP Pool可以assign
Switch上則多「Relay」的角色(意即對接host端Switch扮演著類似server;對server則扮演host)

常見跟DHCP有關的功能
DHCP Snooping
switch在經過它的DHCP packet中偷偷去紀錄一些資訊,主要是為了security issue.
主要設定會有設定所謂的Trust port,這通常是接到DHCP server
透過Snooping可以建立binding table,也可以說是白名單,這原本是用於IP Source Guard,當有packet進來的時候會去check packet的一些欄位資訊看是不是合法的;如果不是合法的就會被drop掉。這可以配合ARP INSPECTION來使用,當DHCP完成 host要發出arp時也會確認binding table來確認是不是合法的user

/* 註記 */
binding table除了自己learn到外也可以用自己設定的,所謂的static binding,自己建立白名單
所以當default的config,只開arp inspection的話,當有arp packet進來,查白名單裡面是空白的,那就全部進去filter名單,全部被drop,那網路就不通了


DHCP Relay
剛提到的DHCP Snooping只做到偷看,不影響原本的行為;但今天如果DHCP Server剛好不在同一個domain/vlan的話該怎麼辦?
switch上有這個relay的功能,可以代替
OPTION 82

DHCP Relay可以分成Global Relay(Smart-Relay)以及VLAN Relay

DHCP Relay

Global Relay透過config設定可以把不同vlan的dhcp packet都forward相同的vlan上的「同一台」dhcp server;
VLAN Relay則是透過設定,可以把不同vlan的dhcp packet forward「相同」vlan上的「不同」dhcp server去

Global and VLAN Relay

DHCP Relay-Broadcast:
這不是standard有的行為。是個功能的開關。通常會有DHCP Relay都是access switch(Layer 2)為主,那Relay就是switch幫忙把原本client的DHCP broadcast給包成unicast往已知的server丟。那原本DHCP Broadcast的packet呢? 要繼續做broadcast嘛? 所以才會有這個小功能。但這樣也會有缺點就是說當原本 broadcast VLAN上有多個DHCP server的時候,client就會收到多台server給他的DHCP offer,至於client挑選哪台DHCP server回的packet就是網卡來決定。與switch就無關


DHCP Database
DHCP snooping主要是為了建立binding table,建立binding table有手動(static binding)以及dynamic learn(開DHCP Snooping,等DHCP完成後自動建立),如果今天是因為自動建立的話如果重開機的話是不是就要重新DHCP一次create binding table很麻煩?  dynamic的binding table有沒有辦法做備份!?   DHCP Database就是為了解決這個問題而產生。使用TFTP的方式將binding table做備份在外部的TFTP server上以及support restore的功能,在下次重開機的時候可以快速把binding table給restore回去


DHCP-VLAN
DHCP VLAN OVERWRITE

沒有留言:

張貼留言