گام2: تغییر تنظیمات بر روی Network Node
ابتدا جهت ایجاد یک bridge با نام br-eth1 از دستور زیر استفاده میکنیم:
# ovs-vsctl add-br br-eth1
سپس جهت اضافه کردن اینترفیس eth1 به عنوان پورتی از bridge فوق، از دستور زیر کمک میگیریم:
# ovs-vsctl add-port br-eth1 eth1
ابتدا جهت ایجاد یک bridge با نام br-eth1 از دستور زیر استفاده میکنیم:
# ovs-vsctl add-br br-eth1
سپس جهت اضافه کردن اینترفیس eth1 به عنوان پورتی از bridge فوق، از دستور زیر کمک میگیریم:
# ovs-vsctl add-port br-eth1 eth1
در ادامه نیز فایل پیکربندی 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
و در نهایت فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
# 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
و در نهایت فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
حال این بار فایل پیکربندی 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
در آخر نیز فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
# 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
در آخر نیز فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
حال کافیست تا دستور زیر را اجرا نموده:
# for service in dhcp-agent l3-agent metadata-agent openvswitch-agent; do
systemctl restart neutron-$service
done
# for service in dhcp-agent l3-agent metadata-agent openvswitch-agent; do
systemctl restart neutron-$service
done
و در صورتیکه فایروال 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
و در نهایت فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
# 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
و در نهایت فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
در ادامه این بار فایل پیکربندی 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
در آخر هم فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
# 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
در آخر هم فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
سپس توسط دستورات زیر سرویس neutron-openvswitch-agent را یکبار restart نموده تا تنظیمات و پیکربندیهای انجام شده اعمال شوند. همچنین اگر فایروال Firewalld بر روی سرور شما در حال اجراست، آن را متوقف نمایید:
# systemctl restart neutron-openvswitch-agent
# systemctl stop firewalld
# systemctl restart neutron-openvswitch-agent
# systemctl stop firewalld
گام4: ایجاد یک روتر مجازی یا Virtual Router (این کار را میبایست بر روی هر یک از سه Node انجام داد) در اینجا فقط بر روی Control Node روتر مجازی را ایجاد خواهیم کرد. برای این منظور کافیست دستور زیر را اجرا نمایید:
# openstack router create router01
# openstack router create router01
گام5: ایجاد شبکه داخلی و ارتباط آن با روتر مجازی
جهت ایجاد یک شبکه داخلی یا internal network به نام int_net از دستور زیر استفاده میکنیم:
# openstack network create int_net —provider-network-type vxlan
جهت ایجاد یک شبکه داخلی یا internal network به نام int_net از دستور زیر استفاده میکنیم:
# openstack network create int_net —provider-network-type vxlan
حال جهت ایجاد یک Subnet در شبکه داخلی ایجاد شده میتوان از دستور زیر استفاده نمود:
# openstack subnet create subnet1 —network int_net \
—subnet-range 192.168.100.0/24 —gateway 192.168.100.1 \
—dns-nameserver 10.0.0.10
# openstack subnet create subnet1 —network int_net \
—subnet-range 192.168.100.0/24 —gateway 192.168.100.1 \
—dns-nameserver 10.0.0.10