做视频找素材的网站有哪些,wordpress 合法评论,建站平台入口,内蒙建设厅网站怎么查建筑电工证使用ARP命令来绑定IP和MAC地址前言#xff1a;我本来没有想过写关于ARP绑定的文章#xff0c;坦白的说一句#xff0c;在你理解ARP工作的原理时#xff0c;这其实比较简单。只是看到最近论坛很多人在问关于绑定IP和MAC地址的问题#xff0c;所以才决定写这个文章#xff…使用ARP命令来绑定IP和MAC地址前言我本来没有想过写关于ARP绑定的文章坦白的说一句在你理解ARP工作的原理时这其实比较简单。只是看到最近论坛很多人在问关于绑定IP和MAC地址的问题所以才决定写这个文章希望能一劳永逸作为企业级的路由防火墙ISA Server并没有提供对于MAC地址的控制功能。不过你可以使用Windows的命令ARP来实现IP地址和MAC地址的绑定。这篇文章介绍了Windows下ARP协议工作的原理以及如何使用ARP命令来静态绑定IP地址和MAC地址。ISA Server中没有提供对于MAC地址的控制功能Why这是因为MAC地址只能在本地网络中使用当数据包跨越路由器时数据包中主机的源MAC地址就会被路由器的出站接口的MAC地址所代替这个时候使用MAC地址来进行控制就不适用了。所以只要是企业级的硬件或者软件防火墙都基本没有提供对MAC地址的控制功能。不过微软也早就考虑到了这点在Windows中如果你安装了TCP/IP网络协议组件那么你就可以执行命令ARP。ARP命令的作用是查看本机的ARP缓存、静态绑定IP地址和MAC地址和删除静态绑定项。其实绑定IP地址和MAC地址的本意是为了减少ARP广播流量只是可以利用这一功能来控制IP地址的使用。在这里我还是先简单的f描述一下Windows下ARP协议的工作原理。ARP协议(Address Resolve Protocol地址解析协议)工作在TCP/IP协议的第二层数据链路层用于将IP地址转换为网络接口的硬件地址(媒体访问控制地址即MAC地址)。无论是任何高层协议的通讯最终都将转换为数据链路层硬件地址的通讯。每台主机都具有一个用于缓存MAC地址的ARP缓存列表你可以使用命令ARP -a或ARP -g来查看当前的ARP缓存列表。此ARP缓存列表是动态更新的默认情况下当其中的缓存项超过两分钟没有活动时此缓存项就会超时被删除。你可以使用ARP -s来静态绑定IP地址和MAC地址不过在Windows server 2003和XP以前的Windows系统中就算你设置了静态MAC地址绑定项同样会通过接收其他主机的数据包而更新已经绑定的项。在Windows server 2003和XP中静态绑定的项不会被动态更新直到TCP/IP协议终止为止例如重启计算机。如果要创建永久的静态MAC地址绑定项你可以写一个脚本文件来执行ARP静态绑定然后使用计划任务在启动计算机时执行该脚本即可。例如A主机的IP地址为192.168.0.1它现在需要与IP为192.168.0.8的主机(主机B)进行通讯那么将进行以下动作A主机查询自己的ARP缓存列表 如果发现具有对应于目的IP地址192.168.0.8的MAC地址项则直接使用此MAC地址项构造并发送以太网数据包如果没有发现对应的MAC地址项则继续下一步A主机发出ARP解析请求广播目的MAC地址是FF:FF:FF:FF:FF:FF请求IP为192.168.0.8的主机回复MAC地址B主机收到ARP解析请求广播后回复给A主机一个ARP应答数据包其中包含自己的IP地址和MAC地址A接收到B主机的ARP回复后将B主机的MAC地址放入自己的ARP缓存列表然后使用B主机的MAC地址作为目的MAC地址B主机的IP地址(192.168.0.8)作为目的IP地址 构造并发送以太网数据包如果A主机还要发送数据包给192.168.0.8 由于在ARP缓存列表中已经具有IP地址192.168.0.8的MAC地址所以A主机直接使用此MAC地址发送数据包而不再发送ARP解析请求广播当此缓存地址项超过两分钟没有活动(没有使用)后此ARP缓存将超时被删除。默认情况下ARP缓存的超时时限是两分钟你可以在注册表中进行修改。可以修改的键值有两个都位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters修改的键值键值1ArpCacheLife类型为Dword单位为秒默认值为120键值2ArpCacheMinReferencedLife类型为Dword单位为秒默认值为600注意这些键值默认是不存在的如果你想修改必须自行创建修改后重启计算机后生效如果ArpCacheLife的值比ArpCacheMinReferencedLife的值大那么ARP缓存的超时时间设置为ArpCacheLife的值如果ArpCacheLife的值不存在或者比ArpCacheMinReferencedLife的值小那么对于未使用的ARP缓存超时时间设置为120秒对于正在使用的ARP缓存超时时间则设置为ArpCacheMinReferencedLife的值。下图是我们的试验网络结构ISA Server作为一个边缘防火墙内部局域网(192.168.0.0/24)通过ISA Server接入Internet。在这个试验中我将在ISA Server上绑定内部客户True的IP地址192.168.0.8和MAC地址这样当True不在线时另外一个内部客户Fake就算修改自己的IP地址为True的IP地址192.168.0.8也不能通过ISA Server来上网。各计算机的TCP/IP设置如下本次试验不涉及DNS解析各服务器的DNS服务器设置为空在试验之前已经确认了网络连接工作正常ISA 2004 FirewallLAN InterfaceIP192.168.0.1/24DGNoneMAC00:03:47:F4:FC:E7True(将离线)IP192.168.0.8/24DG192.168.0.1MAC00:0D:60:C3:05:34Fake(将修改IP地址为192.168.0.8)IP192.168.0.8/24DG192.168.0.1MAC00:06:D0:06:05:47首先我在ISA Server上使用ARP -S来绑定True的IP地址和MAC地址运行命令ARP -s 192.168.0.8 00-0D-60-C3-05-34然后执行ARP -a来查看ARP缓存列表结果如下图所示。你可以看到在ARP缓存列表中IP地址192.168.0.8的类型为static这表明它是静态项。此时我们在ISA Server上的绑定就成功了。现在我们在客户机Fake上将自己的IP地址修改为192.168.0.8然后Ping ISA ServerC:\Documents and Settings\adminipconfig /allWindows IP ConfigurationHost Name . . . . . . . . . . . . : anonymousPrimary Dns Suffix . . . . . . . :Node Type . . . . . . . . . . . . : UnknownIP Routing Enabled. . . . . . . . : NoWINS Proxy Enabled. . . . . . . . : NoEthernet adapter 本地连接:Connection-specific DNS Suffix . :Description . . . . . . . . . . . : Intel(R) PRO/100 VE Network ConnectionPhysical Address. . . . . . . . . : 00-06-D0-06-05-47Dhcp Enabled. . . . . . . . . . . : NoIP Address. . . . . . . . . . . . : 192.168.0.8Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . : 192.168.0.1DNS Servers . . . . . . . . . . . : 192.168.0.1C:\Documents and Settings\adminping 192.168.0.1 -n 2Pinging 192.168.0.1 with 32 bytes of data:Request timed out.Request timed out.Ping statistics for 192.168.0.1:Packets: Sent 2, Received 0, Lost 2 (100% loss),Ping超时Why从Sniffer上捕获的数据包可以更清楚的进行说明下图是捕获的数据包它描述了Fake(192.168.0.8) Ping 192.168.0.1的全部过程由于Fake(00:06:D0:06:05:47)没有192.168.0.1的MAC地址所以Fake发送ARP地址解析请求广播询问192.168.0.1的MAC地址是什么ISA Server(00:03:47:F4:FC:E7)使用ARP应答回复Fake(00:06:D0:06:05:47)告诉Fake自己的IP地址(192.168.0.1)和MAC地址获得192.168.0.1的MAC地址后Fake(192.168.0.8)向192.168.0.1发送PING请求数据包192.168.0.1向192.168.0.8回复PING回复数据包Fake(192.168.0.8)再次向192.168.0.1发送PING请求数据包192.168.0.1再次向192.168.0.8回复PING回复数据包这一切看起来没有任何问题那为什么Fake的Ping会超时呢这一切从表明上看是没有任何问题但是仔细看捕获的数据包的以太网头部你就会发现问题所在首先我们看第三个数据包Fake(192.168.0.8)向192.168.0.1发送的Ping请求如下图所示Fake以自己的MAC地址为源MAC地址、192.168.0.1的MAC地址(00:03:47:F4:FC:E7)为目的MAC地址发送数据包这没有任何问题。那么看看第四个ISA Server回复的Ping回复数据包呢源MAC地址是ISA Server的MAC地址(00:03:47:F4:FC:E7)这也没有问题但是注意看目的MAC地址00:0D:60:C3:05:34是离线的客户机True的MAC地址。还记得我们在ISA Server上做的IP地址(192.168.0.8)和MAC地址绑定吗ISA Server直接使用自己ARP缓存中的静态绑定项来发送数据而不是使用收到的Ping请求数据包中的源MAC地址来作为目的地址。因此Fake认为此数据包不是发给自己的不会处理此数据包所以认为没有Ping回复数据包自然就是超时了。最后说一下我不推荐大家使用静态IP地址和MAC地址的绑定这会带来更多的管理负荷。你可以利用ISA Server强大的身份验证功能结合IP地址来进行管理这样具有更好的效果。也请不要在论坛问我ARP命令是如何使用的Windows的帮助是最好的老师。