What is FAN Networking in linux systems

  • فرض کنید تعداد زیادی سرور فیزیکی دارید که هر کدام به یک سویچ مرکزی متصل هستند.
  • بحث 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 تست شده است.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *