这两天做做lvs nat模式的实验,做配置几台虚拟机的网络环境时,遇到了一些问题。
主要就是:1.不知道怎么增加新的外网卡和内网卡区别。
2.不熟悉如何将虚拟机设置成NAT上网模式。
首先,lvs 的nat模式和虚拟机的上网模式NAT是两回事。下面用nat做lvs的一种模式,用NAT指虚拟机的上网模式。
实验环境:
1.一台做dir的虚拟机,需要两张网卡,一张可连外网,一张用于内网。连接外网的网卡,我使用桥连接到宿主机的网卡。用于内网的网卡,我使用NAT模式。
2.两台做rs1和rs2的虚拟机,它们都只需要自带一张。
开始:
1.先解决第1个问题--为虚拟机增加网卡。在这个实验,就是给dir增加一张网卡。
如图,虚拟机->设置->添加->网络适配器,选择NAT模式即可。

这时,虚拟机ifconfig 应该是还没有显示这张新的网卡的。
但是ifconfig -a 可以看到
那么,现在需要配置一下,让这张网卡能使用。
[root@yiqiang network-scripts]# ifup eth1
eth1 设备的 MAC 地址与预想的不符,忽略。
首先 vim /etc/udev/rules.d/70-persistent-net.rules 可以看到网卡信息,包括它的mac地址:
如上图,所示,复制好eth1的mac地址,等会有用。注意大小写,以及符号半格式与全格式
接着,cd /etc/sysconfig/network-scripts/路径下,添加ifcfg-eth1的配置文件,
[root@yiqiang network-scripts]# ls
可以看到 ifcfg-eth0 ifcfg-eth1 俩个网卡,
那么更改ifcfg-eth1即可
复制ifcfg-eth0的再稍微修改一下就可以了。
cp ifcfg-eth0 ifcfg-eth1
然后,修改ifcfg-eth1
[root@yiqiang network-scripts]# vim ifcfg-eth1 编辑
HWADDR="00:0c:29:65:d0:31" 即是mac地址
更改是需要相对应。
即可
[root@yiqiang network-scripts]# ifup eth1
Determining if ip address 192.168.11.160 is already in use for device eth1...
[root@yiqiang network-scripts]# ifconfig
就可以看到,eth1了,
准备三台机器:
1. 192.168.1.129 #hostname dir 另一ip NAT:模式的 192.168.244.131
2 192.168.1.123 # hostname rs1
3 192.168.1.125 # hostname rs2
1。dir 操作:dir作为调度器
编辑 # vim /etc/hosts 加入下面内容:
192.168.1.123 rs1
192.168.1.125 rs2
192.168.1.129 dir
保存退出, dir , rs1 , rs2 都加入并保存
yum install -y ipvsadm
[root@dir ~]# yum install -y ipvsadm 安装工具包
没有扩展源需要安装扩展源 epel
[root@dir ~]# vim /usr/local/sbin/lvs_nat.sh
#!/bin/bash
#director 服务器上开启路由转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
#关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
#director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -j MASQUERADE #此处是网段 11段的
#director设置ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.1.106:80 -s rr
$IPVSADM -a -t 192.168.1.106:80 -r 192.168.1.107:80 -m$IPVSADM -a -t 192.168.1.106:80 -r 192.168.1.108:80 -m
保存退出
[root@dir ~]# sh -x /usr/local/sbin/lvs_nat.sh 执行脚本,并检查。
[root@dir ~]# 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.1.106:80 rr
-> 192.168.1.107:80 Masq 1 0 0
-> 192.168.1.108:80 Masq 1 0 0
dir为调度器。dir上把开启80端口的,之前的都关闭掉。
rs1:和 rs2 都改
[root@rs1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
把路由器的地址改成dir机上的 内网网卡ip地址
GATEWAY=192.168.11.160
保存退出
[root@rs1 ~]# ifdown eth0;ifup eth0
Determining if ip address 192.168.1.107 is already in use for device eth0...
rs1:和 rs2 都 yum install -y ngixn
rs1:和 rs2 并都开启80端口, /etc/init.d/nginx start
dir上把开启80端口,之前的都关闭掉。
测试: 浏览器上输入dir上的ip地址,点击 刷新。出现 :一次1 & 一次2。 可能是缓存原因,不能正确显示。
curl 192.168.11.160 出现 :一次1 & 一次2
再次更改:调度器:
[root@dir ~]# vim /usr/local/sbin/lvs_nat.sh
#!/bin/bash
#director 服务器上开启路由转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
#关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth2/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth2/send_redirects
#director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
#director设置ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.1.129:80 -s wrr
$IPVSADM -a -t 192.168.1.129:80 -r 192.168.1.123:80 -m -w 2
$IPVSADM -a -t 192.168.1.129:80 -r 192.168.1.125:80 -m -w 1
[root@dir ~]# sh /usr/local/sbin/lvs_nat.sh 执行脚本。
# sh !$
[root@dir ~]# ipvsadm -ln
[root@dir ~]# curl 192.168.1.129 回车,正好是: 二次1 & 一次2
成功 NAT模式成功。