Cấu hình và thử nghiệm LbaaS, VPNaaS trong OpenStack

Giới thiệu

Bài này nối tiếp bài hướng dẫn cài đặt IceHouse với Neutron GRE tunnel tại địa chỉ sau đây Hướng dẫn cài đặt OpenStack Icehouse 3 Nodes

Nay mình tiếp tục chia sẽ cách cấu hình và thử nghiệm hai tính năng mở rộng trong Neutron là Load Balancing as a Service (LbaaS) và VPN as a Service (VPNaaS). Ngoài ra còn tính năng Firewall as a Service (FwaaS), hiện tại do trùng hợp khá nhiều với Security Group nên mình không giới thiệu, nếu ai muốn tìm hiểu thì có thể liên hệ thêm.

Mô hình thử nghiệmneutron_vpn_lb

 
Mô hình bao gồm 2 vùng mạng:

– 10.196.200.0/24: vùng mạng ra Internet, dùng để kết nối  API network (controller) và Public network (network)

-10.196.201.0/24: vùng mạng riêng, dùng để kết nối Management network (4 server) và  Tenant network (network-compute1, network-compute2).

Cài đặt và cấu hình LbaaS, VPNaaS

  • Tại Network server, cài đặt các gói

apt-get install openswan neutron-plugin-vpn-agent neutron-lbaas-agent -y

Trong quá trình cài đặt , openswan sẽ hỏi bạn có tạo certificate X.509 để bảo mật các kết nối IPSec dùng cho OpenVPN sau này hay không, chọn No rồi Enter.

  • Tạo certificate X.509 tại Network server

dpkg-reconfigure openswan

+ Chọn Yes để restart openswan. openswan_1

+Chọn Yes để tạo certificate X.509 openswan_2

+Chọn crete để tạo tạo certificate openswan_3

+Chọn độ dài mặc định cho khóa RSA là 2048bit openswan_4

+Chọn Yes để tạo self-signed certificate openswan_5

+Điền tên nước, vd: VN openswan_6 +Điền tên bang/tỉnh, vd: DN

openswan_7

+Điền tên tỉnh, vd: DN

openswan_8

+Điền tên tổ chức/cty, vd: DSP

openswan_9

+Điền tên bộ phận hoạt động, vd: IT

openswan_10

+Điền tên chung (common name), vd: openstack.blogit.edu.vn

openswan_11

+Điền địa chỉ email, vd: vuht@blogit.edu.vn

openswan_12

  •  Cấu hình file /etc/neutron/vpn_agent.ini tại Network server

[DEFAULT]
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

 
[vpnagent]
vpn_device_driver = neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver

 
[ipsec]
ipsec_status_check_interval = 60

  • Cấu hình file /etc/neutron/lbaas_agent.ini tại Network server

[DEFAULT]
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
device_driver = neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver

  • Cấu hình file /etc/neutron/neutron.conf tại Network server và Controller server

[DEFAULT]
...
service_plugins = router, neutron.services.loadbalancer.plugin.LoadBalalancerPlguin,neutron.vpn.plugin.VPNDriverPlugin
...
[service_providers]
service_provider=LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
service_provider=VPN:openswan:neutron.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default

Lưu ý:  các dòng cấu hình trong [service_providers] có thể đã tồn tại sẵn, nên kiểm tra kỹ trước khi thêm dòng cấu hình mới.

  • Khởi động lại các dịch vụ Neutron

+Tại Controller server

service neutron-server restart

+Tại Network server

service neutron-lbaas-agent restart
service neutron-vpn-agent restart
service neutron-dhcp-agent restart
service neutron-metadata-agenr restart
service neutron-plugin-openvswitch-agent restart

Lưu ý: Sau khi cài đặt vpn-agent, dịch vụ neutron-l3-agent sẽ bị stop, điều này không ảnh hưởng đến tính năng l3 của neutron. 

Thử nghiệm LbaaS

  • Mục tiêu: thử nghiệm tính năng load balancer đối với 2 instance chạy web thông qua một VIP (Virtual IP).
  • Tạo vùng mạng riêng int_net có subnet 1.1.1.0/24 kết nối với mạng ext_net thông qua router
  • Launch 2 instance dùng Ubuntu 12.04 imagekết nối với int_net, sau đó cấp floating IP cho từng instance. Lưu ý rằng phải kết nối được với 2 instance thông qua http (80) và ssh(22) bằng cách thiết lập trong Security Group.

instance_lbaas

+Kiểm tra kết nối trong Network Topology
network_topo_lbaas

 

  • Kết nối tới mỗi instance, cài đặt dịch vụ Apache2, sửa đổi file /var/www/index.html để nhận diện mỗi web server. Ví dụ khi kết nối đến web server 1

web_server_1

  •  Trong giao diện Load Balancer, tạo http-pool với các thông số như hình sau:

http-pool

  • Thêm VIP cho http-pool vừa tạo, với các thông số:
  • add-vipTạo monitor

create-monitor

  • Thêm monitor vừa tạo vào http-pool
  • Thêm 2 instance Ubuntu-demo-1 và Ubuntu-demo-2 đã tạo ở trên vào danh sách member

add-member

Cấp floating IP cho VIP đã tạo ở trên.floating-vip

  • Ta sẽ thử nghiệm tính năng lb bằng cách truy cập 2 web server trên thông qua VIP.

lb-1

  • Như đã thấy ở hình trên, các truy cập sẽ được trỏ lần lượt đến web server 1 rồi đến web server 2.
  • Thử nghiệm trường hợp một trong 2 web server có sự cố, có thể tắt một trong 2 hoặc đơn giản hơn là thiết lập thông số weight trong load balacer member thành 0

shutdown-lb

  • Tiến hành truy cập lại vào VIP

lb-2

  • Sau khi một web server có sự cố, mọi truy cập sẽ được chuyển hướng đến web server còn lại (web server 2)

Thử nghiệm VPNaaS

  • Mục tiêu: Kết nối 2 vùng mạng riêng với nhau bằng VPN site-to-site
  • Tạo vùng mạng riêng int_net_2 có subnet 2.2.2.0/24 kết nối với mạng ext_net thông qua router2
  • Launch  instance client-site-1 kết nối với int_net client-site-2 kết nối với int_net_2. Lưu ý rằng security group của 2  instance này phải cho phép ping.

client-site

  • Thử nghiệm ping từ client-site-1 sang client-site-2

ping-1

  • Kết quả cho thấy không thể kết nối.
  • Trong mục IKE Policies của VPN, tạo ike-pool-1 với các cấu hình mặc định

ike-pool-1

  • Tương tự, tạo ike-pool-2, ta có 2 ike pool như sau

ike-pool

 

  • Trong mục IPSec Policies, tạo ipsec-pool-1

ipsec-pool-1

  • Tương tự, tạo ipsec-pool-2, ta có 2 ipsec-pool như sau

ipsec-pool

  • Trong mục VPN Service, ta tạo vpn-service-1

vpn-s-1

  • Tạo tiếp vpn-service-2

vpn-s-2

  • Trong mục IPSec Site Connections, tạo site1-to-site2 

ipsec-site-1

  • Tạo site2-to-site1

ipsec-site-2

  • Kiểm tra kết nối giữa instance client-site-1 và client-site-2

connect-site-to-site

  • Như vậy là ta đã thử nghiệm cơ bản thành công 2 tính năng LbaaS và VPNaaS. Mong các bạn cảm thấy hứng thú và vui vẻ với OpenStack :).

1 bình luận về “Cấu hình và thử nghiệm LbaaS, VPNaaS trong OpenStack

  1. Bạn cho mình hỏi chút, khi mình cài đến bước này:
    Cấu hình file /etc/neutron/neutron.conf tại Network server và Controller server
    [DEFAULT]

    service_plugins = router, neutron.services.loadbalancer.plugin.LoadBalalancerPlguin,neutron.vpn.plugin.VPNDriverPlugin

    [service_providers]
    service_provider=LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
    service_provider=VPN:openswan:neutron.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default

    Khi mình thêm dòng : neutron.services.loadbalancer.plugin.LoadBalalancerPlguin,neutron.vpn.plugin.VPNDriverPlugin
    ở trong service_plugins =
    khi restart lại thì dashboard ko hoạt động được nữa? bạn giúp mình đc chứ?

Bình luận