实训日记day27
NAT模式实战-环境准备
1.环境规划
角色 | 作用 | IP |
NAT | 负载均衡调度 器 DS | 内网:(DIP192.168.20.149) 外 网:(VIP192.168.20.150) |
web01 | 真实web服务 器Rs | 192.168.20.137 |
web02 | 真实web服务 器Rs | 192.168.20.138 |
DNS | 用来解析各主 机的域名和ip 地址 | |
client | 测试 |
2.nat主机配置
[root@nat ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=10.1.1.100
NETMASK=255.255.255.0
GATEWAY=10.1.1.2
DNS1=8.8.8.8
DNS2=114.114.114.114 #添加到文件末尾
2.1 外添加一张网卡,选择对外提供服务的桥接模式或者nat模式,选 择桥接模式(ip不同)
2.2 修改网卡配置文件
[root@nat ~]# vim /etc/sysconfig/networkscripts/ifcfg-ens36
TYPE="Ethernet"
BOOTPROTO="none"
NAME="ens36" UUID="606c3bb5-ae86-42fa-95e1-d9766c3d4ab9" DEVICE="ens36" ONBOOT="yes"
IPADDR=192.168.0.100
NETMASK=255.255.255.0
2.3 时间同步
[root@nat ~]# yum -y install ntpdate
[root@nat ~]# yum -y install ntp
[root@nat ~]# ntpdate cn.ntp.org.cn
[root@nat ~]# systemctl start ntpd
[root@nat ~]# systemctl enable ntpd
2.4 停用其他服务
# 停用selinux
setenforce 0
sed -i '/SELINUX=enforcing/cSELINUX=disabled' /etc/selinux/config
#停用防火墙
systemctl stop firewalld
systemctl disable firewalld &>/dev/null
#停用NetworkManage
systemctl stop NetworkManager
systemctl disable NetworkManager &>/dev/null
NAT模式搭建实战
1. nat服务器配置
1. 1 Itvs. Ip vartual server 已经是内核应用,无法修改
1. 2 ipvsadm这个工具管理服务
# 安装ipvsadm
[root@nat ~]# yum -y install ipvsadm
# 清空以往的规则
[root@nat ~]# ipvsadm -C
# 查看规则
[root@nat ~]# ipvsadm -L -n
# 新增规则
[root@nat ~]# ipvsadm -A -t 192.168.0.100:80 -s rr
# 添加主机
[root@nat ~]# ipvsadm -a -t 192.168.0.100:80 -r 10.1.1.200:80 -m [root@nat ~]# ipvsadm -a -t 192.168.0.100:80 -r 10.1.1.201:80 -m
# 设置ip转发
[root@nat ~]# vim /etc/sysctl.conf
============================================ net.ipv4.ip_forward=1 ============================================
# 设置生效
[root@nat ~]# sysctl -p
net.ipv4.ip_forward = 1
2. web服务器网关配置
[root@web01 ~]# route del default
[root@web01 ~]# route add default gw 10.1.1.100
[root@web02 ~]# route del default
[root@web02 ~]# route add default gw 10.1.1.100
DR模式的搭建实战- 配置vip网卡
1. 在编辑虚拟网络中创建桥接模式的网卡,并且桥接到有网的适配器上
2. 在vmware的虚拟主机资源管理器找到虚拟主机,右键菜单,设置
3. 添加新的网卡,自定义为刚才创建的桥接模式网卡
4. 此时在虚拟主机中使用ifconfig无法找到新的网卡
5. ip a能够查看到新的ens36网卡,没有路由
6. 编辑网卡配置
[root@ds01 ~]# vim /etc/sysconfig/networkscripts/ifcfg-ens36
TYPE="Ethernet"
BOOTPROTO="none"
NAME="ens36"
UUID="fdbcb12c-33b6-4d7d-93bb-3b5380c4fb30"
DEVICE="ens36"
ONBOOT="yes"
IPADDR=192.168.20.100
7. 重启network服务
[root@ds01 ~]# systemctl restart network
8. 添加规则
[root@ds01 ~]# ipvsadm -A -t 192.168.10.100:80 -s rr
[root@ds01 ~]# 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.10.100:80 rr
# web01 web02 添加规则
[root@ds01 ~]# ipvsadm -a -t 192.168.10.100:80 -r 10.1.1.200:80 -m [root@ds01 ~]# ipvsadm -a -t 192.168.10.100:80 -r 10.1.1.201:80 -m [root@ds01 ~]# ipvsadm -Ln
[root@ds01 ~]# ipvsadm -Ln
9. ip转发
[root@ds01 ~]# vim /etc/sysctl.conf
########################################## net.ipv4.ip_forward=1 #############################################
[root@ds01 ~]# sysctl -p
net.ipv4.ip_forward = 1
临时修改web01和web02的网 关,网关必须指向dip(调度服务 器的对内的ip)
[root@web01 ~]# route del default
[root@web01 ~]# route add default gw 10.1.1.100
# 这也要求了rs ip和 dip要在同一个网段,因为dip是要作为网关存在的
DR模式
1.性能更优,回路不再经过ds
2.ds和rs为了保证用户响应,都要求配置统一的vip
3.由于rs是直接响应client,网关一定不能设置为ds 的dip
4.对rs的vip进行抑制,让ds的vip接收请求,rs的vip不接受请求
5.rs的vip绑定点lo回路网卡上
1.在ds的ens33上挂一个vip 10.1.1.102
[root@dr03 ~]# ifconfig
[root@dr03 ~]# ifconfig ens33:0 10.1.1.102 broadcast 10.1.1.102 netmask 255.255.255.255 up
[root@dr03 ~]# route add -host 10.1.1.102 dev ens33:0
2.设置规范
# 安装ipvsadm yum -y install ipvsadm
# 设置规则
ipvsadm -A -t 10.1.1.102:80 -s rr
ipvsadm -a -t 10.1.1.102:80 -r 10.1.1.200 -g
ipvsadm -a -t 10.1.1.102:80 -r 10.1.1.201 -g
# rs不在需要指定端口,dr不支持端口映射,vip上是80端口,最终就是80端 口
# -m nat -g gateway
3. 设置rs主机
3.1 在lo接口上绑定vip
[root@web01 ~]# ifconfig lo:0 10.1.1.102 broadcast 10.1.1.102 netmask 255.255.255.255 up
3.2 设置主机路由
[root@web01 ~]# route add -host 10.1.1.102 dev lo:0
3.3 抑制rs接收请求
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
3.4 生成脚本,对web02使用
ifconfig lo:0 10.1.1.102 broadcast 10.1.1.102 netmask 255.255.255.255 up
route add -host 10.1.1.102 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
3.5 测试使用,查看状态
[root@dr03 ~]# ipvsadm -Ln --stats
dr模式的脚本
dr脚本
#!/bin/bash
#在ens33上挂载一个ip地址
read -p "vip:" vip
read -p "mac:" mac
read -p "num" num
ifconfig $mac:$num $vip broadcast $vip netmask 255.255.255.255
# 主机路由
route add -host $vip dev $mac:$num
#安装ipvsadm
yum list installed|grep ipvsadm
if [ $? -ne 0 ] ; then
yum -y install ipvsadm
fi
#配置规则(不需要设置ip_forword)
ipvsadm -C read -p "rule:" rule
read -p "port:" port
ipvsadm -A -t $vip:$port -s $rule
read -p "rip1:" rip1
ipvsadm -a -t $vip:$port -r $rip1 -g
read -p "rip2:" rip2
ipvsadm -a -t $vip:$port -r $rip2 -g
rs脚本
#!/bin/bash
#在ens33上挂载一个ip地址
read -p "vip:" vip
read -p "mac:" mac
read -p "num" num ifconfig $mac:$num $vip broadcast $vip netmask 255.255.255.255
# 主机路由 route add -host $vip dev $mac:$num
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