案例1 NAT模型
实验拓扑结构图
一、配置虚拟服务器的网卡及地址
1、添加一块网卡
2、配置ip地址
[root@zyx ~]# setup
虚拟地址vip
物理网卡地址
3、重启网络服务
[root@zyx ~]# service network restart
二、安装ipvsadm
1、编辑sysctl.conf文件,实现数据转换功能
[root@zyx ~]# vim /etc/sysctl.conf
[root@zyx ~]# sysctl �Cp //使数据包转换功能生效
2、编辑yum仓库文件
[root@zyx ~]# mkdir /mnt/cdrom //建立光盘挂载点
[root@zyx ~]# mount /dev/cdrom /mnt/cdrom/ //挂载光盘
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@zyx ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo //编辑yum仓库文件
3、安装ipvsadm
[root@zyx ~]# yum list all |grep ipvsadm //查看是否有ipvsadm工具
[root@zyx ~]# yum install ipvsadm //安装ipvsadm工具
[root@zyx ~]# ipvsadm -A -t 192.168.10.10:80 -s rr //增加一个虚拟服务,采用轮循调度算法
[root@zyx ~]# ipvsadm -e -t 192.168.10.10:80 -r 192.168.2.100 -m //转发给真实服务器
[root@zyx ~]# ipvsadm -e -t 192.168.10.10:80 -r 192.168.2.101 -m //转发给真实服务器
[root@zyx ~]# service ipvsadm save //保存规则
[root@zyx ~]# service ipvsadm status //查看ipvsadm的状态
ipvsadm is stopped
[root@zyx ~]# service ipvsadm start //启动ipvsadm服务
[root@zyx ~]# vim /etc/sysconfig/ipvsadm //查看所写规则是否被保存
[root@zyx ~]# ipvsadm �Cln
三、配置两台realserver
两台服务器
1、配置两台服务器的网卡
2、配置两台服务器的ip及网关
realserver1
realserver2
3、查看realserver1和realserver2的网关
4、在realserver1和realserver2上分别ping192.168.2.1
5、在realserver1和realserver2上分别安装web服务器
realserver1
realserver2
四、测试
1、输入虚拟地址192.168.10.10
刷新一下
再刷新一下
再刷新一下
[root@zyx ~]# ipvsadm -ln//查看路由模型
总结:轮循调度实现
五、修改权重对轮循的影响
[root@zyx ~]# ipvsadm -e -t 192.168.10.10:80 -r 192.168.2.100 -m -w 2 //修改权重
[root@zyx ~]# ipvsadm -e -t 192.168.10.10:80 -r 192.168.2.101 -m -w 10 //修改权重
测试
刷新一下
再刷新一下
再刷新一下
总结:权重对轮循算法无影响
[root@zyx ~]# ipvsadm -ln
六、定向哈希对轮循的影响
[root@zyx ~]# ipvsadm -E -t 192.168.10.10:80 -s dh //定向哈希,定向某个服务器
[root@zyx ~]# ipvsadm �Cln //查看连接
连续刷新网页都是下面的结果
[root@zyx ~]# ipvsadm �Cln //查看连接
案例2 DR模型
实验拓扑结构图
一、两台realserver的配置
1、网卡选择
realserver1
realserver2
2、 ip地址的配置
realserver1
[root@zyx ~]# setup
[root@zyx ~]# service network restart //重启网络服务
realserver2
[root@zyx ~]# setup
[root@zyx ~]# service network restart //重启网络服务
3、修改内核参数
realserver1
[root@zyx ~]# sysctl -a |grep arp //查看内核参数
[root@zyx ~]# echo "net.ipv4.conf.eth0.arp_announce = 2" >>/etc/sysctl.conf //修改此项参数,并追加到/etc/sysctl.conf (只对eth0)
[root@zyx ~]# echo "net.ipv4.conf.all.arp_announce = 2" >>/etc/sysctl.conf //修改此项参数,并追加到/etc/sysctl.conf(对所有网络)
[root@zyx ~]# echo "net.ipv4.conf.eth0.arp_ignore = 1" >>/etc/sysctl.conf //修改此项参数,并追加到/etc/sysctl.conf(只对eth0)
[root@zyx ~]# echo "net.ipv4.conf.all.arp_ignore = 1" >>/etc/sysctl.conf //修改此项参数,并追加到/etc/sysctl.conf(对所有网络)
[root@zyx ~]# vim /etc/sysctl.conf //查看此脚本文件中修改好的内核参数
[root@zyx ~]# sysctl �Cp //执行此命令,让其立即生效
[root@zyx ~]# sysctl -a |grep arp //查看修改后的内核参数
realserver2
[root@zyx ~]# scp 192.168.10.100:/etc/sysctl.conf /etc/ //将realserver1中修改好的sysctl.conf拷贝到realserver2的/etc/目录下
[root@zyx ~]# vim /etc/sysctl.conf //查看此脚本文件中修改好的内核参数
[root@zyx ~]# sysctl �Cp //执行此命令,让其立即生效
4、配置loopback地址
realserver1
[root@zyx ~]# service network restart //再次重启网络服务
[root@zyx ~]# ifconfig
[root@zyx ~]# route add -host 192.168.10.101 dev lo:0 //写入一条路由,保证vip返回
[root@zyx ~]# route �Cn //查看路由表
注:此处realserver2的loopback0的ip配置与realserver1的配置完全一样,可参考realserver1的配置步骤
5、启动两台realserver的web服务
[root@zyx ~]# service httpd start
Starting httpd: [ OK ]
二、director的配置
1、网卡的选择
2、ip地址的配置
eth0
eth0:0
[root@zyx ~]# service network restart //重启网络服务
3、安装ipvsadm
[root@zyx ~]# mkdir /mnt/cdrom //建立光盘挂载点
[root@zyx ~]# mount /dev/cdrom /mnt/cdrom/ //挂载光盘
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@zyx ~]# cd /mnt/cdrom/Cluster //切换到该目录下
[root@zyx Cluster]# rpm -ivh ipvsadm-1.24-10.i386.rpm //安装ipvsadm
warning: ipvsadm-1.24-10.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:ipvsadm ########################################### [100%]
[root@zyx Cluster]# service ipvsadm save //保存ipvsadm文件
Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]
[root@zyx Cluster]# service ipvsadm start //启动ipvsadm
Clearing the current IPVS table: [ OK ]
Applying IPVS configuration: [ OK ]
[root@zyx Cluster]# chkconfig ipvsadm on //设置为开机时启动
4、编写ipvsadm规则
[root@zyx Cluster]# ipvsadm -A -t 192.168.10.101:80 -s rr //增加一个虚拟服务,用轮循算法实现
[root@zyx Cluster]# ipvsadm -a -t 192.168.10.101:80 -r 192.168.10.100 �Cg //转发给真实服务器
[root@zyx Cluster]# ipvsadm -a -t 192.168.10.101:80 -r 192.168.10.200 �Cg //转发给真实服务器
[root@zyx Cluster]# ipvsadm �Cln //查看路由模型
测试:
输入192.168.10.101
刷新一下网页
再刷新一下网页
再刷新一下网页
查看连接次数
[root@zyx Cluster]# ipvsadm �Cln