Skip to the content.

Giới thiệu về Openstack Networking - Neutron và một số khái niệm liên quan

Tổng quan dịch vụ mạng của Openstack.

Neutron - là code name cho Openstack networking servive, sử dụng để cung cấp “kết nối mạng như là một dịch vụ”, được quản lý bởi các Openstack service khác. Nó có một API để người dùng hoặc các dịch vụ khác có thể tạo, quản lý các tài nguyên mạng như network, subnet, firewall, router,…

Openstack Networking (neutron) cho phép tạo và gán các interface được sử dụng bởi các dịch vụ khác đến mạng. Với kiến trúc plugable, các plug-in có thể được sử dụng để triển khai các thiết bị, phần mềm khác nhau. Điều này khiến Neutron có tính linh hoạt trong kiến trúc và triển khai.

Các thành phần của Neutron:

Openstack networking chủ yếu làm việc với Openstack compute để cung cấp kết nối mạng cho máy ảo.

Các khái niệm xung quanh dịch vụ Openstack Networking.

Openstack Networking (Neutron) quản lý tất cả các khía cạnh của hạ tầng mạng ảo(VNI) và mọi khía cạnh ở access layer của hạ tầng mạng vật lý trong môi trường Openstack. Openstack Networking cho phép các project tạo mô hình mạng ảo nâng cao mà có thể bao gồm các dịch vụ như là firewall, và VPN.

Dịch vụ mạng cung cấp các mạng, subnet và router như các đối tượng trìu tượng. Các đối tượng trìu tượng này có chức năng giống với các đối tượng vật lý của nó: network chứa subnet, router định tuyến các lưu lượng mạng giữa các subnet và network khác nhau.

Bất cứ thiết lập nào cho dịch vụ Networking đều có ít nhất một external network. External network không chỉ đơn giản là một mạng được định nghĩa ảo. Nó đại diện cho một khung để nhìn vào một lát cắt của mạng vật lý, mạng có thể truy cập bên ngoài phạm vi cài đặt của Openstack. Địa chỉ IP của mạng external network có thể được sử dụng bởi bất kỳ ai trên mạng bên ngoài này.

Ngoài việc sử dụng external network, mọi thiết lập cho dịch vụ networking có thể có một hoặc nhiều internal network(mạng nội bộ). Các máy ảo kết nối chung một internal network có thể giao tiếp với nhau, hoặc chúng có thể giao tiếp với các máy ảo ở các mạng khác nếu hai mạng này kết nốt cùng router(để thực hiện định tuyến giữa hai mạng).

Để mạng ở ngoài có thể kết nối đến các máy ảo ở mạng internal, và ngược lại, thì router giữa các network là cần thiết. Mỗi router sẽ có một cấu hình cho gateway mà được kết nối đến external network bằng một interface và một interface khác sẽ kết nối đến mạng internal. Như một router thật, các subnet hay network có thể truy cập các vm ở subnet khác nếu cùng kết nối đến một router, các máy ảo trong mạng internal cũng có thể truy cập mạng ngoài thông qua gateway được router cung cấp.

Ngoài ra, bạn có thể chỉ định định chỉ IP của external network cho port ở internal network. Port ở đây chỉ bất kỳ kết nối nào đến một subnet. Khi gán IP của external network cho một port của VM ở mạng internal, ta có thể kết nối đến máy ảo từ mạng ngoài thông qua IP được gán. Khái niệm này được gọi là floating IP.

Dịch vụ mạng cũng hỗ trợ security groups. Security groups cho phép quản trị viên định nghĩa các filewall rule theo nhóm. Một máy ảo có thể thuộc một hoặc nhiều security group, và dịch vụ Networking áp dụng các rule trong các security group để chạn hoặc bỏ chặn port, port ranges, hoăc các loại lưu lượng mạng cho máy ảo đó.

Mỗi plug-in lại có các khái niệm riêng của chúng. Có thể không quan trọng để vận hành VNI và Openstack, tuy nhiên, tìm hiểu những khái niệm này có thể sẽ giúp bạn để triển khai dịch vụ network.

Các loại mạng trong Openstack Networking

Provider Networks

Provider network cung cấp kết nối mạng layer 2 cho máy ảo với tùy chọn dịch vụ DHCP và metadata. Mạng này kết nối đến mạng layer 2 đã tồn tại ở datacenter, thường dùng Vlan để định danh và chia mạng.

Provider network cung cấp sự đơn giản, hiệu năng và độ tin cậy. Chỉ có Admin user mới có quyền chỉnh sửa Provider network vì nó yêu cầu cấu hình hạ tầng mạng vật lý.

Vì Provider network cung cấp kết nối mạng ở layer 2, do đó nó thiếu đi hỗ trợ các tính năng như router hay floating ip.

Việc sử dụng các thành phần của Openstack Networking để xử lý các hoạt động ở layer-3 sẽ làm ảnh hưởng khá nhiều đến hiệu năng và độ tin cậy của hệ thống. Sử dụng mạng provider, chỉ quản lý mạng layer-2, sẽ chuyển tất cả hoạt động layer-3 cho hạ tầng mạng vật lý xử lý để tăng hiệu năng và độ tin cậy.

Chỉ có người quản trị có thể cấu hình mạng provider.

Routed Provider Networks

Routed provider networks cung cấp kết nối ở layer 3 cho các máy ảo. Các network này map với những networks layer 3 đã tồn tại.

Cụ thể hơn , mạng này map tới các các mạng layer 2 đã được chỉ định làm provider network . Mỗi router có một gateway để làm nhiệm vụ định tuyến . . Routed provider networks tất nhiên sẽ có hiệu suất thấp hơn so với provider networks.

Self-service Network

Self-service network là các mạng chủ yếu cho phép các project chung(non-privileged) có thể quản lý các mạng mà không liên quan đến quản trị viên. Mạng này hoàn toàn ảo và cần các router ảo để tương tác với mạng provider và mạng bên ngoài như Internet. Mạng Self-service thường cung cấp dịch vụ DHCP và metadata cho máy ảo.

Trong hầu hết các trường hợp, mạng self-service sử dụng các giao thức overlay như VXLAN hay GRE vì chúng hỗ trợ nhiều mạng hơn là phân đoạn mạng layer-2 sử dụng VLAN. Hơn nữa, Vlan cần có cấu hình bổ xung từ hạ tầng mạng vật lý.

Mạng self-service IPv4 thường sử dụng dải địa chỉ IP private và tương tác với mạng provider thông qua Source NAT hoặc PAT trên router ảo. Floating Ip cho phép truy cập máy ảo trong mạng self-service từ mạng provider thông qua destination NAT. Mạng self service IPv6 luôn luôn sử dụng dải địa chỉ IP public và tương tác với mạng provider thông qua router ảo và static route.

Dịch vụ Networking triển khai router sử dụng L3(layer-3) agent mà nằm trên ít nhất một network node. Trái với mạng provider mà kết nối máy ảo đến hạ tầng mạng vật lý ở layer2, mạng self-service phải đi qua một L3 agent. Do đó, việc quá tải hay lỗi xảy ra ở L3 agent hoặc network node có thể ảnh hưởng nhiều đến hiệu năng, chất lượng của mạng self-service và các máy ảo sử dụng chúng. Vì thế nên cần cân nhắc việc triển khai một hoặc hiều tính năng cân bằng tải để tăng tính chịu lỗi và hiệu năng của mạng.

Isolate and Overlay

Người dùng thường tạo các mạng để sử dụng theo từng project. Mặc định thì các mạng này bị cô lập hoàn toàn và không chia sẻ với các project khác. Để chạy chung trên hạ tầng mạng mà vẫn có thể cô lập các mạng với nhau, Openstack networking hỗ trợ các công nghệ cô lập và overlay sau: Flat: Các máy ảo được đặt trên cùng một mạng, có thể là chia sẻ mạng với host. Không có VLAN và không có sự chia phân đoạn mạng.

VLAN: Mạng cho phép người dùng tạo nhiều mạng provider và project sử dụng VLAN IDs mà tương ứng với các VLAN có trong hạ tầng mạng vật lý. Điều này cho phép các máy ảo có thể giao tiếp với nhau băng qua môi trường mạng. Nó cũng có thể giao tiếp với các server vật lý, firewall, và các hạ tầng mạng khác mà nằm trên cùng VLAN layer2.

GRE và VXLAN: là các giao thức đóng gói gói tin trong giao tiếp giữa các máy ảo, tạo ra một lớp mạng ảo dựa trên lớp mạng vật lý. Router được sử dụng để kết nối mạng này với mạng bên ngoài, bao gồm Internet, provider router cũng cung cấp khả năng kết nối đến máy ảo từ mạng ngoài sử dụng Floating Ip.

Một số khái niệm khác cần nắm rõ.

Để tìm hiểu được Openstack Networking thì cần biết một số khái niệm cơ bản trong network ví dụ như ethernet, IP, DHCP, VLAN, Subnet, ARP, mô hình OSI, một số giao thức mạng cơ bản(có thể tìm hiểu thêm tại đây), các thành phần trong một mô hình mạng như switch, router, firewall, loadbalancers(có thể tìm hiểu thêm tại đây),… Bên cạnh đó, chúng ta cần tìm hiểu thêm một số khái niệm nâng cao được sử dụng bởi dịch vụ Openstack Network dưới đây.

Các giao thức mạng Overlay(tunnel).

Tunneling (đường hầm ) là cơ chế giúp truyền các gói tin thông qua một mạng không tương thích. Nó cho phép người dùng mạng có quyền truy cập các mạng bị từ chối hoặc không an toàn. Mã hóa dữ liệu có thể được sử dụng để truyền gói tin, đảm bảo dữ liệu người dùng được đóng gói xuất hiện như công khai mặc dù nó riêng tư, và dễ dàng truyền qua mạng không an toàn.

Gerneric routing encapsulation (GRE)

Virtual extensible local area network (VXLAN)

Generic Network Virtualization Encapsulation (GENEVE)

(Tìm hiểu thêm tại đây)

Network Namespace.

Linux network namespace.

Virtual routing and forwarding (VRF)

Network Address Translation (NAT)

Hệ thống cấp bậc của các dịch vụ và agent.

Server

Plug-in

Agent

Layer 2 (Ethernet and Switching)

Layer 3 (IP and Routing)

Khác

Service

Routing service

VPNaaS

Virtual Private Network as a Service là một neutron extention mà giới thiệu bộ tính năng VPN

LBaaS

Load-Balancer-as-a-Service API quy định và cấu hình cân bằng tải. Việc triển khai tham chiếu dựa trên phần mềm cân bằng tải HAproxy.

FWaaS

Firewall-as-a-Service (FWaaS) API cho phép áp dụng tường lửa vào đối tượng Openstack như project, router, hay router port.

Nguồn tài liệu: