homework8

1. 总结日志分类, 优先级别。图文并茂解释应用如何将日志发到rsyslog,并写到目标。

1)系统日志分类

# 分类:facility(设施)从功能或程序上对日志进行归类
# 内置分类
auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security(auth), 
user(default), uucp, syslog
# 自定义分类
local0, local1, local2, local3, local4, local5, local6, local7

2)优先级

# priority (优先级别)
# 从低到高排序
debug,info,notice,warn(warning),err(error),crit(critical),alert,emerg(panic)

3)SSH服务实现将日志发送到rsyslog并写到目标

ssh服务会按照 syslog 协议使用系统调用来写入日志。这些调用最终会与 rsyslog 服务交互,后者负责将日志消息写入配置的文件中。

安装rsyslog

yum install -y rsyslog

systemctl enable --now rsyslog

查看rsyslog配置

vim /etc/rsyslog.conf

这里定义了authpriv分类的所有日志,都将保存到/var/log/secure文件中

重启ssh服务sysemctl restart sshd

查看日志是否写入

cat /var/log/secure

日志正常写入。

2.完成功能,sshd应用将日志写到rsyslog的local6分类,过滤所有级别,写入到/var/log/ssh.log。

#修改ssh的配置文件

[root@Rocky8 ~]#vim /etc/ssh/sshd_config

SyslogFacility local6

LogLevel DEBUG

#修改rsyslog配置文件

vim /etc/rsyslog.conf 

local6.*                                               /var/log/ssh.log

#重启sshd和rsyslog服务

[root@Rocky8 ~]#systemctl restart sshd rsyslog

#查看日志是否正常保存

cat /var/log/ssh.log

#对local6 写入数据

logger -p local6.info "hello"

#查看日志是否正常保存

cat /var/log/ssh.log

3. 完成功能,将3个主机(要求主机名为ip)的ssh日志,通过rsyslog服务将ssh日志写入到集中的主机上的rsyslog服务,写入到/var/log/all-ssh.log文件

准备ubuntu4 10.0.0.104 作为rsyslog日志收集服务器,Rocky8 10.0.0.16,centos7 10.0.0.88,Ubuntu2204 10.0.0.30作为主机

1,在ubuntu4 10.0.0.104 rsyslog日志收集服务器

修改rsyslog配置

vim /etc/rsyslog.conf

# 取消注释,开启tcp端口侦听

module(load="imtcp")

input(type="imtcp" port="514")

# 修改把ssh日志保存到 /var/log/all-ssh.log中,修改级别为info

vim /etc/rsyslog.d/50-default.conf   

#auth,authpriv.*            /var/log/auth.log

#*.*;auth,authpriv.none     -/var/log/syslog

*.info;auth,authpriv.*       /var/log/all-ssh.log

# 重启服务

systemctl restart rsyslog ssh

#查看端口

已侦听514端口

配置主机把ssh日志发送往ubuntu4 10.0.0.104rsyslog日志收集服务器上

2,在Rocky8 10.0.0.16上

修改rsyslog配置

# 两个@代表使用tcp协议,一个@代表使用udp协议,两个@@符号代表tcp协议

vim /etc/rsyslog.conf

*.info                                                  @@10.0.0.104

# 重启rsyslog服务

systemctl restart rsyslog

3,centos7 10.0.0.88上

修改rsyslog配置

# 两个@代表使用tcp协议,一个@代表使用udp协议

vim /etc/rsyslog.conf

*.info                                                  @@10.0.0.104

# 重启rsyslog服务

systemctl restart rsyslog

4,在Ubuntu2204 10.0.0.30上

#新建一个/etc/rsyslog.d/test.conf的配置文件来专门存放和ssh有关的日志

vim /etc/rsyslog.d/test.conf

*.info                                          @@10.0.0.104:514

 # 重启rsyslog服务

systemctl restart rsyslog

最终效果:

在ubuntu4 10.0.0.104 rsyslog日志收集服务器

[root@ubuntu4 ~]#cat /var/log/all-ssh.log

4. 总结/var/log/目录下常用日志文件作用。

/var/log/secure,/var/log/auth.log:系统安全日志,文本格式,应周期性分析
/var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
/var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
/var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
/var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录, 也可以通过专用      命令dmesg查看,可持续记录硬件变化的情况
/var/log/boot.log 系统服务启动的相关信息,文本格式,Ubuntu无此文件
/var/log/messages(红帽系统),/var/log/syslog (Ubuntu) :系统中大部分的信息
/var/log/anaconda : anaconda的日志,Ubuntu无此文件

5. 总结journalctl命令的选项及示例

# 查看所有日志(默认情况下 ,只保存本次启动的日志)
journalctl
# 查看内核日志(不显示应用日志)
journalctl -k
# 查看系统本次启动的日志
journalctl -b
journalctl -b -0
# 查看上一次启动的日志(需更改设置)
journalctl -b -1
# 查看指定时间的日志
journalctl --since = "2017-10-30 18:10:30"
journalctl --since "20 min ago"
journalctl --since yesterday
journalctl --since "2017-01-10" --until "2017-01-11 03:00"
journalctl --since 09 :00 --until "1 hour ago"
# 显示尾部的最新 10 行日志
journalctl -n
# 显示尾部指定行数的日志
journalctl -n 20
# 实时滚动显示最新日志
journalctl -f
# 查看指定服务的日志
journalctl /usr/lib/systemd/systemd
# 查看指定进程的日志
journalctl _PID = 1
# 查看某个路径的脚本的日志
journalctl /usr/bin/bash
# 查看指定用户的日志
journalctl _UID = 33 --since today
# 查看某个 Unit 的日志
journalctl -u nginx.service
journalctl -u nginx.service --since today
# 实时滚动显示某个 Unit 的最新日志
journalctl -u nginx.service -f
# 合并显示多个 Unit 的日志
journalctl -u nginx.service -u php-fpm.service --since today
# 查看指定优先级(及其以上级别)的日志,共有 8 级
0 : emerg
1 : alert
2 : crit
3 : err
4 : warning
5 : notice
6 : info
7 : debug
journalctl -p err -b
# 日志默认分页输出, --no-pager 改为正常的标准输出
journalctl --no-pager
# 日志管理 journalctl
# 以 JSON 格式(单行)输出
journalctl -b -u nginx.service -o json
# 以 JSON 格式(多行)输出,可读性更好
journalctl -b -u nginx.service -o json-pretty
# 显示日志占据的硬盘空间
journalctl --disk-usage
# 指定日志文件占据的最大空间
journalctl --vacuum-size = 1G
# 指定日志文件保存多久
journalctl --vacuum-time = 1years

#查看ssh服务最近20条日志

journalctl -u ssh.service -n 20

#查看ssh服务从2024-6-10 15:40:00到2024-6-10 16:22的日志

journalctl -u ssh.service --since "2024-6-10 15:40:00" --until "2024-6-10 16:22"

#查看ssh服务昨天的日志

journalctl -u ssh.service --since yesterday

# 查看所有日志(默认情况下 ,只保存本次启动的日志)
journalctl


# 查看指定时间的日志
journalctl --since='2024-06-09'


# 显示尾部的最新10行日志
journalctl -n

6. 完成将多个主机(要求主机名为ip)的nginx日志集中写入到mysql表中

6.1 rsyslog服务器准备

#在 rsyslog 服务器上安装连接 mysql 模块相关的程序包

root@huang:~# apt install rsyslog-mysql mysql-server -y

# 通过dpkg --listfiles rsyslog-mysql查看生成的文件,生成的文件中包含了创建表结构的SQL语句

dpkg --listfiles rsyslog-mysql

Ubuntu系统需要自己创建数据库,Rocky不需要

#查看sql脚本文件内容

root@huang:~# cat //usr/share/dbconfig-common/data/rsyslog-mysql/install/mysql

# Ubuntu22.04和20.04没有此行,需要手动创建数据库

# 登录MySQL创建数据库和表,执行以下6.1步骤

CREATE DATABASE Syslog;

USE Syslog;

CREATE TABLE SystemEvents

(

        ID int unsigned not null auto_increment primary key,

        CustomerID bigint,

        ReceivedAt datetime NULL,

        DeviceReportedTime datetime NULL,

        Facility smallint NULL,

        Priority smallint NULL,

        FromHost varchar(60) NULL,

        Message text,

        NTSeverity int NULL,

        Importance int NULL,

        EventSource varchar(60),

        EventUser varchar(60) NULL,

        EventCategory int NULL,

        EventID int NULL,

        EventBinaryData text NULL,

        MaxAvailable int NULL,

        CurrUsage int NULL,

        MinUsage int NULL,

        MaxUsage int NULL,

        InfoUnitID int NULL ,

        SysLogTag varchar(60),

        EventLogType varchar(60),

        GenericFileName VarChar(60),

        SystemID int NULL

);

CREATE TABLE SystemEventsProperties

(

        ID int unsigned not null auto_increment primary key,

        SystemEventID int NULL ,

        ParamName varchar(255) NULL ,

        ParamValue text NULL

);

# 方法 1: 事先执行 6.1步骤再执行下面指令

root@huang:~# mysql -ursyslog -p123456 -h10.0.0.201 Syslog <

/usr/share/dbconfig-common/data/rsyslog-ysql/install/mysql

root@huang:~# mysql -ursyslog -p123456 -h10.0.0.201 Syslog -e "source

/usr/share/dbconfig-common/data/rsyslog-ysql/install/mysql"

# 方法 2

# 将 sql 脚本复制到数据库服库上

root@huang:~# scp /usr/share/doc/rsyslog/mysql-createDB.sql 10.0.0.201:/data

6.2 数据库服务器准备

Mysql默认只监听本机端口

#开启远程监听端口

root@huang:~# vim /etc/mysql/mysql.conf.d/mysqld.cnf

#注释两行

#bind-address           = 127.0.0.1

#mysqlx-bind-address    = 127.0.0.1

#重启服务

root@huang:~# systemctl  restart  mysql.service

# 在 MySQL 数据库服务器上创建相关数据库和表,并授权 rsyslog 能连接至当前服务器

root@centos8 ~] #yum install mysql-server

[root@centos8 ~] #mysql -u

mysql>source /data/mysql-createDB.sql  #如果使用方法1则不需要执行此步

mysql>CREATE USER   'rsyslog' @ '10.0.0.%' IDENTIFIED BY '123456' ;  

mysql>GRANT ALL ON Syslog.* TO 'rsyslog' @ '10.0.0.%' ;

6.3 配置rsyslog服务器

# 配置 rsyslog 将日志保存到 mysql 中

[root@centos8 ~] #vim /etc/rsyslog.conf

####MODULES####

# 在 MODULES 语言下面,如果是 Ubuntu22.04,20.04 和 CentOS8 加下面行

module (load = "ommysql" )

# 在 MODULES 语言下面,如果是 CentOS 7 , 6 加下面行

$ModLoad ommysql

# 在 RULES 语句块加下面行的格式

#facility.priority   :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD

*.info :ommysql:10.0.0.18,Syslog,rsyslog,123456

[root@centos8 ~] #systemctl restart rsyslog.service

#Ubuntu 自动生成以下配置文件,只需要按环境修改

[root@ubuntu2004 ~] #cat /etc/rsyslog.d/mysql.conf

### Configuration file for rsyslog-mysql

### Changes are preserved

module (load = "ommysql" )

*.info action (type = "ommysql" server = "10.0.0.201" db = "Syslog" uid = "rsyslog"

pwd = "123456" )

6.4 测试

#rsyslog服务器使用logger命令生成日志

root@huang:~# logger 'this is a test log '

root@huang:~# logger 'this is a test log '

root@huang:~# logger 'this is a test log '

#mysql查看表

mysql> select * from SystemEvents;

7. 尝试使用logrotate服务切割nginx日志,每天切割一次,要求大于不超过3M, 保存90天的日志, 旧日志以时间为后缀,要求压缩。

[root@ubuntu2204 ~] #cat /etc/logrotate.d/test1
/var/log/test/test1.log {
  daily                                                #每天转储
  rotate 90                                          #指定日志文件删除之前转储的次数
  compress                                        #压缩
  dateext                                              #旧文件带日期
  delaycompress                                #延迟压缩
  missingok                                        #日志不存在,不提示错误,继续处理下一个
  size 3M                                            #每个文件大小为3M
  notifempty                                        #空文件不转储
  create 644 bin daemon                        #转储旧文件以后,创建新的文件并更改对应的属性
  sharedscripts
  postrotate
echo `date +%F_%T` >> /data/test1.log
           if [ -f /apps/nginx/logs/nginx.pid ]; then        #针对nginx特有的设置
              kill -USR1 `cat /apps/nginx/logs/nginx.pid`  #针对nginx特有的设置
           if

  endscript
}
#生成新日志
[root@ubuntu2204 ~]#dd if=/dev/zero of=/var/log/test/test1.log bs=4M count=1
[root@ubuntu2204 ~]#ll /var/log/test/
-rw-r-----  1 nginx nginx    4179600  6月  11 23:33 test1.log
-rw-r-----  1 nginx nginx    4179600  6月  11 23:30 test1.log.1
-rw-r-----  1 nginx nginx    1052   6月  11 23:32 test1.log-20240611.gz

8.总结 LVS的NAT和DR模型工作原理,并完成DR模型实战。

LVS 集群类型中的术语

VS:Virtual Server,Director Server(DS), Dispatcher(调度器),Load Balancer
RS:Real Server(lvs), upstream server(nginx), backend server(haproxy)
CIP:Client IP
VIP:Virtual server IP VS外网的IP
DIP:Director IP VS内网的IP
RIP:Real server IP
访问流程:CIP <–> VIP == DIP <–> RIP

LVS NAT

lvs-nat:本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发
(1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP
(2)请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈
(3)支持端口映射,可修改请求报文的目标PORT
(4)VS必须是Linux系统,RS可以是任意OS系统

工作原理:

  1. 客户端请求: 客户端发送请求到负载均衡器的VIP(虚拟IP)。
  2. 地址转换: 负载均衡器接收请求并根据调度算法选择一个真实服务器。然后它将数据包的目的地址从VIP改为选定的真实服务器的IP,并修改源地址为自身的IP地址。
  3. 服务器响应: 真实服务器处理请求并将响应发送回负载均衡器的IP地址。
  4. 回复客户端: 负载均衡器收到来自真实服务器的响应后,将源地址从真实服务器的IP改回VIP,并把响应包发送给原始的客户端。
LVS-DR

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

工作原理:

  1. 客户端请求: 客户端向负载均衡器的VIP发送请求。
  2. 路由到服务器: 负载均衡器接收到请求后,根据调度算法选择一个真实服务器,并通过修改数据包的MAC地址将请求直接路由到该服务器。(跳过了IP层面的转换)
  3. 服务器配置: 真实服务器需要对VIP进行配置,通常是在环回接口上设置,并且不能响应ARP请求。这样做是为了防止VIP直接响应客户端。
  4. 服务器响应: 真实服务器处理请求,并直接将包的源IP设置为VIP,这样客户端感觉像是从VIP直接得到响应一样。
  5. 绕过负载均衡器: 因为响应数据包的源地址已经是VIP,所以响应可以直接发送给客户端,不用再经过负载均衡器。

LVS-DR模式单网段案例


环境:五台主机
一台:客户端 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.201/24 GW:10.0.0.200
两台 RS :
RS1 : eth0:NAT:10.0.0.202/24   GW : 10.0.0.200
RS2 : eth0:NAT:10.0.0.203/24 GW : 10.0.0.200


1/ LVS网路配置


# 所有主机禁用 iptables 和 SELinux
#internet 主机环境
[root@internet ~] #hostname
internet
[root@internet ~] #hostname -I
192 .168.10.6
[root@internet ~] #route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref   Use Iface
192 .168.10.0     0 .0.0.0         255 .255.255.0   U     1       0         0 eth0
0 .0.0.0         192 .168.10.200   0 .0.0.0         UG     0       0         0 eth0
[root@internet ~] #ping 10.0.0.7 -c1
PING 10 .0.0.7 (10.0.0.7) 56 (84) bytes of data.
64 bytes from 10 .0.0.7: icmp_seq = 1 ttl = 63 time = 0 .565 ms
[root@internet ~] #ping 10.0.0.17 -c1
PING 10 .0.0.7 (10.0.0.17) 56 (84) bytes of data.
64 bytes from 10 .0.0.17: icmp_seq = 1 ttl = 63 time = 0 .565 ms
###########################################################
#路由器设置
#添加第二个网卡eth1,ip地址为192.168.10.200/24
root@huang:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:33:fc:02 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.200/24 brd 10.0.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe33:fc02/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:33:fc:0c brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.200/24 brd 192.168.10.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe33:fc0c/64 scope link 
       valid_lft forever preferred_lft forever
#开启ip_forward功能
root@huang:~# vim /etc/sysctl.conf 
net.ipv4.ip_forward=1
root@huang:~# sysctl -p
#LVS 的网络配置
root@lvs-server:~# cat /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: [10.0.0.200/24] 
      gateway4: 10.0.0.203
      nameservers:
        addresses: [223.5.5.5, 180.76.76.76]
网关需要指向路由
#Rs1网络配置
root@huang:~# cat /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: [10.0.0.202/24] 
      gateway4: 10.0.0.200
      nameservers:
        addresses: [223.5.5.5, 180.76.76.76]
root@huang:~# apt install apache2 -y
root@huang:~# hostname -I > /var/www/html/index.html 
root@huang:~# curl 10.0.0.202
10.0.0.202 
#Rs2网络配置
root@huang:~# cat /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: [10.0.0.203/24] 
      gateway4: 10.0.0.200
      nameservers:
        addresses: [223.5.5.5, 180.76.76.76]
root@huang:~# apt install apache2 -y
root@huang:~# hostname -I > /var/www/html/index.html 
root@huang:~# curl 10.0.0.203
10.0.0.203
 

2/ 后端RS的IPVS配置


#RS1 的 IPVS 配置
[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
[root@rs1 ~] #ifconfig lo:1 10.0.0.100/32
[root@rs1 ~] #ip a
1 : lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
  link/loopback 00 :00:00:00:00:00 brd 00 :00:00:00:00:00
  inet 127 .0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
  inet 10 .0.0.100/0 scope global lo:1
      valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2 : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
group default qlen 1000
  link/ether 00 :0c:29:01:f9:48 brd ff:ff:ff:ff:ff:ff
  inet 10 .0.0.202/24 brd 10 .0.0.255 scope global noprefixroute eth0
      valid_lft forever preferred_lft forever
  inet6 fe80::20c:29ff:fe01:f948/64 scope link
      valid_lft forever preferred_lft forever
#RS2 的 IPVS 配置
[root@rs2 ~] #echo 1 >   /proc/sys/net/ipv4/conf/all/arp_ignore
[root@rs2 ~] #echo 1 >   /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@rs2 ~] #echo 2 >   /proc/sys/net/ipv4/conf/all/arp_announce
[root@rs2 ~] #echo 2 >   /proc/sys/net/ipv4/conf/lo/arp_announce
[root@rs2 ~] #ifconfig lo:1 10.0.0.100/32
[root@rs2 ~] #ip a
1 : lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
  link/loopback 00 :00:00:00:00:00 brd 00 :00:00:00:00:00
  inet 127 .0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
  inet 10 .0.0.100/0 scope global lo:1
      valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2 : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
group default qlen 1000
  link/ether 00 :0c:29:94:1a:f6 brd ff:ff:ff:ff:ff:ff
inet 10 .0.0.203/24 brd 10 .0.0.255 scope global noprefixroute eth0
      valid_lft forever preferred_lft forever
  inet6 fe80::20c:29ff:fe94:1af6/64 scope link
      valid_lft forever preferred_lft forever

3/ LVS主机的配置 

# 在 LVS 上添加 VIP
[root@lvs ~] #ifconfig lo:1 10.0.0.100/32
[root@lvs ~] #ip a
1 : lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
  link/loopback 00 :00:00:00:00:00 brd 00 :00:00:00:00:00
  inet 127 .0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
  inet 10 .0.0.100/0 scope global lo:1
      valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2 : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
  link/ether 00 :0c:29:8a:51:21 brd ff:ff:ff:ff:ff:ff
  inet 10 .0.0.201/24 brd 10 .0.0.255 scope global noprefixroute eth0
      valid_lft forever preferred_lft forever
# 实现 LVS 规则
[root@lvs ~] ~# apt install ipvsadm -y
[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.202:80 -g
[root@lvs ~]:~# ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.203: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.202:80                Route   1      0          0         
  -> 10.0.0.203:80                Route   1      0          0 

4/ 测试

 root@huang:~# curl 10.0.0.100
10.0.0.202 
root@huang:~# curl 10.0.0.100
10.0.0.203 
root@huang:~# curl 10.0.0.100
10.0.0.202 
root@huang:~# curl 10.0.0.100
10.0.0.203 
root@huang:~# curl 10.0.0.100
10.0.0.202 
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值