1. Tổng quan Open Vswitch
1.1. Open Vswitch là gì?
-
Cũng giống như Linux Bridge, OpenVSwitch là phần mềm cung cấp virtual switch cho các giải pháp ảo hóa network.
-
Là phần mềm mã nguồn mở, sử dụng cho ảo hóa vswitch trong môi trường ảo hóa của server.
-
Open Vswitch có thể forwards traffic giữa các máy VM trên cùng một máy chủ vật lý và forwards traffic giữa các máy VM và máy vật lý.
-
OpenVSwitch được thiết kế tương thích với các switch hiện đại.
-
Open vSwitch phù hợp làm việc như là một switch ảo trong môi trường máy ảo VM. Ngoài việc kiểm soát và có khả năng hiển thị giao diện chuẩn cho các lớp mạng ảo, nó được thiết kế để hỗ trợ phân phối trên nhiều máy chủ vật lý. Open vSwitch hỗ trợ nhiều công nghệ ảo hóa Linux-based như là Xen/Xen server, KVM và Virtual Box.
-
OpenVSwitch có thể chạy trên các nền tảng Linux, FreeBSD, Windows, non-POSIX embedded Systems,…
1.2. Các tính năng
Phiên bản hiện tại của Open vSwitch hỗ trợ những tính năng sau:
-
Hỗ trợ tính năng VLAN chuẩn 802.1Q với các cổng trunk và access như một switch layer thông thường.
-
Hỗ trợ giao diện NIC bonding có hoặc không có LACP trên cổng uplink switch.
-
Hỗ trợ NetFlow, sFlow(R), và mirroring để tăng khả năng hiển thị.
-
Hỗ trợ cấu hình QoS (Quality of Service) và các chính sách thêm vào khác.
-
Hỗ trợ tạo tunnel GRE, VXLAN, STT và LISP.
-
Hố trợ tính năng quản lý các kết nối 802.1aq
-
Hỗ trợ OpenFlow các phiên bản từ 1.0 trở lên.
-
Cấu hình cơ sở dữ liệu với C và Python.
- Hoạt động forwarding với hiệu suất cao sử dụng module trong nhân Linux.
-
1.3. Các thành phần
Một số thành phần chính của Open Vswitch:
[
- ovs-vswitchd: đóng vai trò daemon switch thực hiện các chức năng chuyển mạch kết hợp với module trong kernel Linux cho flow-based swtiching.
- ovsdb-server: database server mà ovs-vswitchd truy vấn tới để lấy cấu hình
- ovs-dpctl: công cụ cấu hình module chuyển mạch trong kernel.
- ovs-vsctl: công cụ thực hiện truy vấn và cập nhật các cấu hình của ovs-vswitchd.
- ovs-appctl: công cụ gửi các lệnh tới Open Vswitch deamon.
- ovs-ofctl: công cụ truy vấn và điều khiển chuyển mạch Open Flow và controller.
- ovs-pki: Công cụ cho phép tạo và quản lý các public-key cho các Open Flow switch. ovs-testcontroller: một OpenFlow controller đơn giản có thể quản lý một số switch ảo thông qua giao thức Open Flow, khiến chúng hoạt động như các switch lớp 2 hoặc như hub. Phù hợp để kiểm tra các mạng Open Flow ban đầu.
2. LAB Làm việc với OpenvSwitch cơ bản
Yêu cầu :
- OS : máy ảo centos 7.5
- Máy ảo kết nối với bridge được tạo OVS
- Máy ảo có thể kết nối ra ngoài nhờ bridge
2.1 . Cài đặt OpenvSwtich trên Centos 7
yum install wget openssl-devel python-sphinx gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool python-twisted-core python-zope-interface PyQt4 desktop-file-utils libcap-ng-devel groff checkpolicy selinux-policy-devel python-six -y
useradd ovs
su - ovs
mkdir -p ~/rpmbuild/SOURCES
wget http://openvswitch.org/releases/openvswitch-2.9.2.tar.gz
cp openvswitch-2.9.2.tar.gz ~/rpmbuild/SOURCES/
tar xfz openvswitch-2.9.2.tar.gz
rpmbuild -bb --nocheck openvswitch-2.9.2/rhel/openvswitch-fedora.spec
exit
rpm -i /home/ovs/rpmbuild/RPMS/x86_64/openvswitch-2.9.2-1.el7.x86_64.rpm
Kiểm tra hoạt động của OpenvSwitch
systemctl start openvswitch.service
systemctl enable openvswitch.service
systemctl status openvswitch.service
ovs-vsctl -V
- Load module IP forwarding trên Centos
cat <<EOF > /etc/sysctl.conf net.ipv4.ip_forward = 1 EOF sysctl -p /etc/sysctl.conf
2.2 : Khởi tạo bridge và gắn Port
- Tạo một bridge
ovs_br_10
` ovs-vsctl add-br ovs_br_10` - Gắn Port
ens224
vào bridge
2.3 : Cấu hình cho Interface và bridge
Sau khi tạo một một bridge, có thể định nghĩa thêm các cấu hình mới cho bridge, sử dụng các config của một network interface có sẵn . Định dạng file khuyên dùng : ifcfg-BRIDGE_NAME-NIC_NAME
- File cấu hình của cho bridge : ovs_br_10
DEVICE="ovs_br_1" TYPE="OVSBridge" SLAVE="yes" BOOTPROTO="dhcp" IPV6INIT="no" NM_CONTROLLED="yes" ONBOOT="yes" DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="yes"
- Sau khi tạo một file cấu hình cho bridge , thì phải cấu hình lại cho port ens37 ( card ) đang được birdging
DEVICE="ens37"
ONBOOT="yes"
TYPE="OVSPort"
DEVICETYPE="ovs"
OVS_BRIDGE="ovs_br_10"
-
Khởi động lại network service áp dụng cấu hình
service network restart
-
Kiểm tra IP trên interface
ovs_br_1
2.4 : Cấu hình trên máy ảo
-
Cấu hình card mạng cho máy ảo
cirros
-
Kiểm tra DHCP trên mạng mạng máy ảo
- Khởi tạo một network mới trong libvirt ```` cat «EOF > /etc/libvirt/qemu/networks/br-tun.xml
EOF virsh net-define br-tun.xml virsh net-start ovs-tun virsh net-autostart ovs-tun ````