في الشبكات وبالذات في تخصص إدارة السيرفرات، المحفاظة على إتصال السيرفر من الإنقطاع هذي شيء أساسي ومهم قبل أي حاجة، لأن لو إنقطع الإتصال بالسيرفر وخلاص صرت ما تقدر تتصل فيه، أيش الفائدة من السيرفر؟!
بشكل أبسط، نفترض إني صاحب بنك، وفي بنكي انا مقدم خدماتي عن طريق الإنترنت ﻷجل أسهل على العملاء إنهم يخلصون معاملاتهم البنكية من تحويل وإدراة أرصدة بدون حضورهم شخصياً للبنك.
طبعاً عشان أقدم خدماتي عن طريق الإنترنت، لازم يكون عندي سيرفر مستضيف موقعي، وموقعي فيه كل هالتعاملات البنكية اللي يحتاجها العميل. طيب إذا هالسيرفر فقد الإتصال بالإنترنت، أيش الفائدة منه؟
العملاء الخاصين ببنكي ما راح يدخلون الموقع، وهالشيء راح ينعكس على سمعتي، إن بنك جريس سيء في خدماته الإنترنتية، وكل شوي متعطل موقعهم. بكذا خسرت شريحة كبيرة من عملائي المهتمين بالتعامل عن طريق الويب للتعاملات البنكية.
ولو تكلمنا بشكل تقني أكثر، السيرفر عشان يتعطل، له أكثر من السبب، يمكن فيه سبب أمني، يمكن فيه خلل بداخل السيرفر وتوابعه، يمكن فيه عطل بالشبكة ويمنع العملاء من إنهم يدخلون على السيرفر عن طريق الإنترنت، وأسباب كثيرة صعبة أحصرها.
لكن، فيه سبب محتمل يصير، الا وهو إن الكيبل المشبوك بالسيرفر مفصول أو متعطل، وهذا هو محور تدوينتي. شوف الرسمة هذي:
تشوف الخط الأحمر، هذا هو كيبل السيرفر، في حالة إنفصاله، خلاص السيرفر راح يتعطل وبيمنع أي دخول له.
فكرة التدوينة بتشرح لك كيف تطمئن إن مهما صار في الشبكة الخاصة فيك من تعطل، بتضمن إن السيرفر الخاص فيك ما راح يفقد إتصاله بالإنترنت أو بشبكتك الخاصة.
الطريقة هذي تسمى Network Bonding/Teaming، وفكرتها إنك تربط كرتي شبكة مع بعض، ثم تنشئ كرت إضافي ثالث – وهمي Virtual – وهو اللي يتحكم بالترافيك اللي يدخل ويطلع من كرتي الشبكة، والكرت الوهمي هذا هو اللي راح يحتوي على الأي بي IP الخاص بالسيرفر.
المتطلبات:
المطلوب، فقط كرتي شبكة على سيرفر اللينكس، وشرحي بيكون على لينكس ريدهات\سنتوس\فيدورا، وباقي التوزيعات نفس الفكرة، اللهم تغير في أماكن الملفات.
التنفيذ:
ننشىء كرت شبكة وهمي\تخيلي Virtual، وراح نسميه bond0:
vi /ets/sysconfig/network-scripts/ifcfg-bond0
وتضيف فيه إعدادت الشبكة الخاصة فيك، الأي بي IP والنت ماسك NetMask والبوابة Gateway:
DEVICE=bond0
ONBOOT=yes
USERCTL=no
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
NETWORK=192.168.1.0
GATEWAY=192.168.1.1
الكرت الوهمي\التخيلي جاهز، الحين باقي شغلتين:
1- تعديل كروت الشبكة الحالية، وجعلها تشتغل تحت إدارة الكرت الوهمي Bond0:
أبفترض إن اسم الكرت الأول بسيرفرك eth0، عدل على الملف:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
وأحذف إعدادته الشبكة الخاصة فيه كلها، ثم أضف مثل الأسفل:
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
MASTER=bond0
SLAVE=yes
ونفس الشيء على الكرت الثاني، أبفترض اسمه eth1:
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
MASTER=bond0
SLAVE=yes
شوف اللي بالخط العريض بالأعلى، هو السر بجعل كرت الشبكة الوهمي bond0 هو المتحكم – الماستر Master – والكروت الثانية تحت تصرفه – سليف Slave -.
الشغلة الثانية، هي تحديد كيف يتم التفاهم بين هالكرتين؟
مين اللي يشتغل أول؟ الكرت eth0 او eth1؟
أو كلهم يشتغلون بنفس الوقت؟
هنا نحتاج نوضح حاجة مهمة، لو شغلت الشبكة بالوضع السابق، راح يصير فيه تعارض بين هالكرتين، واحد يرسل باكت Packet والثاني يستقبلها، والسويتش اللي مشبوك عليه هالسيرفر بيتلخبط عنده الترافيك، لأن الترافيك يوصل له من كرت، ويرجع لنفس السيرفر من كرت ثاني-لعدم وجود الماك أدرس MAC Address في إعددات كل كرت-، شايف كيف لخبطة!.
الحل؟
سهلة، لازم إنك تحدد كيف يشتغلون هالكرتين، وفيه كذا وضع لتشغيلهم، تقدر تستزيد عنهم برجوعك لوثائق سيرفرات ريدهات، إحنا راح نشغل هالكرتين في وضع يسمى “fault tolerance” وبالعربي يسمى -تجاوز الخطأ-، وفكرته إن واحد من الكروت بيكون فعال -يعني يصير Active-، والثاني بيكون في حالة سبات -Backup-. الكرت الثاني اللي في حالة سبات ما راح يشتغل لحد ما الكرت الأول يتعطل أو ينفصل عنه الكيبل. وهذي أفضلها شخصياً لأنها تضمن لي إن ما راح يكون تعارض بين الترافيك المار بسيرفري.
كيف أفعلها؟
تعدل على المودويولز Modules الخاصة بالسيرفر، عن طريق التعديل على الملف /etc/modprobe.conf:
echo -e "alias bond0 bonding\noptions bond0 miimon=100 mode=1" >> /etc/modprobe.conf
ولو شرحنا الخيارات اللي فوق، نلاحظ إننا وضحنا للسيرفر إن الكرت bond0 لازم يتفعل فيه خاصية دمج الكروت bonding، ثم طلبنا من السيرفر إنه يراقب حالة الكروت كل 100 جزء من الثانية، عن طريق الخيار miimon الخاص بمراقبة حالة الكرت ووضعه التشغيلي، وبالأخير قلنا له فعل لنا خاصية “تجاوز الخطأ Fault tolerance”، عن طريق الخيار mode=1.
خلصنا!
الحين، أعد تشغيل الشبكة عندك:
/etc/init.d/network restart
ونفذ الأمر ifconfig لعرض كروت الشبكة عندك، وبتلاقي كرت bond0 تم تفعيله، وإضافة كلمة Slave في معلومات الكروت الثانية.
وإذا كنت تحتاج تعرف حالة الـ Network Teaming في سيرفرك، ومين اللي يشتغل كـ Active ومين Backup، نفذ الأمر التالي:
cat /proc/net/bonding/bond0
وبيعرض لك نتيجة مقاربة لكذا:
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx
نقاط:
1- تقدر تستغني عن فكرة Fault Tolerance للكروت، وتستخدم مثلاً Load Balance لأجل توازن الترافيك بين الكرتين في حالة وجود ضغط كبير على سيرفرك، أرجع لوثائق سيرفرات ريدهات.
2- حاول تشبك الكيابل في سويتشات مختلفة، يعني لاتشبكهم كلهم بسويتش واحد، لأجل تتفادى تعطله، ومن ثم تعطل السيرفر. لاتضع بيضك في سلة واحدة :-).
3- مو فقط تشبك كيبلين، تستطيع تشبك أكثر من أثنين، وتسوي نفس الطريقة.
4- الفكرة اللي فوق راح تزيد ثبات السيرفر الخاص فيك -Stability-، ومن ثم راح تزيد وقت توفره على الشبكة بدون إنقطاع -Availability-، ومن ثم تزيد من قوة سمعتك.
5- أحتمال كبير تواجهك مشكلة إن الكيبل الأضافي بعد ما ينقطع الأول ما يشتغل، ومن ثم السيرفر الخاص فيك ينقطع إتصاله، حاول ترجع لإعدادات السويتش الخاص فيك، مثل إعددات برتوكول HSRP و Trunk.







السلام عليكم و رحمة الله و بركاته ….
مشكور اخوي جريس و الله ما قصرت ابد ….
جزاك الله خيييييير…
شكراً جريس
دمت مبدعاً
السلام عليكم….
الحقيقة مدري وين اكتب الرد لكن بخصوص نقاش امس عن auth_key فعلا هي اصلا تعتمد على الـ SSL يعني نفس كلامنا الي امس + الـ SSL
http://www.codestuff.com/2008/09/22/33/how-to-secure-your-wordpress-blog-by-setting-up-ssl.html
تشكرات :) ….
السلام عليكم
شكرا على هذه الجهود
اذا امكن اين اجد دروس تعليمية عن سيرفر لينكس
سوف اكون ممتن جدا لمن يخبرني عن كيفية استخدام سرفر لنكس كموزود خدمة
شكرا على هذه الجهود
هل بالامكان اطلاعنا على موقع تعليمي لينكس سيرفر
@wadah
تقدر ترجع لمواضيع المدونة، وبرضوا حاول تطلع على مواضيع مجتمع لينكس العربي