- فرض کنید تعداد زیادی سرور فیزیکی دارید که هر کدام به یک سویچ مرکزی متصل هستند.
- بحث Network برای پیادهسازی LXD بر روی این سیستمها میتواند به صورت Bridge بوده تا کانتینرها به صورت مستقیم به سویچ مرکزی نیز متصل شوند.
- در این صورت کانتینرهای سرورهای فیزیکی مختلف میتوانند با یک دیگر صحبت کنند. (چون در داخل یک subnet و vlan میباشند.)
- این عمل سربار زیادی دارد چرا که در مقیاس بالا ، subnet اختصاص یافته میتواند تمام شود.
- همچنین ممکن است گروهی از سرورهای فیزیکی درون یک دیتاسنتر دیگر بوده و مسیرهای ارتباطی متعددی در سر راه وجود داشته باشد.
- در این شرایط محبث Fan Networking مطرح میشود.
- این قابلیت در درجهی اول سعی میکند پیادهسازی بسیار سادهای داشته باشد. (به دور از پیچیدگی)
- در درجهی دوم بین تمام موجودیتها (سرور فیزیکی و کانتینترهای LXD) یک subnet واحد 8/ ایجاد میکند.
- با پیادهسازی این قابلیت یک اینترفیس به سرور فیزیکی اضافه شده که یک subnet /8 ارائه میدهد.
- هر یک از subnet های 8/ ایجاد شده بر روی سرورهای فیزیکی قابلیت صحبت کردن با یک دیگر در لایه دو را دارند.
- طبیعتا کانتینرهای سرورهای مختلف نیز قابلیت صحبت کردن با یکدیگر را نیز دارند.
- یکی از تاکیدهای بحث Fan Networking پیادهسازی سادهی آن به دور از پیچیدگی است.
- همچنین با ایجاد یک کلاستر درون LXD ، به صورت خودکار بحث FAN Networking نیز توسط LXD راهاندازی میشود.
پیادهسازی بر روی Ubuntu 16.04
- برای این منظور ابتدا بستهی زیر را نصب نمایید.
# apt-get -y install ubuntu-fan
- تنظیمات مربوط به Network ماشین اول به صورت زیر است :
root@host1:~# cat /etc/network/interfaces source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto ens34 iface ens34 inet static address 172.16.112.132 netmask 255.255.0.0 up fanctl up 241.0.0.0/8 172.16.112.132/16 down fanctl down 241.0.0.0/8 172.16.112.132/16
- تنظیمات مربوط به Network ماشین دوم به صورت زیر است :
root@host2:~# cat /etc/network/interfaces source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto ens34 iface ens34 inet static address 172.16.112.158 netmask 255.255.0.0 up fanctl up 241.0.0.0/8 172.16.112.158/16 down fanctl down 241.0.0.0/8 172.16.112.158/16
- پروندهی زیر را درون ماشین اول به صورت زیر ایجاد کنید :
root@host1:~# echo '241.0.0.0/8 172.16.112.0/16 dhcp' > /etc/network/fan
- پروندهی زیر را درون ماشین دوم به صورت زیر ایجاد کنید :
root@host2:~# echo '241.0.0.0/8 172.16.112.0/16 dhcp' > /etc/network/fan
- در نهایت سیستمها را یک مرتبه reboot کنید.
- مشخصات کارت شبکهی سیستم اول به صورت زیر خواهد بود.
root@host1:~# ifconfig ens34 Link encap:Ethernet HWaddr 00:0c:29:74:44:cb inet addr:172.16.112.132 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fe74:44cb/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:42 errors:0 dropped:0 overruns:0 frame:0 TX packets:36 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6541 (6.5 KB) TX bytes:5954 (5.9 KB) fan-241 Link encap:Ethernet HWaddr 06:e6:48:ae:1a:f3 inet addr:241.112.132.1 Bcast:0.0.0.0 Mask:255.0.0.0 inet6 addr: fe80::4e6:48ff:feae:1af3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:828 (828.0 B) ftun0 Link encap:Ethernet HWaddr 06:e6:48:ae:1a:f3 inet6 addr: fe80::4e6:48ff:feae:1af3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:18 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:224 errors:0 dropped:0 overruns:0 frame:0 TX packets:224 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:17664 (17.6 KB) TX bytes:17664 (17.6 KB)
- مشخصات کارت شبکهی سیستم دوم به صورت زیر خواهد بود.
root@host2:~# ifconfig ens34 Link encap:Ethernet HWaddr 00:0c:29:a0:8f:cd inet addr:172.16.112.158 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fea0:8fcd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:42 errors:0 dropped:0 overruns:0 frame:0 TX packets:36 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6533 (6.5 KB) TX bytes:5996 (5.9 KB) fan-241 Link encap:Ethernet HWaddr 92:4d:b4:01:6a:01 inet addr:241.112.158.1 Bcast:0.0.0.0 Mask:255.0.0.0 inet6 addr: fe80::904d:b4ff:fe01:6a01/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:738 (738.0 B) ftun0 Link encap:Ethernet HWaddr 92:4d:b4:01:6a:01 inet6 addr: fe80::904d:b4ff:fe01:6a01/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:17 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:224 errors:0 dropped:0 overruns:0 frame:0 TX packets:224 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:17664 (17.6 KB) TX bytes:17664 (17.6 KB)
استفاده در LXC
- برای استفاده از قابلیت FAN Network درون LXC ابتدا پروندهی تنظیمات مربوط به کانتینر LXC را باز نمایید. به عنوان مثال :
# vim /var/lib/lxc/ubuntu/config
- مقدار عبارت زیر را به صورت زیر تغییر دهید.
lxc.network.link = fan-220
- در نهایت کافیست کانتینر LXC را روشن کنید.
- در صورتی که به صورت خودکار از طریق DHCP آدرس دریافت نکردید، به صورت زیر آی پی تخصیص دهید.
# ifconfig eth0 220.112.158.2 netmask 255.0.0.0
- نکته : ممکن است Ubuntu 16.04 در تخصیص رنج 241 مشکل داشته باشد، لذا در بالا رنج Fan Network را روی 220 قرار دادیم.
راهاندازی DHCP Server
- همان طور که در قسمت قبل اشاره شد، به صورت پیشفرض درون شبکه DHCP نخواهیم داشت.
- لذا لازم است یک سرویس DHCP Server درون هر یک از سرورها برای کارت شبکهی مربوط به Fan Network راهاندازی شود.
- برای این منظور میتوان از این مستند استفاده نمود.
- مستند بالا بر روی Fan Network تست شده است.