首页 > 系统相关 >linux LVS的DR模式实现

linux LVS的DR模式实现

时间:2022-10-27 10:46:48浏览次数:40  
标签:0.0 10.0 LVS DR linux root RS1 RS2 eth0

架构图:
image

环境:

一台:客户端 eth0:仅主机 192.168.10.6/24 GW:192.168.10.200

一台:ROUTER
eth0 :NAT  10.0.0.200/24
eth1: 仅主机 192.168.10.200/24
启用 IP_FORWARD

一台:LVS
eth0:NAT:DIP:10.0.0.8/24 GW:10.0.0.200

两台RS:
RS1:eth0:NAT:10.0.0.7/24   GW:10.0.0.200
RS2:eth0:NAT:10.0.0.17/24 GW:10.0.0.200

配置:
Router

[root@Router ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.200
PREFIX=24

[root@Router ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.10.200
PREFIX=24


#开启Router的ip_forward功能
[root@Router ~]# cat /etc/sysctl.d/99-sysctl.conf 
net.ipv4.ip_forward = 1

[root@Router ~]# sysctl -p
net.ipv4.ip_forward = 1

Client:

tom@Client:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0
#iface eth0 inet dhcp


auto eth0
iface eth0 inet static
address 192.168.10.6
netmask 255.255.255.0
gateway 192.168.10.200


tom@Client:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.200  0.0.0.0         UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

LVS:

[root@LVS ~]# cat  /etc/sysconfig/network-scripts/ifcfg-ens160 
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.8
PREFIX=24
GATEWAY=10.0.0.200
DNS1=180.76.76.76


[root@LVS ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.200      0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0

#在LVS上添加VIP
ifconfig lo:1 10.0.0.100/32

#实现LVS 规则
[root@LVS ~]#dnf -y install ipvsadm
[root@LVS ~]#ipvsadm -A -t 10.0.0.100:80 -s rr
[root@LVS ~]#ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.7:80 -g 
[root@LVS ~]#ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.17:80 -g

[root@LVS ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.100:80 rr
  -> 10.0.0.7:80                  Route   1      0          0         
  -> 10.0.0.17:80                 Route   1      0          0 

RS1:

[root@RS1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.7
PREFIX=24
GATEWAY=10.0.0.200

[root@RS1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.200      0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0

#设置RS1的VIP
[root@RS1 ~]# ifconfig lo:1 10.0.0.100/32

#RS1的IPVS配置
#关闭配置vip网卡的arp的两个内核参数 
#需要写入配置文件中才会重启生效
[root@RS1 ~]#echo 1 >  /proc/sys/net/ipv4/conf/all/arp_ignore
[root@RS1 ~]#echo 2 >  /proc/sys/net/ipv4/conf/all/arp_announce

[root@RS1 ~]#echo 1 >  /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@RS1 ~]#echo 2 >  /proc/sys/net/ipv4/conf/lo/arp_announce

#设置RS1的web服务
[root@RS1 ~]# yum -y install httpd
[root@RS1 ~]# systemctl enable --now httpd
[root@RS1 ~]# 10.0.0.17 rs1	 -I > /var/www/html/index.html
[root@RS1 ~]# curl 10.0.0.17
10.0.0.17 rs1

RS2:

[root@RS2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.17
PREFIX=24
GATEWAY=10.0.0.200

[root@RS2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.200      0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0

#设置RS2的VIP
[root@RS2 ~]# ifconfig lo:1 10.0.0.100/32

#RS2的IPVS配置
[root@RS2 ~]#echo 1 >  /proc/sys/net/ipv4/conf/all/arp_ignore #忽略请求
[root@RS2 ~]#echo 2 >  /proc/sys/net/ipv4/conf/all/arp_announce #对外宣传
[root@RS2 ~]#echo 1 >  /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@RS2 ~]#echo 2 >  /proc/sys/net/ipv4/conf/lo/arp_announce

#安装并启动web服务
[root@RS2 ~]# yum -y install httpd
[root@RS2 ~]# systemctl enable --now httpd
[root@RS2 ~]# 10.0.0.17 rs1	 -I > /var/www/html/index.html
[root@RS2 ~]# curl 10.0.0.7
10.0.0.7 rs2

测试:

tom@Client:~$ curl 10.0.0.100
10.0.0.7 rs1
tom@Client:~$ curl 10.0.0.100
10.0.0.7 rs1

说明:

DR模型中各主机上均需要配置VIP,解决地址冲突的方式有三种:

  • (1) 在前端网关做静态绑定

  • (2) 在各RS使用arptables

  • (3) 在各RS修改内核参数,来限制arp响应和通告的级别

限制响应级别:arp_ignore

  • 0:默认值,表示可使用本地任意接口上配置的任意地址进行响应

  • 1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应

限制通告级别:arp_announce

  • 0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告

  • 1:尽量避免将接口信息向非直接连接网络进行通告

  • 2:必须避免将接口信息向非本网络进行通告

注意:
lvs的DR模式,不支持端口映射功能,DR模式只修改数据链路层,不会修改网络链层以上。

标签:0.0,10.0,LVS,DR,linux,root,RS1,RS2,eth0
From: https://www.cnblogs.com/heyongshen/p/16831351.html

相关文章

  • linux 下安装anaconda
    anaconda是一款非常合适的科学计算的工具。它默认有以下安装:NumPy+SciPy的底层组合Pandas对结构化/非结构化数据的转换以及灵活的处理Statsmodels,Scikit-Learn、Ne......
  • Linux系统开机自启动jar包程序
    一、编写jenkins开机自启动脚本vim/etc/rc.d/init.d/jenkins.sh#!/bin/bashexportJAVA_HOME=/usr/lib/jvm/javaexportJRE_HOME=${JAVA_HOME}/jreexportCLAS......
  • 傻瓜式android studio升级方式
     使用ToolBox下载地址https://www.jetbrains.com/toolbox-app/ 参考:https://blog.csdn.net/qq_29752857/article/details/107052986 ......
  • Linux 搭建 rsync 后台服务
    步骤1:安装:yuminstallrsync-y步骤2:编辑/etc/rsyncd.conf  特别注意:1、这是安装后默认带的,如果你其他另建一个,默认先搜索到这个位置配置文件2、配置文件内,参数后......
  • 如何快速解决恶意进程导致CPU飙升问题 | Linux | 运维
    环境系统:Centos7因素xmrigdhpcdvTtHH1...方法下面以xmrig为例查看进程资源情况$top或$top-c可以看到名为xmrig进程,进程号为2266348,CPU飙升到99.7%......
  • linux下安装swoole
    php扩展源码安装的大致步骤1.下载源码解压在php环境的扩展文件夹下 如:php/73/include/php/ext/swoole2.回车执行php/73/bin/phpize生成configure配置检测3.在swoole......
  • AIR32F103(三) Linux环境基于标准外设库的项目模板
    目录AIR32F103(一)合宙AIR32F103CBT6开发板上手报告AIR32F103(二)Linux环境和LibOpenCM3项目模板AIR32F103(三)Linux环境基于标准外设库的项目模板Linux开发环境......
  • DRF进阶
    目录DRF框架请求与响应DRF之Requestrequest常用方法配置请求数据格式配置处理顺序局部配置全局配置DRf之ResponseReponse常用参数局部配置全局配置DRF框架请求与响应......
  • AIR32F103(二) Linux LibOpenCM3开发环境
    目录AIR32F103(一)合宙AIR32F103CBT6开发板上手报告AIR32F103(二)LinuxLibOpenCM3开发环境Linux开发环境在Linux下和STM32F1xx的开发环境是一样的,可以使用gcc......
  • 红帽推出业界最完整的Linux容器解决方案
    世界领先的开放原始码软件解决方案供应商红帽公司发布IT产业最完整的企业级Linux容器解决方案。红帽的容器产品组合可满足各种应用交付需求,免费的开发工具或整合管理功......