nat模型

  

在 rs1 和 rs2  安装httpd  并配置测试页,启动

[root@rs1 ~]# yum install httpd -y
[root@rs1 ~]# echo "this is rs1" > /var/www/html/index.html
[root@rs1 ~]# systemctl restart httpd

[root@rs2 ~]# yum install httpd -y
[root@rs2 ~]# echo "this is rs2" > /var/www/html/index.html
[root@rs2 ~]# systemctl restart httpd

将rs1 和 rs2 的网关指向 lvs 的DIP

[root@rs1 ~]# route add default gw 192.168.37.22
[root@rs2 ~]# route add default gw 192.168.37.22

在LVS服务器上开启核心转发功能

[root@lam ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1 [root@lam ~]# sysctl -p
net.ipv4.ip_forward = 1 #:使配置生效

在LVS服务器上安装ipvsadm

[root@lam ~]# yum install ipvsadm -y

在LVS服务器上配置规则

[root@lam ~]# ipvsadm -A -t 172.16.14.100:80 -s rr
[root@lam ~]# ipvsadm -a -t 172.16.14.100:80 -r 192.168.37.23:80 -m
[root@lam ~]# ipvsadm -a -t 172.16.14.100:80 -r 192.168.37.24:80 -m

在客户端测试

[root@master-mariadb ~]# curl 172.16.14.100
this is rs2
[root@master-mariadb ~]# curl 172.16.14.100
this is rs1
[root@master-mariadb ~]# curl 172.16.14.100
this is rs2
[root@master-mariadb ~]# curl 172.16.14.100
this is rs1
[root@master-mariadb ~]# curl 172.16.14.100

DR模型(rip和VIP在同一网段)

在rs1和rs2上安装httpd服务并启动

[root@rs1 ~]# yum install httpd -y
[root@rs1 ~]# echo "this is 24" > /var/www/html/index.html
[root@rs1 ~]# systemctl start httpd [root@rs2 ~]# yum install httpd -y
[root@rs2 ~]# echo "this is 24" > /var/www/html/index.html
[root@rs2 ~]# systemctl start httpd

在lvs 服务器安装lvsadm服务

[root@lvs ~]# yum install ipvsadm -y

配置router服务器

[root@router ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #:打开核心转发 修改网卡 一个桥接,一个内网

配置客户端使其网关指向r1

[root@client ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="15caec5a-6740-4a81-8c72-5fbcb6fb9d25"
BOOTPROTO=static
IPADDR=172.16.14.11
NETMASK=255.255.0.0
GATEWAY=172.16.14.22
TYPE=Ethernet

配置lvs服务器使其网关指向r2,并添加一个DIP

[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=static
IPADDR=192.168.37.23
NETMASK=255.255.255.0
GATEWAY=192.168.37.22
[root@lvs ~]# ip a a 192.168.37.100/24 dev eth0:0

配置rs1和rs2的网关和接口并修改参数

[root@rs1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=static
IPADDR=192.168.37.24
NETMASK=255.255.255.0
GATEWAY=192.168.37.22 [root@rs1 ~]# ifconfig lo:1 192.168.37.100 netmask 255.255.255.255
[root@rs1 ~]# route add -host 192.168.37.100 dev lo:1
[root@rs1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
[root@rs1 ~]# sysctl -p
[root@rs2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=static
IPADDR=192.168.37.25
NETMASK=255.255.255.0
GATEWAY=192.168.37.22
[root@rs2 ~]# ifconfig lo:1 192.168.37.100 netmask 255.255.255.255
[root@rs2 ~]# route add -host 192.168.37.100 dev lo:1
[root@rs2 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
[root@rs2 ~]# sysctl -p

在ipvs服务器配置规则

[root@lvs ~]# ipvsadm -A -t 192.168.37.100:80 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.37.100:80 -r 192.168.37.24 -g
[root@lvs ~]# ipvsadm -a -t 192.168.37.100:80 -r 192.168.37.25 -g

测试

[root@client ~]# curl 192.168.37.100
this is 25
[root@client ~]# curl 192.168.37.100
this is 24
[root@client ~]# curl 192.168.37.100
this is 25
[root@client ~]# curl 192.168.37.100

在各rs上修改参数也可用脚本完成

[root@rs1 ~]# vim lvs_dr_rs.sh
#!/bin/bash
#Author:wangxiaochun
#Date:2017-08-13
vip=10.0.0.100
mask='255.255.255.255'
dev=lo:1
rpm -q httpd &> /dev/null || yum -y install httpd &>/dev/null
service httpd start &> /dev/null && echo "The httpd Server is Ready!"
echo "<h1>`hostname`</h1>" > /var/www/html/index.html case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig $dev $vip netmask $mask #broadcast $vip up
#route add -host $vip dev $dev
echo "The RS Server is Ready!"
;;
stop)
ifconfig $dev down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "The RS Server is Canceled!"
;;
*)
echo "Usage: $(basename $0) start|stop"

dr模型(vip与rip不在同一网段)

现在rs1和rs2上面安装httpd并准备测试页

[root@rs1 ~]# yum install httpd -y
[root@rs1 ~]# echo "this is r1" > /var/www/html/index.html
[root@rs1 ~]# systemctl start httpd [root@rs2 ~]# yum install httpd -y
[root@rs2 ~]# echo "this is r2" > /var/www/html/index.html
[root@rs2 ~]# systemctl start httpd

在lvs上安装ipvsadm

[root@lvs ~]# yum install ipvsadm -y

配置router服务器(在router上添加一块外网网卡,并添加两个内网地址)开启路由转发

[root@router network-scripts]# cp ifcfg-ens33 ifcfg-eth1
[root@router network-scripts]# vim ifcfg-eth1
NAME="eth1"
DEVICE="eth1"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=static
IPADDR=172.16.14.100
NETMASK=255.255.0.0
TYPE=Ethernet [root@router network-scripts]# systemctl restart network
[root@router network-scripts]# ip a a 10.0.0.10/8 dev eth0:1 #:这个是临时加的,如果想永久有效,写在配置文件中 [root@router ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@router ~]# sysctl -p

配置client服务器网关指向路由

[root@client ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=static
IPADDR=172.16.14.200
NETMASK=255.255.0.0
GATEWAY=172.16.14.100
TYPE=Ethernet

配置rs1和rs2的网关指向路由器

[root@rs1 ~]# vinet
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="95b18552-6cc5-48c5-b29a-91ed73675c50"
BOOTPROTO=static
IPADDR=192.168.37.24
NETMASK=255.255.255.0
GATEWAY=192.168.37.22
[root@rs1 ~]# systemctl restart network [root@rs2 ~]# vinet
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="cdd70dbc-1363-45da-9c7a-0ae369f9aac3"
BOOTPROTO=static
IPADDR=192.168.37.25
NETMASK=255.255.255.0
GATEWAY=192.168.37.22
[root@rs2 ~]# systemctl restart network

配置lvs服务器的网关指向路由并添加一个vip

[root@lvs ~]# vinet
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="15caec5a-6740-4a81-8c72-5fbcb6fb9d25"
BOOTPROTO=static
IPADDR=192.168.37.23
NETMASK=255.255.255.0
GATEWAY=192.168.37.22
IPADDR1=10.0.0.100 #vip的地址
NETMASK=255.0.0.0
TYPE=Ethernet

在rs1和rs2上分别添加vip 并关闭arp通告

[root@rs1 ~]# ifconfig lo:1 10.0.0.100 netmask 255.255.255.255
[root@rs1 ~]# route add -host 10.0.0.100 dev lo:1
[root@rs1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
[root@rs1 ~]# sysctl -p [root@rs2 ~]# ifconfig lo:1 10.0.0.100 netmask 255.255.255.255
[root@rs2 ~]# route add -host 10.0.0.100 dev lo:1
[root@rs2 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
[root@rs2 ~]# sysctl -p

在lvs服务器配置规则

[root@lvs ~]# ipvsadm -A -t 10.0.0.100:80 -s rr
[root@lvs ~]# ipvsadm -a -t 10.0.0.100:80 -r 192.168.37.24 -g
[root@lvs ~]# ipvsadm -a -t 10.0.0.100:80 -r 192.168.37.25 -g

在client服务器测试

[root@client ~]# curl 10.0.0.100
this is r2
[root@client ~]# curl 10.0.0.100
this is r1
[root@client ~]# curl 10.0.0.100
this is r2
 
 

LVS nat模型+dr模型的更多相关文章

  1. LVS跨网段DR模型

    客户端IP地址:172.16.8.147 路由器服务器IP地址:172.16.8.167内网IP地址:192.168.1.3 一.将客户端的网关修改为路由服务器IP地址 vim ifcfg-ens33 ...

  2. 4、lvs nat和dr类型演示

    实战操作 LVS-NAT  (应用场景:VIP是公网地址,DIP和RIP一般使用私网地址,NAT的主要目的是为了隐藏服务器) 核心要点: 1.DIP与各real server的RIP必须在同一个网段中 ...

  3. 初探LVS NAT与DR

    1. LB.LVS介绍LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群 LVS是一个实现负载均衡集群的开源软件项目 LVS架构从逻辑上可分为调度层(Director).ser ...

  4. LVS的DR模型配置

    LVS的DR模型配置 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 IP地址 角色 Srv ...

  5. LVS的工作模式介绍和NAT模式&DR模式实验步骤

    一:LVS介绍 二.LVS的NAT和DR模式的实验及配置步骤 一.LVS的简单介绍 linux virtual server 简单来讲lvs是一段内核代码 类似于netfilter本身是一框架但不提供 ...

  6. Linux学习-LVS跨网段DR模型和FWM多服务绑定

    一.实验环境 系统:CentOS7.6 主机:5台 (虚拟机) 客户端1台:172.16.236.134/24 (NAT网卡),网关指向 172.16.236.185/24(路由服务器) 路由服务器1 ...

  7. LVS简单实现NAT&DR模型

    LVS:Linux Virtual Server  一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org. 现在LVS已经是Linux标准内核的一部分 ...

  8. LVS之NAT模型、DR模型配置和持久连接

    前言:继LVS概述,本篇实现NAT模型和DR模型下的负载均衡. NAT模型: LVS-NAT基于cisco的LocalDirector.VS/NAT不需要在RealServer上做任何设置,其只要能提 ...

  9. LVS DR模型

    1,环境 VMWare10, CentOS6.3 2,LVS DR网络规划 所有机器都只需要一张网卡,给Director的eth0网卡起个别名eth0:1即VIP的值:给RealServer的lo网卡 ...

随机推荐

  1. js实现一个小游戏(飞翔的jj)

    js实现一个小游戏(飞翔的jj) 源代码+素材图片在我的仓库 <!DOCTYPE html> <html lang="en"> <head> & ...

  2. IntelliJ IDEA 的 Bean validation 里有什么用

    IntelliJ IDEA  的 Bean validation 是指右侧的框. 平时都是缩起来的,今天心血来潮.研究下这个是干嘛的?怎么用. 三个按钮全按下的话,下面的项目就会有三个菜单可选项. C ...

  3. 在linux 环境下 安装php

    最近打算学写一个php 脚本~ 到了虚拟机环境上发现~没有环境. 只有老老实实去装一个php环境咯. 第一步 去官网下一个包 记得一定要下载tgz格式的 第二步~当然是传上虚拟机上咯~任意目录都可以. ...

  4. go微服务框架Kratos笔记(七)使用jwt认证中间件

    引言 Json web token (JWT) 是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,特别适用于分布式站点的单点登录(SSO)场景.JWT的声明一般被用来在身份提供者和 ...

  5. JSON实现序列化dump和dumps方法,JSON实现反序列化loads和load方法

    通过文件操作,我们可以将字符串写入到一个本地文件.但是,如果是一个对象(例如列表.字典.元组等),就无 法直接写入到一个文件里,需要对这个对象进行序列化,然后才能写入到文件里. 设计一套协议,按照某种 ...

  6. [gym102978D]Do Use FFT

    前置知识 (以下内容并不严谨,可以参考论文<转置原理的简单介绍>) 对于一个算法,其为线性算法当且仅当仅包含以下操作: 1.$read\ i$,将$r_{i}$的值赋为(下一个)读入的元素 ...

  7. [cf1219G]Harvester

    分类讨论(以下仅考虑行,列的情况):1.4行的,求出每一行的和后找到4个最大值即可:2.3行1列,枚举列,再将每一行最大值减去那一列的值后取3个最大值得和即可:3.2行2列,发现行和列是等价的,因此可 ...

  8. [loj3175]排列鞋子

    贪心与最近的鞋子匹配(大小相同且方向相反),记$a_{x}$表示第x双鞋子的左位置,$b_{x}$表示右位置 若$a_{x}>b_{x}$,那么可以交换这两双鞋子并令答案+1,所以不妨设$a_{ ...

  9. HouseRobber

    // // Created by Administrator on 2021/7/27. // #ifndef C__TEST01_HOUSEROBBER_HPP #define C__TEST01_ ...

  10. [TJOI2007] 可爱的质数

    题意 求最小的\(x\)满足\(a^x \equiv b\mod p\) 想法 这个是标准的板子题,\(BSGS\)算法可以用来解决\(a^x \equiv b\mod p\) 和 \(x^a \eq ...