ربط كيبلي شبكة بـ IP واحد في سيرفرات لينكس لتفادي الانقطاع14 من التعليقات

الكاتب: جريس الجريسي 1 يوليو, 2009
الزيارات: 984

في الشبكات وبالذات في تخصص إدارة السيرفرات، المحافظة على اتصال السيرفر من الانقطاع شيء أساسي ومهم، فعندما ينقطع الاتصال بالسيرفر لا فائدة منه!

بشكل أبسط، لنفترض إني صاحب بنك، وفيه مقدم خدماتي عن طريق الإنترنت لأسهّل على العملاء إنهاء معاملاتهم البنكية من تحويل وإدارة أرصدة دون حضورهم شخصياً للبنك.

لأُقدم خدماتي عن طريق الإنترنت، لا بد أن يكون لدي سيرفر مستضيف الموقع الخاص بي، والموقع فيه كل هذه التعاملات البنكية التي يحتاجها العميل. حسنًا، إذا  فقد السيرفر الاتصال بالإنترنت، ما الفائدة منه؟

العملاء الخاصين بالبنك لن يستطيعون الدخول للموقع، وهذا ينعكس على سمعتي، إن بنك جريس سيء في خدماته الإنترنتية، وكل فترة يتعطل موقعهم. بكذا خسرت شريحة كبيرة من عملائي المهتمين بالتعامل عن طريق الويب للتعاملات البنكية.

ولو تكلمنا بشكل تقني أكثر، السيرفر عندما يتعطل له أكثر من السبب: قد يكون سبب أمني، أو يكون بداخل السيرفر وتوابعه، وقد يكون عطل بالشبكة يمنع العملاء الدخول على السيرفر عن طريق الإنترنت، وأسباب كثيرة يُصعب حصرها.

لكن يوجد سبب محتمل، ألا وهو أن الكيبل المشبوك بالسيرفر مفصول أو متعطل، وهذا هو محور تدوينتي. شاهد هذه الصورة:

نرى الخط الأحمر، هذا هو كيبل السيرفر، في حالة انفصاله يتعطل السيرفر  ويمنع أي دخول له.

فكرة التدوينة تشرح لك كيف تطمئن إن مهما صار في الشبكة الخاصة بك من تعطل، ستضمن إن السيرفر الخاص بك لا  يفقد اتصاله بالإنترنت أو بشبكتك الخاصة.

الطريقة هذه تسمى 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- حاول تشبك الكيابل في سويتشات مختلفة، يعني لا تشبكهم كلهم بسويتش واحد، لأجل أن تتفادى تعطله، ومن ثم تعطل السيرفر. لا تضع بيضك في سلة واحدة :-) .

المصدر: http://jerais.com/plug/?p=743

  1. 20 أمر أساسي لإدارة الشبكات في لينكس
  2. لتفادي إختراق موقعك، توقف عن إستخدام FTP
  3. بدعم من قوقل – تطوير شبكة اتصال سريعة عن طريق الاقمار الصناعية
  4. شبكة الألياف البصرية من قوقل بسرعة 1 غيغا
  5. تنفيذ شبكة WiMAX في مترو دبي
التعليقات 14
  1. 1.
    Windows يقول:

    السلام عليكم
    هل تعمل هذه الطريقة على سيرفرات التي تعمل بنظام ويندوز

    قيم التعليق: Thumb up 0 Thumb down 0

    • .
      mohaned_nj يقول:

      هل تعلم ان نظام اللينكس هو مجاني ومفتوح المصدر فالمقابل فان الويندوز سيرفر هو نظم مغلق ويكلف 950 دولار
      وفوق هذا كله اللينكس احسن من الويندوز سيرفر باشواط

      قيم التعليق: Thumb up 0 Thumb down 0

      • .
        +LinuxWindows يقول:

        نعم اعلم انه مجاني ومفتوح المصدر
        لكن لايمكن اي شخص او مبرمج ان لينكس افضل في جميع الاحوال واليك مثال ما :
        انا ابرمج حاليا موقع ضخم جدا بال ASP.Net ولو فكرت للانتقال للينكس يجب علي التخلي عن ASP.Net والتحول الى PHP او Java-JSP وكلاهما خيار صعب :
        فان PHP لغة حلوة وبسيطة وخفيفة لكن بصراحة لاتقارن بال ASP.Net او JSP من ناحية القوة والمكتبات وطريقة البرمجة نفسها
        اما JSP فلايوجد اصلا استضافات لها كثيرا ونادر ان تجد
        ولاتنسى ان ASP.Net مبنية على ويندوز والكثير من الخدمات يمكن ان تبنى على هذا الاساس وهي بالفعل حيث لك الحق الوصول الى جميع مكونات الفريمورك والكثير والكثير
        وبالنهاية المهم راحة العملاء واختصار الوقت وانا ارى انا مايكروسوفت سيرفر والدوت نت مزيج رائع وهو الافضل لي بالوقت الحالي مع حرصي على تعلم الباقين طبعا

        قيم التعليق: Thumb up 0 Thumb down 0

      • .
        mohaned_nj يقول:

        يا للصدفة
        فقد تعلمت لغة ال ASP في الدراسة الجامعية وكان مشروع تخرجي بها بموقع خالص بكلية الهندسة يحتوي على حوالي 50 صفحة ومحركات بحث وووووووووو
        ولكن للاسف في الحياة العملية وجدت انها لا تنفع فبعد تصميم عدة مواقع بها لم اجد مزود واحد يدعمها وعندما اجد يكون سعره خيالياً
        حتى بحتث عن لغة اخرى فوجدت ال php ويال روعتها وامكانياتها الهائلة وفوق ذلك كله تعمل في كل المزودات وهي مجانية ومفتوحة المصدر والحمد لله صمتت 7 مواقع ديناميكية بال php وفعلاً ندمت على تعلم ال ASP بعدد الشعر الذي في رأسي

        قيم التعليق: Thumb up 0 Thumb down 0

      • +LinuxWindows

        بصراحة لا اعتقد أنك تعلم عن البي أتش بي الكثير حتى تقول أنها لا تقارن بالدوت نت

        أحضر لى شئ واحد تريد عمله ولا تقدر عليه البي أتش بي برمجيا

        أما من حيث السهولة … فهى تعتمد بالأساس على الفيجوال ستوديو … لكن لو جربت العمل بدونه فلن تجد العمل ممتعا ولا سهلا

        قيم التعليق: Thumb up 0 Thumb down 0

      • .
        mohaned_nj يقول:

        بما انك تعمل على ال visual studio فلا الومك على استخدام ال ASP
        لكن عنش شخصياً فانا في كلا اللغتين اكتب الكود بلا برامج جاهزة
        وحسب رأيي الشخصي فان PHP احسن باشواط من ASP

        قيم التعليق: Thumb up 0 Thumb down 0

      • اخواني الفرق بسيط
        ال php مفتوحة المصدر وال ASP مغلقة
        والمقارنة بينها هي مثل المقارنة بين apache و IIS
        ما رأيكم بهذه الخبر القديم بعض الشياء:
        العالم الآخر
        مايكروسوفت تنقلب على نفسها وتموِّل أباتشي:
        http://ebncana.wordpress.com/2008/08/04/%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%AA%D9%86%D9%82%D9%84%D8%A8-%D8%B9%D9%84%D9%89-%D9%86%D9%81%D8%B3%D9%87%D8%A7-%D9%88%D8%AA%D9%85%D9%88%D9%91%D9%90%D9%84-%D8%A7%D9%84/
        عيب ال ASP انها لا تعمل على معظم السيرفرات على العكس من ال php التي تعمل في كل البيئات
        وانا شخصياً اميل للغات التي لا يتحكم بمصيرها النهائي شركة كالثير من اللغات التي انقرضت

        قيم التعليق: Thumb up 0 Thumb down 0

      • .
        +LinuxWindows يقول:

        انا براي الشخصي ان بنية PHP ولاتقارن ببنية الفريمورك العملاقة
        وانا شخصيا اشعر بكثير من التحكم والقوة عند استعمالي لل ASP.Net وانا لااقول ان PHP لاتستطيع عمل ذلك او ذاك لكن طريقة البرمجة والوصول للهدف في ASP.Net اجمل
        ولو تلاحظ الكتب في امازون فسوف تلاحظ ان في ASP.Net و Java و( JSP بطبيعة الحال )هنالك الكثير من المواضيع الاحترافية المتخصصة جدا على عكس PHP فمضوعات الكتب فيه محددة …
        وانا استمر بملاحظة ان انك تسميASP.Net ب ASP وهنالك فرق كبير جدا بيهما وانا ضخصيا لا احب ASP فبها الكثير من قل المرونة ولاتقارن بال ASP.Net

        في النهاية الموضوع موضوع راحة بطريقة البرمجة وتحقيق النتائج المرجوة للعميل

        تحياتي

        قيم التعليق: Thumb up 0 Thumb down 0

  2. 2.
    mohaned_nj يقول:

    شكراً لك على هذا الشرح الرائع

    قيم التعليق: Thumb up 0 Thumb down 0

  3. صراحة استفيد كثرا من عالم التقنية
    مع اني مش متخصص في السيرفرات

    قيم التعليق: Thumb up 0 Thumb down 0

  4. في حالة إنك تستخدم سيرفرات HP وعليها ويندوز سيرفر، إيه تستطيع تسوي نفس الفكرة، مو الطريقة.

    قيم التعليق: Thumb up 0 Thumb down 0

  5. فقط للتوضيح، الموضوع عن سيرفرات لينكس وكيف تجعلها stable من ناحية الشبكة، مو عن PHP vs ASP.NET، ياليت ما نطلع برا فكرة الموضوع لجل ما يتشتت القارئ.

    قيم التعليق: Thumb up 0 Thumb down 0

  6. جميل .. :D

    قيم التعليق: Thumb up 0 Thumb down 0

  7. 7.
    واحد شاف التدوينة يقول:

    شرح قوووووووووووي اخي جريس , وموضوعك تم التقييم ارجو ان يكون هناك تدوينات حلوة نفس هذه بارك الله فيك وجعله بميزان حسناتك على هذا الموضوع والافائدة الجميلة تحياتي واحترماتي

    قيم التعليق: Thumb up 0 Thumb down 0

إكتب تعليقك

تعقيبات من مواقع أخرى
  1. تجربة « blog root3ksa


المقالات في عالم التقنية تُعبّر عن رأي كاتبها ¦ © 2010 - جميع الحقوق محفوظة عالم التقنية ¦ تصميم و تطوير: عبدالملك الثاري