نصب Open vSwitch بر روی Rocky Linux 8|AlmaLinux 8

اگر مدتی در اکوسیستم لینوکس بوده اید، اصطلاح OVS یا Open vSwitch باید زنگ خطر را به صدا درآورد. در محیط های مجازی سازی و رایانش ابری مانند OpenStack، Open vSwitch یک جزء کلیدی در توابع شبکه است. اگر کامپوننت در زمان نصب انتخاب شده باشد، دسترسی به شبکه های خارجی و ارتباطات عمومی بین VM دارای لایه OVS است.

Open vSwitch یا به اختصار OVS یک سوئیچ چندلایه مجازی پیشرفته و منبع باز است. برای استفاده جدی در تولید با پشتیبانی از پروتکل های استاندارد و رابط های مدیریتی (به عنوان مثال NetFlow، LACP، sFlow، IPFIX، RSPAN، CLI، و 802.1ag) ایجاد شده است. Open vSwitch برای پشتیبانی از توزیع در چندین سرور فیزیکی مشابه VMware’s vNetwork distributed vswitch یا Cisco’s Nexus 1000V طراحی شده است. در مقایسه با پل های نرم افزار استاندارد لینوکس، دارای ویژگی های بسیاری است.

نصب Open vSwitch بر روی Rocky Linux 8|AlmaLinux 8

نصب Open vSwitch بر روی Rocky Linux 8|AlmaLinux 8

Open vSwitch از ویژگی های زیر پشتیبانی می کند:

  • قابلیت مشاهده در ارتباطات بین VM از طریق آینه های NetFlow، sFlow(R)، IPFIX، SPAN، RSPAN و GRE
  • LACP (IEEE 802.1AX-2008)
  • مدل استاندارد VLAN 802.1Q با ترانکینگ
  • جاسوسی چندپخشی
  • IETF Auto-Attach SPBM و پشتیبانی اولیه LLDP مورد نیاز
  • نظارت بر لینک BFD و 802.1ag
  • STP (IEEE 802.1D-1998) و RSTP (IEEE 802.1D-2004)
  • کنترل QoS ریز دانه
  • پشتیبانی از HFSC qdisc
  • براساس traffic policin رابط VM
  • اتصال NIC با متعادل کننده بار منبع-MAC، پشتیبان گیری فعال و هش L4
  • پشتیبانی از پروتکل OpenFlow (از جمله پسوندهای زیادی برای مجازی سازی)
  • پشتیبانی از IPv6
  • چندین پروتکل تونل زنی (GRE، VXLAN، STT، و Geneve، با پشتیبانی IPsec)
  • پروتکل پیکربندی از راه دور با اتصالات C و Python
  • گزینه های موتور فوروارد هسته و فضای کاربر
  • خط لوله حمل و نقل چند جدولی با موتور ذخیره جریان
  • انتقال انتزاع لایه برای سهولت انتقال به پلتفرم های نرم افزاری و سخت افزاری جدید

در این مقاله، نصب Open vSwitch را بر روی راکی ​​لینوکس 8 / AlmaLinux 8 انجام خواهیم داد. همچنین با ایجاد ماشین مجازی در پشته مجازی سازی KVM، نمایشی در مورد استفاده اولیه از آن انجام خواهد شد. اگر نصب را روی یک ماشین مجازی انجام می دهید، می توانید سناریوی آزمایشی ما را رد کنید.

نصب Open vSwitch بر روی Rocky Linux 8|AlmaLinux 8

دو گزینه نصب برای Open vSwitch در Rocky Linux 8 / AlmaLinux 8 وجود دارد:

  • Open vSwitch را روی Rocky Linux 8 / AlmaLinux 8 از منبع نصب کنید – ساخت بسته به صورت دستی از روی کد منبع
  • برای نصب Open vSwitch در Rocky Linux 8 / AlmaLinux 8 از RDO (OpenStack repos) استفاده کنید.

ما با دومی پیش خواهیم رفت زیرا به‌روزرسانی بسته‌ها پس از نصب ساده و آسان است. RDO جامعه‌ای از افرادی است که از OpenStack در CentOS، Fedora و Red Hat Enterprise Linux استفاده و اجرا می‌کنند. راکی لینوکس 8 و آلمالینوکس 8 مبتنی بر Red Hat هستند، مخازن باید به خوبی کار کنند.

مرحله 1 – مخزن RDO را به Rocky Linux 8|AlmaLinux 8 اضافه کنید

مخازن RDO RPM به طور پیش فرض در Rocky Linux 8 / AlmaLinux 8 در دسترس نیستند، ما باید مخازن را به صورت دستی اضافه کنیم و سپس Open vSwitch را انجام دهیم.

آخرین نسخه OpenStack در زمان نوشتن این مقاله Xena است . اگر می خواهید از مخازن قدیمی تر استفاده کنید، می توانید این کار را انجام دهید.

برای افزودن مخزن RDO OpenStack به سیستم خود دستورات زیر را اجرا کنید:

sudo dnf install -y https://repos.fedorapeople.org/repos/openstack/openstack-yoga/rdo-release-yoga-1.el8.noarch.rpm

تأیید کنید که نصب با موفقیت انجام شده است. شما باید خروجی مشابه این بگیرید:

Dependencies resolved.
======================================================================================================================================================================================================
 Package                                          Architecture                                Version                                         Repository                                         Size
======================================================================================================================================================================================================
Installing:
 rdo-release                                      noarch                                      yoga-1.el8                                      @commandline                                       16 k

Transaction Summary
======================================================================================================================================================================================================
Install  1 Package

Total size: 16 k
Installed size: 12 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                              1/1
  Installing       : rdo-release-yoga-1.el8.noarch                                                                                                                                                1/1
  Verifying        : rdo-release-yoga-1.el8.noarch                                                                                                                                                1/1

Installed:
  rdo-release-yoga-1.el8.noarch

Complete!

مخازن RDO در /etc/yum.repos.dدایرکتوری پیکربندی شده اند.

$ ls -lh /etc/yum.repos.d/rdo*
-rw-r--r--. 1 root root  338 Oct 13 17:16 /etc/yum.repos.d/rdo-release.repo
-rw-r--r--. 1 root root 3.7K Oct 13 17:16 /etc/yum.repos.d/rdo-testing.repo

مرحله ۲ – Open vSwitch را روی Rocky Linux 8|AlmaLinux 8 نصب کنید

نصب Open vSwitch در راکی ​​لینوکس 8 / AlmaLinux 8 اکنون می تواند از مخازن RDO که به تازگی اضافه کرده ایم انجام شود. برای نصب بسته وابستگی openvswitch و libibverbs دستورات زیر را اجرا کنید .

sudo yum install openvswitch libibverbs

تمام پیش دپ های مورد نیاز توسط نصب کننده از مخازن RDO و OS برای شما انجام می شود. هیچ نصب وابستگی در خارج از مخازن موجود وجود ندارد.

نصب و پیکربندی DarkTrace vSe…
Transaction Summary
======================================================================================================================================================================================================
Install  9 Packages

Total download size: 16 M
Installed size: 48 M
Is this ok [y/N]: y

هنگامی که درخواست ها را دریافت کردید، وارد کردن همه کلیدهای GPG مورد نیاز را بپذیرید.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                  22 MB/s |  16 MB     00:00
CentOS-8 - NFV OpenvSwitch                                                                                                                                            1.0 MB/s | 1.0 kB     00:00
Importing GPG key 0x9D2A76A7:
 Userid     : "CentOS NFV SIG (https://wiki.centos.org/SpecialInterestGroup/NFV) <security@centos.org>"
 Fingerprint: 3515 4228 1749 01BE FA8E 69A6 2146 5E28 9D2A 76A7
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-NFV
Is this ok [y/N]: y
Key imported successfully
OpenStack Yoga Repository                                                                                                                                             1.0 MB/s | 1.0 kB     00:00
Importing GPG key 0x764429E6:
 Userid     : "CentOS Cloud SIG (http://wiki.centos.org/SpecialInterestGroup/Cloud) <security@centos.org>"
 Fingerprint: 736A F511 6D9C 40E2 AF6B 074B F9B9 FEE7 7644 29E6
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
Is this ok [y/N]: y

جزئیات بسته را می توان با استفاده از rpmدستور با -qiگزینه های زیر بررسی کرد:

$ rpm -qi rdo-openvswitch
Name        : rdo-openvswitch
Epoch       : 1
Version     : 2.15
Release     : 2.el8
Architecture: noarch
Install Date: Mon Sep  5 15:46:29 2022
Group       : System Environment/Daemons
Size        : 0
License     : Public domain
Signature   : RSA/SHA256, Tue Jul 20 16:31:17 2021, Key ID f9b9fee7764429e6
Source RPM  : rdo-openvswitch-2.15-2.el8.src.rpm
Build Date  : Tue Jun  8 15:52:32 2021
Build Host  : x86-06.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CBS <cbs@centos.org>
Vendor      : CentOS
URL         : http://www.openvswitch.org
Summary     : Wrapper rpm to allow installing OVS with new versioning schemes
Description :
Wrapper rpm for the base openvswitch package

پس از نصب بسته ها، می توانید مخازن مورد استفاده را غیرفعال کنید:

sudo dnf config-manager --set-disabled centos-rabbitmq-38 ceph-pacific openstack-yoga centos-nfv-openvswitch

در حال به روز رسانی Open vSwitch

برای به روز رسانی بسته ها ابتدا مخازن غیرفعال را فعال کنید:

sudo dnf config-manager --set-enabled centos-rabbitmq-38 ceph-pacific openstack-yoga centos-nfv-openvswitch
sudo dnf update openvswitch libibverbs

مرحله 3 – سرویس openvswitch را شروع کنید

پس از نصب باید سرویس openvswitch را به صورت دستی شروع کنیم. در سیستم های مبتنی بر ردهت، مدیریت خدمات مسئولیت کامل شماست.

$ sudo systemctl enable --now openvswitch
Created symlink /etc/systemd/system/multi-user.target.wants/openvswitch.service → /usr/lib/systemd/system/openvswitch.service.

بررسی وضعیت سرویس با استفاده از systemctlدستور:

$ systemctl status openvswitch
● openvswitch.service - Open vSwitch
   Loaded: loaded (/usr/lib/systemd/system/openvswitch.service; enabled; vendor preset: disabled)
   Active: active (exited) since Sat 2022-01-08 22:54:50 CET; 16s ago
  Process: 67524 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 67524 (code=exited, status=0/SUCCESS)

Jan 08 22:54:50 ovirt-node-01.hirebestengineers.com systemd[1]: Starting Open vSwitch...
Jan 08 22:54:50 ovirt-node-01.hirebestengineers.com systemd[1]: Started Open vSwitch.

این ovs-vsctlابزار برای پرس و جو و پیکربندی ovs-vswitchd ارائه شده است. این یک رابط سطح بالا برای پیکربندی پایگاه داده پیکربندی Open vSwitch فراهم می کند.

برای بررسی نسخه OVS دستور زیر را اجرا کنید

$ ovs-vsctl show
748c9a24-9d53-401b-b1c7-41bb233f2fa5
    ovs_version: "2.15.6"

برای چاپ یک پیام راهنمای مختصر به کنسول، از موارد زیر استفاده کنید:

$ ovs-vsctl --help

مرحله 4 – پل OVS را ایجاد و پیکربندی کنید

در یک پیکربندی شبکه معمولی که از OVS استفاده می کند، یک پل ایجاد شده مستقیماً به یک رابط شبکه اختصاصی در سیستم میزبان متصل می شود. این پل و مهمانان متصل را به استفاده از رابط میزبان محدود می کند.

برای اهداف نمایشی، ما باید یک پل نرم افزاری ایجاد کنیم که به رابط میزبان خاصی متصل یا متصل نباشد. با این کار، پشته TCP/IP در سیستم میزبان می‌تواند مسیریابی ترافیک خروجی را به رابط مناسب بر اساس IP مقصد یا زیرشبکه مدیریت کند.

مسیریابی IP در کرنل را فعال کنید

قبل از ایجاد یک پل، اجازه دهید مسیریابی IP را با تنظیم پارامترهای هسته در زمان اجرا با استفاده از sysctl.

sudo tee /etc/sysctl.d/iprouting.conf<<EOF
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
EOF

تنظیمات را اعمال کنید:

sudo sysctl --system

تأیید تنظیمات جدید:

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

$ sysctl net.ipv6.conf.all.forwarding
net.ipv6.conf.all.forwarding = 1

ایجاد پل OVS

مرحله بعدی ایجاد یک پل OVS است. نام آن را ovs-br0 می گذاریم . برای تداوم پیکربندی شبکه، یک فایل در پوشه اسکریپت های شبکه ایجاد می کنیم. دارای مطالبی است که در بخش کد زیر به اشتراک گذاشته شده است.

$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ovs-br0
DEVICE=ovs-br0
BOOTPROTO=none
ONBOOT=yes
TYPE=OVSBridge
DEVICETYPE=ovs
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
IPADDR=192.168.70.1
PREFIX=24

جایی که:

  • TYPE روی OVSBridge تنظیم شده است
  • DEVICETYPE روی ovs تنظیم شده است
  • نام پل ovs-br0 است
  • آدرس IP اختصاص داده شده 192.168.70.1/24 است

پیشنهاد ویژه قائم هاست سرور مجازی ایران با سیستم عامل های مختلف ویندوز و لینوکس ، همچنین با خرید هاست پرسرعت ایران می توانید از بالاترین سرعت ممکن بهرمند شوید ، جهت اطلاعات بیشتر و یا سوالات قبل از خرید از طریق ارسال تیکت به بخش فروش قائم هاست بصورت 24 ساعته با ما در ارتباط باشید.

پل OVS را با دستور ifup بالا بیاورید :

$ sudo ifup ovs-br0
$ ip link show dev ovs-br0
5: ovs-br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether a2:a9:f2:6d:7f:4f brd ff:ff:ff:ff:ff:ff

در اینجا اطلاعات آدرس IP همانطور که پیکربندی کردیم آمده است.

$ ip ad show dev ovs-br0
5: ovs-br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether a2:a9:f2:6d:7f:4f brd ff:ff:ff:ff:ff:ff
    inet 192.168.70.1/24 brd 192.168.70.255 scope global ovs-br0
       valid_lft forever preferred_lft forever
    inet6 fe80::a0a9:f2ff:fe6d:7f4f/64 scope link
       valid_lft forever preferred_lft forever

ما می‌توانیم از iptables برای هدایت ترافیک از طریق رابط اصلی از زیرشبکه شبکه مورد استفاده در پل استفاده کنیم.

sudo iptables -t nat -A POSTROUTING -o enp0s31f6 -s 192.168.70.0/24 -j MASQUERADE

برای ذخیره قوانین می توانیم دستور زیر را اجرا کنیم:

$ sudo /sbin/iptables-save > /etc/sysconfig/iptables
#To restore
$ sudo /sbin/iptables-save < /etc/sysconfig/iptables

اگر پل ما به یک رابط فیزیکی متصل بود، تنظیمات این رابط شبیه به زیر خواهد بود:

DEVICE=eth1
ONBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=ovs-br0

مرحله 5 – استفاده از پل در ماشین های مجازی لینوکس (KVM)

با پیکربندی پل OVS و آماده استفاده، می‌توانیم یک Test VM روی KVM ایجاد کنیم و کارکرد آن را تأیید کنیم.

ایجاد تصویر VM:

$ sudo virt-builder centos-8.2 --format qcow2 \
  --size 40G -o /var/lib/libvirt/images/centos8.qcow2
[   1.0] Downloading: http://builder.libguestfs.org/centos-8.2.xz
######################################################################################################################################################################### 100.0%
[  10.8] Planning how to build this image
[  10.8] Uncompressing
[  15.6] Resizing (using virt-resize) to expand the disk to 40.0G
[  45.0] Opening the new disk
[  50.0] Setting a random seed
[  50.0] Setting passwords
virt-builder: Setting random password of root to 8Udxd5HbuAtfNIr6
[  51.0] Finishing off
                   Output file: /var/lib/libvirt/images/centos8.qcow2

VM را از تصویر سیستم عامل ایجاد شده ایجاد کنید.

sudo virt-install \
  --name centos8 \
  --ram 2048 \
  --vcpus 1 \
  --disk path=/var/lib/libvirt/images/centos8.qcow2 \
  --os-type linux \
  --os-variant rhel8.0 \
  --network=bridge:ovs-br0,model=virtio,virtualport_type=openvswitch \
  --graphics none \
  --serial pty \
  --console pty \
  --boot hd \
  --import

پیکربندی اطلاعات آدرس IP در ماشین مجازی:

$ vim /etc/sysconfig/network-scripts/ifcfg-enp1s0
NAME="enp1s0"
DEVICE="enp1s0"
ONBOOT="yes"
NETBOOT="yes"
BOOTPROTO="none"
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPADDR=192.168.70.2
PREFIX=24
GATEWAY=192.168.70.1
DNS1=8.8.8.8

رابط شبکه را در ماشین مجازی فعال کنید:

[root@localhost ~]# ifup enp1s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

جزئیات آدرس IP را بررسی کنید

# ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:36:ad:26 brd ff:ff:ff:ff:ff:ff
    inet 192.168.70.3/24 brd 192.168.70.255 scope global noprefixroute enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe36:ad26/64 scope link
       valid_lft forever preferred_lft forever

تست دسترسی به اینترنت

# ping -c 2 google.com
PING google.com (142.250.185.142) 56(84) bytes of data.
64 bytes from fra16s50-in-f14.1e100.net (142.250.185.142): icmp_seq=1 ttl=118 time=5.47 ms
64 bytes from fra16s50-in-f14.1e100.net (142.250.185.142): icmp_seq=2 ttl=118 time=5.55 ms

--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 5.465/5.507/5.549/0.042 ms

این تأیید می کند که نصب OVS ما موفقیت آمیز بوده است. اگر باید یک رابط سیستم عامل مهمان KVM موجود را برای استفاده از پل Open vSwitch پیکربندی کنید، سپس فایل پیکربندی بند XML را برای شامل موارد زیر ویرایش کنید:

<interface type="bridge">
  <source bridge="ovs-br0"/>
  <virtualport type='openvswitch'/>
  <model type="virtio"/>
  <driver name="vhost"/> 
</interface

هنگام کار با فایل XML به صورت محلی، VM مهمان را با استفاده از دستورات virsh دوباره تعریف کنید:

sudo virsh undefine <kvm-guest-domain>
sudo virsh define <kvm-guest-domain-xml-file>

و در آخر، مهمان KVM را مجددا راه اندازی کنید تا تغییرات اعمال شوند.

sudo virsh destroy <kvm-guest-domain>
sudo virsh start <kvm-guest-domain>

سایر مطالب مرتبط »

5/5 - (22 امتیاز)