#! /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 # 注意區分網卡名字,阿銘的兩個網卡分別爲ens33和ens37 echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects # director 設置nat防火牆 iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.180.0/24 -j MASQUERADE # director設置ipvsadm IPVSADM='/usr/sbin/ipvsadm' $IPVSADM -C $IPVSADM -A -t 192.168.142.144:80 -s wlc -p 3 $IPVSADM -a -t 192.168.142.144:80 -r 192.168.180.135:80 -m -w 1 $IPVSADM -a -t 192.168.142.144:80 -r 192.168.180.138:80 -m -w 1
A機器IP爲192.168.180.13四、B機器IP爲192.168.180.135,C機器IP爲192.168.180.138html
PS:網關最後設置,不然包沒法下載linux
B機器和C機器的網關必須設置成分發器(即A機器)的內網IP,若不設置成它的網關,是無法通訊的nginx
網卡配置文件中更改(即本機器) vi /etc/sysconfig/network-scripts/ifcfg-ens33 更改完以後重啓網絡服務 systemctl restart network [root@yong-02 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.180.134 0.0.0.0 UG 100 0 0 ens33 192.168.180.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
關閉firewalld服務 systemctl stop firewalld 使firewalld服務再也不開機啓動 systemctl disable firewalld
yum install -y iptables-services
機器B [root@yong-02 ~]# systemctl start iptables 機器C [root@yong-03 ~]# systemctl start iptables
機器B [root@yong-02 ~]# systemctl start iptables [root@yong-02 ~]# systemctl enable iptables Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service. [root@yong-02 ~]# iptables -F [root@yong-02 ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 肯定 ] [root@yong-02 ~]# iptables -nvL Chain INPUT (policy ACCEPT 74 packets, 4884 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 42 packets, 3952 bytes) pkts bytes target prot opt in out source destination 機器C同上
[root@yong-01 ~]# iptables -nvL Chain INPUT (policy ACCEPT 27 packets, 1888 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 20 packets, 1968 bytes) pkts bytes target prot opt in out source destination
setenforce 0 //臨時關閉selinux getenforce //查看selinux是否關閉 爲了保險起見,在配置文件中永久關閉selinux vi /etc/selinux/config SELINUX=enforcing更改成SELINUX=disabled
NAT模式搭建web
[root@yong-01 ~]# yum install -y ipvsadm
[root@yong-01 ~]# 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 //假裝操做,否則不能轉發rs的數據 echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects //假裝操做,否則不能轉發rs的數據 # 注意區分網卡名字,dir機器的兩塊網卡分別爲ens33和ens37 echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects # director 設置nat防火牆 iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.180.0/24 -j MASQUERADE //MASQUERADE實現同網段的機器去上網,路由器使用的就是這個功能 # director設置ipvsadm IPVSADM='/usr/sbin/ipvsadm' //設置一個變量,方便下面命令引用 $IPVSADM -C //清空規則 $IPVSADM -A -t 192.168.142.144:80 -s lc -p 3 //用來定義lvs 的模式;wlc,爲算法,能夠按需求選擇 lvs 裏面適合的算法 $IPVSADM -a -t 192.168.142.144:80 -r 192.168.180.135:80 -m -w 1 //小規則,-r 指定dir機器IP,-m 指定nat模式,-w指定rs權重 $IPVSADM -a -t 192.168.142.144:80 -r 192.168.180.138:80 -m -w 1 //小規則,-r 指定dir機器IP,-m 指定nat模式,-w指定rs權重
[root@yong-01 ~]# sh /usr/local/sbin/lvs_nat.sh
[root@yong-02 ~]# vim /usr/share/nginx/html/index.html [root@yong-02 ~]# curl localhost yongge02.
[root@yong-03 ~]# vim /usr/local/nginx/html/index.html [root@yong-03 ~]# curl localhost yongge03.
[root@yong-01 ~]# curl 192.168.142.144 yongge02. [root@yong-01 ~]# curl 192.168.142.144 yongge03.
[root@yong-01 ~]# iptables -t nat -nvL Chain PREROUTING (policy ACCEPT 29 packets, 5245 bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 25 packets, 1610 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 1 76 MASQUERADE all -- * * 192.168.180.0/24 0.0.0.0/0
[root@yong-01 ~]# 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.142.144:80 rr -> 192.168.180.135:80 Masq 1 0 6 -> 192.168.180.138:80 Masq 1 0 6