درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من
    اطلاعات مطلب
      مدرس/نویسنده
      امیرحسین کریم پور
      امتیاز: 127537
      رتبه:11
      11
      415
      345
      3886
      امیرحسین کریم پور ، مدیر انجمن سخت افزار و تجهیزات دیجیتال TOSINSO ، متخصص شبکه ، تخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت ، سیستم عامل لینوکس ، علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی ... پروفایل کاربر
      دوره های مرتبط
      دوره های توسینسو دوره آموزشی Linux Essentials = دریچه ورود شما به دنیای لینوکس
      دوره آموزشی Linux Essentials = دریچه ورود شما به دنیای لینوکس
      مدرس: محمد نصیری
      این دوره را در 17 قسط خریداری کنید
      با خرید این دوره مبلغ 7,150 تومان هدیه بگیرید
      دوره آموزشی کنترل پنل هاستینگ CWP
      دوره آموزشی کنترل پنل هاستینگ CWP
      مدرس: فربد رستم صولت
      این دوره را در 6 قسط خریداری کنید
      با خرید این دوره مبلغ 6,875 تومان هدیه بگیرید
      دوره آموزشی بین المللی لینوکس LPIC1 کد 102
      دوره آموزشی بین المللی لینوکس LPIC1 کد 102
      مدرس: محمد نصیری
      این دوره را در 16 قسط خریداری کنید
      با خرید این دوره مبلغ 11,715 تومان هدیه بگیرید
      دوره آموزشی فوق تخصصی Shell Scripting در BASH Shell
      دوره آموزشی فوق تخصصی Shell Scripting در BASH Shell
      مدرس: محمد عابدینی
      این دوره را در 19 قسط خریداری کنید
      با خرید این دوره مبلغ 5,500 تومان هدیه بگیرید
      دوره آموزشی مقدماتی BASH Scripting در لینوکس
      دوره آموزشی مقدماتی BASH Scripting در لینوکس
      مدرس: مجتبی اسمائی
      این دوره را در 10 قسط خریداری کنید
      دوره آموزشی راه اندازی سرویس های تحت شبکه در لینوکس CentOS
      دوره آموزشی راه اندازی سرویس های تحت شبکه در لینوکس CentOS
      مدرس: آرش حیدری
      این دوره را در 12 قسط خریداری کنید
      آموزش نصب سیستم عامل اندروید روی کامپیوترهای شخصی با Android PC
      آموزش نصب سیستم عامل اندروید روی کامپیوترهای شخصی با Android PC
      مدرس: محمد عابدینی
      این دوره را در 1 قسط خریداری کنید
      دوره آموزشی جامع CentOS Web Panel یا CWP
      دوره آموزشی جامع CentOS Web Panel یا CWP
      مدرس: کاظم تقندیکی
      این دوره را در 10 قسط خریداری کنید
      با خرید این دوره مبلغ 6,325 تومان هدیه بگیرید
      دوره آموزشی بین المللی لینوکس LPIC2 کد 201
      دوره آموزشی بین المللی لینوکس LPIC2 کد 201
      مدرس: محمد نصیری
      این دوره را در 27 قسط خریداری کنید
      با خرید این دوره مبلغ 10,135 تومان هدیه بگیرید
      گام به گام تخصصی مدیریت و پیکربندی سرورها با Ansible در لینوکس
      گام به گام تخصصی مدیریت و پیکربندی سرورها با Ansible در لینوکس
      مدرس: مجتبی اسمائی
      این دوره را در 10 قسط خریداری کنید
      دوره آموزشی راه اندازی ایمیل سرور iRedMail در OpenBSD
      دوره آموزشی راه اندازی ایمیل سرور iRedMail در OpenBSD
      مدرس: محمد عابدینی
      این دوره را در 2 قسط خریداری کنید
      دوره آموزشی رایگان نصب انواع لینوکس بصورت عادی و Dual Boot
      دوره آموزشی رایگان نصب انواع لینوکس بصورت عادی و Dual Boot
      مدرس: محمد عابدینی
      این دوره را در 4 قسط خریداری کنید
      دوره آموزشی بین المللی لینوکس LPIC1 کد 101
      دوره آموزشی بین المللی لینوکس LPIC1 کد 101
      مدرس: محمد نصیری
      این دوره را در 18 قسط خریداری کنید
      با خرید این دوره مبلغ 10,450 تومان هدیه بگیرید
      دوره اموزشي فوق تخصصي  سيستم عامل لينوكس RHCSA  قسمت اول
      دوره اموزشي فوق تخصصي سيستم عامل لينوكس RHCSA قسمت اول
      مدرس: علیرضا سیفی و هومن برازنده
      این دوره را در 10 قسط خریداری کنید
      دوره آموزشی بین المللی لینوکس LPIC2 کد 202
      دوره آموزشی بین المللی لینوکس LPIC2 کد 202
      مدرس: امیرحسین احمدی
      این دوره را در 29 قسط خریداری کنید

      عیب یابی و برطرف کردن مشکلات مربوط به شبکه در سیستم عامل لینوکس

      تاریخ 7 ماه قبل
      نظرات 0
      بازدیدها 125
      مشکلات مربوط به شبکه در سیستم عامل گنو لینوکس در برخی اوقات به سختی قابل برطرف کردن است و نیازمند داشتن تجربه و تخصص در زمینه شبکه است و محدود به تنظیمات و پیکربندی های سرویس های شبکه در سیستم عامل گنو لینوکس نمی شود . اما شما به عنوان یک SysAdmin می توانید به ادمین شبکه سازمان کمک کنید تا مشکل را برطرف کند . تشخیص اینکه مشکل مربوط به شبکه است بسیار آسان است زیرا اگر سیستم نتواند با یک سیستم دیگر ارتباط برقرار کند و یا به اینترنت متصل شود و سایر موارد دیگر براحتی می توان تشخیص داد که مشکل از شبکه می باشد . در این آموزش تا حدودی می آموزید که چگونه می توانید از پس مشکلات مربوط به شبکه در سیستم عامل گنو لینوکس بر بیایید . در حالت کلی اگر یک کامپیوتر بخواهد با یک کامپیوتر دیگر در شبکه به برقراری ارتباط و تبادل اطلاعات بپردازد موارد زیر بایستی فراهم و رعایت شود :

      1 - کارت شبکه بایستی بصورت صحیح در سیستم نصب شود و درایور آن نیز در سیستم عامل بایستی بصورت صحیح نصب شود .
      2 - کارت شبکه باید آدرس IP صحیح دریافت کند .
      3 - کامپیوتر باید بتواند در Subnet ای که در آن قرار دارد با کامپیوتر های دیگر در همان Subnet ارتباط برقرار کند .
      4 - و ....

      خب همانطور که پیشتر نیز به شما گفتیم یک کامپیوتر در شبکه برای برقراری ارتباط با سایر کامپیوتر ها دست کم نیاز به یک کارت شبکه دارد . در طی Boot شدن سیستم کرنل لینوکس کارت شبکه هایی که به طور معمول به PCI Bus و همچنین USB متصل شدن را شناسایی می کند سپس کرنل کاری که می کند این است که درایور مورد نیاز برای کارت شبکه را پیدا می کند و به کارت شبکه می شناساند تا بتواند با کارت شبکه ارتباط برقرار کند . به دنبال این پروسه udev daemon که با نام udevd در لینوکس شناخته می شود در فاز های اول فرآیند Boot شدن سیستم اجرا می شود و قوانین مربوط به کارت شبکه را اعمال می کند و شما می توانید کارت شبکه را با نامی مثل eth0 مشاهده کنید . زمانی که کارت شبکه بطور کامل Load شد در مراحل بعد کارت شبکه یک آدرس IP دریافت می کند . خب یکبار دیگر فرآیند شناسایی شدن کارت شبکه را با هم مرور می کنیم :

      1 - کرنل سیستم عامل گنو لینوکس PCI bus را شناسایی و پیدا می کند .
      2 - با توجه به اطلاعاتی که در کرنل در رابطه با PCI Bus وجود دارد درایور مورد نظر را برای کارت شبکه Load می کند .
      3 - Udev بر اساس قوانین یا Rule های خود کارت شبکه یا Network Interface را برای شما پیکربندی و آماده استفاده می کند .

      برای تعمیر مشکلات مربوط به کارت شبکه ابتدا باید ببینید اصلا کارت شبکه در PCI Bus وجود دارد یا خیر. برای این کار دستور lspci را در ترمینال اجرا کنید. خروجی شبیه به شکل زیر است :

      JBO:~ # lspci
      00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
      00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
      00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
      00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
      00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
      00:07.7 System peripheral: VMware Inc Virtual Machine Communication Interface (rev 10)
      00:0f.0 VGA compatible controller: VMware Inc Abstract SVGA II Adapter
      00:10.0 SCSI storage controller: LSI Logic / 
                     Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
      02:00.0 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB
      02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
      02:02.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)
      02:03.0 USB Controller: VMware Inc Abstract USB2 EHCI Controller
      JBO:~ #
      

      در خروجی دستور فوق در قسمت 02:01.0 کارت شبکه Ethernet توسط کرنل یافت شده است . در همین خط کارت شبکه AMD 79c970 را می بینید که کرنل ماژول PCnet32 نیاز دارد تا به آدرس دهی شود . قدم بعدی برای حل این مشکل این است که چک کنید که پیکربندی های سخت افزاری کارت شبکه در شاخه sys قرار گرفته ند یا خیر . هر دستگاه استفاده کننده از PCI پیکربندی های خود را در این شاخه ذخیره می کند . در دایرکتوری sys پوشه های مختلفی با توجه به نوع دستگاه ها قرار دارد اگر در اینجا کارت شبکه ای که راجبش صحبت کردیم را مثال بزنیم مسیر پیکربندی هایش در دایرکتوری sysbuspcidevices0000:02:01.0/ قرار دارد برای مثال اگر از این دایرکتوری ls بگیریم محتویاتی شبیه زیر مشاهده خواهیم کرد :

      JBO:/sys/bus/pci/devices/0000:02:01.0 # ls -l
      total 0
      -rw-r--r-- 1 root root  4096 Oct 18 07:08 broken_parity_status
      -r--r--r-- 1 root root  4096 Oct 17 07:50 class
      -rw-r--r-- 1 root root   256 Oct 17 07:50 config
      -r--r--r-- 1 root root  4096 Oct 17 07:50 device
      lrwxrwxrwx 1 root root     0 Oct 17 07:51 driver -> ../../../../bus/pci/drivers/pcnet32
      -rw------- 1 root root  4096 Oct 18 07:08 enable
      lrwxrwxrwx 1 root root     0 Oct 18 07:08 firmware_node -> 
                                    ../../../LNXSYSTM:00/device:00/PNP0A03:00/device:06/device:08
      -r--r--r-- 1 root root  4096 Oct 17 07:50 irq
      -r--r--r-- 1 root root  4096 Oct 18 07:08 local_cpulist
      -r--r--r-- 1 root root  4096 Oct 18 07:08 local_cpus
      -r--r--r-- 1 root root  4096 Oct 17 07:53 modalias
      -rw-r--r-- 1 root root  4096 Oct 18 07:08 msi_bus
      drwxr-xr-x 3 root root     0 Oct 17 07:50 net
      -r--r--r-- 1 root root  4096 Oct 18 07:08 numa_node
      drwxr-xr-x 2 root root     0 Oct 18 07:08 power
      -r--r--r-- 1 root root  4096 Oct 17 07:50 resource
      -rw------- 1 root root   128 Oct 18 07:08 resource0
      -r-------- 1 root root 65536 Oct 18 07:08 rom
      lrwxrwxrwx 1 root root     0 Oct 17 07:50 subsystem -> ../../../../bus/pci
      -r--r--r-- 1 root root  4096 Oct 17 07:51 subsystem_device
      -r--r--r-- 1 root root  4096 Oct 17 07:51 subsystem_vendor
      -rw-r--r-- 1 root root  4096 Oct 17 07:51 uevent
      -r--r--r-- 1 root root  4096 Oct 17 07:50 vendor
      JBO:/sys/bus/pci/devices/0000:02:01.0 #
      

      آیتم خیلی جالب برای عیب یابی و رفع اشکال این گونه مشکلات symbolic link دایرکتوری driver است ، در این مثال این کارت شبکه ما به درایور pcnet32 اشاره می کند ( به خروجی دستور فوق خوب توجه کنید ) . همانطور که می بینید کارت شبکه PCI از درایور صحیح استفاده می کند . نکته ای که بایستی خدمتتان عرض کنم این است که در برخی موارد درایوری که در لینوکس نصب شده است بخوبی کار می کند و در برخی موارد بصورت صحیح کار نمی کند و مشکل ایجاد می کند . زمانی که داشتم روی سرور Dell کارت شبکه Broadcom را نصب می کردم با مشکلات متعددی مواجه شدم مثلا زمانی که دستور Ping از پکت های Jumbo Frame ها استفاده می کرد Kernel Panic رخ می داد و سرور قفل می کرد . در وهله اول به Kernel driver ظنین شدم که با کارت شبکه همخوانی داشته باشد . در مواقعی که این گونه مشکلات برای شما بوجود می آید ابتدا چک کنید ببینید از کدام نسخه از درایور کارت شبکه در حال حاضر استفاده می کنید ، شما با دستور modinfo می توانید به این موضوع پی ببرید. به خروجی دستور زیر توجه کنید :

      JBO:/ # modinfo pcnet32
      filename:       /lib/modules/2.6.27.19-5-pae/kernel/drivers/net/pcnet32.ko
      license:        GPL
      description:    Driver for PCnet32 and PCnetPCI based ethercards
      author:         Thomas Bogendoerfer
      srcversion:     261B01C36AC94382ED8D984
      alias:          pci:v00001023d00002000sv*sd*bc02sc00i*
      alias:          pci:v00001022d00002000sv*sd*bc*sc*i*
      alias:          pci:v00001022d00002001sv*sd*bc*sc*i*
      depends:        mii
      supported:      yes
      vermagic:       2.6.27.19-5-pae SMP mod_unload modversions 586
      parm:           debug:pcnet32 debug level (int)
      parm:           max_interrupt_work:pcnet32 maximum events handled per interrupt (int)
      parm:           rx_copybreak:pcnet32 copy breakpoint for copy-only-tiny-frames (int)
      parm:           tx_start_pt:pcnet32 transmit start point (0-3) (int)
      parm:           pcnet32vlb:pcnet32 Vesa local bus (VLB) support (0/1) (int)
      parm:           options:pcnet32 initial option setting(s) (0-15) (array of int)
      parm:           full_duplex:pcnet32 full duplex setting(s) (1) (array of int)
      parm:           homepna:pcnet32 mode for 79C978 cards 
                      (1 for HomePNA, 0 for Ethernet, default Ethernet (array of int)
      

      در مثال فوق ما اطلاعات مربوط به درایور کارت شبکه pcnet32 را بدست آوردیم . زمانی که با سخت افزار های متعددی کار می کنید شما بایستی چک کنید ببینید که از کدام نوع module برای آن سخت افزار استفاده می کنید . اگر آن module اپن سورس باشد خوشبختانه باید بگویم که می توانید در زمان بوجود آمدن مشکل (نه فیزیکی) برای آن سخت افزار امیدوار باشید زیرا جامعه Open Source و انجمن مربوطه اش به شما بخوبی کمک خواهند کرد . اگر آن module اپن سورس نباشد ممکن است ناسازگاری هایی بین کرنل لینوکس تان و آن module وجود داشته باشد در این گونه موارد به اصطلاح می گویند که کرنل tainted شده است. Tainted Kernel کرنلی است که module یا ماژول هایی در خود به صورت Load شده دارد که توسط انجمن توسعه دهندگان کرنل گنو لینوکس کنترل و مدیریت نمی شود . برای پی بردن به اینکه کرنل سیستم عامل گنو لینوکس تان Tainted شده یا خیر محتوای فایل procsyskerneltainted را بایستی بررسی کنید اگر فایل tained را cat کردید و مشاهده کردید که عدد صفر در آن است پس کرنل گنو لینوکس شما Tained نشده است و Module های اختصاصی یک شرکت که انحصاری است Load نشده اند اما اگر عدد یک را مشاهده کردید کرنل شما Tained شده است و باید با یک ماژول Open Source جایگزین شود .


      نویسنده : امیرحسین کریم پور
      منبع : linux.tosinso.com
      هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی میباشد
      برچسب ها
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      هیچ نظری ارسال نشده است

        برای ارسال نظر ابتدا به سایت وارد شوید

        arrow