arp

计算机网络系列

假如想象 提交于 2019-12-01 07:42:07
计算机网络 考研中止,行百里者半九十 踏实学专业 体系 StackEdit stores your documents in your browser, which means all your documents are automatically saved locally and are accessible offline! Note: OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。 五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。 每一层的协议如下: 物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关) 数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机) 网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器) 传输层:TCP、UDP、SPX 会话层:NFS、SQL、NETBIOS、RPC 表示层:JPEG、MPEG、ASII 应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS 每一层的作用如下: 物理层:通过媒介传输比特,确定机械及电气规范(比特Bit) 数据链路层:将比特组装成帧和点到点的传递(帧Frame) 网络层:负责数据包从源到宿的传递和网际互连

暂时lvs

喜欢而已 提交于 2019-12-01 05:08:14
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。 一、负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(real server)上。为了避免不同机器上用户请求得到的数据不一样,需要用到了共享存储,这样保证所有用户请求的数据是一样的。 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网是 http://www.linuxvirtualserver.org 现在 LVS 已经是 Linux 内核标准的一部分。使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为调度层、Server集群层和共享存储。 二、LVS的基本工作原理 1.

负载均衡

白昼怎懂夜的黑 提交于 2019-12-01 05:05:45
1 学习目标 掌握什么是负载均衡及负载均衡的作用和意义。 了解lvs负载均衡的三种模式。 了解lvs-DR负载均衡部署方法。 掌握nginx实现负载均衡的方法。 掌握lvs+nginx负载均衡拓扑结构。 2 负载均衡方案 2.1 什么是负载均衡 一台普通服务器的处理能力是有限的,假如能达到每秒几万个到几十万个请求,但却无法在一秒钟内处理上百万个甚至更多的请求。但若能将多台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求按照某种策略分配到服务器集合的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡解决了大量并发访问服务问题,其目的就是用最少的投资获得接近于大型主机的性能。 2.2 相关技术 2.2.1 基于DNS的负载均衡 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)

Linux网桥端口的arp问题

爷,独闯天下 提交于 2019-12-01 04:55:02
Linux的brctl addif命令可以将一个接口加入到既有的网桥中,接下来,这个接口就成了brport,属于一个从属的接口,然而你还是可以看到它的,并且可以为它添加IP地址,然后route命令会显示出它的新添加的IP地址的链路层路由已经生效,种种迹象都让人觉得这个brport仍然保有IP语义,然而如果此时你使用该IP(Linux内核会做源地址选择)去访问同一网段的其它地址的话,就会发现,不通,反过来从其它同一网段的地址访问该地址也是不通的,原因何在?听我分解。 网络不通的话,一般第一步是通过抓包来分析,发现是在arp这一步出问题的,arp是IPv4的生命源,arp出了问题,什么都别扯了!懂Linux网络实现的家伙们其实早就知道为何出错了,因为作为从属接口brport,它的一切都要被网桥接口接管,包括arp,也就是说arp期望的接口信息都是关于网桥接口的而不是基于brport的。总的来说是这样的。 IP地址配置在物理接口brport上,因此链路层路由显示的出口设备就是该brport,发送数据的时候,arp逻辑会将目标IP-Mac映射记录在该brport门下,然而arp回来的时候,网桥接口接收了它,内核发现网桥接口门下没有任何待解决的arp请求,因此丢弃之,因此根本不可能从本机访问和配置在brport上IP在同网段的任何目标。反过来也一样,arp请求从其它机器过来,被网桥接口接收

以太网技术

戏子无情 提交于 2019-12-01 04:30:30
一. 交换机转发: 交换机收到数据帧,会存在三种行为: ① 泛洪 ② 转发 ③ 丢弃 1. 泛洪: 交换机会在以下情况泛洪数据帧: (1)当交换机收到广播帧、组播帧会泛洪 (2)当交换机收到一个单播帧,但是交换机的MAC地址表中没有对应的接口标识,此时会泛洪数据帧,称为“未知单播帧的泛洪” 注:交换机不会查看广播数据帧,而是直接将他泛洪到当前除接收接口外的所有的接口,所以针对而成协议数据报文,报文的目标MAC地址只能为组播。 2. 转发: (1)从一个接口收到一个单播帧,并且MAC地址表中有其对应的接口,会进行转发 3. 丢弃: (1)从一个接口收到一个单播帧,单播帧的目的MAC对应的接口正是接收到此单播帧的接口,此时会丢弃数据帧 二. ARP Address Resolution Protocol,地址解析协议,网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路层进行发送,数据帧必须要包含目的MAC地址,因此发送端还必须获取目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP协议来实现的。ARP缓存表用来记录ARP信息,默认老化时间为1200S。 ARP直接封装在数据链路层之上,Type标识为0x0806,我们有时称ARP为2.5层协议。

特殊的ARP

余生长醉 提交于 2019-12-01 01:46:07
免费ARP 协议内容:是指主机发送ARP请求自己的IP地址 作用: 测试网络中是否存在相同的IP地址 更新网络中其他主机的地址绑定信息 补充:根据ARP协议规定,网络中的主机如果收到某个IP地址的ARP请求并且这个地址已经在接受者的高速缓存中,那就要用ARP请求中的发送的物理地址对高速缓存中相应的地址更新。 代理ARP 协议内容: 是指如果ARP请求从一个网络发往另一个网络的主机,那连接着两个网络的路由器就可以回答该请求,路由器将自己的MAC返回给发送ARP广播请求发送者,实现MAC地址代理(善意的欺骗) 应用:有利的,即在防火墙实现常说的透明模式的的实现。 有害的:通过此可以达到在交换环境中进行嗅探的目的。 来源: https://www.cnblogs.com/rower/p/11646509.html

C++ variable length arrays in struct

一世执手 提交于 2019-11-30 21:45:47
I am writing a program for creating, sending, receiving and interpreting ARP packets. I have a structure representing the ARP header like this: struct ArpHeader { unsigned short hardwareType; unsigned short protocolType; unsigned char hardwareAddressLength; unsigned char protocolAddressLength; unsigned short operationCode; unsigned char senderHardwareAddress[6]; unsigned char senderProtocolAddress[4]; unsigned char targetHardwareAddress[6]; unsigned char targetProtocolAddress[4]; }; This only works for hardware addresses with length 6 and protocol addresses with length 4. The address lengths

CP防火墙配置NAT

被刻印的时光 ゝ 提交于 2019-11-30 16:23:34
Static NAT配置 Step1:创建host对象并且配置static NAT,如下图: Step2:修改全局属性的NAT项的ARP代理选项,勾选即可,如下图: Step3:在网关的web portal页面的Network Mangement标签卡中找到Proxy ARP,添加ARP绑定条目 Step4:添加访问策略,本例放性外部网络访问host 10.10.1.110/32的permit ip any,如下图: Step5:验证,使用CRT登录10.10.1.110/32->(目标主机10.158.1.10/32) 来源: https://www.cnblogs.com/networking/p/11604145.html

用Python构造ARP请求、扫描、欺骗

核能气质少年 提交于 2019-11-30 16:17:29
目录 0. ARP介绍 1. Scapy简述 2. Scapy简单演示 2.1 安装 2.2 构造包演示 2.2.1 进入kamene交互界面 2.2.2 查看以太网头部 2.2.3 查看 ICMP 头部 2.2.4 查看 IP 头部 2.2.5 查看 TCP/UDP 头部 2.2.6 简单构造 ICMP 包 2.2.7 简单 构造 ARP 包 3. 构造 ARP 请求 4. 构造 ARP 扫描 5. 构造 ARP 欺骗 0. ARP介绍 首先,先回忆下 TCP/IP 模型,从下到上分为:数据链路层、网络层、传输层、应用层,那么 ARP 到底属于哪一层?有人会说是网络层,但实际是属于数据链路层,只不过还要为网络层提供服务。 ARP 的主要用途是 IP(32bit) 地址到物理 MAC(48bit) 地址的映射关系。别看表面主机知道了远端IP地址就可以通信,实则先要知道远端的MAC地址(借助ARP),通过网卡到交换机构建数据链路层通信,再通过上层进行数据交互。 另外,你可能会了解到代理ARP、免费ARP、RARP这些,其中你都能搞明白他们工作原理是怎么样的嘛? 这里咱们简单回顾一下: 代理ARP:一般路由器通常充当代理角色,代替远端主机响应本地的 ARP 请求; 免费ARP:一种特殊 ARP 请求报文,用于检测 IP 冲突、硬件地址变更触发免费ARP; RARP:与 ARP 相反

python-arp 被动信息收集

一个人想着一个人 提交于 2019-11-30 13:29:27
python-arp 被动信息收集 概述 横向移动的时候由于局域网中可能存在未分配的IP,如果请求这些未分配的IP可能导致被发现(旁路检测设备),先可以做一下arp被动信息收集。当然对蜜罐类设备没用。 代码 from scapy.all import * """ arp信息被动收集 arp op=1 arp request information(brodcast) arp op=2 arp reply information(unicast) arp gratuitous op=1 sender IP address same as target IP and sender MAC address same as target MAC address """ # arp arp_info = {} # passive arp information collection def arp_sniff(): return sniff(filter="arp",store=0,prn=arp_collect) # arp information collect to dict like[IP:MAC] def arp_collect(arp_pkg): mac = arp_pkg[ARP].hwsrc ip = arp_pkg[ARP].psrc # 如果mac信息没存储在arp