কীভাবে ডায়নামিক ফেইলওভার দিয়ে নেটওয়ার্কিং থেকে সিস্টেমড-নেটওয়ার্কডে স্থানান্তরিত হয়


14

সিস্টেমেডগুলি রাস্পবিয়ান- systemd-networkdএ বিদ্যমান নেটওয়ার্কিং সিস্টেমটি প্রতিস্থাপন করতে ব্যবহার করা যেতে পারে।

ইথারনেট এবং ওয়ালানের জন্য দুটি ইন্টারফেসের সাথে রাস্পবেরি পাইতে রাস্পবিয়ানের সাথে এটি কীভাবে কাজ করবে? আমি কি তাদের জন্য গতিময় ব্যর্থতা উপলব্ধি করতে পারি?

উত্তর:


28

রাস্পবেরিয়ান পাই 4
বিতে রাস্পবিয়ান বুস্টার লাইট 2020-02-13 2020-04-11 এ আপডেট হয়েছে with
সঙ্গে আপডেট করা sudo apt update && sudo apt full-upgrade && sudo reboot

এটি রাস্পবিয়ান স্ট্রেচ নিয়ে কাজ করবে না !
এখানে আপনি রাস্প্বিয়ান স্ট্রেচ লাইটের জন্য সর্বশেষ পরীক্ষিত সংশোধনটি পাবেন ।


St বিমূর্ত

ব্যবহার systemd-networkdডিফল্ট পরিবর্তে dhcpcdঅবশ্যই সম্ভব হয়। তবে এটি সব ক্ষেত্রেই অর্থবহ নয়।

নেটওয়ার্কড হ'ল নেট প্লাগড এবং ভার্চুয়ালাইজড নেটওয়ার্কিং সহ বিশ্বের সার্ভারের ব্যবহারের ক্ষেত্রে বেশিরভাগ ক্ষেত্রে ডিজাইন করা নেটওয়ার্ক ইন্টারফেস কনফিগার করার জন্য একটি ছোট এবং হাতা পরিষেবা। এর কনফিগারেশনটি স্পিচ এবং অ্যাবস্ট্রাকশন স্তরে আইফআপডাউন এর মতো, তবে ব্রিজ, বন্ড, ভ্যালান ইত্যাদি কনফিগার করতে আপনার কোনও অতিরিক্ত প্যাকেজ লাগবে না এটি এখনও ডাব্লুএলএএন পরিচালনার জন্য খুব উপযুক্ত নয়; ডেস্কটপ ব্যবহারের ক্ষেত্রে ডেস্কটপ ব্যবহারের ক্ষেত্রে নেটওয়ার্ক ম্যানেজারটি এখনও অনেক বেশি উপযুক্ত। [1]

তবে কোনও রাস্পি একটি টিভি বা পরিবর্ধকের কাছাকাছি রাখার জন্য এবং অডিও বা ভিডিও স্ট্রিমিংয়ের জন্য বা কোনও ক্যামেরা ইত্যাদির জন্য 24/7 এর কাজ systemd-networkdকরা ভাল পছন্দ। তবে আপনাকে একটি সম্পূর্ণ সুইচ করতে হবে। networkingএবং / অথবা এর সাথে মেশার কোনও উপায় নেই dhcpcd। দয়া করে নোট করুন যে নেটওয়ার্কম্যানেজারটি রাসপবিয়ান দ্বারা বাক্সের বাইরে সমর্থিত নয়।


♦ পদক্ষেপ 1: প্রস্তুতি

রেফারেন্সের জন্য আমি রাস্পবিয়ান বুস্টার লাইট থেকে একটি নতুন ফ্ল্যাশড এসডি কার্ড ব্যবহার করি ।

আমি কেবল এসএসএস সহ একটি শিরোনামহীন ইনস্টলেশনতে মনোযোগ দেব। আপনি যদি এটি ব্যবহার করে থাকেন তবে ডাবল পরীক্ষা করুন টাইপগুলি বা অন্যথায় আপনি একটি ভাঙ্গা সংযোগ দিয়ে হারিয়েছেন। যদি আপনি একটি মাথাবিহীন ইনস্টলেশন চান তবে এসএসএইচ (সিকিউর শেল) দেখুন এবং বিভাগটি অনুসরণ করুন a একটি হেডলেস রাস্পবেরি পাইতে এসএসএইচ সক্ষম করুন (অন্য কোনও মেশিনে এসডি কার্ডে ফাইল যুক্ত করুন)

পুরানো জিনিসগুলি অক্ষম করুন। কোনও পরিষেবা বন্ধ করবেন না, কেবল তাদের অক্ষম করুন! সুতরাং এটি কেবল পরবর্তী বুটে কার্যকর হবে। এটি কীভাবে করবেন তা কেবল অনুসরণ করুন


♦ পদক্ষেপ 2: তারযুক্ত ইথারনেট ইন্টারফেস সেটআপ (eth0)

আপনার সেটিংসের সাহায্যে এই ফাইলটি তৈরি করুন। আপনি কেবল catEF এর সাথে শুরু করে আপনার কমান্ড লাইনে একটি ব্লকে এটি অনুলিপি করে আটকে দিতে পারেন (ডিলিমেটার EOF ফাইলটির অংশ পাবে না):

pi@raspberrypi: ~$ sudo -Es   # if not already done
root@raspberrypi: ~# cat >/etc/systemd/network/04-eth.network <<EOF
[Match]
Name=e*
[Network]
# to use static IP (with your settings) toggle commenting the next 8 lines.
#Address=192.168.50.60/24
#DNS=84.200.69.80 1.1.1.1
#[Route]
#Gateway=192.168.50.1
#Metric=10
DHCP=yes
[DHCP]
RouteMetric=10
EOF

♦ পদক্ষেপ 3: ওয়ালান ইন্টারফেস সেটআপ (wlan0)

আপনার সেটিংস সহ এই ফাইলটি তৈরি করুন:

root@raspberrypi:~ # cat >/etc/systemd/network/08-wifi.network <<EOF
[Match]
Name=wl*
[Network]
# to use static IP (with your settings) toggle commenting the next 8 lines.
#Address=192.168.50.61/24
#DNS=84.200.69.80 1.1.1.1
#[Route]
#Gateway=192.168.50.1
#Metric=20
DHCP=yes
[DHCP]
RouteMetric=20
EOF

সেটআপ এই ফাইল এবং আপনার সেটিংস সঙ্গে wpa_supplicant country=, ssid=এবং psk=এবং এটি সক্রিয় করা হয়:

root@raspberrypi:~ # cat >/etc/wpa_supplicant/wpa_supplicant-wlan0.conf <<EOF
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE

network={
    ssid="TestNet"
    psk="realyNotMyPassword"
    key_mgmt=WPA-PSK
    proto=RSN WPA
}
EOF

root@raspberrypi:~ # chmod 600 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
root@raspberrypi:~ # systemctl disable wpa_supplicant.service
root@raspberrypi:~ # systemctl enable wpa_supplicant@wlan0.service
root@raspberrypi:~ # rfkill unblock 0
root@raspberrypi:~ # exit
root@raspberrypi:~ $

রিবুট করুন এবং শুভকামনা ;-)

এটা সম্ভব যে রাসপিআই একটি নতুন আইপি অ্যাড্রেস পেয়েছে তাই আপনাকে এটির সাথে পরবর্তী সংযোগের জন্য ssh এর সাথে নজর দিতে হতে পারে ।


♦ পদক্ষেপ 4: ব্যান্ডিং ওয়্যার্ড এবং ফেলিওভারের জন্য ওয়াইফাই ইন্টারফেস

উপরে বর্ণিত হিসাবে আপনার উভয় ইন্টারফেস সেটআপ এবং চলমান থাকা উচিত। উভয় ইন্টারফেস শেষ হলে এটি কোনও সমস্যা নয়। কার্নেলটি সর্বনিম্ন মেট্রিকের সাথে ইন্টারফেসটি ব্যবহার করবে । এখানে ইথারনেট ইন্টারফেসটি প্রথমে ব্যবহৃত হবে। তবে এটির একটি বড় অসুবিধা রয়েছে। আপনি ip -4 -brief addrপ্রতিটি ইন্টারফেসের সাথে দেখতে পাচ্ছেন এটির নিজস্ব আইপি-ঠিকানা রয়েছে। কার্নেল যদি ইন্টারফেসটি স্যুইচ করে কারণ একটি ডাউন হয়ে গেছে এটি এটির নতুন উত্স আইপি-ঠিকানাও ব্যবহার করে। এটি কোনও প্রতিষ্ঠিত স্টেটসফুল টিসিপি যোগাযোগ, যেমন এসএসএস, স্ট্রিমিং, লগইন সেশন এবং এগুলি ভেঙে দেবে। পরিবর্তিত উত্স আইপি ঠিকানা থেকে আপনি একটি নতুন সংযোগ ব্যবহার করতে পারেন তবে পুরানো সংযোগ আটকে রয়েছে। এটি আসলে আমরা চাই না।

এই সমস্যার সমাধান বন্ধন । আমরা একটি অন্তর্বর্তী ইন্টারফেস তৈরি করি bond0যা এর সেটিংস পরিবর্তন করে না। তারযুক্ত এবং ওয়াইফাই ইন্টারফেসটি স্যুইচ করবে bond0

প্রথমে একক ইথারনেট এবং ওয়াইফাই নেটওয়ার্ক ফাইলগুলি অক্ষম করুন:

pi@raspberrypi:~ $ sudo -Es
root@raspberrypi:~ # cd /etc/systemd/network/
root@raspberrypi:~ # mv 04-eth.network 04-eth.network~
root@raspberrypi:~ # mv 08-wifi.network 08-wifi.network~

তারপরে এই চারটি ফাইলের সাথে সেটআপ বন্ধন:

root@raspberrypi:~ # cat >/etc/systemd/network/02-bond0.netdev <<EOF
[NetDev]
# status: cat /proc/net/bonding/bond0
Name=bond
Kind=bond
[Bond]
Mode=active-backup
# primary slave is defined in *eth.network
MIIMonitorSec=500ms
MinLinks=1
EOF

root@raspberrypi:~ # cat >/etc/systemd/network/12-bond0-add-eth.network <<EOF
[Match]
Name=e*
[Network]
Bond=bond0
PrimarySlave=yes
EOF

root@raspberrypi:~ # cat >/etc/systemd/network/16-bond0-add-wifi.network <<EOF
[Match]
Name=wl*
[Network]
Bond=bond0
EOF

root@raspberrypi:~ # cat >/etc/systemd/network/20-bond0-up.network <<EOF
[Match]
Name=bond0
[Network]
# to use static IP (with your settings) toggle commenting the next 4 lines.
DHCP=yes
#Address=192.168.50.60/24
#Gateway=192.168.50.1
#DNS=84.200.69.80 1.1.1.1
EOF

তবে এটি পুরো গল্প নয়। সিস্টেমড-নেটওয়ার্কযুক্ত স্টার্টআপ নির্ভর পরিষেবাগুলির সাথে এগিয়ে যাওয়ার আগে সমস্ত ইন্টারফেসগুলি আপ হয় কিনা তা পরীক্ষা করে দেখুন । বন্ডিংয়ের সাথে আমাদের দাস ইন্টারফেস রয়েছে (eth0, wlan0) যা কখনই সিগন্যাল করে না যে তারা শেষ। এটির কেবলমাত্র বন্ড ইন্টারফেসটি উপস্থিত হয় যদি এর কমপক্ষে কোনও দাস সংযুক্ত থাকে। সুতরাং চেক ত্রুটিগুলি এবং বুটআপের জন্য দীর্ঘ প্রতীক্ষার সাথে ব্যর্থ হবে। এটি পরিচালনা করতে আপনাকে পরিবর্তন করতে হবে systemd-networkd-wait-online.service। এটি কীভাবে করবেন, দয়া করে এখানে নির্দেশাবলী অনুসরণ করুন

এটি শেষ হলে পুনরায় বুট করার সময়।

এটি সম্ভব হয় যে রাসপিআই একটি নতুন আইপি ঠিকানা পেয়েছে যাতে আপনার এটির সাথে পরবর্তী সংযোগের জন্য ssh এর সাথে নজর দিতে হতে পারে।

তারপরে আপনি বন্ধনের স্থিতি পরীক্ষা করতে পারেন:

pi@raspberrypi:~ $ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect always)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 500
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: dc:a6:32:4c:08:1b
Slave queue ID: 0

Slave Interface: wlan0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: dc:a6:32:4c:08:1c
Slave queue ID: 0

পরীক্ষা বন্ধন: উপরের বন্ধন স্থিতির সাথে আপনি দেখতে পাবেন যে Currently Active Slave:পরিবর্তনটি পরিবর্তিত হবে এবং MII Status:ডাউন আছে is

যদি আপনি মাথাছাড়া হন তবে downউভয় ইন্টারফেস একসাথে করবেন না ;-)

pi@raspberrypi:~ $ ip addr
pi@raspberrypi:~ $ sudo ip link set eth0 down
pi@raspberrypi:~ $ sudo ip link set eth0 up
pi@raspberrypi:~ $ sudo ip link set wlan0 down
pi@raspberrypi:~ $ sudo ip link set wlan0 up

Wlan0 সেট আপ করার পরে ধৈর্য ধরুন। রাউটারের সাথে পুনরায় সংযোগ স্থাপন এবং বন্ধন পরিচালনা করতে আমার কিছুটা সময় লাগতে পারে। এই সময়টি sshকোনও প্রতিক্রিয়া জানাবে না।

বন্ধনের আরও গভীর-পর্যালোচনার জন্য আপনার ইথারনেটের তুলনায় ডায়নামিক নেটওয়ার্ক ব্যর্থতা ওয়াইফাইটিকে অগ্রাধিকার দিতে পারে


তথ্যসূত্র:
[1] /
ওসির / শেয়ার / ডক / সিস্টেমেড / আরএডিএমই। ডেবিয়ান.gz [2] ম্যান সিস্টেমডটনেডভ
[3] ম্যান সিস্টেমডটনেভারক
[4] https://wiki.debian.org/ বন্ধন
[5] https://www.kernel.org/doc/Documentation/networking/bonding.txt


প্রথম শীর্ষ উদ্ধৃতি শীর্ষক সম্পর্কে নোট: রাস্পবিয়ান কখনও নেটওয়ার্কম্যানেজার ব্যবহার করেনি। এটি ফেডোরা এবং উত্পন্ন সিস্টেমগুলির একটি নিদর্শন (এটি প্রথম স্থান যা সিস্টেমড, একটি রেডহাট সমর্থিত প্রকল্প, স্থাপন করা হয়েছিল)।
স্বর্ণলোকস

অন্যান্য ডিবিয়ান ভিত্তিক সিস্টেমগুলিতেও প্রযোজ্য এটিএম তে চলমান নয় :) সংক্ষিপ্ত ব্যাখ্যার জন্য আপনাকে ধন্যবাদ।
টিসিবি 13

এটি আমার প্রসারিত হয়ে কাজ করেছে তবে বাস্টারে আমি সমস্যার মুখোমুখি হয়েছি, যে আমার ডিভাইসটি কোনও ডোমেন সমাধান করতে পারে না। কোন ধারণা কারণ হতে পারে?
ব্যবহারকারী5950

@ user5950 হয়ত বাস্টার দিয়ে কিছু পরিবর্তন হয়েছে? আমি এটি তাকান হবে। শুধু একটা মুহূর্ত.
ইঙ্গো

@ ইঙ্গো দ্রুত রিপ্লে করার জন্য আপনাকে ধন্যবাদ। আমি লাইনটি যুক্ত করে সমস্যার সমাধান DNS=192.168.1.1করতে পারি /etc/systemd/network/04-eth.network। (আমি স্ট্যাটিক আইপি সহ একটি সেটআপ ব্যবহার করছি) ...
ব্যবহারকারীর 5950

4

@ ইঙ্গো থেকে উত্তরটি বিস্তারিত জানাতে: দয়া করে লিঙ্কটি ব্যবহার করে বিবেচনা করুন

ln -s /run/systemd/resolve/stub-resolv.conf resolv.conf

পরিবর্তে লিঙ্ক /run/systemd/resolve/resolv.conf। এটি "ইন্টিগ্রেটেড" ডিএনএস স্টাবকে সক্ষম করে এবং প্রতি ইন্টারফেস ডিএনএস সার্ভারের মতো জিনিসগুলিকে সক্ষম করে যা আপনি যদি ভিপিএন ব্যবহার করেন যা তাদের নিজস্ব ডিএনএস সার্ভারকে অ-সর্বজনীন এন্ট্রি প্রদান করে তবে তা গুরুত্বপূর্ণ হতে পারে।


খুব আকর্ষণীয়, প্রতিক্রিয়ার জন্য আপনাকে ধন্যবাদ। এর কোনও নথিপত্র এবং / অথবা উত্স আছে? যদি তা হয় তবে আপনার উত্তরটি সম্পাদনা করুন (নীচের লিঙ্কটি ব্যবহার করে) এবং এটি এখানে যুক্ত করুন।
ইনগো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.