LVS(Linux virtual server)理论-L1

ARP协议

[这里介绍ARP是为了后面的lvs中的一种模式使用的,只要大概了解原理就好了]

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。这个协议如果有网络基础的人来说应该是很熟悉的。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,一次确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机的ARP缓存中(CMD中使用arp -a查看)并保留,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相通信的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。


在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的IP地址(马上就要IPV6了),这种互联网地址是在网际范围标示主机的一种逻辑地址。为了让报文在物理网路上传输,还必须知道对方目的主机的物理地址(MAC)才行。这样就存在把IP地址换成物理地址的地址转换问题。

ARP协议要求通信的主机双方必须在同一物理网段(即局域网环境)!


方便理解,下面是例子:


LVS(Linux virtual server)理论-L1_第1张图片

场景:

PC1要和网络中的PC2进行人生第一次通信,并且只知道对方的IP地址。这里就不考虑交换机造成的影响了。

要点:局域网通信使用的是mac地址,没ip地址也能通信。ip地址是七层模型中的第三层的事情了。


流程:

PC1打包数据,数据包中有PC1的IP地址、mac,目的IP地址,但是不知道对方的mac地址。数据包到达vlan,并且广播到PC2和PC3.。PC3收到数据包,对其进行解包,在网络层解包完成后发现目标IP地址并非自己,就会将数据包抛弃,并且不给任何回应。

PC2接到数据包,对数据包进行解包,直到确定这个数据包是发送给自己的,并且保存pc1的ip和mac地址的对应关系,此时pc2会给PC1一个确认包,并且pc1和pc2互换角色。这个确认包中包含了PC2的ip地址(源地址角色)、MAC地址(源mac地址角色),PC1的ip地址(目标IP地址角色)、mac地址(目标mac地址角色)。pc1收到这个确认包后才有了pc2的mac地址,并且存入缓存中,此时pc1才能正常的和pc2进行通信。


提示:arp是将ip地址转换成mac地址,还有一个rarp是已知对方的mac地址,不知道对方的ip地址使用的。


Lvs(Linux virtual server)

Lvs是Linux vritual server的简称,标题就已经说明了哈。意思是linux虚拟服务器。


工作原理:

IPVS是在系统内核里的,用户不能直接对其进行管理,可以使用ipvsadm对IPVS管理,这里用keepalived进行管理。

lvs之所以效率,查阅资料后总结来说,就是工作的层面在内核,不需要太多的转换和解释。


理解几个名词:

名称 缩写 说明
虚拟IP地址(virutal ip address) vip 简单理解为暴露在公网和用户直接通信的地址,向用户提供服务的ip地址
真实IP地址(real server ip address) rip 比如网站后端服务都会放在这台机器上,也就是真正处理用户请求的ip地址
director的ip地址(director ip address) dip director用于连接内外网络的ip地址,物理网卡上的ip地址,是负载均衡上的ip
客户端ip地址(client ip address) cip 客户端用户计算机请求集群服务器的ip地址,该地址用作发送集群的请求的源ip地址

以上的缩写内容,后期会很常见。





你可能感兴趣的:(linux)