扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
需求:以其中一台linux主机作为服务器,对其他主机提供路由转发功能,实现网络共享。
创新互联自2013年起,先为随州等服务建站,随州等地企业,进行企业商务咨询服务。为随州企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
实现:由于本次学习是在虚拟机中实现,共有两台linux主机,其中作为服务器的linux主机先称作vm1,要共享网络的linux主机称作vm2,vm2为在vm1中建立的虚拟机
环境:redhalt 6.5
vm2配置:
由于是模拟网络共享的客户机,在vm设置里将网络模式改为host-only(仅主机模式),并记录下vm2的网段。实际需求中只需配置服务器vm1即可
1.
2.点击确定保存后,可以看到此时的vm2已无法访问网络。
3.在虚拟机菜单栏点击 编辑虚拟网络编辑器,可在此查看或编辑你的vm2网段信息。
vm1配置(服务器):
1.修改/etc/sysctl.conf文件,将配置文件中net.ipv4.ip_forward = 0值改为= 1,开启数据包的转发
[root@localhost ~]# sysctl -p -----使配置文件生效
也可直接输入命令:echo 1 /proc/sys/net/ipv4/ip_forward 重启会失效
2.启动防火墙:/etc/init.d/iptables start
3.依次输入下列两条命令:
[root@localhost ~]# iptables -S 查看红帽防火墙默认的规则链
[root@localhost ~]# iptables -D FORWARD 1 删除FORWARD里序号为1的规则
4.开启地址转换:
[root@localhost ~]# iptables -t nat -I POSTROUTING -s 192.168.148.0/24 -j MASQUERADE ----其中的ip段为vm2配置第三步中的ip段,可自定义
5.至此已搭建完成,只需将vm2设置为该ip段下任一ip即可成功实现访问网络。也可直接通过另外一台设备连接vm1,将ip设置到该网段下即可,vm1并不能自动分配
[root@oracledb ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=
NETMASK=
GATEWAY=
概念补充:
路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。
查看服务器到目标网址经过的ip:traceroute
查看自己主机上的路由表:route -n
分类:
静态路由表:由系统管理员事先设置好固定的路由表称之为静态(static)路由表,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。
动态路由表:动态(Dynamic)路由表是路由器根据网络系统的运行情况而自动调整的路由表。路由器根据路由选择协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。路由器通常依靠所建立及维护的路由表来决定如何转发。
在局域网中,主机可以通过广播的方式来进行网络数据包的发送,但是在不同的网段类的主机想要互相连接时就必须通过路由器来实现。
路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。
转载于:
来源:
原作者删帖 不实内容删帖 广告或垃圾文章投诉
智能推荐
apache开启请求转发
实现访问goto.test,返回内容为purchase.plate.test 修改httpd.conf配置,将下面的两个模块开启 image.png 修改vhost.conf配置,添加转发 image.png 转发的网址后面一定要加反斜杠,否则静态文件不转发。...
转发与路由选择
转发:分组在单一的路由器的一条输入链路中,由路由器将该分组移动到合适的输出链路 路由选择:一个网络中,分组从发送方到接收方时,所采用的路径 举个栗子:如果要从北京到成都 路由选择是:北京-武汉-四川-成都 转发是:你在北京,你要用火车去武汉,而不是上海。...
路由转发功能
一、iptables工具移植 1、交叉编译iptables-1.4.12 ./configure --prefix=/home/huabiao/bin --exec-prefix=/home/huabiao/bin --host=arm --with- kernel=/home/huabiao/share/HI3520D/linux-3....
路由转发原理
自我总结,以强记忆。 实验图(未配置前) 图1未对PC和路由器端口(默认down)配置IP和下一跳,故无法通信。 先说说配置下一跳的不同方式的区别: 1.下一跳为本路由器的出口接口; 当配置静态路由时使用出口接口做为下一跳时,路由器会认为目标网络和接口处在“直连网络”中,而在直连网络中不同设备间的通信是通过ARP协议广播来获取到要到达的目标主机的MAC地址。故当pc7与pc...
路由转发流程
IP 地址和路由转发 此文档为回忆文档,不会详细解释原理 文章目录 IP 地址和路由转发 一、IP 地址 1.1 作用 1.2 分类 1.3 子网掩码 二、IP地址识别(路由转发) 2.1 路由器转发规则 2.2 最长匹配原则 2.3 路由迭代规则 2.3 缺省路由匹配 一、IP 地址 1.1 作用 IP 地址是用于识别计算机网络位置的地址;(IP 协议处于网络层) MAC 地址是计算机物理地址,...
猜你喜欢
DLINK 企业路由器内网部署web开启端口转发后还需要开启是否支持端口回流功能...
跑后台使用的服务器,配置一般都很低,带宽只有2Mb 一些大型文件比如app的更新包使用这种服务器不可行 但是公司的网络是100Mb对等静态ip专线 所以能利用起来,每年将会省下8万块 说干就干,这个步骤应该不难 我自己用ac88u在家也有搭建web,开启端口转发就可以了 但是这个di-7100死活就是不行, 无奈之下,打客服吧 告知ip端口和用户名密码之后那边设置了一下...
Linux运维之LVS使用NAT(路由转发)模式实现负载均衡
一、lvs-nat模式原理 LVS的转发主要通过修改IP地址 (NAT模式,分为源地址修改SNAT和目标地址修改DNAT)、修改目标MAC(DR模式)来实现。 NAT模式: 网络地址转换 NAT(Network Address Translation)是一种外网和内网地址映射的技术。NAT模式下,网络数据报的进出都要经过LVS的处理。LVS需要作为RS(真实服务器)的网关。当包到达LVS时,LVS...
论坛报名 | 智能信息检索与挖掘的最新进展和挑战
与6位图灵奖得主和100多位专家 共同探讨人工智能的下一个十年 长按图片或点击阅读原文,内行盛会,首次免费注册 2020年6月21-24日,第二届北京智源大会(官网:)将邀请包括6位图灵奖获得者在内的上百位人工智能领袖,一起回顾过去,展望未来,深入系统探讨“人工智能的下一个十年”。本次大会将开设19个专题论坛,主题涵盖人工智能数...
2021年Java开发者常见面试题,学习路线+知识点梳理
基础 JAVA基础 JAVA集合 JAVA多线程并发 网络 数据结构与算法 框架 Spring SpringMVC MyBatis 设计模式 分布式 负载均衡 Zookeeper Redis MQ/kafka 微服务 Netty与RPC Spring Boot Spring Cloud Dubbo 调优 MySQL JVM Tomcat 最后 即使是面试跳槽,那也是一个学习的过程。只有全面的复习,...
zabbix api 使用,如何看官方文档。
zabbix 提供的丰富的API接口,几乎可以完成所有在zabbix web界面上的操作,实现一个需求我们可以选用不同的API接口,提供多种解决方案。 官方文档说明 官方文档: 点击链接会进入到下面的界面,介绍了API的使用以及提供的一些方法和一些示例。 在侧边栏我们可以看到不同的API接口...
相关问题
开启字节
如何使用Python将端口转发到路由器
在过滤查询后,Azure路由未转发到端点
Mikrotik路由器端口转发 - 无法从Web访问
C#开启枚举
路由器端口转发和HttpContext.Current.Request.URL
Zend_Router,在参数提供时,向indexController /转发路由
使用路由或mod_rewrite是否要转发旧URL?
Winsock客户端端口和路由器端口转发
使用UPnP以编程方式添加端口转发条目进入路由器?
相关文章
windows开启路由转发
Linux 路由转发实验
linux做路由并实现路由转发
Windows 10上开启路由转发及添加路由
Windows 10上开启路由转发及添加路由
Iptables-linux服务器做路由转发
虚拟机中linux系统实现路由转发功能
linux 路由转发及udhcpd的配置上网
linux配置静态路由实现路由转发和quagga实现动态路由实验
OpenWrt路由开启DDNS+端口转发进行外网访问
热门文章
美国W+NMN科普:NMN对肝脏的作用:NMN对肝脏的作用如何?
python 持续集成 教程_dotnet 部署 github 的 Action 进行持续集成|简明python教程|python入门|python教程...
java运行 mavenzip包_java application maven项目打自定义zip包实例(必看)
laravel 8学习记录(1)—— 配置phpstorm开发环境
A Critical Review of Recurrent Neural Networks for Sequence Learning
ngnix支持thinkphp3.2路由重写模式的配置,即URL_MODEL=2的情况
Rabbit MQ 无法访问到 web 页面
Linux基础_使用基础技巧
C# Owin初探 概念理解
osi七层模型tcp四层模型
推荐文章
【行研资料】2021中国互联网医疗内容行业研究报告——附下载链接
软件测试和评估
SPI Base Knowledge
Idea 添加JDK自带的反编译工具javap
抽象类与接口的区别
JavaScript笔记(5.27)
周志华 机器学习 Day17
声纹识别的三生三世
快速构建Windows 8风格应用34-构建Toast通知
java格子布局怎么设置高度_自动布局:获取UIImageView高度以正确计算单元格高度...
相关标签
环境配置
windows开启路由转发
路由转发
windows
计算机网络
Windows
linux路由
ubuntu
虚拟机
linux
Copyright © 2018-2023 - All Rights Reserved -
网站内容人工审核和清理中!本站和cxyzjd等抄袭本站模板的网站没有任何关系,请注意分辨!
本站在春节期间即将改版,对人工核实过的涉及csdn版权文章做删除处理,
仅保留摘要,大家可以点击摘要后面的“查看原文”跳转到csdn查看。改版后的网站不再发布任何和csdn有关的文章,谢谢理解。
由于数据、程序改动较大,加之时间匆忙,本次改版会持续数日,可能会间歇性影响用户访问。
同时由于csdn自身存在大量版权争议文章,例如机器人账号、转载和不实标注原创问题,本次数据改动均采取人工核实,难免有遗漏和偏差,请来信指正。
关于LVS负载均衡
一、什么是负载均衡:
负载均衡集群提供了一种廉价、有效、透明的方法,来扩展网络设备和
服务器的负载、带宽、增加吞吐量、加强网络数据处理能力,提高网络的灵活性
和可用性。
二、搭建负载均衡服务的需求:
1)把单台计算机无法承受的大规模的并发访问或者数据流量分担到多台节点设备上
分别处理,减少用户等待响应的时间,提升用户体验。
2)单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备结束后,
将结果汇总,返回给用户,系统处理能力得到大幅度提升。
3)7*24的服务保证,任意一个或多个有限节点设备宕机,要求不能影响业务。
三、LVS的介绍:
LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器
集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能。
该项目是在1998年5月由章文嵩博士组织成立的,是中国国内最早出现的自由
软件项目之一。
四、关于LVS的配置使用:
LVS负载均衡调度技术是在Linux内核中实现的,因此,被称为Linux
虚拟服务器。我们使用该软件配置LVS时候,不能直接配置内核中的ipvs,
而需要使用ipvs的管理工具ipvsadm进行管理,ipvs的管理工具ipvsadm管理ipvs。
五、LVS技术点小结:
1)真正实现负载均衡的工具是ipvs,工作在linux内核层面。
2)LVS自带的ipvs管理工具是ipvsadm。
3)keepalived实现管理ipvs及对负载均衡器的高可用。
4)Red hat工具Piranha WEB管理实现调度的工具ipvs。
六、LVS体系结构与工作原理:
1)LVS集群负载均衡接收服务的所有入站客户端计算机请求,并根据调度算法决定哪个集群节点应该处理回复请求。
负载均衡(LB)有时也被称为LVS Director(简称 Director).
2)LVS虚拟服务器的体系结构如下图,一组服务器通过高速的局域网或者地理分布
的广域网相互连接,在他们的前端有一个负载调度器(Load Balancer)。负载调度器能
无缝地将网络请求调度到真正的服务器上,从而使得服务器集群的结构对客户是透明的,
客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。客户程序
不受服务器集群的影响不需做任何修改。系统的伸缩性通过在服务集群中透明地加入和删除
一个节点来达到,通过检测节点或服务进程故障和正确的重置系统达到高可用性。由于我们的负载调度技术在
linux内核中实现的,我们称之为linux虚拟服务器(Linux Virtual Server)。
七、LVS社区提供了一个命名的约定:
名称: 缩写
虚拟IP地址(Virtual IP Address) VIP
说明:VIP为Director用于向客户端计算机提供服务的ip地址,
比如: 域名就解析到vip上提供服务。
-------------------------------------------------------------------------------
真实ip地址(Real Server ip Address) 缩写:VIP
说明:在集群下面节点上使用的ip地址,物理ip地址。
-----------------------------------------------------------------------------------
Director的ip地址(Director ip Adress) 缩写:DIP
说明:Director用于连接内外网络的ip地址,物理网卡上的IP地址,
是负载均衡上的ip。
-------------------------------------------------------------------------------------
客户端主机IP地址(Client IP Address) 缩写:CIP
说明:客户端用户计算机请求集群服务器的IP地址,该地址用作发送
给集群的请求的源ip地址。
----------------------------------------------------------------
LVS集群内部的节点称为真实服务器(Real server),也叫做集群节点。请求集群服务的
计算机称为客户端计算机。
与计算机通常在网上交换数据包的方式相同,客户端计算机、Director
和真实服务器使用IP地址彼此进行通信。
------------------------------------------------------------------------------------------
八、LVS集群的3种工作模式介绍与原理讲解
1)IP虚拟服务软件ipvs,在调度器的实现技术中,IP负载均衡技术是
效率最高的。在已用的ip负载均衡技术中有通过网络地址转换
(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,
我们称之为VS、NAT技术(Virtual Server Network Adress Translation)。
2)在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出通过IP隧道实现虚拟服务器的
方法VS/TUN(Virtual Server via IP Tunneling)和通过直接路由实现虚拟服务
器的方法VS/DR(Virtual Server via Director Routing),它们可以极大地提高系统的伸缩性。
3)淘宝开源的模式FULLNAT。
LVS的四种工作模式:
缩写及全拼:
NAT(Network Adress Translation)、TUN(Tunneling)、
DR(Director Routing)、FULLNAT(FULL Network address Translation)
-------------------------------------------------------------------------------------------
九、什么是ARP协议:
1) ARP协议:全称"Address Resolution Protocol",中文名地址解析协议,使用ARP协议可
实现通过IP地址获得得对应主机的物理地址(MAC地址)。
在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的ip地址,
这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在
物理网路上传输,还必须要知道对方目的主机的物理地址(MAC)才行。这样就存在把IP地址变成
物理地址的地址转换的问题。
在以太网环境,为了正确地目的主机传送报文,必须把目的主机的32位IP
地址转换成为目的主机48位以太网的地址(MAC地址)。这就需要在互联层有一个服务或功能将
IP地址转换为相应的物理地址(MAC地址),这个服务或者功能就是ARP协议。
所谓的“地址解析”,就是主机在发送帧之前将目标IP地址转换成目标MAC地址的过程,
ARP协议的基本功能就是通过目标设备的ip地址,查询目标设备的MAC地址,以保证主机
间互相通信的顺利进行。
ARP协议和DNS有点相像之处,不同点是:DNS是在域名和IP之间的解析,另外,ARP协议不需要
配置服务,而DNS要配置服务才行。
ARP协议要求通信的主机双方必须在同一个物理网段(即局域网)!
2)关于ARP的小结:
1.ARP全称“Address Resolution Protocol”;
2.实现局域网内通过IP地址获取主机的MAC地址;
3.MAC地址48位主机的物理地址,局域网内唯一;
4.ARP协议类似DNS服务,但不需要配置服务。
5.ARP协议是三层协议。
--------------------------------------------------------------------------------------------------------
十、ARP缓存表:
1)每台安装有TCP/IP协议的电脑都会有一个ARP缓存表(windows 命令提示符里输入arp -a即可)。
表里的ip地址与MAC地址是一一对应的。
arp常用命令:
arp -a :查所有记录
arp -d :清除
arp -s :绑定IP和MAC
2)ARP缓存表是把双刃剑:
1.主机有了arp缓存表,可以加快ARP的解析速度,减少局域网内广播风暴。
2.正是有了arp缓存表,给恶意黑客带来了攻击服务器主机的风险,这个就是arp欺骗攻击。
3.切换路由器,负载均衡器等设备时,可能会导致短时网络中断。
3)为啥用ARP协议?
OSI模型把网络工作分为七层,彼此不直接通信打交道,只通过接口。IP地址工作在第三层,
MAC地址工作在第二层。当协议在发送数据包时,需要先封装第三层IP地址,第二层MAC地址的报头,
但是协议只知道目的节点的ip地址,不知道目的节点的MAC地址,又不能跨第二、三层,所以得用ARP协议服务,
来帮助获取目的节点的MAC地址。
4)ARP在生产环境产生的问题及解决办法:
1.ARP病毒,ARP欺骗
2.高可用服务器对之间切换时要考虑ARP缓存的问题。
3.路由器等设备无缝迁移时需要考虑ARP缓存的问题,例如:更换办公室的路由器。
5)ARP欺骗原理:
ARP攻击就是通过伪造IP地址和MAC地址对实现ARP欺骗的,如果一台主机中了ARP病毒,
那么它就能在网络中产生大量的ARP通信量,很快的进行广播以至于使网络阻塞,攻击者
只要持续不断的发出伪造的ARP响应就能更改局域网中目标主机ARP缓存中的IP-MAC条目,
造成网络中断或者中间人攻击。
相比于nginx只能用于7层负载均衡,LVS就比较强大了,能在4层做负载均衡。而且性能和稳定性上LVS也比较占优,毕竟是合入内核模块,不稳定肯定不行。
LVS通过工作于内核的ipvs模块来实现功能,其主要工作于netfilter的INPUT链上。除此之外,还需要一个用户态工具,ipvdadm,用于用户负载集群定义和集群服务管理。
LVS DR模式的流程大概如下:
1、客户端发送请求至VIP,也就是访问服务,请求报文源地址是CIP,目标地址为VIP;
2、LVS调度器接收到请求,报文在PREROUTING链检查,确定目的IP是本机,于是将报文发送至INPUT链,ipvs内核模块确定请求的服务是我们配置的LVS集群服务,然后根据用户设定的均衡策略选择某台后端RS,并将目标MAC地址修改RIP的MAC地址。因为调度器和后端服务器RS在同个网段,因此直接二层互通,将请求发给选择的RS处理;
3、因为报文目的mac是本机,且RS上有配置VIP,因此RS能接收该报文。后端服务处理完请求后,将响应直接发往客户端,此时源IP地址为VIP,目标IP为CIP。
如下,准备三台服务器,
机器 作用
192.168.0.100 VIP,LVS调度器对外服务IP
192.168.0.200 RIP,后端web服务器之一
192.168.0.300 RIP,后端web服务器之二
上面我们说过lvs依赖于ipvs内核模块,和ipvsadm用户态工具。因为centos 7已经默认加载ipvs模块,因此这一步我们不需要配置。我们只需要安装ipvsadm工具即可,
yum install -y ipvsadm
然后在LVS调度器上配置VIP,这里我们采用虚拟网卡,当然也可以使用独立网卡配置,
ifconfig eth0:0 192.168.0.100/24 up
接着配置LVS集群服务,
[root@CentOS-7-2 ~]# ipvsadm -C
[root@CentOS-7-2 ~]# ipvsadm -A -t 192.168.0.100:80 -s rr
[root@CentOS-7-2 ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.200:80 -g
[root@CentOS-7-2 ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.300:80 -g
其中,
第一条命令是清空所有规则;
第二条命令是定义LVS服务,并指定负责均衡策略为rr,即轮询;
第三、四条命令各添加一台后端web服务器,作为负载均衡节点,并指定为DR模式。
ipvsadm基本命令参数如下:
-A 指定添加的LVS负载均衡虚拟服务
-t 指定虚拟服务器的IP地址和端口
-s 指定调度算法,ss为轮询,wrr为加权轮询,dh为目标地址散列,sh为源地址散列,lc为最少链接等
-a 在对应的VIP下添加RS节点
-g 指定LVS的工作模式为DR模式
-l 指定LVS的工作模式为tunnel模式
-m 指定LVS的工作模式为NAT模式
添加完后端RS,我们可以查看此LVS对应的均衡规则,
[root@CentOS-7-2 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
- RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.100:80 rr
- 192.168.0.200:80 Route 1 0 0
- 192.168.0.300:80 Route 1 0 0
这里web服务器使用nginx搭建,因此在两台RS上安装nginx,
yum install -y nginx
同时为了后面测试,我们修改web服务器的index.html内容,
[root@192_168_0_200 ~]# cat /usr/share/nginx/html/index.html
This is 192.168.0.200
[root@192_168_0_300 ~]# cat /usr/share/nginx/html/index.html
This is 192.168.0.300
接着开始进行LVS相关配置,
首先将VIP配置在lo接口上,(注意掩码要配置成32位,不然RS通信会出问题)
ifconfig lo:0 192.168.0.100/32 up
接着配置对应路由,
route add -host 192.168.0.100 dev lo
然后设置相关系统参数,
echo 1 /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 /proc/sys/net/ipv4/conf/all/arp_announce
其实严格意义上只要配置出口网卡的对应参数就可以了,配置all也只是为了保险而已,文章最后面会有说明。
使用curl命令对vip进行访问,
[root@CentOS-7-3 /home]# curl
This is 192.168.0.200
[root@CentOS-7-3 /home]# curl
This is 192.168.0.300
[root@CentOS-7-3 /home]# curl
This is 192.168.0.200
[root@CentOS-7-3 /home]# curl
This is 192.168.0.300
可见结果符合我们设置的轮询策略。
因为当调度器把请求转发给对应RS时,并没有修改报文目的IP,因此请求报文目的IP仍为VIP,所以如果RS没有配置VIP,那么报文到达RS后就会被丢弃。
arp_ignore=1:只响应目的IP地址为接收网卡上的本地地址的arp请求
因为我们在RS上都配置了VIP,因此此时是存在IP冲突的,当外部客户端向VIP发起请求时,会先发送arp请求,此时调度器和RS都会响应这个请求。如果某个RS响应了这个请求,则之后该客户端的请求就都发往该RS,并没有经过LVS,因此也就没有真正的负载均衡,LVS也就没有存在的意义。因此我们需要设置RS不响应对VIP的arp请求,这样外部客户端的所有对VIP的arp请求才会都解析到调度器上,然后经由LVS的调度器发往各个RS。
系统默认arp_ignore=0,表示响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。也就是说,如果机器上有两个网卡设备A和B,即使在A网卡上收到对B IP的arp请求,也会回应。而arp_ignore设置成1,则不会对B IP的arp请求进行回应。由于lo肯定不会对外通信,所以如果只有一个对外网口,其实只要设置这个对外网口即可,不过为了保险,很多时候都对all也进行设置。
arp_announce=2:网卡在发送arp请求时使用出口网卡IP作为源IP
当RS处理完请求,想要将响应发回给客户端,此时想要获取目的IP对应的目的MAC地址,那么就要发送arp请求。arp请求的目的IP就是想要获取MAC地址的IP,那arp请求的源IP呢?自然而然想到的是响应报文的源IP地址,但也不是一定是这样,arp请求的源IP是可以选择的,而arp_announce的作用正是控制这个地址如何选择。系统默认arp_announce=0,也就是源ip可以随意选择。这就会导致一个问题,如果发送arp请求时使用的是其他网口的IP,达到网络后,其他机器接收到这个请求就会更新这个IP的mac地址,而实际上并不该更新,因此为了避免arp表的混乱,我们需要将arp请求的源ip限制为出口网卡ip,因此需要设置arp_announce=2。
由上可知,只要RS上的VIP不响应arp请求就可以了,因此不一定要配置在lo上,也可以配置在其他网口。由于lo设备不会直接接收外部请求,因此只要设置机器上的出口网卡不响应非本网卡上的arp请求接口。但是如果VIP配置在其他网口上,除了上面的配置,还需要配置该网口不响应任何arp请求,也就是arp_ignore要设置为8。
这是由于lo设备的特殊性导致, 如果lo绑定192.168.0.200/24,则该设备会响应该网段所有IP(192.168.0.1~192.168.0.254) 的请求,而不是只响应192.168.0.200这一个地址。
根据DR模式的原理,调度器只修改请求报文的目的mac,也就是转发是在二层进行,因此调度器和RS需要在同一个网段,从而ip_forward也不需要开启。
ipvsadm核心功能:
集群服务管理:增、删、改
集群服务的RS管理:增、删、改
查看
ipvsadm工具的使用:
ipvsadm安装
命令帮助
管理集群服务:增、改、删
增、修改:
删除:
管理集群上的RS:增、改、删
增、改:
删:
选项:
lvs类型:
-w weight:权重
创建一个LVS集群
查看集群
向集群添加Real Server
删除RS
删除集群
修改集群
保存规则
清空集群中的规则
加载保存的ipvsadm规则
将规则保存到能开启服务自动加载的文件里 /etc/sysconfig/ipvsadm
/etc/sysconfig/ipvsadm默认是不存在的, 因此无法直接启动服务, 因为ipvsadm的service文件, 启动时会读取该文件内容
因此, 需要手动创建该文件, 并且, 即使该文件内容为空, 也无所谓, 只不过是启动服务后是没有任何规则的
将先前保存到/data/ipvsadm.rule文件中的规则导入内存中
停止ipvsadm服务, 测试加载的规则会被自动保存到/etc/sysconfig/ipvsadm.service文件中
停止服务后, 内存中的规则也会被清空
注意:
再次启动ipvsadm, 验证ipvsadm会从/etc/sysconfig/ipvsadm文件中读取规则
验证服务开机自动启动会加载规则
补充:
加载到内存的ipvsadm的规则会存在 /proc/net/ip_vs 文件里, 以16进制数字显示
清空定义的所有内容
清空计数器
查看
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流