重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在linux中查看arp地址解析协议需要使用终端命令。
创新互联建站专注于企业营销型网站建设、网站重做改版、宿迁网站定制设计、自适应品牌网站建设、HTML5、成都商城网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为宿迁等各大城市提供网站开发制作服务。
以Deepin linux为例,使用终端命令查看arp步骤如下所示:
1、在程序列表中点击打开终端命令程序。
2、在终端命令中输入查看arp命令:arp -g 。
3、如图所示,即是本地arp地址解析协议。
从ip_finish_output2到dev_queue_xmit路径:
arp协议:
(1).硬件类型:
硬件地址类型,该字段值一般为ARPHRD_ETHER,表示以太网。
(2).协议类型:
表示三层地址使用的协议,该字段值一般为ETH_P_IP,表示IP协议
(3)硬件地址长度,以太网MAC地址就是6;
(4)协议地址长度,IP地址就是4;
(5)操作码
常见的有四种,arp请求,arp相应,rarp请求,rarp相应。
(6)发送方硬件地址与IP地址,(7)目标硬件地址与目标IP地址。
arp头数据结构:
arp模块的初始化函数为arp_init(),这个函数在ipv4协议栈的初始化函数inet_init()中被调用。
1.初始化arp表arp_tbl;
2.注册arp协议类型;
3.建立arp相关proc文件,/proc/net/arp;
4.注册通知事件
一个neigh_table对应一种邻居协议,IPv4就是arp协议。用来存储于邻居协议相关的参数、功能函数、邻居项散列表等。
一个neighbour对应一个邻居项,就是一个arp条目
邻居项函数指针表,实现三层和二层的dev_queue_xmit()之间的跳转。
用来存储统计信息,一个结构实例对应一个网络设备上的一种邻居协议。
注册arp报文类型 :dev_add_pack(arp_packet_type);
就是把arp_packet_type添加到ptype_base哈希表中。
注册新通知事件的时候,在已经注册和UP的设备上,会调用一次这个通知事件。
设备事件类型:
创建一个邻居项,并将其添加到散列表上,返回指向该邻居项的指针。
tbl:待创建的邻居项所属的邻居表,即arp_tbl;
pkey:三层协议地址(IP地址)
dev:输出设备
want_ref:??
创建邻居项
1.设置邻居项的类型
2.设置邻居项的ops指针
3.设置邻居项的output函数指针
调用dst_link_failure()函数向三层报告错误,当邻居项缓存中还有未发送的报文,而该邻居却无法访问时被调用。不懂。
用来发送arp请求,在邻居项状态定时器处理函数中被调用。
neigh:arp请求的目的邻居项
skb:缓存在该邻居项中的待发送报文,用来获取该skb的源ip地址。
将得到的硬件源、目的地址,IP源、目的地址等作为参数,调用arp_send()函数创建一个arp报文并将其输出。
创建及发送arp报文
创建arp报文,填充字段。
发送arp报文
用来从二层接收并处理一个arp报文。这个函数中就是做了一些参数检查,然后调用arp_process()函数。
neigh_event_ns
neigh_update
这个函数的作用就是更新邻居项硬件地址和状态。分支比较多。
neigh_update_notify
代理arp(proxy arp),通常像路由器这样的设备才使用,用来代替处于另一个网段的主机回答本网段主机的arp请求。
感觉代码ARP好像没啥用呀。
网络主机发包的一般过程:
1.当目的IP和自己在同一网段时,直接arp请求该目的IP的MAC。
2.当目的IP和自己不再同一网段时,arp请求默认网关的MAC。
当主机没有默认网关的时候,arp请求别的网段的报文,到达路由器后,本来路由器是要隔离广播的,把这个arp请求报文给丢弃,这样就没法通信了。当路由器开启arp proxy后,路由器发现请求的目的IP在其他网段,就自己给主机回复一个arp响应报文,这样源主机就把路由器的MAC当成目的IP主机对应的MAC,可以通信了。这样可能会造成主机arp表中,多个IP地址都对应于路由器的同一个MAC地址。
可以使用arping命令发送指定IP的arp请求报文。
写完了发现这个老妹写的arp代理文章蛮好的,不过她好像是转载的。
命令红色字体标记
系统初始arp环境
[root@esx ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.1.175 ether 00:24:1D:97:B6:7F C vswif0
192.168.1.120 ether 00:1F:C6:3A:DC:81 C vswif0
192.168.1.51 (incomplete) vswif0
执行清除所有arp 缓存命令
[root@esx ~]# arp -n|awk '/^[1-9]/{print "arp -d " $1}'|sh -x
+ arp -d 192.168.1.175
+ arp -d 192.168.1.120
+ arp -d 192.168.1.51
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
组合命令清楚所有arp缓存:
[html] view plaincopy
arp -n|awk '/^[1-9]/{system("arp -d "$1)}'
以上命令必须 root 才可以执行。
使用ip命令清除某一网络接口的arp(下面命令是 eth0 接口)
[html] view plaincopy
ip neigh flush dev eth0
Linux 清除arp缓存是把列表标记为(incomplete),在下一次系统清理垃圾是会清除。
.首先给虚拟机设置2块网卡:
2、关闭系统中的NetworkManager:
3、编辑文件/etc/modprobe.d/dist.conf添加alias bond0 bonding:
4、修改/etc/sysconfig/network-scripts中的ifcfg-eth0 ifcfg-eth1并创建bond0:
❝
miimon是指多久时间要检查网路一次,单位是ms(毫秒)
mode=0:平衡负载模式,两块网卡都在工作,负载均衡。
mode=1:自动主备模式,其中一块网卡在工作(若eth0断掉)
则自动切换到另一个块网卡(eth1做备份)实验结果:
1、重启网络.service network restart,或者计算机。
2、用另外一台虚拟机ping网卡绑定后的主机。
3、任意ipdown任意网卡,网络通讯均不受影响。
对于网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。 对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。
如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡. 网卡
操作步骤: 1.首先给虚拟机设置2块网卡:
添加网卡
2、关闭系统中的NetworkManager:
关闭NetWorkManager服务
3、编辑文件/etc/modprobe.d/dist.conf添加alias bond0 bonding: 编辑网卡绑定配置文件
4、修改/etc/sysconfig/network-scripts中的ifcfg-eth0 ifcfg-eth1并创建bond0: 创建bond0
miimon是指多久时间要检查网路一次,单位是ms(毫秒) mode=0:平衡负载模式,两块网卡都在工作,负载均衡。 mode=1:自动主备模式,其中一块网卡在工作(若eth0断掉)
则自动切换到另一个块网卡(eth1做备份)实验结果:
1、重启网络.service network restart,或者计算机。
2、用另外一台虚拟机ping网卡绑定后的主机。
3、任意ipdown任意网卡,网络通讯均不受影响。使用bind绑定多个网卡
由于服务器上对于可用性的要求都比较高,对于各项功能都会有有冗余设计,比如,磁盘、电源、网卡、甚至服务器本身等等,今天尝试做一下网卡绑定实现网卡的冗余。
网卡绑定的实现表面上看起来有些像是硬盘实现逻辑卷,都是通过创建一个逻辑设备来实现的。实现网卡的绑定其实还挺简单的,相比逻辑卷更容易理解。
首先,我们在/etc/sysconfig/network-scripts/目录下创建一个文件,文件名通常会叫ifcfg-bondxx,除了ifcfg-后面的内容其实都是可以自己定义的,但通常都会写成bind之类的,文件的内容其实和普通网卡配置文件的内容是一样的,就像这样第一行的DEVICE是你给这个逻辑设备指定的名字,这个名字得和文件名的后半部分一样。
第二行是指定IP的获取方式,你也可以写dhcp让他自动获取,如果是自动获取,那么IPADDR、GATEWAY和PREFIX都不需要再填
最后一行是比较重要的,必须得填,这个是绑定网卡的选项,mode代表绑定网卡的工作模式,miimon是一个时间间隔,代表备份网卡每隔多久查询一次工作网卡的工作情况。单位是ms
以上只是第一步,逻辑网卡已经创建好了,下面就要指定那些网卡属于这个逻辑网卡了。也很简单,只要把你想加入这个逻辑网卡的物理网卡的配置文件稍微修改一下就可以了。就像这样