1、DR模式下vip不在同一网段上实现过程(夸网段)?
环境:
所有主机禁用iptables和SELinux
五台主机:
一台:客户端 eth0:仅主机 192.168.10.6/24 GW:192.168.10.200
一台:ROUTER
eth0: NAT 10.0.0.200/24
eth0: NAT 172.16.0.1/24
eth1: 仅主机 192.168.10.200/24
启用 IP_FORWARD
一台:LVS
lo:1 172.16.0.100/32
eth0:NAT: DIP: 10.0.0.8/24 GW:10.0.0.200
两台RS:
RS1:
lo:1 172.16.0.100/32
eth0:NAT: 10.0.0.7/24 GW:10.0.0.200
RS2:
lo:1 172.16.0.100/32
eth0:NAT: 10.0.0.17/24 GW:10.0.0.200
intenet-client 配置
[root@intetnet-client ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="static"
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.6
PREFIX=24
GATEWAY=192.168.10.200
[root@intetnet-client ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.200 0.0.0.0 UG 100 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
router 配置
[root@router ~]#echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
[root@router ~]#sysctl -p
[root@router network-scripts]#cat ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.200
PREFIX=24
[root@router network-scripts]#cat ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.10.200
PREFIX=24
[root@router ~]#ip addr add 172.16.0.200/24 dev eth0 label eth0:1
[root@router ~]#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:2a:a2:cb brd ff:ff:ff:ff:ff:ff
inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet 172.16.0.200/24 scope global eth0:1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe2a:a2cb/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:2a:a2:d5 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.200/24 brd 192.168.10.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe2a:a2d5/64 scope link
valid_lft forever preferred_lft forever
RS1配置
[root@RS1-server ~]#yum -y install httpd ;systemctl enable --now httpd
[root@RS1-server ~]#echo "RS1 10.0.0.7" > /var/www/html/index.html
[root@RS1-server network-scripts]#cat ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.7
PREFIX=24
GATEWAY=10.0.0.200
[root@RS2-server ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.200 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
[root@RS1-server ~]#ping 192.168.10.6 -c1
PING 192.168.10.7 (192.168.10.6) 56(84) bytes of data.
64 bytes from 192.168.10.6: icmp_seq=1 ttl=63 time=0.654 ms
--- 192.168.10.6 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.654/0.654/0.654/0.000 ms
[root@router ~]#hostname -I
10.0.0.200 172.16.0.200 192.168.10.200
RS2配置
[root@RS1-server ~]#yum -y install httpd ;systemctl enable --now httpd
[root@RS1-server ~]#echo "RS2 10.0.0.17" > /var/www/html/index.html
[root@RS2-server network-scripts]#cat ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="static"
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.17
PREFIX=24
GATEWAY=10.0.0.200
[root@RS2-server ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.200 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
[root@RS2-server ~]#ping 192.168.10.6 -c1
PING 192.168.10.7 (192.168.10.6) 56(84) bytes of data.
64 bytes from 192.168.10.6: icmp_seq=1 ttl=63 time=1.00 ms
--- 192.168.10.6 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.007/1.007/1.007/0.000 ms
LVS 配置
[root@lvs-server network-scripts]#cat ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.8
PREFIX=24
GATEWAY=10.0.0.200
[root@lvs-server ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.200 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
在LVS主机运行的脚本
[root@lvs-server ~]#vim lvs_dr_vs.sh
#!/bin/bash
vip='172.16.0.100'
iface='lo:1'
mask='255.255.255.255'
port='80'
rs1='10.0.0.7'
rs2='10.0.0.17'
scheduler='wrr'
type='-g'
rpm -q ipvsadm &> /dev/null || yum -y install ipvsadm &> /dev/null
case $1 in
start)
ifconfig $iface $vip netmask $mask
iptables -F
ipvsadm -C
ipvsadm -A -t ${vip}:${port} -s $scheduler
ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1
ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1
echo "The LVS Server is Ready!"
;;
stop)
ipvsadm -C
ifconfig $iface down
echo "The LVS Server is Canceled!"
;;
*)
echo "Usage: $(basename $0) start | stop"
;;
esac
[root@lvs-server ~]#bash lvs_dr_vs.sh
Usage: lvs_dr_vs.sh start|stop
[root@lvs-server ~]#bash lvs_dr_vs.sh start
The LVS Server is Ready!
[root@lvs-server ~]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.0.100:80 wrr
-> 10.0.0.7:80 Route 1 0 0
-> 10.0.0.17:80 Route 1 0 0
在后端服务器RS运行的脚本实现IPVS配置
[root@RS1-server ~]#vim lvs_dr_rs.sh
#!/bin/bash
vip='172.16.0.100 '
mask='255.255.255.255'
dev='lo'
label='lo:1'
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ip a a $vip dev $dev label $label
echo "The RS Server is Ready!"
;;
stop)
ip a d $vip dev $dev label $label
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "The RS Server is Canceled!"
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac
[root@RS1-server ~]#bash lvs_dr_rs.sh start
The RS Server is Ready!
[root@RS2-server ~]#bash lvs_dr_rs.sh start
The RS Server is Ready!
测试访问
[root@intetnet-client ~]#while :;do curl 172.16.0.100;sleep 0.5;done
RS2 10.0.0.17
RS1 10.0.0.7
RS2 10.0.0.17
RS1 10.0.0.7
RS2 10.0.0.17
RS1 10.0.0.7
RS2 10.0.0.17
RS1 10.0.0.7
......
2、CentOS7.6 中 nfs 客户端使用 /etc/fatab 实现开机自动挂载?
安装相关软件包
[root@nfs-server ~]#hostname -I
10.0.0.118
[root@nfs-server ~]#yum -y install nfs-utils rpcbind
[root@nfs-server ~]#systemctl enable --now nfs-server.service
创建相应目录并实现共享
[root@nfs-server ~]#mkdir -pv /data/test
[root@nfs-server ~]#vim /etc/exports.d/test.exports
/data/test *(rw,no_root_squash)
[root@nfs-server ~]#exportfs -r
[root@nfs-server ~]#exportfs -v
/data/test <world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,no_root_squash,no_all_squash)
客户端实现挂载:
创建挂载点:
[root@client-1 ~]#mkdir -p /mnt/nfs
编辑/etc/fstab配置文件:
[root@client-1 ~]#vim /etc/fstab
10.0.0.118:/data/test /mnt/nfs nfs defaults,_netdev 0 0
[root@client-1 yum.repos.d]#mount -a
[root@client-1 yum.repos.d]#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 487100 0 487100 0% /dev
tmpfs 497852 0 497852 0% /dev/shm
tmpfs 497852 7796 490056 2% /run
tmpfs 497852 0 497852 0% /sys/fs/cgroup
/dev/sda2 104806400 1632216 103174184 2% /
/dev/sda5 52403200 32992 52370208 1% /data
/dev/sda1 1038336 134060 904276 13% /boot
tmpfs 99572 0 99572 0% /run/user/0
10.0.0.118:/data/test 52403200 398336 52004864 1% /mnt/nfs
3、CentOS7.6 中 nfs 客户端使用 autofs 实现使用 nfs 时实时挂载?
安装软件包
安装autofs包并设置开机自启:
[root@client-2 ~]#yum -y install autofs
[root@client-2 ~]#systemctl enable --now autofs
编辑配置文件实现nfs服务器的/data/test挂载到本机/mnt/nfs:
创建挂载点:
[root@client-2 ~]#mkdir -p /mnt/nfs
相对路径法实现挂载:
[root@client-2 ~]#vim /etc/auto.master
/mnt /etc/auto.nfs # /mnt 为挂载点/mnt/test的dirname
# /etc/auto.nfs 为挂载配置文件路径
[root@client-2 ~]#vim /etc/auto.nfs
nfs -fstype=nfs 10.0.0.118:/data/test #nfs 为挂载点的basename
[root@client-2 data]#systemctl restart autofs
[root@client-2 data]#df /mnt/nfs
Filesystem 1K-blocks Used Available Use% Mounted on
10.0.0.118:/data/test 52403200 398336 52004864 1% /mnt/nfs