- فرض کنید تعداد زیادی سرور فیزیکی دارید که هر کدام به یک سویچ مرکزی متصل هستند.
- بحث Network برای پیادهسازی LXD بر روی این سیستمها میتواند به صورت Bridge بوده تا کانتینرها به صورت مستقیم به سویچ مرکزی نیز متصل شوند.
- در این صورت کانتینرهای سرورهای فیزیکی مختلف میتوانند با یک دیگر صحبت کنند. (چون در داخل یک subnet و vlan میباشند.)
- این عمل سربار زیادی دارد چرا که در مقیاس بالا ، subnet اختصاص یافته میتواند تمام شود.
- همچنین ممکن است گروهی از سرورهای فیزیکی درون یک دیتاسنتر دیگر بوده و مسیرهای ارتباطی متعددی در سر راه وجود داشته باشد.
- در این شرایط محبث Fan Networking مطرح میشود.
- این قابلیت در درجهی اول سعی میکند پیادهسازی بسیار سادهای داشته باشد. (به دور از پیچیدگی)
- در درجهی دوم بین تمام موجودیتها (سرور فیزیکی و کانتینترهای LXD) یک subnet واحد 8/ ایجاد میکند.
- با پیادهسازی این قابلیت یک اینترفیس به سرور فیزیکی اضافه شده که یک subnet /8 ارائه میدهد.
- هر یک از subnet های 8/ ایجاد شده بر روی سرورهای فیزیکی قابلیت صحبت کردن با یک دیگر در لایه دو را دارند.
- طبیعتا کانتینرهای سرورهای مختلف نیز قابلیت صحبت کردن با یکدیگر را نیز دارند.
- یکی از تاکیدهای بحث Fan Networking پیادهسازی سادهی آن به دور از پیچیدگی است.
- همچنین با ایجاد یک کلاستر درون LXD ، به صورت خودکار بحث FAN Networking نیز توسط LXD راهاندازی میشود.
پیادهسازی بر روی Ubuntu 16.04
- برای این منظور ابتدا بستهی زیر را نصب نمایید.
|
1 |
# apt-get -y install ubuntu-fan |
- تنظیمات مربوط به Network ماشین اول به صورت زیر است :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
root@<span style="color: #3366ff;"><strong>host1</strong></span>:~# 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.<span style="color: #3366ff;"><strong>132</strong></span> netmask 255.255.0.0 up fanctl up 241.0.0.0/8 172.16.112.<strong><span style="color: #3366ff;">132</span></strong>/16 down fanctl down 241.0.0.0/8 172.16.112.<span style="color: #3366ff;"><strong>132</strong></span>/16 |
- تنظیمات مربوط به Network ماشین دوم به صورت زیر است :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
root@<span style="color: #ff0000;"><strong>host2</strong></span>:~# 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.<span style="color: #ff0000;"><strong>158</strong></span> netmask 255.255.0.0 up fanctl up 241.0.0.0/8 172.16.112.<span style="color: #ff0000;"><strong>158</strong></span>/16 down fanctl down 241.0.0.0/8 172.16.112.<span style="color: #ff0000;"><strong>158</strong></span>/16 |
- پروندهی زیر را درون ماشین اول به صورت زیر ایجاد کنید :
|
1 |
root@host1:~# echo '241.0.0.0/8 172.16.112.0/16 dhcp' > /etc/network/fan |
- پروندهی زیر را درون ماشین دوم به صورت زیر ایجاد کنید :
|
1 |
root@host2:~# echo '241.0.0.0/8 172.16.112.0/16 dhcp' > /etc/network/fan |
- در نهایت سیستمها را یک مرتبه reboot کنید.
- مشخصات کارت شبکهی سیستم اول به صورت زیر خواهد بود.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
root@host1:~# ifconfig <span style="color: #0000ff;"><strong>ens34</strong></span> Link encap:Ethernet HWaddr 00:0c:29:74:44:cb inet addr:<span style="color: #0000ff;"><strong>172.16.112.132</strong></span> 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) <span style="color: #0000ff;"><strong>fan-241</strong></span> Link encap:Ethernet HWaddr 06:e6:48:ae:1a:f3 inet addr:<span style="color: #0000ff;"><strong>241.112.132.1</strong></span> 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) |
- مشخصات کارت شبکهی سیستم دوم به صورت زیر خواهد بود.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
root@host2:~# ifconfig <span style="color: #ff0000;"><strong>ens34</strong></span> Link encap:Ethernet HWaddr 00:0c:29:a0:8f:cd inet addr:<span style="color: #ff0000;"><strong>172.16.112.158</strong></span> 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) <span style="color: #ff0000;"><strong>fan-241</strong></span> Link encap:Ethernet HWaddr 92:4d:b4:01:6a:01 inet addr:<span style="color: #ff0000;"><strong>241.112.158.1</strong></span> 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 را باز نمایید. به عنوان مثال :
|
1 |
# vim /var/lib/lxc/ubuntu/config |
- مقدار عبارت زیر را به صورت زیر تغییر دهید.
|
1 |
lxc.network.link = <span style="color: #ff0000;"><strong>fan-220</strong></span> |
- در نهایت کافیست کانتینر LXC را روشن کنید.
- در صورتی که به صورت خودکار از طریق DHCP آدرس دریافت نکردید، به صورت زیر آی پی تخصیص دهید.
|
1 |
# ifconfig eth0 <span style="color: #ff0000;"><strong>220</strong></span>.112.<span style="color: #ff0000;"><strong>158.2</strong></span> netmask 255.0.0.0 |
- نکته : ممکن است Ubuntu 16.04 در تخصیص رنج 241 مشکل داشته باشد، لذا در بالا رنج Fan Network را روی 220 قرار دادیم.
راهاندازی DHCP Server
- همان طور که در قسمت قبل اشاره شد، به صورت پیشفرض درون شبکه DHCP نخواهیم داشت.
- لذا لازم است یک سرویس DHCP Server درون هر یک از سرورها برای کارت شبکهی مربوط به Fan Network راهاندازی شود.
- برای این منظور میتوان از این مستند استفاده نمود.
- مستند بالا بر روی Fan Network تست شده است.