السلام عليكم
كيف الحال
اريد ان اسال عن خطوات تحويل لينكس CentOS 5 الى راوتر والافضل يكون عن طريق عمل configration وليس برنامج لعمل الراوتر
ارجوكم ساعدوني فانا محتاجة هذا الموضوع جدا
وشكرا جزيلا لكم
وبانتظار اجاباتكم
السلام عليكم
كيف الحال
اريد ان اسال عن خطوات تحويل لينكس CentOS 5 الى راوتر والافضل يكون عن طريق عمل configration وليس برنامج لعمل الراوتر
ارجوكم ساعدوني فانا محتاجة هذا الموضوع جدا
وشكرا جزيلا لكم
وبانتظار اجاباتكم
تحتاجين ل zebra لتشغيل ال dynamic routing protocols , بعدها سيصبح السيرفر كراوتر مكتمل تقريبا .. فكل شيء متوفر بدأ من ال firewall وال load balancing , traffic shaping التعديل في خيارات ال QOS وتعديلات RED لل dropping ... الخ
لكن الشيء الأساسي الناقص هو zebra فقط حيث البقية تكون موجودة بشكل إفتراضي غالبا .
eech يمكن أن يفيدك أكثر ..
السلام عليكم
اشكرك على ردك اخ HGB
ولكن انا اريد ان احول لينكس الى راوتر بدون برامج اذا كنت تعرف الخطوات ارجو ان تساعدني
انا مبتدئة في لينكس ولذلك ارجو ان تساعدني قدر الامكان في بعض الاسئلة
ما هو الفرق بين استخدام برنامج مثل zebra لعمل راوتر وبين عمل راوتر بدون برامج يعني انا اعلم ان هناك طريقة عبر iptable ولكن لا اعرف الخطوات بالضبط اذا كان عندك فكرة على كيفية عمل هذه الطريقة على CentOS 5 ارجو افادتي بها
كما ان هناك iprout التي يمكن استخدامها ايضا
فما هو الفرق بين هذه الطرق ؟؟؟!!
واهم شي احتاجه هو كيفية عمل راوتر عن طريق iptable
انا اعرف كثرت الاسئلة ولكن انا بحثت اكثير وتعبت ولم اجد حل
وبما اني مبتدئة في هذا الموضوع واحتاج الى هذا الامر ضروري وبسرعة فارجو ان تتحملوني وتساعدوني قدر الامكان
والله يجازيكم خير
تم تعديل هذه المشاركة بواسطة المحترفة في 27 نوفمبر 2009 في 18:54
س: ولكن انا اريد ان احول لينكس الى راوتر بدون برامج اذا كنت تعرف الخطوات ارجو ان تساعدني
ج:
sysctl -w net.ipv4.ip_forward=1
س: كما ان هناك 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 ولا يحتاج برامج إضافية، وهذه البرامج الإضافية هي إضافات لستهيل العملية من جانب أو آخر.
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
شكرا eech على اجابتك كفيت ووفيت, لكن هناك استفسار :
ذكرت ان البرامج تعمل dynamic routing protocol , هل معنى هذا ان الطريقة التي ذكرتها بدون برامج تكون static route
وشكرا مرة اخرى والله يوفقك
صحيح. الـ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.
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
شكرا جزيلا eech على الشرح الوافي
مرحبا اخ 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
ويمكنني ادخال الباسوررد واليوزر نيم ويدخل بنجاح ولكن الانترنيت لايشتغل
فهل يمكنك مساعدتي في معرفة الخلل ولماذا لا يرتبط بالانترنيت
عندما تضعين 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 على كل منفذ
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
اخ 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
مع جزيل الشكر
المشكلة واضحة..
الـ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.
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
بالنسبة للحل الاول فلا يمكن ..لأن wireless router موجود لدى الشركة التي تزودني بالانترنيت فانا ليس لدي راوتر وبذلك لايمكنني التغيير به او التعديل عليه.
اما بالنسبة للحل الثاني ..فما هي الخطوات للقيام بذلك؟
علما ان eth0 هي المرتبطة بالانترنيت
لا مشكلة أن eth0 مرتبطة بالانترنت. واصلا هذا هو الاستخدام الشائع.
تقومين باعداد nat بالـfirewall.. مثلا ip tables مثال مشهور ومعياري في لينكس ويقوم بهذا.
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
اذا كنت تقصد تفعيل النات فانا قمت بذلك وقد اوضحت هذا في جوابي السابق وقد ذكرت الخطوات التي اتبعتها
ولكن للاسف لم تنجح الطريقة
لابد ان هناك سبب ما ؟؟
لا اعرف ماهو؟؟
كيف جعلتي net.ipv4.ip_forward=1. ماهي الاوامر التي كتبتها بالضبط.
كذلك احتمال أن الـnat module مش loaded.
اكتبي lsmod | grep iptable_nat وقولي هل هناك أي مخرجات؟
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
تم تعديل هذه المشاركة بواسطة المحترفة في 8 ديسمبر 2009 في 15:34
هل قمتي بـreboot بعدها؟ لأنك اذا غيرت قيمة الملف، فلن يتم تطبيق الـrouting إلا بعدما يحدث reboot.. فهذا فقط وقت الـbooting
بينما التعديل بواسطة الأمر sysctl او echo على ملفات proc ستكون live
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
نعم لقد قمت بعمل reboot بعد تغيير القيمة في الملف
اعطيني جميع الأوامر التي كتبتيها حرفا حرفا من البداية إلى النهاية.
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
دخلت الى الملف sysctl وغيرت قيمة net.ipv4.ip_forward الى واحد
ثم كتبت الاوامر التالية
#service iptables stop
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#service iptables save
service iptables restart#
ثم restart
ولكن لم تنجح الطريقة
تم تعديل هذه المشاركة بواسطة المحترفة في 9 ديسمبر 2009 في 15:18
اكتبي هذه الاوامر وعطيني المخرجات:
sysctl net.ipv4.ip_forward
iptables -t nat -L
iptables -t filter -L
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
اعدادات الـ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 ؟
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to
ان اعدادات الشبكة صحيحة
الـ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)
تم تعديل هذه المشاركة بواسطة المحترفة في 11 ديسمبر 2009 في 15:28
كلامك صحيح. eth0 للانترنت (ظننته lan). لذا eth1 كgateway للـclient صحيح.
عندما يشبك الكلاينت على اللينكس، كيف تضعين الـDNS في الـclient؟
كذلك من الكلاينت اعطيني المخرجات:
قومي بـ icmp traceroute بواسطة الأمر taceroute على 209.85.153.104.
وكذلك tcp traceroute بواسطة الامر tracepath 209.85.153.104/80 اذا كان لديك البرنامج.
اذا في خطأ، فالخطأ بسيط لأنك قمتي بالأساسيات.. للعلم نفس الشيء يعمل عندي بالمنزل وتحققت مرة أخرى على لينكس ويعمل 100%.
إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.
before asking: smart questions how-to