8.13-LVS的nat模式+DR模式

LVS

一、nat模式

1.角色

主机名ip地址功能
web01192.168.2.101rs
web02192.168.2.102realservee
nat内网:192.168.2.103 外网:192.168.2.120directorserver,ntp
dns192.168.2.105dns

2..web服务器

[root@web01 ~]# yum -y install nginx
​
[root@web01 ~]# echo "web===01" > /usr/share/nginx/html/index.html
[root@web01 ~]# nginx

[root@web02 ~]# yum -y install nginx
​
[root@web02 ~]# echo "web===02" > /usr/share/nginx/html/index.html
[root@web02 ~]# nginx

2.nat

配置两个网卡和两个ip地址,一个对内ip,一个对外ip

内网:192.168.2.103

外网:192.168.2.120

3.dns:192.168.2.105

[root@localhost ~]# yum -y install bind
​
[root@localhost ~]# vim /etc/named.conf
​
options {listen-on port 53 { 127.0.0.1;any; };listen-on-v6 port 53 { ::1; };directory       "/var/named";dump-file       "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";recursing-file  "/var/named/data/named.recursing";secroots-file   "/var/named/data/named.secroots";allow-query     { localhost;any;};
​
​
​
[root@localhost ~]# vim /etc/named.rfc1912.zones 
​
zone "haha" IN {type master;file "haha.zone";allow-update { none; };
};
​
​
​
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# ll
总用量 16
drwxrwx---. 2 named named    6 6月  11 22:40 data
drwxrwx---. 2 named named    6 6月  11 22:40 dynamic
-rw-r-----. 1 root  named 2253 4月   5 2018 named.ca
-rw-r-----. 1 root  named  152 12月 15 2009 named.empty
-rw-r-----. 1 root  named  152 6月  21 2007 named.localhost
-rw-r-----. 1 root  named  168 12月 15 2009 named.loopback
drwxrwx---. 2 named named    6 6月  11 22:40 slaves
[root@localhost named]# cp -p named.localhost haha.zone
​
[root@localhost named]# vim haha.zone
​
$TTL 1D
@       IN SOA  @ rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      @A       127.0.0.1AAAA    ::1
nat     A       192.168.2.103
ds      A       192.168.2.120
web01   A       192.168.2.101
web02   A       192.168.2.102
​
检查文件
​
[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]# named-checkconf /etc/named.rfc1912.zones 
[root@localhost named]# named-checkzone haha.zone haha.zone
zone haha.zone/IN: loaded serial 0
OK
[root@localhost named]# systemctl start named
[root@localhost named]# systemctl enable named

4.客户端

将配置DNS服务的IP重定向到/etc/resolv中
​
[root@client ~]# echo "nameserver 192.168.2.105" > /etc/resolv
​
[root@client ~]# ping nat.haha
PING nat.haha (192.168.2.103) 56(84) bytes of data.
64 bytes from 192.168.2.103 (192.168.2.103): icmp_seq=1 ttl=64 time=0.216 ms
64 bytes from 192.168.2.103 (192.168.2.103): icmp_seq=2 ttl=64 time=0.624 ms
^C
--- nat.haha ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.216/0.420/0.624/0.204 ms
[root@client ~]# ping ds.haha
PING ds.haha (192.168.2.120) 56(84) bytes of data.
64 bytes from 192.168.2.120 (192.168.2.120): icmp_seq=1 ttl=64 time=0.445 ms
64 bytes from 192.168.2.120 (192.168.2.120): icmp_seq=2 ttl=64 time=0.408 ms
^C
--- ds.haha ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.408/0.426/0.445/0.027 ms

5.nat:设置时间同步服务器

[root@nat ~]# yum -y install ntpdate.x86_64 
​
[root@nat ~]# crontab -e
​
* 2 * * * /usr/sbin/ntpdate cn.ntp.org.cn
​
[root@nat ~]# systemctl start ntpdate.service 
[root@nat ~]# systemctl enable ntpdate.service 

6.dns:设置时间同步

[root@dns ~]# crontab -e
​
30 3 * * * /usr/sbin/ntpdate 192.168.2.103(时间服务器的地址)

7.web01

[root@web01 ~]# crontab -e
​
30 3 * * * /usr/sbin/ntpdate 192.168.2.103(时间服务器的地址)

8.web02

[root@web02 ~]# crontab -e
​
30 3 * * * /usr/sbin/ntpdate 192.168.2.103(时间服务器的地址)

9.nat

[root@nat ~]# yum -y install ipvsadm.x86_64 
​
# 添加规则
[root@nat ~]# #如果配置好规则,重启之后也就没有了
[root@nat ~]# ipvsadm -A -t 192.168.2.120:80 -s rr
[root@nat ~]# 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.2.120:80 rr
# 为realserver添加规则
[root@nat ~]# ipvsadm -a -t 192.168.2.120:80 -r 192.168.2.101 -m
[root@nat ~]# ipvsadm -a -t 192.168.2.120:80 -r 192.168.2.102 -m
[root@nat ~]# 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.2.120:80 rr-> 192.168.2.101:80             Masq    1      0          0         -> 192.168.2.102:80             Masq    1      0          0         

浏览器:192.2168.120(外网地址)

ip转发

# ip转发
[root@nat ~]# vim /etc/sysctl.conf
# 添加内容
net.ipv4.ip_forward=1
​
[root@nat ~]# sysctl -p
net.ipv4.ip_forward = 1

10.web01

临时修改网关
​
[root@web01 ~]# route del default
[root@web01 ~]# route add default gw 192.168.2.103(nat的内网地址(dip))
# 这也要求了真实主机(rs.ip)和dip要在同一个网关,因为dip是要作为网关存在的

11.web02

[root@web02 ~]# route del default
[root@web02 ~]# route add default gw 192.168.2.103(nat的内网地址(dip))

12.脚本

# ds脚本
#!/bin/bash#配置网卡
echo TYPE="Ethernet" >> /etc/sysconfig/network
scripts/ifcfg-ens36echo BOOTPROTO="none" >> /etc/sysconfig/network
scripts/ifcfg-ens36read -p "router name:" router_nameecho NAME='"$rount_name"' >> /etc/sysconfig/network
scripts/ifcfg-ens36uuidkey=$( uuidgen )
echo UUID='"$uuidkey"' >> /etc/sysconfig/network
scripts/ifcfg-ens36 >> /etc/sysconfig/network
scripts/ifcfg-ens36echo DEVICE='"$rount_name"' >> /etc/sysconfig/network
scripts/ifcfg-ens36echo ONBOOT="yes" >> /etc/sysconfig/network-scripts/ifcfg
ens36echo IPADDR=192.168.10.100 >> /etc/sysconfig/network
scripts/ifcfg-ens36systemctl restart network#安装ipvsadmyum list installed|grep ipvsadmif[ $? -ne 0 ];thenyum -y install ipvsadmfi#配置规则
read -p "vip:" vipread -p "port:" portread -p "rule:" sipvsadm -A -t $vip:$port -s $s# ip forwardecho "net.ipv4.ip_forward=1" >/etc/sysctl.confsysctl -p

 # rs脚本
#!/bin/bashread -p "dip:" dip# 设置网关
route del defaultroute add defualt gw $dip

二、DR模式

1.性能更优,贿赂不在经过ds

2.ds和rs为了保证用户响应,都要求配置统一的vip

3.1由于rs是直接响应client,网关不能设置为ds的dip

4.对rs的vip进行抑制,让ds的vip接收请求,rs的vip不接受请求

1.在ds的ens33上挂一个vip 192.168.2.121

[root@ds ~]# ifconfig ens33:0 192.168.2.121 broadcast 192.168.2.121 netmask 255.255.255.255 up
[root@ds ~]# route add -host 192.168.2.121 dev ens33:0
​
# 192.168.2.106 dip
# 192.168.2.121 vip 在rs上的vip和这个vip相同

2.设置规范

# 安装ipvsadm
yum -y install ipvsadm
​
# 清空规则
ipvsadm -C
​
# 设置规则
ipvsadm -A -t 192.168.2.121:80 -s rr
​
ipvsadm -a -t 192.168.2.121:80 -r 192.168.2.101 -g
ipvsadm -a -t 192.168.2.121:80 -r 192.168.2.102 -g
​
#rs不再需要指定端口,dr不支持端口映射,vip上是80端口,最终就是80端口

3.web01:绑定vip

[root@web01 ~]# ##在lo上绑定一个vip 192.168.2.121
[root@web01 ~]# ifconfig lo:0 192.168.2.121 broadcast 192.168.2.121 netmask 255.255.255.255 up
[root@web01 ~]# #配置主机路由
[root@web01 ~]# route add -host 192.168.2.121 dev lo:0
# 抑制rs的vip接受请求
[root@web01 ~]# vim arp.sh
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@web01 ~]# source arp.sh
​
​
#生成脚本,对web02使用
[root@web01 ~]# vim arp.sh
ifconfig lo:0 192.168.2.121 broadcast 192.168.2.121 netmask 255.255.255.255 up
route add -host 192.168.2.121 dev lo:0
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
​
[root@web01 ~]# source arp.sh

4.web02:绑定vip

[root@web01 ~]# vim arp.sh
ifconfig lo:0 192.168.2.121 broadcast 192.168.2.121 netmask 255.255.255.255 up
route add -host 192.168.2.121 dev lo:0
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
​
[root@web01 ~]# source arp.sh

5.浏览器访问:192.168.2.121

6.在ds上查看数据

[root@ds ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes-> RemoteAddress:Port
TCP  192.168.2.121:80                    2       71        0    19680        0-> 192.168.2.101:80                    1        4        0      173        0-> 192.168.2.102:80                    1       67        0    19507        0
​

7.DR模式脚本

ds脚本

#!/bin/bash#在ens33上挂载一个ip地址
read -p "vip:" vipread -p "mac:" macread -p "num" numifconfig $mac:$num $vip broadcast $vip netmask 
255.255.255.255# 主机路由
route add -host $vip dev $mac:$num
#安装ipvsadmyum list installed|grep ipvsadmif [ $? -ne 0 ] ; thenyum -y install ipvsadmfi#配置规则(不需要设置ip_forword)
ipvsadm -Cread -p "rule:" ruleread -p "port:" portipvsadm -A -t $vip:$port -s $ruleread -p "rip1:" rip1ipvsadm -a -t $vip:$port -r $rip1 -gread -p "rip2:" rip2ipvsadm -a -t $vip:$port -r $rip2 -g

rs脚本

#!/bin/bash#在ens33上挂载一个ip地址
read -p "vip:" vipread -p "mac:" macread -p "num" numifconfig $mac:$num $vip broadcast $vip netmask 
255.255.255.255# 主机路由
route add -host $vip dev $mac:$numecho 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401317.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【14】二叉树的Morris等

目录 一.树形dp套路 二.派对的最大快乐值 三.Morris遍历 morris先序遍历 morris中序遍历 moris后序遍历 判断是不是搜索二叉树 四.额外习题 一.树形dp套路 情况1:最大距离,节点X不参与。 > 左树最大距离 or 右树最大距离 情况2:最…

html编写贪吃蛇页面小游戏(可以玩)

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>贪吃蛇小游戏</title><style>body {…

【软件逆向】第2课,软件逆向安全工程师之区分应用32位和64位,每天5分钟学习逆向吧!

目标学习使用StudyPE区分应用 在软件逆向中区分应用类型是关键性的一部分 &#xff0c;只有区分类型后才能选择对应工具进行后续处理。 1.打开StudyPE工具。 2.将我们需要逆向的软件&#xff0c;拖拽到StudyPE中&#xff0c;查看应用信息。 以上用一款视觉AI软件举例&#…

Java设计模式-原型模式-一次性理解透

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. 前言2. 原型模式的主要角色2.1 原型接口或抽象类2.2 具体原型类2.3 客户端2.4 克隆方法 3. 原型模式使用场景3.1 创建对象是昂贵的3.2 对象的变化3.3 动态配置3.…

【STM32】DMA数据转运(存储器到存储器)

本篇博客重点在于标准库函数的理解与使用&#xff0c;搭建一个框架便于快速开发 目录 DMA简介 DMA时钟使能 DMA初始化 转运起始和终止的地址 转运方向 数据宽度 传输次数 转运触发方式 转运模式 通道优先级 DMA初始化框架 选择开启DMA通道 更改转运次数 DMA应用…

【第二节】80x86汇编-寄存器和标志位

目录 前言 一、汇编相关概念 1.1 数据表示与类型 1.2 汇编语言的构成 1.3 存储器及指令、数据 1.4 存储单元 1.5 CPU对存储器的读写操作 1.6 CPU读写内存单元的过程 1.7 intel CPU发展 1.8 8086 内部结构 二、寄存器 2.1 寄存器概览 2.2 32位寄存器 2.3 16位寄存器…

三维建模软件:地理信息与遥感领域的智慧构建者

在地理信息与遥感技术的广阔舞台中&#xff0c;建模软件如同一位卓越的建筑师&#xff0c;以数据为砖瓦&#xff0c;智慧为水泥&#xff0c;构建出一个又一个又一个逼真、动态的虚拟世界。本文将深入探究其技术核心、应用实例、未来趋势&#xff0c;揭示建模软件如何在地理信息…

《爱情,到此为止》票房大卖 贾斯汀巴尔多尼与布莱克莱弗利的矛盾升级 是真的还是炒作

布蕾克莱弗利&#xff0c;贾斯汀巴尔多尼 布莱克莱弗利凭借电影《我们的末日》在周末取得了票房成功&#xff0c;首映票房收入达 5000 万美元。在电影院困难时期&#xff0c;这是一个了不起的成就&#xff0c;但没有人谈论这一胜利——粉丝们对她与导演兼联合主演贾斯汀巴尔多…

排序(基数,堆,归并)

基数排序 定义0-9十个桶&#xff0c;先排序个数&#xff0c;在排序十位&#xff0c;依次向下&#xff08;桶就是二维数组&#xff09; 按照个位先排一次 个位已经有序了&#xff0c;桶内遵循先进先出 没有十位放到0里 取出 百位 这样排序就完成了。放进取出几次&#xff0c;取…

Flink Checkpoint expired before completing解决方法

在Flink消费Kafka日志的时候出现了这样的一则报错&#xff0c; JobManager报错如下&#xff1a; 2024-03-07 15:21:12,500 [Checkpoint Timer] WARN org.apache.flink.runtime.checkpoint.CheckpointFailureManager [] - Failed to trigger or complete checkpoint 181 for …

Python酷库之旅-第三方库Pandas(082)

目录 一、用法精讲 341、pandas.Series.str.startswith方法 341-1、语法 341-2、参数 341-3、功能 341-4、返回值 341-5、说明 341-6、用法 341-6-1、数据准备 341-6-2、代码示例 341-6-3、结果输出 342、pandas.Series.str.strip方法 342-1、语法 342-2、参数 …

bug的常见排查和分析思路以及相关的原因分类

作为开发人员&#xff0c;经常会收到来自用户和QA&#xff0c;领导反馈的各种问题。 为了快速问题&#xff0c;我们有时需要站在更高的角度&#xff0c;更全面的看待问题。才能更快锁定问题。 具体的bug还需要结合企业实际业务情况&#xff0c;相关的框架&#xff0c;依赖库&…

PHP项目任务系统小程序源码

&#x1f680;解锁高效新境界&#xff01;我的项目任务系统大揭秘&#x1f50d; &#x1f31f; 段落一&#xff1a;引言 - 为什么需要项目任务系统&#xff1f; Hey小伙伴们&#xff01;你是否曾为了杂乱的待办事项焦头烂额&#xff1f;&#x1f92f; 或是项目截止日逼近&…

QT、C++简单界面设计

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {---------------------窗口设置----------------------this->setWindowTitle("南城贤子摄影工作室");//设置窗口标题this->setWindowIcon(QIcon("d:\\Pictures\\C…

PUMA论文阅读

PUMA: Efficient Continual Graph Learning with Graph Condensation PUMA&#xff1a;通过图压缩进行高效的连续图学习 ABSTRACT 在处理流图时&#xff0c;现有的图表示学习模型会遇到灾难性的遗忘问题&#xff0c;当使用新传入的图进行学习时&#xff0c;先前学习的这些模…

c语言中比较特殊的输入格式

目录 一.%[ ] 格式说明符 1.基本用法 (1)读取字母字符: (2)读取数字字符: (3)读取所有字符直到遇到空格: (4)读取直到换行符: 2.使用范围和组合: 3.^ 取反操作 4.注意事项 (1). 字符范围的正确表示 (2). 避免字符集中的特殊字符冲突 (3).避免空字符集 (4). 输入长…

构建高效外贸电商系统的技术探索与源码开发

在当今全球化的经济浪潮中&#xff0c;外贸电商作为连接国内外市场的桥梁&#xff0c;其重要性日益凸显。一个高效、稳定、功能全面的外贸电商系统&#xff0c;不仅能够助力企业突破地域限制&#xff0c;拓宽销售渠道&#xff0c;还能提升客户体验&#xff0c;增强品牌竞争力。…

Wireshark过滤规则

一、按IP地址过滤 1、查看源IP为 xx 的包 ip.srcIP地址 例如&#xff1a;ip.src172.18.10.56 2、查看目标IP为 xx 的包 ip.dstIP地址 例如&#xff1a;ip.dst172.16.76.251 3、查看源或目标IP为 xx 的包 ip.addrIP地址 例如&#xff1a;ip.addr172.18.10.56 二、按MAC地…

数学建模--浅谈多波束测线问题

目录 1.问题说明 2.问题分析 3.代码分析 1.问题说明 这个是国赛的真题&#xff0c;我们这个里面只是浅谈&#xff0c;就是对于这个里面运用的过程仿真的思路进行说明&#xff0c;这个探测的波束问题实际上也是一个简单的过程仿真问题&#xff0c;也是需要去进行作图的&#…

【中等】 猿人学web第一届 第5题 js混淆-乱码增强

文章目录 请求流程请求参数cookie信息 加密参数定位Hook CookieAST 还原混淆代码解密函数还原字符串还原数组引用还原浏览器内置对象 / 变量值引用还原逗号表达式还原 unicode, 16进制数值字符串相加AST 解混淆完整代码 加密参数还原cookie m字段m字段坑点 cookie RM4hZBv0dDon…