具体原理请查看我的博客LVS原理:贴出拓扑图
说明一点 如果有朋友要做实验的又没有公网ip,又要动手做的。鼓励下!接着往下看
ip规划:
lvs: eth1 172.168.11.12(我随便设置的一个公网ip)
eth0 192.168.11.50(私网ip)
real server1 eth0 192.168.11.252(私网ip)
real server2 eth0 192.168.11.253(私网ip)
一、首先配置ip地址
这里我就贴下配置文件说明下:
LVS调度器:
[root@LVS ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
DNS1="8.8.8.8"
GATEWAY="192.168.11.1"
HWADDR="00:0C:29:FA:76:E3"
IPV6INIT="yes"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
NETMASK=255.255.255.0
IPADDR=192.168.11.50
[root@LVS ~]# more /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
BOOTPROTO="static"
HWADDR="00:0C:29:FA:76:ED"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=172.168.11.12
NETMASK=255.255.255.0
注意此处配置没有网关,所以不用配置网关,测试时只需要测试服务器和这个ip在同一个网段。
线上服务器必须配置网关。
在LVS上相互ping下各自ip看能互通不!如果不通表示没有开启路由管道功能,设置内核ip转发,具体参考步骤二。
测试机器windows ip设置
这里也不要设置网关 ,也没有网关。测试机和LVS就可以通过交换机通信了。测试下相互ping对方看是否有问题。
real server1
[root@WEB1 ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
DNS1="8.8.8.8"
GATEWAY="192.168.11.50"
HWADDR="00:0C:29:64:A9:70"
IPV6INIT="yes"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
NETMASK=255.255.255.0
IPADDR=192.168.11.252
注意此处网关应该设置为LVS调度器私网ip,如果不设置网关,服务器响应用户的报文是不知道如何路由的。
real server2
[root@WEB2 ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
DNS1="8.8.8.8"
GATEWAY="192.168.11.50"
HWADDR="00:0C:29:15:29:29"
IPV6INIT="yes"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.11.253
NETMASK=255.255.255.0
同样网关设置为lvs调度器私网ip
二、设置LVS调度器
1,首先开启ip转发
[root@LVS ~]# grep -v ^# /etc/sysctl.conf |grep -v ^$
net.ipv4.ip_forward = 1 默认为0,不开启 设置为1,开启状态 如果没有加入即可。
[root@bs-image1 ~]# sysctl -p|grep ip_forward
net.ipv4.ip_forward = 1
2,设置ipvsadm转发:
首先验证有无ipvsadm工具
如果没有请使用
[root@LVS ~]# yum -y install ipvsadm
建立脚本
[root@LVS ~]# more ipvs.sh
#!/bin/bash
ipvsadm -C #清除之前所有的转发规则
ipvsadm -At 172.168.11.12:80 -s rr #增加一种算法对于172.168.11.12:80的报文,rr为轮询
ipvsadm -at 172.168.11.12:80 -r 192.168.11.253:80 -m #增加一个realserver
ipvsadm -at 172.168.11.12:80 -r 192.168.11.252:80 -m #再增加一个realserver
ipvsadm #打印当前的ipvsadm规则
注意这里的-m的含义
-g, --gatewaying Use gatewaying (direct routing). This is the default.
-i, --ipip Use ipip encapsulation (tunneling).
-m, --masquerading Use masquerading (network access translation, or NAT).
使用的什么模式。更多参数,参考man ipvsadm。
[root@LVS ~]# bash ipvs.sh
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP ACA80B0C.ipt.aol.com:http rr
-> 192.168.11.252:http Masq 1 0 0
-> 192.168.11.253:http Masq 1 0 0
现在可以开始测试了。注意如果你提前修改了windows的ip是不能通过网络连接虚拟机的。这个就自己想办法了,有问题可以联系我。