网络文件共享服务及企业级调度器LVS

一、实现基于MYSQL验证的vsftpd虚拟用户访问

在这里插入图片描述

环境准备:
客户端:欧拉 10.0.0.13
FTP 共享服务器:centos7 10.0.0.7
数据库服务器:centos8 10.0.0.8

1.数据库服务器配置

MySQL8.0由于取消了PASSWORD()函数不支持,因此选择Mariadb
yum -y install mariadb-server
systemctl enable --now mariadb.service
#在数据库服务上配置数据库支持vsftpd服务
mysql> CREATE DATABASE vsftpd;
mysql> USE vsftpd;
mysql> CREATE TABLE users  (id INT AUTO_INCREMENT NOT NULL  PRIMARY KEY,name CHAR(50) BINARY NOT NULL,password CHAR(48) BINARY NOT NULL);
#添加虚拟用户,为了安全应该使用PASSWORD函数加密其密码后存储
mysql> INSERT INTO users(name,password) values('ftp_long',password('123456'));
mysql> INSERT INTO users(name,password) values('ftp_aron',password('123456'));
#创建连接的数据库用户
mysql> GRANT SELECT ON vsftpd.* TO vsftpd@'10.0.0.%' IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES;

在这里插入图片描述

2.FTP服务器配置

#在FTP服务器上安装vsftpd 和 pam_mysql包
yum -y install vsftpd

2.1 在FTP服务器上安装 pam_mysql,对于 centos7 和 8:无对应rpm包,需手动编译安装。

centos7的pam-mysql 源码进行编译
yum -y install vsftpd gcc gcc-c++ make mariadb-devel pam-devel
wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz
tar xvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1/
./configure --with-pam-mods-dir=/lib64/security #pam模块路径必须指定
make && make install

2.2在FTP服务器上建立pam认证所需文件

#新建将vsftpdyuMySQL互联的pam模块配置文件
vim /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=vsftpd passwd=123456 host=10.0.0.8 
db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=123456 host=10.0.0.8 
db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

crypt 加密方式:
0表示不加密
1表示crypt(3)加密
2表示使用mysql password()函数加密
3表示md5加密
4表示sha1加密
配置字段说明
auth 表示认证
account 验证账号密码正常使用
required 表示认证要通过
pam_mysql.so模块是默认的相对路径,是相对/lib64/security/路径而言,也可以写绝对路径;后
面为给此模块传递的参数
user=vsftpd为登录mysql的用户
passwd=magedu 登录mysql的的密码
host=mysqlserver mysql服务器的主机名或ip地址
db=vsftpd 指定连接msyql的数据库名称
table=users 指定连接数据库中的表名
usercolumn=name 当做用户名的字段
passwdcolumn=password 当做用户名字段的密码
crypt=2 密码的加密方式为mysql password()函数加密

2.3建立相应用户和修改vsftpd配置文件

#建立虚拟用户映射的系统用户及对应的目录
useradd -s /sbin/nologin -d /data/ftproot -r vuser
mkdir -pv /data/ftproot/upload
setfacl -m u:vuser:rwx /data/ftproot/upload
vim /etc/vsftpd/vsftpd.conf
#添加下面两项
guest_enable=YES
guest_username=vuser
#修改下面一项,原系统用户无法登录
pam_service_name=vsftpd.mysql
启动vsftpd服务
systemctl enable --now vsftpd

2.4 在FTP服务器上配置虚拟用户具有不同的访问权限

配置vsftpd为虚拟用户使用配置文件目录

vim /etc/vsftpd/vsftpd.conf
#添加如下选项
user_config_dir=/etc/vsftpd/conf.d/

创建所需要目录,并为虚拟用户提供配置文件

mkdir /etc/vsftpd/conf.d/
#配置虚拟用户的访问权限
#虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。如要让用户wang具有上传文件的权
限,可修改/etc/vsftpd/vusers.d/wang文件,在里面添加如下选项并设置为YES即可,只读则设为NO
#注意:需确保对应的映射用户对于文件系统有写权限
[root@centos7 ~]#vim /etc/vsftpd/conf.d/ftp_long
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#登录目录改变至指定的目录
local_root=/data/ftproot2

3.客户端测试

在这里插入图片描述
在这里插入图片描述

二、配置samba共享,实现/www目录共享

2.1 环境准备

#Samba服务器,centos7
[root@samba-server ~]# hostname -I
10.0.0.7
[root@samba-server ~]# yum install -y samba
 #Samba客户端,centos7
[root@samba-client ~]# hostname -I
10.0.0.17
 [root@samba-client ~]# yum install -y samba-client

2.2 服务器配置

#配置smb用户
[root@samba-server ~]# groupadd -r smbadmins
[root@samba-server ~]# useradd -s /sbin/nologin -G smbadmins long
[root@samba-server ~]# smbpasswd -a long
\New SMB password:
Retype new SMB password:
Added user long.
[root@samba-server ~]# pdbedit -L
long:1001:
#创建共享文件目录
[root@samba-server ~]# mkdir /www
[root@samba-server ~]# chgrp smbadmins /www
[root@samba-server ~]# chmod 2775 /www #设置sgid,对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组
#smb配置文件增加share
vim  /etc/samba/smb.conf
[share]
path=/www
write list=long,@smbadmins
valid users=long,@ombadmins
browsbale = no

2.3 Samba客户端测试

#上传功能
[root@samba-client ~]# smbclient //10.0.0.7/share -U long%123456
smb: \> !ls
anaconda-ks.cfg
smb: \> put anaconda-ks.cfg
putting file anaconda-ks.cfg as \anaconda-ks.cfg (789.0 kb/s) (average 789.1 kb/s)
[root@samba-server ~]# ll /www/
total 4
-rwxr--r-- 1 long smbadmins 1616 Dec 25 12:35 anaconda-ks.cfg
#下载功能
[root@samba-server www]# touch f1.txt
[root@samba-client ~]# smbclient //10.0.0.7/share -U long%123456
smb: \> get f1.txt 
getting file \f1.txt of size 0 as f1.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
smb: \> !ls
anaconda-ks.cfg  f1.txt
#实现开机自动挂载吗,此方法需安装 smb客户端工具,cifs-utils。
[root@samba-client ~]# yum install -y cifs-utils
[root@samba-client long]# cat /etc/fstab
//10.0.0.7/share                          /mnt/long               cifs    cred=/etc/smb.txt 0 0
[root@samba-client long]# cat /etc/smb.txt 
username=long
password=123456
[root@samba-client ~]# chmod 600 /etc/smb.txt
#查看验证挂载信息
[root@samba-client ~]# mount -a
[root@samba-client ~]# df
Filesystem       1K-blocks    Used Available Use% Mounted on
devtmpfs            920532       0    920532   0% /dev
tmpfs               931512       0    931512   0% /dev/shm
tmpfs               931512    9764    921748   2% /run
tmpfs               931512       0    931512   0% /sys/fs/cgroup
/dev/sda2        104806400 1516952 103289448   2% /
/dev/sda5         52403200   32992  52370208   1% /data
/dev/sda1           999320  115084    815424  13% /boot
tmpfs               186304       0    186304   0% /run/user/0
//10.0.0.7/share 104806400 1523544 103282856   2% /mnt/long
[root@samba-client ~]# cd /mnt/long/
[root@samba-client long]# ls
anaconda-ks.cfg  f1.txt

三、使用rsync+inotify实现/www目录实时同步

3.1工作原理

inotify:监控同步数据服务器目录信息的变化。
rsync:完成对数据的同步。

3.2 环境搭建

#准备两台数据服务器,centos8系统,一台当主用,一台当备份数据服务器。
[root@master ~]# hostname -I
10.0.0.8 
[root@backup ~]# hostname -I
10.0.0.18 
#查看服务器内核是否支持inotify
[root@master ~]# ls -l /proc/sys/fs/inotify
total 0
-rw-r--r-- 1 root root 0 Dec 25 13:46 max_queued_events #事件队列最大长度
-rw-r--r-- 1 root root 0 Dec 25 13:46 max_user_instances #每个用户创建inotify实例最大值
-rw-r--r-- 1 root root 0 Dec 25 13:46 max_user_watch #可以监视的文件的总数量(inotifywait 单进程)
上述值可在etc/sysctl.conf 配置文件中永久修改值,sysctl -p生效。
fs.inotify.max_queued_events=xxx
fs.inotify.max_user_watches=xxx

3.3 主用数据服务器配置

#安装inotify-tools:基于epel源
[root@master ~]# yum --enablerepo=* install inotify-tools
[root@master ~]# rpm -ql inotify-tools
/usr/bin/inotifywait #监控的文件或目录上等待特定文件系统事件(open ,close,delete等)发生
/usr/bin/inotifywatch #收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计
/usr/lib/.build-id
/usr/lib/.build-id/4c
/usr/lib/.build-id/4c/50cc665007b18f08fb28fd1664b4363e77c6bf
/usr/lib/.build-id/76
/usr/lib/.build-id/76/f0034d7ea71f1d0011c7f0a9ba5c45c11f592b
/usr/lib/.build-id/cf
/usr/lib/.build-id/cf/b094946e4a3255959143feecd88504a6687c24
/usr/lib64/libinotifytools.so.0
/usr/lib64/libinotifytools.so.0.4.1
/usr/share/doc/inotify-tools
/usr/share/doc/inotify-tools/AUTHORS
/usr/share/doc/inotify-tools/COPYING
/usr/share/doc/inotify-tools/ChangeLog
/usr/share/doc/inotify-tools/NEWS
/usr/share/doc/inotify-tools/README
/usr/share/man/man1/inotifywait.1.gz
/usr/share/man/man1/inotifywatch.1.gz

3.3 备份服务器配置

#创建备份目录文件夹
[root@backup ~]# mkdir /data/backup
#设置独立的实时同步进程
[root@backup ~]# yum install -y rsync-daemon
[root@backup ~]# rpm -ql rsync-daemon
/etc/rsyncd.conf
/etc/sysconfig/rsyncd
/usr/lib/systemd/system/rsyncd.service
/usr/lib/systemd/system/rsyncd.socket
/usr/lib/systemd/system/rsyncd@.service
/usr/share/man/man5/rsyncd.conf.5.gz
#rsync配置文件设置
root@backup ~]# cat /etc/rsyncd.conf
uid=root #提定以哪个用户来访问共享目录,将之指定为生成的文件所有者,默认为nobody
gid=root
max connections = 0
ignore errors
exclude = lost+found/
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup = no
hosts allow = 10.0.0.0/24

[backup]
path = /data/backup/ #每个模块名对应一个不同的path目录,如果同名后面模块生效
comment = backup dir
read only = no #默认是yes,即只读
auth users = rsyncuser
secrets file = /etc/rsync.pas

#服务器端生成验证文件
[root@backup ~]# ll /etc/rsync.pas 
-rw------- 1 root root 17 Dec 25 14:32 /etc/rsync.pas #为了安全,密码文件设置为600
[root@backup ~]# cat /etc/rsync.pas 
rsyncuser:magedu
#启动服务
[root@backup ~]# systemctl enable --now rsyncd
[root@backup ~]# ss -ntl
State                   Recv-Q                   Send-Q                                     Local Address:Port                                     Peer Address:Port                  
LISTEN                  0                        100                                            127.0.0.1:25                                            0.0.0.0:*                     
LISTEN                  0                        5                                                0.0.0.0:873                                           0.0.0.0:*                     
LISTEN                  0                        128                                              0.0.0.0:22                                            0.0.0.0:*                     
LISTEN                  0                        100                                                [::1]:25                                               [::]:*                     
LISTEN                  0                        5                                                   [::]:873                                              [::]:*                     
LISTEN                  0                        128                                                 [::]:22                                               [::]:*   

3.4 数据服务器配置

#查看远程rsync服务器的模块信息
[root@master www]# rsync rsync://10.0.0.18
backup         	backup dir
[root@master www]# ll /etc/rsync.pas 
-rw------- 1 root root 7 Dec 25 14:34 /etc/rsync.pas
[root@master www]# cat /etc/rsync.pas 
magedu
#非交互式查看共享目录
[root@data-server ~]#rsync --password-file=/etc/rsync.pas rsync://rsyncuser@10.0.0.18/backup
[root@master www]# rsync --password-file=/etc/rsync.pas rsync://rsyncuser@10.0.0.18/backup
drwxr-xr-x             59 2021/12/25 15:19:02 .
-rw-r--r--              0 2021/12/25 15:16:37 a.txt
-rw-r--r--              0 2021/12/25 15:17:35 b.txt
-rw-r--r--              0 2021/12/25 15:19:02 c.txt
-rw-r--r--              0 2021/12/25 15:12:38 f1.txt
#编写数据实时同步的脚本,后台执行。
[root@master ~]# cat inotify_rsync.sh 
#!/bin/bash
SRC='/www/'
DEST='rsyncuser@10.0.0.18::backup'
rpm -q rsync &> /dev/null || yum install -y rsync
inotifywait -mrq --exclude=".*\.swp" --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w %f' -e create,delete,moved_to,close_write,attrib ${SRC} | while read DATE TIME DIR FILE;do
FILEPATH=${DIR}${FILE}
rsync -az --delete --password-file=/etc/rsync.pas ${SRC} ${DEST} && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log
done
[root@master ~]# bash inotify_rsync.sh &
[1] 3629

3.5 验证

在这里插入图片描述

#数据服务器上查看日志信息
[root@master ~]# tail /var/log/changelist.log 
At 15:43:30 on 2021-12-25, file /www/d.txt was backuped up via rsync
At 15:43:30 on 2021-12-25, file /www/d.txt was backuped up via rsync
At 15:43:41 on 2021-12-25, file /www/f1.txt was backuped up via rsync
At 15:43:59 on 2021-12-25, file /www/a.txt was backuped up via rsync

四、LVS调度算法总结

ipvs scheduler:根据其调度时是否考虑各RS当前的负载状态

4.1 静态算法

仅根据算法本身进行调度
1、RR:roundrobin,轮询,较常用
2、WRR:Weighted RR,加权轮询,较常用
3、SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
4、DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的
请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如: Web缓存

4.2 动态算法

主要根据每RS当前的负载状态及调度算法进行调度Overhead=value 较小的RS将被调度
1、LC:least connections 适用于长连接应用

Overhead=activeconns*256+inactiveconns

2、WLC:Weighted LC,默认调度方法,较常用

Overhead=(activeconns*256+inactiveconns)/weight

3、SED:Shortest Expection Delay,初始连接高权重优先,只检查活动连接,而不考虑非活动连接

Overhead=(activeconns+1)*256/weight

4、NQ:Never Queue,第一轮均匀分配,后续SED
5、LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理,实现Web
Cache等
6、LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制到负载轻的RS,实现Web Cache等

五、LVS的跨网络DR实现

LVS-DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变。
在这里插入图片描述
DR模式的特点:

  1. Director和各RS都配置有VIP
  2. 确保前端路由器将目标IP为VIP的请求报文发往Director,在前端网关做静态绑定VIP和Director的MAC地址, 在RS上使用arptables工具
  3. RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向
    DIP,以确保响应报文不会经由Director
  4. RS和Director要在同一个物理网络
  5. 请求报文要经由Director,但响应报文不经由Director,而由RS直接发往Client
  6. 不支持端口映射(端口不能修改)
  7. 无需开启 ip_forward
  8. RS可使用大多数OS系统

5.1 环境搭建

在这里插入图片描述

#客户端:
[lw@internet ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=192.168.10.6 
PREFIX=24
GATEWAY=192.168.10.200
DNS2=180.76.76.76
ONBOOT=yes
#路由器
[root@router ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@router ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@router ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.200
PREFIX=24
DNS2=180.76.76.76
ONBOOT=yes
[root@router ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
NAME=eth1
BOOTPROTO=static
IPADDR=192.168.10.200
PREFIX=24
DNS2=180.76.76.76
ONBOOT=yes
#LVS调度服务器
[root@lvs-server ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.8
PREFIX=24
GATEWAY=10.0.0.200
DNS2=180.76.76.76
ONBOOT=yes
#RS1配置
[root@rs1 ~]# yum install -y httpd
[root@rs1 ~]# echo `hostname -I` >> /var/www/html/index.html;systemctl enable --now  httpd.service;curl 127.0.0.1
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
10.0.0.7
[root@rs1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.7 
PREFIX=24
GATEWAY=10.0.0.200
DNS2=180.76.76.76
ONBOOT=yes
#RS1配置
[root@rs2 ~]# yum install -y httpd
[root@rs2 ~]# echo `hostname -I` >> /var/www/html/index.html;systemctl enable --now  httpd.service;curl 127.0.0.1
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
10.0.0.17
[root@rs2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.17 
PREFIX=24
GATEWAY=10.0.0.200
DNS2=180.76.76.76
ONBOOT=yes
#目前前环境下用户端目标地址为RIP,可正常访问,网络初始配置完成
[lw@internet ~]$ curl 10.0.0.7
10.0.0.7
[lw@internet ~]$ curl 10.0.0.17
10.0.0.17

5.2 VIP配置

准备好配置RS服务器VIP配置脚本

[root@rs1 ~]# cat lvs_dr_rs.sh 
#!/bin/bash
vip=172.16.0.100
mask='255.255.255.255'
dev=lo:1

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
    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"
    exit 1
    ;;
esac
#加上执行权限,在RS1和RS2上分别执行
[root@rs1 ~]# chmod +x lvs_dr_rs.sh
[root@rs1 ~]# bash lvs_dr_rs.sh start

在这里插入图片描述
在这里插入图片描述

#LVS服务器VIP配置及集群服务配置脚本
[root@lvs-server ~]# cat lvs_dr_vs.sh 
#!/bin/bash
#
#*************************************************************
#Author:          longwei
#QQ:              1285324398
#Date:            2021-12-25
#FileName:        lvs_dr_vs.sh
#URL:             www.neteagles.cn
#Description:     The test script
#Copyright (C):   2021 All rights reserved
#***********************************************************
vip='172.16.0.100'
iface='lo:1'
mask='255.255.255.255'
port='80'
rs1='10.0.0.7'
rs2='10.0.0.17'
scheduler='wrr' #调度算法
type='-g'   #-g: gateway, dr类型,默认
rpm -q ipvsadm &> /dev/null || yum -y install ipvsadm &> /dev/null

case $1 in
start)
    ifconfig $iface $vip netmask $mask #broadcast $vip up
    iptables -F
    ipvsadm -A -t ${vip}:${port} -s $scheduler   #-s,指定调度算法
    ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1 #-t: TCP协议的端口,VIP:TCP_PORT
    ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1 #-w weight:权重
    echo "The VS Server is Ready!"
    ;;
stop)
    ipvsadm -C #清空
    ifconfig $iface down
    echo "The VS Server is Canceled!"
    ;;
*)
    echo "Usage: $(basename $0) start|stop"
    exit 1
    ;;
esac
#执行脚本
[root@lvs-server ~]# bash lvs_dr_vs.sh  start
The VS Server is Ready!
[root@lvs-server ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  lvs-server:http wrr
  -> 10.0.0.7:http                Route   1      0          0         
  -> 10.0.0.17:http               Route   1      0          0       

在这里插入图片描述

路由器新增一个172网段
[root@router ~]# ip addr add 172.16.0.200/24 dev eth0

在这里插入图片描述

5.3 测试访问

使用的是静态wrr算法,根据RS1和RS2权重进行分配。
在这里插入图片描述

修改RS1权重为3,并测试
[root@lvs-server ~]# ipvsadm -e -t 172.16.0.100:80 -r 10.0.0.7 -g -w 3
[root@lvs-server ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  lvs-server:http wrr
  -> 10.0.0.7:http                Route   3      0          0         
  -> 10.0.0.17:http               Route   1      0          0 

在这里插入图片描述

5.4 抓包分析

1.客户端→路由器
在这里插入图片描述
2.路由器→lvs服务器
在这里插入图片描述
3.lvs服务器→RS1
在这里插入图片描述
4.RS1→route
在这里插入图片描述
5.route→客户端
在这里插入图片描述
可得出结论,LVS中DR模型,修改的是目标MAC地址,源地址和目标地址不作修改,且RS服务器直接将响应报文发送给路由器,不需要经过LVS服务器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值