客人在我所供职的酒店上网的时候,经常会弹出一个对话框,显示一些提示,如上网的注意事项和消费
标准等
信息;并且有自己的电影和歌曲
服务器,DHCP-server也是其中的一台服务器,宾馆、酒店就是用这台
机器,为客户分配IP地址提供上网
功能,即客户把自己的
计算机连上网线,
网卡配置自动获取IP地址,就会从动态主机配置协议(DHCP)服务器分配到一个IP地址;采用DHCPserver可以自动为用户设置
网络IP地址、掩码、网关、DNS、Wins等网络参数,简化了用户网络设置,提高了
管理效率。 那么我们的问题也出现了:常见的,很多用户抱怨用这种方法上不了网,但不是所有客户都上不了网。经过调查发现,住宾馆、酒店的人绝大多数是
商务人员和工程师,他们携带的手提
电脑一般安装的是
Windowsserver版本,server版本默认启动了DHCPserver功能,当一台这样的计算机连入网络,在他之后的计算机就会把他当成DHCP服务器,并被分配了不正确的IP地址,从而上不了网。
' D8 V2 Y; L [
DHCP服务器地址分配方式
8 T M/ j/ y z- S& S8 \
DHCP是一种用于简化主机IP配置管理的协议标准。通过采用DHCP标准,可以使用DHCP服务器为网络上所有启用了DHCP的客户端分配、配置、跟踪和更改(必要时)所有
TCP/IP设置。此外,DHCP还可以确保不使用重复地址、重新分配未使用的地址,并且可以自动为主机连接的子网分配适当的IP地址。当一个网络中,有2个或2个以上的DHCP服务器时,提醒切勿将DHCP地址池定义的过大,以免多个地址池之间出现“包含于”的关系,或者是部分客户端手工指定的IP地址包含于DHCP服务器的地址池中,从而造成DHCP的一些异常
故障。
7 N6 ~' w- P! c! q) y 针对不同的
需求,DHCP服务器有三种机制分配IP地址:
* }) t0 [- `; @( a7 [0 i ^8 ^ 自动分配DHCP服务器给首次连接到网络的某些客户端分配固定IP地址,该地址由用户长期使用; 动态分配DHCP服务器给客户端分配有
时间限制的IP地址,使用期限到期后,客户端需要重新申请地址,客户端也可以主动释放该地址。绝大多数客户端主机得到的是这种动态分配的地址;
# _6 H& ?- g% {( X
手动分配由
网络管理员为客户端指定固定的IP地址。
- k. x. G" y! ^ |* \! Z2 Y
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。
; F* Z1 S: @* k% y 每项
技术都是有利有弊的,DHCP也不例外,由于DHCP有着配置简单,管理方便的优点,问题也随之产生,由于DHCP的运作机制,通常服务器和客户端没有认证机制,如果网络上存在多台DHCP服务器将会给网络造成混乱。由于用户不小心配置了DHCP服务器引起的网络混乱非常常见,足可见此问题的普遍性。
, n1 w# f: a$ W1 x* _* S 本人在从事网络工作的几年里,遇到过很多问题,其中有关DHCP-server冲突的不在少数,在解决问题的同时也总结了一些经验,在这里简单介绍一下,与大家分享,希望给在解决此
类问题的同行一些帮助,也希望广大高手指出其中的不足和需要改进的地方。
% m7 V+ ]5 o- c l3 K
DHCP服务器冲突的解决方法
2 N! ?! Z" I. ^
使用DHCPsnooping技术来解决
& i2 {- F: n/ y/ z1 r9 k) F
针对这种DHCP服务器冲突的解决方法有很多,最直接的方法就是贴告示,让入住的客户在上网时关闭Windows的DHCP网络服务,这个选项在‘控制面板’,‘管理工具’里的‘DHCP网络服务’,进入关闭即可。这里要注意的是,非server版的Windows不用关闭,并且不要把‘控制面板’,‘管理工具’,‘服务’中的DHCPclient给停止了,这样是分配不到地址的。
: A' ^- v; m* s7 d. K7 @& Z
当然上面的方法比较被动也不合常理,更不便于我们网络的管理,所以还是应该从我们网络本身出发来解决问题。
' x6 j1 T6 W9 e3 e- F8 C 既然是DHCP的问题,那么我们就用DHCP的技术来解决问题,比较有代表的就是DHCPsnooping技术。DHCPsnooping技术是DHCP
安全特性,通过建立和维护DHCPsnooping绑定表过滤不可信任的DHCP信息,这些信息是指来自不信任区域的DHCP信息。DHCPsnooping绑定表包含不信任区域的用户mac地址、IP地址、租用期、vlan-id接口等信息。首先定义交换机上的信任
端口和不信任端口,其中信任端口连接DHCP服务器或其他交换机的端口;不信任端口连接用户或网络。不信任端口将接收到的DHCP服务器响应的DHCPack和DHCPoff报文丢弃;而信任端口将此DHCP报文正常转发,从而保证了用户获取正确的IP地址。具体配置如下:
! ^9 P% h& S6 h! o4 Q8 M# x 配置中的命令都是以CISCO的设备为基础,但不管是哪个公司的设备,总体设计
思想是一致的,不同的可能在命令格式上略有差异,工作人员应该根据具体的实际情况来解决相应的问题。
4 b: l8 H9 B' C/ q
在全局模式下启动DHCPsnooping功能,这个默认是关闭的,而且不是所有设备都支持这个功能,最好先看使用说明。
+ D9 D9 j& B1 @ switch(config)#ipdhcp-snooping
) F1 a6 | k! G1 F
如果有vlan就使用下面的命令来监测具体的vlan
4 g5 t# ?) N% |# D( q switch(config)#ipdhcp-snoopingvlanvlan-id
4 ^3 T7 p; E" ]8 J
然后定义可信任的端口,默认情况交换机的端口均为不信任端口,通常网络设备接口,TRUNK接口和连接DHCP服务器的端口定义为可信任端口。
; @6 E. `8 L& j/ ?+ |: t+ L" K6 _' o switch(config)#intf0/x
; b$ A% K, P0 m# _! G
switch(config-if)#ipdhcpsnoopingtrust
/ B1 f8 }0 R8 z! L' }% e
使用
PVLAN技术来解决
* S) i3 T7 q) ?* t 有很多二层的技术可以防止DHCP-server冲突的,PVLAN就是其中一个运用比较广的技术。
- a+ g: n0 P6 Y( G3 b PVLAN私有局域网(privatevlan),在PVLAN的概念里,端口有3种类型:Isolatedport,Communityport,Promiscuousport;它们分别对应不同的vlan类型:Isolatedport属于IsolatedPVLAN,Communityport属于CommunityPVLAN,而代表一个Privatevlan整体的是Primaryvlan,前面两类vlan需要和它绑定在一起,同时它还包括Promiscuousport。在IsolatedPVLAN中,Isolatedport只能和Promiscuousport,彼此之间不能访问;在CommunityPVLAN中,vlan与vlan之间都不能访问,同一Communityvlan的接口可以互相访问,并且所有Communityvlan的接口都可以与Promiscuousport进行
通信。利用这项技术,我们可以把上连或连接DHCP服务器的接口定义为Promiscuousport,其他接口分配到Isolatedvlan里,这样所有接口都只能与上连或DHCP服务器进行通信,即使有一台机器设为DHCP服务器,其他机器也不会与它产生流量,把它做为服务器。
; K5 i6 `$ }; f' U, d
8 t6 x" ]7 B) s! `3 D/ D+ N 利用这个技术解决DHCP-server冲突的方法有很多,也很灵活,下面介绍一种比较简单的方法,也是用的比较多的:
8 [- Y5 H- S9 c- D! P2 e 首先把交换机配置成transparents模式:
0 I% x/ ^( R' i( u: J2 C switch(config)#vtpmodetransparent
3 `4 R. n; l" N: }5 ?( M 顺便可以打开端口的保护功能,它的意思是打开端口保护的端口之间不能访问,但打开保护的端口可以与没有开启此项功能的端口通信,可以根据自己的需求来打开保护功能:
7 ]3 }0 i9 J: t7 S \. ^ switch(config)#intrangef0/124
( [4 r7 E, F* ?' T
switch(config-if-range)#switchitchportprotected
4 t. M% U1 o: v4 I8 \- E9 ~ 建立isolatedvlan和primaryvlan,把isolatedvlan定义为primarylan的附属vlan,因为要与primary互相访问:
& K$ A- `8 l; u y) x9 D switch(config)#vlan14
- c* E7 ^9 Y: O+ I6 i# } switch(config-vlan)private-vlanisolated
% r/ C6 b* C' ?6 A# I6 B; J8 M switch(config)#vlan44
8 q# t) h! f( {+ ~4 z7 o9 J& A) A& c* G# Z
switch(config-vlan)#private-vlanprimary
3 N) Z. U/ o% ^1 h switch(config-vlan)#private-vlanassociation14