• 0
reta

راوتر ليونكس

سؤال

السلام عليكم

كيف الحال

اريد ان اسال عن خطوات تحويل لينكس CentOS 5 الى راوتر والافضل يكون عن طريق عمل configration وليس برنامج لعمل الراوتر

ارجوكم ساعدوني فانا محتاجة هذا الموضوع جدا

وشكرا جزيلا لكم

وبانتظار اجاباتكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

27 إجابة على هذا السؤال .

  • 0

تحتاجين ل zebra لتشغيل ال dynamic routing protocols , بعدها سيصبح السيرفر كراوتر مكتمل تقريبا .. فكل شيء متوفر بدأ من ال firewall وال load balancing , traffic shaping التعديل في خيارات ال QOS وتعديلات RED لل dropping ... الخ

لكن الشيء الأساسي الناقص هو zebra فقط حيث البقية تكون موجودة بشكل إفتراضي غالبا .

eech يمكن أن يفيدك أكثر ..

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اشكرك على ردك اخ HGB

ولكن انا اريد ان احول لينكس الى راوتر بدون برامج اذا كنت تعرف الخطوات ارجو ان تساعدني

انا مبتدئة في لينكس ولذلك ارجو ان تساعدني قدر الامكان في بعض الاسئلة

ما هو الفرق بين استخدام برنامج مثل zebra لعمل راوتر وبين عمل راوتر بدون برامج يعني انا اعلم ان هناك طريقة عبر iptable ولكن لا اعرف الخطوات بالضبط اذا كان عندك فكرة على كيفية عمل هذه الطريقة على CentOS 5 ارجو افادتي بها

كما ان هناك iprout التي يمكن استخدامها ايضا

فما هو الفرق بين هذه الطرق ؟؟؟!!

واهم شي احتاجه هو كيفية عمل راوتر عن طريق iptable

انا اعرف كثرت الاسئلة ولكن انا بحثت اكثير وتعبت ولم اجد حل

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

والله يجازيكم خير

تم تعديل بواسطه المحترفة
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

س: ولكن انا اريد ان احول لينكس الى راوتر بدون برامج اذا كنت تعرف الخطوات ارجو ان تساعدني

ج:

sysctl -w net.ipv4.ip_forward=1
هذا كفيل لتحويل الجهاز إلى راوتر. هذا run time بعد reboot يزول. لذا احفظيه في ملف /etc/sysctl حتى يكون دام.

س: كما ان هناك iprout التي يمكن استخدامها ايضا

ج: iproute ماهو إلا مجموعة أدوات للتحكم في الـnetworking في الـlinux kernel. حيث أن الـrouting يحدث داخل الـkernel او النواة.

س: واهم شي احتاجه هو كيفية عمل راوتر عن طريق iptable

هذا حائط ناري بالاساس لا يقوم بrouting هذه وظيفة iproute.

الـrouting هو شيء بسيط. حتى ممكن Windows XP يقوم به. لكن كما قال HGB، عندما تتعمقين في الشبكات ستجدين انه حتى Win 2008 server لا يستطيع القيام بما يقوم به اللينكس.

ليس من باب العنصرية ضد وندوز، لكن لكل نظام إيجابياته وسلبياته. مثلا حتى الآن لا توجد طريقة نظيفة لـ (مثلا) القيام بـweighted un-equal-cost loadbalancing مع وندوز. بينما اللينكس أو BSD يقومون به في منتهى الأناقة.

بينما zebra (المشروع شبه ميت الآن - آخر اصدارة 2005) أو quagga (الـfork الذي خرج من zebra - نشيط، آخر تحديث قبل شهرين او ثلاث) يقدمون وظائفية كـdynamic routing protocol وهذه هي route learning أكثر مما هي "routing" فالـrouting (وكما قال HGB) يحدث داخل الـLinux Kernel ولا يحتاج برامج إضافية، وهذه البرامج الإضافية هي إضافات لستهيل العملية من جانب أو آخر.

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا eech على اجابتك كفيت ووفيت, لكن هناك استفسار :

ذكرت ان البرامج تعمل dynamic routing protocol , هل معنى هذا ان الطريقة التي ذكرتها بدون برامج تكون static route

وشكرا مرة اخرى والله يوفقك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

صحيح. الـLinux kernel ليس له دخل بـdynamic routing protocols إنما يقوم بتوفير خاصية الـrouting.

وأصلا الـdynamic routing protocols ماهي سوى processes أو applications تعمل في الـuser space وتقوم بإرسال packets عبر الشبكة لتتحدث مع أجهزة مجاورة وتكتشف مسارات جديدة للوصول لشبكات جديدة.

وبعدما تتعلم تلك الشبكات والمسارات تقوم بوضعه في الـrouting table الذي يتم توفيره بواسطة الـkernel فالـkernel لا يعلم كيف تعلم، وكل الذي يعلمه هو كيف يطبق routing.

لذا ممكن اي شخص، لديه علم، يقوم ببرمجة اسكربت بسيط، يقوم بتعديل الـrouting table ديناميكيا وبالتالي نقول dynamic routing

الـrouting أمر بسيط، وهو استقبال packet عبر منفذ معين بالرغم أن الـdestination IP مختلف، وثم تحويله إلى منفذ آخر (أو المنفذ نفسه) حيث من المفروض وجود من يهمه الأمر. وهذا مايتم توفيره بالـkernel، وهذا أيضا هو تعريف الـrouter او routing.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا جزيلا eech على الشرح الوافي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مرحبا اخ eech

بعد تجربة الطريقة للاسف لم تنجح وهذه هي الخطوات الي اتبعتها

1-وضعتو ip لكارت الشبكة الاول الذي هو الاي بي الذي اعطينياه الشركة التي تزودني بالانترنيت

2- وضعتو اي بي لكارت الشبكة الثاني 192.168.10.1

3- ثم غيرتو القيمة للسطر

net.ipv4.ip_forward

من صفر الى واحد

4- غيرتو اعدادات الحاسبة الثانية

الاي بي 192.168.10.2

الماسك 255.255.0.0

الgateway

192.168.10.1

علما انه لكي استطيع الدخول على الانترنيت لدي

user name &password

تزودني بهم الشركة المجهزة للانترنيت

وبعد اتباع الخطوات السابقة لم انجح بالدخول على الانترنيت من الحاسبة الثانية

ولكن استطعتو الدخول الى صفحة user name & password

ويمكنني ادخال الباسوررد واليوزر نيم ويدخل بنجاح ولكن الانترنيت لايشتغل

فهل يمكنك مساعدتي في معرفة الخلل ولماذا لا يرتبط بالانترنيت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عندما تضعين net.ipv4.ip_forward=1 انت فقط تقومين enable لخاصية الـrouting.

عندما تفعلين خاصية الـrouting في الـkernel، صحيح أن الخاصية ستصبح مفعلة، لكنك أيضا تحتاجين اعداد الـrouting table. فـrouting من غير routing table _سليم_ لا يكفي. يجب أنا يجتمع الاثنين.

اعداد الـrouting table، ليس فقط على خادم الـlinux، بل أيضا في بعض الحالات يتطلب تغيير الـrouting table في أجهزة شبكات أخرى في المسار.

المسألة بسيطة جدا... حتى أخبرك بالضبط كيف يجب عليك إضافة الـrouting table، وتجنبا لإهدار الوقت في اللف حول نقطة واحدة: أرجو أن ترسمي رسمة توضيحية للشبكة. يعني مثلا:

[client]------[switch]------[linux]------[adsl]-------INTERNET

وثم ضعي الـIP address والـsubnet mask على كل منفذ

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخ eech اشكرك على تعاونك ومساعدتك

انا حاليا اجرب على شبكة صغيرة ولكن فيما بعد عندما تنجح العملية انوي ان اطور عملي على شبكة اكبر تتكون من عدة حاسبات

حاليا ً شبكتي كالتالي :

استلم خط الانترنيت wireless من الشركة المزودة للانترنيت عبر access point ثم يدخل واير الى حاسبة اللينكس (التي اريد ان اجعلها راوتر)

وقد زودتني الشركة بهذا الايبي

Ip: 192.21.1.50

Mask: 255.255.0.0

وهو ip الذي ساضعه لحاسبة اللينكس( التي اريد ان احولها الى راوتر)

ولكي استطيع الدخول الى الانترنيت يوجد لدي user name وكلمة سر

ثم من حاسبة اللينكس لدي حاسبة واحدة (حاليا)

اذ لا يوجد لدي switch

ولكن طبعاً في المستقبل سيكون لدي switch ويرتبط به مجموعة حاسبات او ربما مجموعة من switch

وهذه هي خريطة الشبكة

(company) [client]----------------[linux]----------[access point (wireless) ]-------INTERNET

Linux

Eth0

Ip: 192.21.1.50

Mask: 255.255.0.0

Eth1

Ip :192.168.10.1

Mask: 255.255.0.0

Client:

Ip: 192.168.10.2

Mask :255.255.0.0

ونسيت ان اذكر لك انني بعد ان جعلت

net.ipv4.ip_forward=1

قمت باتباع الخطوات التالية

# service iptables stop

# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# service iptables save

# service iptables restart

مع جزيل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

المشكلة واضحة..

الـrouting من طرف اللينكس سليم. المشكلة في الـrouting من طرف الـwireless router. لديك اختيارين:

1- اذهبي إلى الى الـwireless router وضعي route كالتالي 196.168.10.0/24 ويشير إلى 196.21.1.50

2- قومي بإعداد NAT على الـlinux box بحيث أي شيء يخرج من eth0 يكون مترجم الـsource ip إلى 196.21.1.50

تفاصيل المشكلة:

الـclient لو أرسل ping google.com سيمر على اللينكس،واللينكس سيلقيه على الـwireless internet SP router

وطبعا الـwireless router سيقوم بإرساله إلى google.com لأن الـrouting table يحتوي على default route وجوجل في معظم الأحيان accessable من هذا الـdefault gateway

ثم بعدها Google يقوم بـping reply وينزل تحت إلى أن يصل إلى الـwireless router --- هنا ستحدث المشكلة مع الـwireless router عند رجوع الـpacket.

الـwireless router، لا يعلم كيف يصل إلى 192.168.10.0/24 حيث أن لديه تقريبا في الراوتينج table فقط معلومتين:

كيف يصل إلى 192.168.21.0/24

كيف يصل إلى أي شيء آخر. وهذا الشيء الآخر موجه للإنترنت.

وبعدها يقوم الرانوتر بإرساله من جديد إلى النترنت!! وطبعا الـrouter في مزودة الخدمة ستقوم بـdrop لأن الـprivate IPs غير مسموحة سواء 196.168 أو 10 أو 172.16/12 ---- rfc1918

طبعا لن يقوم بـNAT لأن الـpacket أتى من الخارج. فالـnat حساس لمسألة الـdirection. وهذا ما تقوم به معظم الراوترات وهذا هو الصحيح. لكن ايضا يعتمد على التطبيق فهناك بعض الراوترات منزلية تقوم بـnat بغض النظر عن direction.

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالنسبة للحل الاول فلا يمكن ..لأن wireless router موجود لدى الشركة التي تزودني بالانترنيت فانا ليس لدي راوتر وبذلك لايمكنني التغيير به او التعديل عليه.

اما بالنسبة للحل الثاني ..فما هي الخطوات للقيام بذلك؟

علما ان eth0 هي المرتبطة بالانترنيت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا مشكلة أن eth0 مرتبطة بالانترنت. واصلا هذا هو الاستخدام الشائع.

تقومين باعداد nat بالـfirewall.. مثلا ip tables مثال مشهور ومعياري في لينكس ويقوم بهذا.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اذا كنت تقصد تفعيل النات فانا قمت بذلك وقد اوضحت هذا في جوابي السابق وقد ذكرت الخطوات التي اتبعتها

ولكن للاسف لم تنجح الطريقة

لابد ان هناك سبب ما ؟؟

لا اعرف ماهو؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كيف جعلتي net.ipv4.ip_forward=1. ماهي الاوامر التي كتبتها بالضبط.

كذلك احتمال أن الـnat module مش loaded.

اكتبي lsmod | grep iptable_nat وقولي هل هناك أي مخرجات؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

فتحت ملف etc/sysctl

وغيرت القيمة الى واحد

بالنسبة lsmod | grep iptable_nat

فالمخرجات موجودة في الصورة

post-89390-126027542982_thumb.png

تم تعديل بواسطه المحترفة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هل قمتي بـreboot بعدها؟ لأنك اذا غيرت قيمة الملف، فلن يتم تطبيق الـrouting إلا بعدما يحدث reboot.. فهذا فقط وقت الـbooting

بينما التعديل بواسطة الأمر sysctl او echo على ملفات proc ستكون live

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نعم لقد قمت بعمل reboot بعد تغيير القيمة في الملف

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اعطيني جميع الأوامر التي كتبتيها حرفا حرفا من البداية إلى النهاية.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

دخلت الى الملف sysctl وغيرت قيمة net.ipv4.ip_forward الى واحد

ثم كتبت الاوامر التالية

#service iptables stop

#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#service iptables save

service iptables restart#

ثم restart

ولكن لم تنجح الطريقة

تم تعديل بواسطه المحترفة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اكتبي هذه الاوامر وعطيني المخرجات:

sysctl net.ipv4.ip_forward

iptables -t nat -L

iptables -t filter -L

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ناتج الاوامر في الصورة المرفقة

post-89390-12604681577962_thumb.png

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اعدادات الـNAT سليمة 100% حسب هذه المخرجات.

تأكدي من اعدادات الشبكات... هل وضعتي default gateway على الـLinux وكذلك الـClient؟

الـdefault gateway على الـLinux سيكون مشيرا إلى الـIP address للـwireless internet

والـdefault gateway على الـclient سيكون مشيرا إلى الـip address للـeth0

وكذلك لا تنسي اعدادات الـDNS على الـclient.

بالمناسبة، هل تستطيعين ping google.com مثلا من الـlinux box ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ان اعدادات الشبكة صحيحة

الـdefault gateway على الـLinux سيكون مشيرا إلى الـIP address للـwireless interne

وضعت default gateway للeth0 مشيرا لل IP address للـwireless internet

هذه النقطة صحيحة

اما بالنسبة للنقطة الثانية

والـdefault gateway على الـclient سيكون مشيرا إلى الـip address للـeth0

فانا وضعت ال default gateway على client مشيرا الى ip address لل eth1 وليس eth0

ﻷن eth0 مرتبطة باالانترنيت

اما eth1 فهي المرتبطة ب lan

وعلى العموم جربت طريقتك ايضا ولكن لم تنجح

اما بالنسبة للنقطة الثالثة

بالمناسبة، هل تستطيعين ping google.com مثلا من الـlinux box

فانا ﻻ استطيع عمل ping من اللينكس مع العلم انا استطيع تصفح الانتريت عادي من اللينكس (عندما اعمل ping يبقى بدون اي جواب)

وحتى لو ربطت الانترنيت على حاسبة ويندوز مباشرة بدون حاسبة اللينكس فانا ﻻ استطيع عمل ping بالرغم من اني اتصفح الانترنيت ( في الويندوز يكون request time out)

تم تعديل بواسطه المحترفة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كلامك صحيح. eth0 للانترنت (ظننته lan). لذا eth1 كgateway للـclient صحيح.

عندما يشبك الكلاينت على اللينكس، كيف تضعين الـDNS في الـclient؟

كذلك من الكلاينت اعطيني المخرجات:

قومي بـ icmp traceroute بواسطة الأمر taceroute على 209.85.153.104.

وكذلك tcp traceroute بواسطة الامر tracepath 209.85.153.104/80 اذا كان لديك البرنامج.

اذا في خطأ، فالخطأ بسيط لأنك قمتي بالأساسيات.. للعلم نفس الشيء يعمل عندي بالمنزل وتحققت مرة أخرى على لينكس ويعمل 100%.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

البرنامج غير موجود عندي لتطبيق traceroute

اضع في ال client ال DNS الذي اعطينياه مزود الخدمة

انت ذكرت انه نفس الشيء يعمل عندك في المنزل , فهل تقصد انه لديك راوتر لينكس وتستخدمه لتوزيع الانترنيت؟

وهل تستخدم centos 5 او اصدارة اخرى ؟؟ وماهي الايعازات التي اتبعتها لعمل ذلك؟

بالمناسبة الصورة التي بعثتها لك سابقا عن نتيجة تنفيذ الايعازات التالية

sysctl net.ipv4.ip_forward

iptables -t nat -L

iptables -t filter -L

كانت بدون ريبوت

ولكن عندما اعملreboot واكتب الاوامر تظهر لي كما في الصورة المرفقة التالية :-(ﻻ اعرف من اين جاء 192.168.122.0/24 فشبكتي المحلية هي 192.168.0.0/16)

post-89390-12606341542641_thumb.png

تم تعديل بواسطه المحترفة
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .