Iran Open Source (IOS)
2.62K subscribers
6.69K photos
147 videos
1.69K files
1.16K links
کانال IOS:
💎 امنیت سایبری، امنیت اطلاعات، امنیت شبکه
💎 دوره‌های تخصصی شبکه، امنیت و دیتاسنتر
💎 مجازی‌سازی، پردازش ابری و ذخیره سازی
💎 معرفی کتاب
💎 اخبار IT، امنیت، هک و نفوذ

🌀 مدیر کانال: میثم ناظمی
@Meysam_Nazemi

🌀 مدیر تبلیغات: @MoNaITCU
Download Telegram
VNI چیست؟
همانطور که در بحث VLAN مفهومی به نام VLAN ID داریم که جهت شماره‌گذاری و مشخص کردن VLANهای مختلف مورد استفاده قرار می‌گیرد، در بحث VXLAN نیز مفهومی به VNI داریم که جهت مشخص کردن VXLAN Segment IDها مورد استفاده قرار می‌گیرد. برخلاف VLAN ID که یک عدد 12 بیتی است، VNI یک عدد 24 بیتی می‌باشد که یک شماره‌گذاری منحصربفرد برای VXLAN Segmentها را فراهم می‌کند. VMها در VXLAN Segmentهای متفاوت نمی‌توانند با یکدیگر ارتباط برقرار کنند. با NICهای 24 بیتی بیش از 16 میلیون VXLAN Segment در یک دامین مدیریتی می‌توان داشت.

پیکربندی VXLAN
جهت پیکربندی شبکه مجازی با استفاده از VXLAN به سناریو شکل 81-14 دقت کنید. در این سناریو Network Node دارای 2 اینترفیس می‌باشد. با فرض اینکه بر روی هر سه Node پیشتر تنظیمات اولیه پیکربندی شده‌اند، می‌بایست گام‌های زیر را دنبال نمایید.
شکل 81-14
گام1: تغییر تنظیمات بر روی Control Node
برای این منظور فایل پیکربندی ml2_conf.ini را که در مسیر /etc/neutron/plugins/ml2 قرار دارد توسط ویرایشگر متنی vi باز کرده:
# vi /etc/neutron/plugins/ml2/ml2_conf.ini

و سپس پیکربندی‌های زیر را در آن انجام دهید:
• در خط 115 و در جلوی عبارت tenant_network_type یک مقدار (در اینجا "vxlan") را اضافه نمایید:
[ml2]
type_drivers = flat,vlan,gre,vxlan
tenant_network_types = vxlan

• در خط 166 و در زیر بخش [ml2_type_flat] عبارت زیر را اضافه نمایید:
[ml2_type_vlan]
flat_networks = physnet1

• در خط 220 و در زیر بخش [ml2_type_vxlan] عبارت زیر را مشخص کنید:
[ml2_type_vxlan]
vni_ranges = 1:1000

در نهایت نیز فایل پیکربندی مزبور را ذخیر کرده و از آن خارج شوید و سپس توسط دستور زیر سرویس neutron-server را یکبار restart نموده تا تنظیمات و پیکربندی‌های انجام شده اعمال شوند:
# systemctl restart neutron-server
شکل 82-14
گام2: تغییر تنظیمات بر روی Network Node
ابتدا جهت ایجاد یک bridge با نام br-eth1 از دستور زیر استفاده می‌کنیم:
# ovs-vsctl add-br br-eth1

سپس جهت اضافه کردن اینترفیس eth1 به عنوان پورتی از bridge فوق، از دستور زیر کمک می‌گیریم:
# ovs-vsctl add-port br-eth1 eth1
شکل 83-14
در ادامه نیز فایل پیکربندی ml2_conf.ini را توسط ویرایشگر متنی vi باز کرده:
# vi /etc/neutron/plugins/ml2/ml2_conf.ini

و سپس پیکربندی‌های زیر را در آن انجام می‌دهیم:
• در خط 115، مقدار vlan را در جلوی عبارت tenant_network_types = اضافه می‌کنیم:
[ml2]
type_drivers = flat,vlan,gre,vxlan
tenant_network_types = vxlan

• در خط 166 و در زیر بخش [ml2_type_flat] عبارت زیر را وارد کنید:
[ml2_type_flat]
flat_networks = physnet1

• در خط 220 و در زیر بخش [ml2_type_vxlan] عبارت زیر را اضافه نمایید:
[ml2_type_vxlan]
vni_ranges = 1:1000

• خط 248 را بصورت زیر تغییر دهید:
firewall-driver = iptables_hybrid

و در نهایت فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
شکل 84-14
حال این بار فایل پیکربندی openvswitch_agent.ini را توسط ویرایشگر متنی vi باز کرده:
# vi /etc/neutron/plugins/ml2/openvswitch_agent.ini

و سپس پیکربندی‌های زیر را در آن انجام دهید:
• در خط 114 و در زیر بخش [agent] خطوط زیر را درج کنید:
[agent]
tunnel_types = vxlan
l2_population = True
prevent_arp_spoofing = True

• در خط 195 و در زیر بخش [ovs] آدرس این host را برای عبارت local_ip مشخص نمایید:
[ovs]
local_ip = 10.0.0.50
bridge_mappings = physnet1:br-eth1

در آخر نیز فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
شکل 85-14
حال کافیست تا دستور زیر را اجرا نموده:
# for service in dhcp-agent l3-agent metadata-agent openvswitch-agent; do
systemctl restart neutron-$service
done
شکل 86-14
و در صورتیکه فایروال Firewalld بر روی سرور شما در حال اجراست، با استفاده از دستور زیر آن را متوقف نمایید:
# systemctl stop firewalld

گام3: تغییر تنظیمات بر روی Compute Node
برای این منظور ابتدا فایل پیکربندی ml2_conf.ini را توسط ویرایشگر متنی vi باز کرده:
# vi /etc/neutron/plugins/ml2/ml2_conf.ini

و سپس پیکربندی‌های زیر را در آن انجام می‌دهیم:
• در خط 115، مقدار vxlan را در جلوی عبارت tenant_network_types = اضافه می‌کنیم:
[ml2]
type_drivers = flat,vlan,gre,vxlan
tenant_network_types = vxlan

• در خط 166 و در زیر بخش [ml2_type_flat] عبارت زیر را اضافه کنید:
[ml2_type_flat]
flat_networks = physnet1

• در خط 220 و در زیر بخش [ml2_type_vxlan] عبارت زیر را مشخص نمایید. در واقع توسط این دستور رنج VNIهای خود را تعریف می‌کنیم:
[ml2_type_vxlan]
vni_ranges = 1:1000

• خط 248 را بصورت زیر تغییر دهید:
firewall_driver = iptables_hybrid

و در نهایت فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
شکل 87-14
در ادامه این بار فایل پیکربندی openvswitch_agent.ini را توسط ویرایشگر متنی vi باز کرده:
# vi /etc/neutron/plugins/ml2/openvswitch_agent.ini

و بعد پیکربندی‌های زیر را در آن انجام دهید:
• در خط 114 و در زیر بخش [agent] خطوط زیر را درج کنید:
[agent]
tunnel_types = vxlan
l2_population = True
prevent_arp_spoofing = True

• در خط 195 و در زیر بخش [ovs] می‌بایست IP آدرس این host را برای عبارت local_ip مشخص نمایید:
[ovs]
local_ip = 10.0.0.51

در آخر هم فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
شکل 88-14
سپس توسط دستورات زیر سرویس neutron-openvswitch-agent را یکبار restart نموده تا تنظیمات و پیکربندی‌های انجام شده اعمال شوند. همچنین اگر فایروال Firewalld بر روی سرور شما در حال اجراست، آن را متوقف نمایید:
# systemctl restart neutron-openvswitch-agent
# systemctl stop firewalld
شکل 89-14
گام4: ایجاد یک روتر مجازی یا Virtual Router (این کار را می‌بایست بر روی هر یک از سه Node انجام داد) در اینجا فقط بر روی Control Node روتر مجازی را ایجاد خواهیم کرد. برای این منظور کافیست دستور زیر را اجرا نمایید:
# openstack router create router01
شکل 90-14
گام5: ایجاد شبکه داخلی و ارتباط آن با روتر مجازی
جهت ایجاد یک شبکه داخلی یا internal network به نام int_net از دستور زیر استفاده می‌کنیم:
# openstack network create int_net —provider-network-type vxlan