LoginSignup
5
5

More than 5 years have passed since last update.

LVSの設定方法2

Last updated at Posted at 2016-03-05

in Host

vi playbook.yml
playbook.yml
---
- hosts: lvs
  sudo: yes
  tasks:
    - name: install ipvsadm
      yum: name=ipvsadm state=latest
    - name: install keepalived
      yum: name=keepalived state=latest
    - name: start keepalived and enabled
      service: name=keepalived state=started enabled=yes
- hosts: web
  sudo: yes
  tasks:
    - name: install apache
      yum: name=httpd state=latest
    - name: start apace and enabled
      service: name=httpd state=started enabled=yes
ansible-playbook -i hosts playbook.yml

Set up keepalived in lvs1

ssh lvs1
sudo vi /etc/keepalived/keepalived.conf
/etc/keepalived/keepalived.conf
vrrp_instance  VI_1{
    state MASTER
    interface eth1
    virtual_router_id 61
    priority 101
    advert_int 3
    nopreempt
    lvs_sync_daemon_interface eth1
    unicast_peer {
        192.168.43.62
    }
    virtual_ipaddress {
        192.168.43.200 dev eth1
    }
}

virtual_server_group lvs_test {
    192.168.43.200 80
}

virtual_server group lvs_test {
    lvs_sched rr
    lvs_method DR
    protocol TCP
    virtualhost helth
    real_server 192.168.43.63 80 {
        weight 1
        inhibit_on_failure
        HTTP_GET {
            connect_port 80
            connect_timeout 5
        }
    }

    real_server 192.168.43.64 80 {
        weight 1
        inhibit_on_failure
        HTTP_GET {
            connect_port 80
            connect_timeout 5
        }
    }
}
sudo service keepalived restart
sudo ipvsadm -Ln

スクリーンショット 2016-03-05 23.07.39.png

sudo ip -4 addr

スクリーンショット 2016-03-05 23.10.14.png

sudo vi /etc/sysctl.conf
/etc/sysctl.conf
net.ipv4.ip_forward = 1
sudo sysctl -p

Set up keepalived in lvs2

ssh lvs2
sudo vi /etc/keepalived/keepalived.conf
/etc/keepalived/keepalived.conf
vrrp_instance  VI_1{
    state BACKUP
    interface eth1
    virtual_router_id 62
    priority 100
    advert_int 3
    nopreempt
    lvs_sync_daemon_interface eth1
    unicast_peer {
        192.168.43.61
    }
    virtual_ipaddress {
        192.168.43.200 dev eth1
    }
}

virtual_server_group lvs_test {
    192.168.43.200 80
}

virtual_server group lvs_test {
    lvs_sched rr
    lvs_method DR
    protocol TCP
    virtualhost helth
    real_server 192.168.43.63 80 {
        weight 1
        inhibit_on_failure
        HTTP_GET {
            connect_port 80
            connect_timeout 5
        }
    }

    real_server 192.168.43.64 80 {
        weight 1
        inhibit_on_failure
        HTTP_GET {
            connect_port 80
            connect_timeout 5
        }
    }
}
sudo service keepalived restart
sudo ipvsadm -Ln

スクリーンショット 2016-03-05 23.12.04.png

sudo ip -4 addr

スクリーンショット 2016-03-05 23.12.32.png

sudo vi /etc/sysctl.conf
/etc/sysctl.conf
net.ipv4.ip_forward = 1
sudo sysctl -p

Set Up in web1

ssh web1
sudo vi /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.43.200
NETMASK=255.255.255.255
NETWORK=192.168.43.200
BROADCAST=192.168.43.200
ONBOOT=yes
NAME=loopback-dsr
sudo service network restart
sudo ip -4 addr

スクリーンショット 2016-03-05 23.14.40.png

sudo vi /etc/sysctl.conf

Add parameter

/etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
sudo sysctl -p
  • app_ignoreを有効
  • loからARPリクエストを受け取ったとき、loに設定されているアドレスの情報だけを返す
  • arp_announceを有効
  • loからARPリクエストを送信するとき、ARPリクエストの送信元アドレスとして、loに設定されたアドレスを使うようにする

Set Up in web2

ssh web2
sudo vi /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.43.200
NETMASK=255.255.255.255
NETWORK=192.168.43.200
BROADCAST=192.168.43.200
ONBOOT=yes
NAME=loopback-dsr
sudo service network restart
sudo ip -4 addr

スクリーンショット 2016-03-06 16.55.49.png

sudo vi /etc/sysctl.conf

Add parameter

/etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
sudo sysctl -p
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5