1、为每一个协议提供一个缓存来存放L3到L2的转换结果。

2、提供在缓存中添加、删除、改变和查找一个特定映射项的函数。查找函数必须要快,因为它会影响整个系统的性能。

3、为每一个协议缓存的数据项提供一种老化机制。

4、当缓存已满时并且正好要创建新的映射项时,提供选择替换策略。

5、为每一个邻居提供一个请求队列。当准备要发送一个封包并且其L2地址还不在地址缓存中是,就必须把这个封包放到缓冲区中,直到发出solicitation请求,并且收到应答。参见27章排队一节。

为了让每一种协议都适应邻居自系统的行为,Linux定义了一组占位符(placeholder)或虚函数,这样的每个协议都可以在其中插入它想用的函数。这与Linux允许用户定制内核的方式有些类似,邻居层也提供了一组可调参数对其进行配置。配置这些参数可以通过用户空间命令、/proc文件系统或者协议本身。最后,所有协议访问缓存的函数都是相同的,但是不同的协议可能会用不同字节长度的关键字(地址)。因此,基础架构提供了一种通用方式来定义关键字使用的类型。

终端主机需不需要进行任何配置或者使用任何特殊的浏览器。这种代理称为透明代理。

主机需要配合成使用proxy来访问internet。代理服务器只有在其自身缓存不命中时,才会使用路由器访问Internet。

邻居协议的代理服务器是一台主机,对请求不属于自己的地址的solicitation应答,它能够代替拥有这些地址的主机做出应答。因为有了代理,位于不同LAN中的主机可以相互通信,就好像他们处于同一个LAN中。

arp代理代理的主机,不能和自己在同一个子网中,否则,目的主机将和代理同事应答,发送方不知道应该选择哪一个。

对于代理arp问题,自己确实有段时间也有所困惑,于是乎便去用真机做实验验证,现将验证结果反馈给你。
【网络拓扑为双路由器互联(RT1--RT2),一台pc(xp系统)上联到RT1的以太接口上,网段为192.168.1.X/24】
(1)PC不设置网关
在真机上开启抓包工具,动作为 PC ping 路由器RT1的loopback 1接口 1.1.1.1 ,发现无arp请求信息,无数据包流通。
(2)网关设置为自己
在真机上开启抓包工具,动作为 PC ping 路由器RT1的loopback 1接口 1.1.1.1 ,发现有arp请求,并且直接请求ping命令后的ip地址所对应的arp。
(3)网关设置为路由器RT1的loopback接口1.1.1.1
在真机上开启抓包工具,动作为 PC ping 路由器RT1的loopback 2接口 10.10.10.10 ,发现有arp请求,并且请求的是网关1.1.1.1,能够通信。
小结:路由器收到一个arp请求包,是否做代理取决于该路由器上是否有arp目标ip的对应路由条目存在。
测试:
(4)在RT2上配置loopback接口2.2.2.2,在RT1和RT2上做相应的静态路由,保证路由的可达性。
A:重复上述第(2)动作(ping的目标ip改为2.2.2.2),发现可以正确的实现二层封装。
B:撤销路由器RT1的路由条目,发现A步骤的实验结果为不可二层封装!
C:在B的基础上,在路由器RT1上写缺省路由,出接口为连接pc的以太网接口,做ping的目标ip改为2.2.2.2动作,结果可定是ping不同,更为重要的是在pc中arp条目的生成都没有(有arp请求包,但无应答)!

总结:路由器从开启arp代理的接口收到一个arp请求,并且该目标ip地址是自己可达的,并且这个对应路由条目的出接口不是收到该arp请求的接口,那么路由器将执行代理arp功能!

device based     ipv4    该设备接收到的所有有效请求都会被处理。这是IPV4中最常见的情况,IPV6中不使用。

Destination based    ipv4+ipv6  在决定是否要进行代理时,同时考虑目的地址和设备两个属性。也就是说代理可以对选定IP地址的请求作出应答。基于目的地址的代理时IPV6网络的标准,在IPV4也可以使用。

在共享介质中,任意主机发出的任何帧都会被直接连接到该介质上的所有主机收到。

以太网(Ethernet)具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式(混杂模式,Promiscuous)时, 由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。IEEE802.3 标准的以太网采用的是持续 CSMA 的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截的我们所要的信息,这 是捕获数据包的物理基础。
以太网是一种总线型的网络,从逻辑上来看是由一条总线和多个连接在总线上的站点所组成各个站点采用上面提到的 CSMA/CD
协议进行信道的争用和共享。每个站点(这里特指计算机通过的接口卡)网卡来实现这种功能。网卡主要的工作是完成对于总线当前状态的探测,确定是否进行数据
的传送,判断每个物理数据帧目的地是否为本站地址,如果不匹配,则说明不是发送到本站的而将它丢弃。如果是的话,接收该数据帧,进行物理数据帧的 CRC
校验,然后将数据帧提交给LLC 子层。
网卡具有如下的几种工作模式:
1) 广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。
2)多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。
3)直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己 Mac地址的帧。
4)混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。
网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,一个站点的网卡将接受同一网络内所有站点所发送的数据包这样就可以到达对于网络信息监视捕获的目的。

当一个主机收到一个对本地子网外某一个地址的solicitation请求时,这台主机若是启动了代理功能就可以处理它。首先邻居子系统检查是否开启全局代理,没有的话在检查是否被配置成可以代理那个特定的地址。

在接收请求的代理服务器上已开启转发功能。

因为代理服务器是插入到主机之间的,所以它必须接受两个端点间转发的流量。代理和转发独立配置。

arp solicitation请求总是发往L2广播地址。这就保证了所有共享介质上的主机都可以收到它。这样代理服务器不需要把其任何借口配置成混杂模式,就可以截取是他代理的主机的请求。

ND协议使用L3广播地址处理solicitation请求和应答。当路由器想代理一个特定的IP地址时,它必须接受对应的L3多播地址。

linux通用邻居基础架构的更多相关文章

  1. IT基础架构规划方案三(IT基础软件和系统规划)

    IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...

  2. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释

    继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...

  3. b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释

    我最近一直在找适合将来用于公司大型bs,b2b b2c的基础架构. 实际情况是要建立一个bs架构b2b.b2c的网站,当然还包括wap站点.手机app站点. 一.现有公司技术人员现状: 1.熟悉asp ...

  4. SaltStack 是一个服务器基础架构集中化管理平台

    SaltStack详细部署   一.基础介绍============================================================================== ...

  5. Fabric基础架构原理(一)

    Linux基金会于2015年12月启动了名为“超级账本”(Hyperledger)的开源项目,旨在推动各方协作,共同打造基于区块链的企业级分布式账本底层技术,用于构建支撑业务的行业应用和平台. 超级账 ...

  6. IT基础架构规划方案一(网络系统规划)

    背景                   某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...

  7. [翻译]用 Puppet 搭建易管理的服务器基础架构(4)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第四部分. 原文地址:http://blog.jobbole.com/89214/ 本文由 伯乐在线 - Wing 翻译,黄利民 校稿 ...

  8. [Search Engine] 搜索引擎分类和基础架构概述

    大家一定不会多搜索引擎感到陌生,搜索引擎是互联网发展的最直接的产物,它可以帮助我们从海量的互联网资料中找到我们查询的内容,也是我们日常学习.工作和娱乐不可或缺的查询工具.之前本人也是经常使用Googl ...

  9. 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台

    面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...

随机推荐

  1. Traffic Ccontrol(流量控制)

    linux有一个成熟的带宽供给系统,称为Traffic Control(流量控制).这个系统支持各种方式进行分类.排序.共享和限制出入流量. 一.基础知识 让ip显示我们的链路 ip link  li ...

  2. TortoiseGit - 分支管理 -增加分支

    1.本地当前在master分支,右击选择Create Branch... 2.填写Branch的名称 3.右击选择Push,在Ref-Local,选择刚才新建的Branch名称 4.点击OK后,在弹出 ...

  3. static 控件颜色修改

    在对话框上放一个StaticText控件后如果文字长度不能铺满控件的 rect,如下: 那么运行时会出现如下效果 通过MSG_WM_CTLCOLORSTATIC消息修改static控件背景色模式为透明 ...

  4. 通过RVM安装Ruby失败

    第一次安装失败是由于Homebrew一直安装不成功,遂去http://brew.sh/index_zh-cn.html官网 通过 /usr/bin/ruby -e "$(curl -fsSL ...

  5. JavaScript JSON timer(计时器) AJAX HTTP请求 同源策略 跨域请求

    JSON 介绍 1. JSON: JavaScript Object Notation 是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是 ...

  6. redis的主从复制与哨兵

    主从复制的关键字是slaveof,有三种方法可以让一个redis数据库变成另一个redis数据库的从数据库: 1.修改redis的配置文件,添加#slaveof <masterip> &l ...

  7. 艰辛五天:Ubuntu14.04+显卡驱动+cuda+Theano环境安装过程

    题记:从一开始不知道显卡就是GPU(虽然是学计算机的,但是我真的不知道…脑残如我也是醉了),到搞好所有这些环境前后弄了5天时间,前面的买显卡.装显卡和装双系统见另一篇博客装显卡.双系统,这篇主要记录我 ...

  8. Android系统手机端抓包方法(tcpdump)

    抓包准备 1. Android手机需要先获得root权限.一种是否获得root权限的检验方法:安装并打开终端模拟器(可通过安卓市场等渠道获得).在终端模拟器界面输入su并回车,若报错则说明未root, ...

  9. redis运维的一些知识点

    恰好看到一些redis需要主要的东西 记下 供参考 原文地址 http://hi.baidu.com/ywdblog/item/1a8c6ed42edf01866dce3fe3 最近在线上实际使用了一 ...

  10. 《JS权威指南学习总结--3.8类型转换》

    JS数据类型转换方法主要有三种:          转换函数.强制类型转换.利用js变量弱类型转换. 一.转换函数          parseInt()和parseFloat()两个转换函数.   ...