oracle arp绑定mac地址,使用ARP命令来绑定IP和MAC地址

使用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

修改的键值:

键值1:ArpCacheLife,类型为Dword,单位为秒,默认值为120

键值2:ArpCacheMinReferencedLife,类型为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来上网。

22785432_1.jpg

各计算机的TCP/IP设置如下,本次试验不涉及DNS解析,各服务器的DNS服务器设置为空,在试验之前已经确认了网络连接工作正常:

ISA 2004 Firewall:

LAN Interface:

IP:192.168.0.1/24

DG:None

MAC:00:03:47:F4:FC:E7

True(将离线):

IP:192.168.0.8/24

DG:192.168.0.1

MAC:00:0D:60:C3:05:34

Fake(将修改IP地址为192.168.0.8):

IP:192.168.0.8/24

DG:192.168.0.1

MAC:00: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上的绑定就成功了。

22785432_2.jpg

现在我们在客户机Fake上,将自己的IP地址修改为192.168.0.8,然后Ping ISA Server:

C:\Documents and Settings\admin>ipconfig /all

Windows IP Configuration

Host Name . . . . . . . . . . . . : anonymous

Primary Dns Suffix . . . . . . . :

Node Type . . . . . . . . . . . . : Unknown

IP Routing Enabled. . . . . . . . : No

WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter 本地连接:

Connection-specific DNS Suffix . :

Description . . . . . . . . . . . : Intel(R) PRO/100 VE Network Connection

Physical Address. . . . . . . . . : 00-06-D0-06-05-47

Dhcp Enabled. . . . . . . . . . . : No

IP Address. . . . . . . . . . . . : 192.168.0.8

Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 192.168.0.1

DNS Servers . . . . . . . . . . . : 192.168.0.1

C:\Documents and Settings\admin>ping 192.168.0.1 -n 2

Pinging 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的全部过程:

22785432_3.jpg

由于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的帮助是最好的老师。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里巴巴2013年实习生笔试题A

一、单项选择题 1.下列说法不正确的是:(B) A.SATA硬盘的速度速度大约为500Mbps/s B.读取18XDVD光盘数据的速度为1Gbps C.前兆以太网的数据读取速度为1Gpbs D.读取DDR3内存数据的速度为100Gbps 解析:有说B的,有说D的&am…

linux之间安全传输文件,使用SCP安全地传输文件[Linux] | MOS86

终端访问远程Linux机器的最常见方法是使用安全Shell(SSH)。要工作,Linux服务器需要运行SSH服务器(OpenSSH),另一端需要一个SSH客户端,像Windows中的PuTTy,或者Linux上的ssh命令行工具,或者其他类似Unix的操作系统&…

赛门铁克运维注意事项

1.赛门铁克服务器出现无法更新情况,手动更新地址为:http://www.symantec.com/security_response/definitions/download/detail.jsp?gidsavce 更新步骤是: 把.jdb文件拷取到Symantec Endpoint Protection Manager\data\inbox\content\incomin…

在linux怎样删除文件夹里,linux删除文件夹(里头有文件)

cat /etc/passwd |cut -f 1 -d : 查看所有用户su 切换用户userdel 删除户名adduser username 新建用户passwd username 更改密码用户管理命令前面介绍过,Linux系统是一个多用户操作系统,系统中每一个用户的使用权限都需要由系统管理员来设定。这一节将介…

2013年11月19日

毕业将至,找工作的同学基本上都签好了,难免大家会问待遇,然后就会格外注意网络上的一些新闻,比如在路边摆摊的月入上万,我一点也不怀疑,就冲我们宿舍楼下那生意,上万肯定小意思。大家也变的越来…

嵌入式linux写文件内存增加,嵌入式Linux对内存的直接读写

本文转载于:http://blog.sina.com.cn/s/blog_838007b101013n0y.htmlmemdev:直接读写内存。 可以在busybox的杂项中找到: CONFIG_USER_BUSYBOX_DEVMEM: …

ASP.NET 判断客户端是否为手机的函数

BlogEngine2.0里找到的&#xff1a;Web.Config:<appSettings><!-- 这是一个正则表达式&#xff0c;用来标识移动设备。被识别出的移动设备将采用移动版的主题模板 --><add key"BlogEngine.MobileDevices" value"(iemobile|iphone|ipod|android|n…

putty远程登录linux有啥用,putty 自动远程登录linux

在实际的开发和学习中我们会频繁的使用某些远程登录工具&#xff0c;通过网络登录到linux系统中进行程序编写和调试。Putty是比较流行的工具&#xff0c;但是在putty下每次链接到远端linux都要重新输入用户名和密码&#xff0c;就显得有些麻烦了。那么&#xff0c;有没有什么方…

善良公社项目总结之如何从前台向后台传输数据

前言 BS的学习任务基本上结束了&#xff0c;当然仅仅是视频的学习内容。很多都没有具体的实践过程&#xff0c;BS很多的技术和框架都没有认真的学习和实践。这次在跟着崔哥在实践的时候&#xff0c;感觉对于BS的内容还是要更多的学习和研究。接下来&#xff0c;对数据如何从前…

linux桌面只有日期,Linux桌面何时才能好用?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Nov 3 10:06:26 icebird-desktop kernel: [ 150.161347] nouveau E[ PBUS][0000:00:0d.0] MMIO write of 0x01670001 FAULT at 0x00b030Nov 3 10:06:32 icebird-desktop kernel: [ 156.096862] nouveau E[ PBUS][0000:00:0d.0] MMI…

eclipse中对单独JS文件取消报错的处理

eclipse中对单独JS文件取消报错的处理 eclipse中js文件报错的情况&#xff0c;或许大家早已习以为常了&#xff0c;那么有什么好的方法可以将其忽略掉呢&#xff1f;如果你也在寻找此问题&#xff0c;那么本文或许可以帮助到你 - 忽略某个js文件报错的方法&#xff1a; Project…

linux里的vmware16有中文吗,vmware 16.1专业版_linux版本下载_vmware 16.1下载_5分享

Mware Workstation Pro™ 使专业技术人员能够在同一台 PC 上同时运行多个基于 x86 的 Windows、Linux 和其他操作系统&#xff0c;从而开发、测试、演示和部署软件。无论虚拟机是位于个人计算机还是专用企业云中&#xff0c;您都可以在虚拟机中复制服务器、桌面和平板电脑环境&…

hosts.allow和hosts.deny

/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的&#xff0c;通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。 比如SSH服务&#xff0c;我们通常只对管理员开放&#xff0c;那我们就可以禁用不必要的IP&#xff0c;而只开放管理员可能使用到…

linux组的管理命令,linux 用户和组管理命令(示例代码)

Linux 用户和组管理组管理groupadd命令&#xff1a;添加组groupadd 选项 group_name-g GID &#xff1a;指定GID;默认是上一个组的GIDS1-r 创建系统组&#xff1b;groupmod命令修改组属性groupmod 选项 GROUP-g 修改GID-n 修改组名groupdel&#xff1a;删除组groupdel 组名用户…

消息断点 RUN跟踪

学习与 看雪上 看雪上比较详细 但在另一地方也看到 &#xff1a; http://hi.baidu.com/xx375/item/8e86710d41b3a63e4bc4a36e http://hi.baidu.com/xx375/item/f7b3f331edb396413175a16e 转载于:https://www.cnblogs.com/zcc1414/p/3982419.html

oracle卸载

实现方法&#xff1a; 1、开始&#xff0d;&#xff1e;设置&#xff0d;&#xff1e;控制面板&#xff0d;&#xff1e;管理工具&#xff0d;&#xff1e;服务停止所有Oracle服务&#xff1b; 2、开始&#xff0d;&#xff1e;程序&#xff0d;&#xff1e;Oracle – OraDb10g…

linux shell加密压缩,linux的shell指令进行压缩或者解压缩

.tar解包&#xff1a;tar xvf FileName.tar打包&#xff1a;tar cvf FileName.tar DirName(注&#xff1a;tar是打包&#xff0c;不是压缩&#xff01;).gz解压1&#xff1a;gunzip FileName.gz解压2&#xff1a;gzip -d FileName.gz压缩&#xff1a;gzip FileName.tar.gz 和 .…

13-11-27新的一天

今天一整天做了三件事&#xff0c;第一件就是把apache和php整合配置好了&#xff1b;第二件事就是今天自己申请了个博客号&#xff1b;第三件事就是回家听了小强老师讲的关于性能测试的视频。新手学习php感觉还是问题多多&#xff0c;php配置整整搞了两天才配置好&#xff0c;最…

VC6常用快捷键

CtrlF&#xff1a; 查找 CtrlH&#xff1a; 替换 Ctrl}&#xff1a; 匹配括号(),{} AltF8&#xff1a; 自动格式重排 F7&#xff1a; 编译工程 CtrlF5&#xff1a; 执行程序 //调试代码   F5&#xff1a; 调试程序 F9&#xff1a; 设置断点 CtrlF9&#xff…

linux 基础训练,Linux 基础训练习题

1.从当前目录切换到/usr/local cd /usr/local2.使用绝对路径&#xff0c;从当前目录切换到/usr/local/lib cd /usr/local/lib3.使用相对路径&#xff0c;从当前路径切换到/usr …