NFS คืออะไร? ระบบไฟล์เครือข่าย โปรโตคอลการเข้าถึงเครือข่ายสำหรับระบบไฟล์ Networks คืออะไร และจะแก้ไขได้อย่างไร? สิ่งที่ควรอยู่ในไฟล์เครือข่าย

มันเป็นอย่างไร การใช้งานจริงไฟล์ /etc/networks? เท่าที่ฉันเข้าใจ คุณสามารถระบุชื่อเครือข่ายในไฟล์นี้ได้ ตัวอย่างเช่น:

Root@fw-test:~# cat /etc/networks เริ่มต้น 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 google-dns 8.8.4.4 root@fw-test:~#

อย่างไรก็ตาม หากฉันพยายามใช้ชื่อเครือข่ายนี้ในยูทิลิตี้ ip มันจะไม่ทำงาน:

root@fw-test:~# เส้นทาง ip เพิ่ม google-dns ผ่าน 104.236.63.1 dev eth0 ข้อผิดพลาด: คาดว่าคำนำหน้า inet แทนที่จะเป็น "google-dns" root@fw-test:~# เส้นทาง ip เพิ่ม 8.8.4.4 ผ่าน 104.236.64.1 dev eth0 root@fw-test:~#

การใช้งานจริงของไฟล์ /etc/networks คืออะไร?

2 โซลูชั่นรวบรวมเว็บฟอร์มสำหรับ “การใช้งานจริงของไฟล์ /etc/networks”

ตามที่ระบุไว้ใน man page ไฟล์ /etc/networks ต้องอธิบายชื่อสัญลักษณ์สำหรับเครือข่าย เมื่อใช้ระบบเครือข่าย นี่หมายถึงที่อยู่เครือข่ายที่มี tail.0 ต่อท้าย รองรับเท่านั้น เครือข่ายที่เรียบง่ายคลาส A, B หรือ C

ในตัวอย่างของคุณ รายการ google-dns ไม่ถูกต้อง ไม่ใช่เครือข่าย A, B หรือ C มันเป็นความสัมพันธ์ระหว่างที่อยู่ IP-ชื่อโฮสต์ ดังนั้นจึงเป็นของ /etc/hosts ที่จริงแล้ว รายการเริ่มต้นก็ไม่ตรงกันเช่นกัน

สมมติว่าคุณมีที่อยู่ IP 192.168.1.5 จากของคุณ เครือข่ายองค์กร. รายการใน /etc/network อาจมีลักษณะดังนี้:

ชื่อบริษัท 192.168.1.0

เมื่อใช้ยูทิลิตี้ เช่น เส้นทาง หรือ netstat เครือข่ายเหล่านี้จะถูกแปล (เว้นแต่คุณจะระงับสิทธิ์ด้วยแฟล็ก -n) ตารางเส้นทางอาจมีลักษณะดังนี้:

ตารางเส้นทาง IP ของเคอร์เนล เกตเวย์ปลายทาง Genmask Flags Metric Ref Use Iface default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 corpname * 255.255.255.0 U 0 0 0 eth0

คำสั่ง ip ไม่เคยใช้ชื่อโฮสต์ในการป้อนข้อมูล ดังนั้นตัวอย่างของคุณจึงไม่มีความเกี่ยวข้อง คุณยังใส่ชื่อโฮสต์ใน /etc/networks ไม่ใช่ชื่อเครือข่าย!

รายการจาก /etc/networks ถูกใช้โดยเครื่องมือที่พยายามแปลงตัวเลขเป็นชื่อ เช่น คำสั่งเส้นทาง (เลิกใช้แล้ว) หากไม่มีรายการที่เหมาะสม ระบบจะแสดง:

# เส้นทาง ตารางเส้นทางเคอร์เนล IP เกตเวย์ปลายทาง Genmask Flags Metric Ref Use Iface default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 * 255.255.254.0 U 0 0 0 eth0

หากตอนนี้เราเพิ่มบรรทัด mylocalnet 192.168.0.0 ไปที่ /etc/networks:

# เส้นทาง ตารางเส้นทางเคอร์เนล IP เกตเวย์ปลายทาง Genmask Flags Metric Ref Use Iface default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 mylocalnet * 255.255.254.0 U 0 0 0 eth0

ในทางปฏิบัติสิ่งนี้ไม่เคยใช้

ไป!

เมื่อถึงเวลา เครือข่ายคอมพิวเตอร์คุณมักจะได้ยิน NFS กล่าวถึง คำย่อนี้หมายถึงอะไร?

นี่คือโปรโตคอลแบบกระจาย ระบบไฟล์ซึ่งเดิมพัฒนาโดย Sun Microsystems ในปี 1984 อนุญาตให้ผู้ใช้บนคอมพิวเตอร์ไคลเอนต์สามารถเข้าถึงไฟล์ผ่านเครือข่ายได้ คล้ายกับการเข้าถึงที่เก็บข้อมูลในเครื่อง เช่นเดียวกับโปรโตคอลอื่นๆ NFS ที่ใช้ระบบ Open Network Computing Remote Procedure Call (ONC RPC)

กล่าวอีกนัยหนึ่ง NFS คืออะไร? เป็นมาตรฐานแบบเปิด ซึ่งกำหนดโดย Request for Comments (RFC) ซึ่งอนุญาตให้ใครก็ตามสามารถนำโปรโตคอลไปปฏิบัติได้

รุ่นและรูปแบบต่างๆ

นักประดิษฐ์ใช้เฉพาะเวอร์ชันแรกเพื่อการทดลองของตนเอง เมื่อทีมพัฒนาเพิ่มการเปลี่ยนแปลงที่สำคัญกับ NFS ดั้งเดิมและเผยแพร่นอกเหนือความเป็นเจ้าของของ Sun พวกเขาก็กำหนด เวอร์ชั่นใหม่เป็น v2 เพื่อให้สามารถทดสอบการทำงานร่วมกันระหว่างการแจกแจงและสามารถสร้างทางเลือกได้

NFS เวอร์ชัน 2

เวอร์ชัน 2 เริ่มแรกทำงานผ่าน User Datagram Protocol (UDP) เท่านั้น นักพัฒนาซอฟต์แวร์ต้องการคงฝั่งเซิร์ฟเวอร์ไว้โดยไม่ปิดกั้นการใช้งานนอกโปรโตคอลหลัก

อินเทอร์เฟซระบบไฟล์เสมือนช่วยให้สามารถใช้งานโมดูลาร์ได้ซึ่งสะท้อนให้เห็นในโปรโตคอลแบบง่าย ภายในเดือนกุมภาพันธ์ พ.ศ. 2529 มีการสาธิตโซลูชันสำหรับระบบปฏิบัติการ เช่น System V รีลีส 2, DOS และ VAX/VMS โดยใช้ Eunice NFS v2 อนุญาตให้อ่านไฟล์ได้เพียง 2 GB แรกเท่านั้น เนื่องจากข้อจำกัดแบบ 32 บิต

NFS เวอร์ชัน 3

ข้อเสนอแรกในการพัฒนา NFS เวอร์ชัน 3 ที่ Sun Microsystems ได้รับการประกาศไม่นานหลังจากการเผยแพร่การแจกจ่ายครั้งที่สอง แรงจูงใจหลักคือพยายามลดปัญหาประสิทธิภาพของการบันทึกแบบซิงโครนัส ภายในเดือนกรกฎาคม พ.ศ. 2535 การปรับปรุงเชิงปฏิบัติได้แก้ไขข้อบกพร่องหลายประการของ NFS เวอร์ชัน 2 เหลือเพียงการรองรับไฟล์ที่ไม่เพียงพอ (ขนาดไฟล์ 64 บิตและออฟเซ็ตไฟล์)

  • รองรับขนาดไฟล์ 64 บิตและออฟเซ็ตเพื่อจัดการข้อมูลที่มีขนาดใหญ่กว่า 2 กิกะไบต์ (GB)
  • รองรับการบันทึกแบบอะซิงโครนัสบนเซิร์ฟเวอร์เพื่อปรับปรุงประสิทธิภาพ
  • คุณลักษณะของไฟล์เพิ่มเติมในหลาย ๆ คำตอบเพื่อหลีกเลี่ยงการดึงข้อมูลซ้ำอีกครั้ง
  • การดำเนินการ READDIRPLUS เพื่อรับข้อมูลและคุณลักษณะพร้อมกับชื่อไฟล์เมื่อสแกนไดเร็กทอรี
  • การปรับปรุงอื่น ๆ อีกมากมาย

ในระหว่างการเปิดตัวเวอร์ชัน 3 การรองรับ TCP ในฐานะโปรโตคอลเลเยอร์การขนส่งเริ่มเพิ่มขึ้น การใช้ TCP เป็นวิธีการถ่ายโอนข้อมูลที่ดำเนินการโดยใช้ NFS บน WAN เริ่มอนุญาตให้ถ่ายโอนไฟล์ขนาดใหญ่เพื่อดูและเขียนได้ ด้วยเหตุนี้ นักพัฒนาจึงสามารถเอาชนะขีดจำกัด 8 KB ที่กำหนดโดย User Datagram Protocol (UDP) ได้

NFS v4 คืออะไร?

เวอร์ชัน 4 ซึ่งได้รับอิทธิพลจาก Endres File System (AFS) และ Server Message Block (SMB หรือที่เรียกว่า CIFS) มีการปรับปรุงประสิทธิภาพ ให้ความปลอดภัยที่ดีขึ้น และแนะนำโปรโตคอลการปฏิบัติตามข้อกำหนด

เวอร์ชัน 4 เป็นการเผยแพร่ครั้งแรกที่พัฒนาโดย Internet Engineering Task Force (IETF) หลังจากการพัฒนาโปรโตคอลจากภายนอกของ Sun Microsystems

NFS เวอร์ชัน 4.1 มุ่งหวังที่จะให้การสนับสนุนโปรโตคอลสำหรับการใช้ประโยชน์จากการปรับใช้เซิร์ฟเวอร์แบบคลัสเตอร์ รวมถึงความสามารถในการให้การเข้าถึงไฟล์แบบขนานที่ปรับขนาดได้ซึ่งกระจายไปยังเซิร์ฟเวอร์หลายเครื่อง (ส่วนขยาย pNFS)

โปรโตคอลระบบไฟล์ใหม่ล่าสุด NFS 4.2 (RFC 7862) เปิดตัวอย่างเป็นทางการในเดือนพฤศจิกายน 2559

ส่วนขยายอื่น ๆ

ด้วยการพัฒนามาตรฐาน เครื่องมือที่เกี่ยวข้องสำหรับการทำงานร่วมกับมาตรฐานก็ปรากฏขึ้น ตัวอย่างเช่น WebNFS ซึ่งเป็นส่วนขยายสำหรับเวอร์ชัน 2 และ 3 ช่วยให้ Network File System Access Protocol สามารถรวมเข้ากับเว็บเบราว์เซอร์ได้ง่ายขึ้น และเปิดใช้งานการทำงานข้ามไฟร์วอลล์ได้

โปรโตคอลบุคคลที่สามต่างๆ ยังเชื่อมโยงกับ NFS อีกด้วย ที่มีชื่อเสียงที่สุดคือ:

  • Network Lock Manager (NLM) พร้อมการสนับสนุนโปรโตคอลไบต์ (เพิ่มเพื่อรองรับ API การล็อคไฟล์ UNIX System V)
  • โควต้าระยะไกล (RQUOTAD) ซึ่งอนุญาตให้ผู้ใช้ NFS สามารถดูโควต้าพื้นที่เก็บข้อมูลบนเซิร์ฟเวอร์ NFS
  • NFS บน RDMA เป็นการดัดแปลง NFS ที่ใช้การเข้าถึงหน่วยความจำโดยตรงระยะไกล (RDMA) เป็นสื่อกลางในการส่งข้อมูล
  • NFS-Ganesha เป็นเซิร์ฟเวอร์ NFS ที่ทำงานในพื้นที่ผู้ใช้และรองรับ CephFS FSAL (File System Abstraction Layer) โดยใช้ libcephfs

แพลตฟอร์ม

Network File System มักจะใช้กับ ระบบปฏิบัติการ Unix (เช่น Solaris, AIX, HP-UX), MacOS ของ Apple และระบบปฏิบัติการที่คล้าย Unix (เช่น Linux และ FreeBSD)

นอกจากนี้ยังพร้อมใช้งานสำหรับแพลตฟอร์ม เช่น Acorn RISC OS, OpenVMS, MS-DOS, Microsoft Windows, Novell NetWare และ IBM AS/400

โปรโตคอลทางเลือก การเข้าถึงระยะไกลไฟล์ประกอบด้วย Server Message Block (SMB หรือที่เรียกว่า CIFS), Apple Transfer Protocol (AFP), NetWare Core Protocol (NCP) และระบบไฟล์เซิร์ฟเวอร์ OS/400 (QFileSvr.400)

นี่เป็นเพราะข้อกำหนดของ NFS ซึ่งส่วนใหญ่มุ่งเป้าไปที่ "เชลล์" ที่มีลักษณะคล้าย Unix

ในเวลาเดียวกัน โปรโตคอล SMB และ NetWare (NCP) ถูกใช้บ่อยกว่า NFS ในระบบที่ทำงานอยู่ ไมโครซอฟต์ วินโดวส์. AFP พบบ่อยที่สุดบนแพลตฟอร์ม Apple Macintosh และ QFileSvr.400 พบบ่อยที่สุดบน OS/400

การใช้งานทั่วไป

สมมติว่าสถานการณ์สไตล์ Unix ทั่วไปที่คอมพิวเตอร์เครื่องหนึ่ง (ไคลเอนต์) ต้องการเข้าถึงข้อมูลที่เก็บไว้ในอีกเครื่องหนึ่ง (เซิร์ฟเวอร์ NFS):

  • เซิร์ฟเวอร์ใช้กระบวนการ Network File System ซึ่งทำงานตามค่าเริ่มต้นเป็น nfsd เพื่อให้ลูกค้าเข้าถึงข้อมูลแบบสาธารณะได้ ผู้ดูแลระบบเซิร์ฟเวอร์กำหนดวิธีการเอ็กซ์พอร์ตชื่อไดเร็กทอรีและการตั้งค่า โดยทั่วไปจะใช้ไฟล์คอนฟิกูเรชัน /etc/exports และคำสั่ง Exportfs
  • การจัดการความปลอดภัยของเซิร์ฟเวอร์ทำให้มั่นใจได้ว่าสามารถจดจำและอนุมัติไคลเอ็นต์ที่ได้รับการตรวจสอบสิทธิ์ได้ การกำหนดค่าเครือข่ายทำให้มั่นใจได้ว่าลูกค้าที่มีสิทธิ์สามารถเจรจาผ่านระบบไฟร์วอลล์ใดก็ได้
  • เครื่องไคลเอ็นต์ร้องขอการเข้าถึงข้อมูลที่ส่งออก โดยปกติแล้วจะออกคำสั่ง จะสอบถามเซิร์ฟเวอร์ (rpcbind) ที่ใช้พอร์ต NFS และเชื่อมต่อในภายหลัง
  • หากทุกอย่างเกิดขึ้นโดยไม่มีข้อผิดพลาด ผู้ใช้บนเครื่องไคลเอนต์จะสามารถดูและโต้ตอบกับระบบไฟล์ที่ติดตั้งบนเซิร์ฟเวอร์ภายในพารามิเตอร์ที่อนุญาต

ควรสังเกตว่าระบบอัตโนมัติของกระบวนการ Network File System สามารถเกิดขึ้นได้ - อาจใช้ etc/fstab และ/หรือเครื่องมืออื่นที่คล้ายคลึงกัน

การพัฒนาจนถึงปัจจุบัน

ภายในศตวรรษที่ 21 โปรโตคอลที่แข่งขันกัน DFS และ AFS ไม่ประสบความสำเร็จทางการค้าที่สำคัญใดๆ เมื่อเทียบกับ Network File System IBM ซึ่งก่อนหน้านี้ได้รับสิทธิ์ทางการค้าทั้งหมดสำหรับเทคโนโลยีข้างต้น ได้บริจาคซอร์สโค้ด AFS ส่วนใหญ่ให้กับชุมชนนักพัฒนาฟรี ซอฟต์แวร์ในปี พ.ศ. 2543 โครงการ Open AFS ยังคงมีอยู่ในปัจจุบัน ในช่วงต้นปี พ.ศ. 2548 IBM ได้ประกาศยุติการขาย AFS และ DFS

ในทางกลับกัน ในเดือนมกราคม พ.ศ. 2553 Panasas ได้เสนอ NFS v 4.1 ที่ใช้เทคโนโลยีที่ปรับปรุงความสามารถในการเข้าถึงข้อมูลแบบขนาน โปรโตคอล Network File System v 4.1 กำหนดวิธีการแยกข้อมูลเมตาของระบบไฟล์ออกจากตำแหน่งของไฟล์เฉพาะ ดังนั้นจึงเป็นมากกว่าการแยกชื่อ/ข้อมูลธรรมดาๆ

NFS ของเวอร์ชันนี้ในทางปฏิบัติคืออะไร? คุณลักษณะข้างต้นทำให้แตกต่างจากโปรโตคอลแบบเดิมซึ่งประกอบด้วยชื่อไฟล์และข้อมูลภายใต้การเชื่อมต่อกับเซิร์ฟเวอร์เพียงครั้งเดียว ด้วย Network File System v 4.1 ไฟล์บางไฟล์สามารถแชร์ผ่านเซิร์ฟเวอร์หลายโหนดได้ แต่การมีส่วนร่วมของไคลเอ็นต์ในการแชร์ข้อมูลเมตาและข้อมูลนั้นมีจำกัด

เมื่อใช้การกระจายโปรโตคอลครั้งที่สี่ เซิร์ฟเวอร์ NFS คือชุดของทรัพยากรเซิร์ฟเวอร์หรือส่วนประกอบ พวกเขาจะถือว่าถูกควบคุมโดยเซิร์ฟเวอร์ข้อมูลเมตา

ไคลเอนต์ยังคงติดต่อกับเซิร์ฟเวอร์ข้อมูลเมตาเดียวเพื่อสำรวจหรือโต้ตอบกับเนมสเปซ ขณะที่ย้ายไฟล์เข้าและออกจากเซิร์ฟเวอร์ จะสามารถโต้ตอบกับชุดข้อมูลที่เป็นของกลุ่ม NFS ได้โดยตรง

สวัสดีตอนบ่ายผู้อ่านที่รัก ฉันกำลังเผยแพร่ส่วนที่สอง ในส่วนปัจจุบันจะเน้นไปที่หลัก การใช้งานเครือข่ายใน Linux(วิธีการตั้งค่าเครือข่ายใน Linux วิธีวินิจฉัยเครือข่ายใน Linux และบำรุงรักษาระบบย่อยเครือข่ายใน Linux).

การกำหนดค่า TCP/IP ใน Linux ให้ทำงานบนเครือข่ายอีเธอร์เน็ต

ที่จะทำงานร่วมกับ โปรโตคอลเครือข่าย TCP/IP ใน Linux ก็เพียงพอแล้วที่จะมีเท่านั้น อินเทอร์เฟซแบบย้อนกลับแต่หากจำเป็นต้องเชื่อมต่อโฮสต์เข้าด้วยกันโดยธรรมชาติจำเป็นต้องมีอินเทอร์เฟซเครือข่ายช่องทางการรับส่งข้อมูล (เช่น twisted pair) บางทีอาจมีบางส่วน อุปกรณ์เครือข่าย. นอกจากนี้ยังจำเป็นต้องติดตั้ง ( ฯลฯ ) ซึ่งโดยปกติจะจัดมาให้ นอกจากนี้ยังจำเป็นต้องมีเครือข่าย (เช่น /etc/hosts) และการสนับสนุนเครือข่าย

การตั้งค่าเครือข่าย

มาเริ่มทำความเข้าใจกลไกเครือข่าย Linux ด้วยการกำหนดค่าเครือข่ายด้วยตนเองนั่นคือเมื่อใด ที่อยู่ IPเชื่อมต่อเครือข่าย คงที่. ดังนั้นเมื่อตั้งค่าเครือข่าย คุณต้องพิจารณาและกำหนดค่าพารามิเตอร์ต่อไปนี้:

ที่อยู่ IP- ตามที่กล่าวไว้แล้วในส่วนแรกของบทความ - นี่คือที่อยู่เฉพาะของเครื่องในรูปแบบเลขทศนิยมสี่ตัวคั่นด้วยจุด ปกติแล้วเวลาทำงาน. เครือข่ายท้องถิ่นเลือกจากช่วงส่วนตัว เช่น 192.168.0.1

ซับเน็ตมาสก์- เหมือนกัน 4 ตัวเลขทศนิยมซึ่งกำหนดว่าส่วนใดของที่อยู่เป็นของที่อยู่เครือข่าย/ซับเน็ต และส่วนใดของที่อยู่โฮสต์ ซับเน็ตมาสก์คือตัวเลขที่เพิ่ม (ในรูปแบบไบนารี) พร้อมด้วยที่อยู่ IP เพื่อกำหนดเครือข่ายย่อยที่เป็นของที่อยู่ ตัวอย่างเช่น ที่อยู่ 192.168.0.2 ที่มีมาสก์ 255.255.255.0 เป็นของซับเน็ต 192.168.0

ที่อยู่ซับเน็ต- กำหนดโดยซับเน็ตมาสก์ อย่างไรก็ตาม ไม่มีซับเน็ตสำหรับอินเทอร์เฟซแบบย้อนกลับ

ที่อยู่ออกอากาศ- ที่อยู่ที่ใช้ในการส่งแพ็กเก็ตการออกอากาศที่โฮสต์ทั้งหมดบนซับเน็ตจะได้รับ โดยทั่วไปจะเท่ากับที่อยู่เครือข่ายย่อยที่มีค่าโฮสต์ 255 นั่นคือสำหรับเครือข่ายย่อย 192.168.0 การออกอากาศจะเป็น 192.168.0.255 ในทำนองเดียวกันสำหรับเครือข่ายย่อย 192.168 การออกอากาศจะเป็น 192.168.255.255 ไม่มีที่อยู่การออกอากาศสำหรับอินเทอร์เฟซแบบย้อนกลับ

ที่อยู่ IP ของเกตเวย์- นี่คือที่อยู่ของเครื่องที่เป็นเกตเวย์เริ่มต้นสำหรับการสื่อสารกับโลกภายนอก อาจมีเกตเวย์ได้หลายเกตเวย์หากคอมพิวเตอร์เชื่อมต่อกับหลายเครือข่ายพร้อมกัน ที่อยู่เกตเวย์ไม่ได้ใช้บนเครือข่ายแยก (ไม่ได้เชื่อมต่อกับ เครือข่ายทั่วโลก) เนื่องจากเครือข่ายเหล่านี้ไม่มีที่ที่จะส่งแพ็กเก็ตภายนอกเครือข่าย เช่นเดียวกันกับอินเทอร์เฟซแบบย้อนกลับ

ที่อยู่ IP เนมเซิร์ฟเวอร์ (เซิร์ฟเวอร์ DNS)- ที่อยู่ของเซิร์ฟเวอร์ที่แปลงชื่อโฮสต์เป็นที่อยู่ IP มักจะให้บริการโดยผู้ให้บริการ

ไฟล์การตั้งค่าเครือข่ายใน Linux (ไฟล์กำหนดค่า)

เพื่อให้เข้าใจถึงวิธีการทำงานของเครือข่ายใน Linux ฉันขอแนะนำให้อ่านบทความ "" อย่างแน่นอน โดยทั่วไป การทำงานทั้งหมดของ Linux นั้นขึ้นอยู่กับซึ่งเกิดขึ้นเมื่อระบบปฏิบัติการบูทและสร้างลูกหลานซึ่งจะทำงานที่จำเป็นทั้งหมด ไม่ว่าจะเป็นการเปิดตัว bash หรือ daemon ใช่ และการบูต Linux ทั้งหมดนั้นใช้พื้นฐาน ซึ่งระบุลำดับทั้งหมดของการเปิดตัวยูทิลิตี้ขนาดเล็กพร้อมพารามิเตอร์ต่างๆ ที่จะเริ่ม/หยุดตามลำดับเมื่อระบบเริ่ม/หยุด ระบบย่อยเครือข่าย Linux เริ่มต้นในลักษณะเดียวกัน

การกระจาย Linux แต่ละรายการมีกลไกการเริ่มต้นเครือข่ายที่แตกต่างกันเล็กน้อย แต่ฉันคิดว่าภาพรวมจะชัดเจนหลังจากอ่าน หากดูสคริปต์เริ่มต้นของระบบย่อยเครือข่ายใดๆ การกระจายลินุกซ์จากนั้นวิธีกำหนดค่าการกำหนดค่าเครือข่ายโดยใช้ ไฟล์การกำหนดค่ามันจะชัดเจนไม่มากก็น้อยเช่นใน Debian (ลองใช้การกระจายนี้เป็นพื้นฐาน) สคริปต์มีหน้าที่รับผิดชอบในการเริ่มต้นเครือข่าย /etc/init.d/เครือข่ายเมื่อพิจารณาแล้วว่า:

Net-server:~#cat /etc/init.d/networking #!/bin/sh -e ### BEGIN INIT INFO # จัดเตรียม: ระบบเครือข่าย # Required-Start: mountkernfs $local_fs # Required-Stop: $local_fs # ควร -Start: ifupdown # ควรหยุด: ifupdown # Default-Start: S # Default-Stop: 0 6 # คำอธิบายแบบย่อ: เพิ่มอินเทอร์เฟซเครือข่าย ### สิ้นสุด เส้นทางข้อมูลเริ่มต้น = "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" [ -x /sbin/ifup ] || ออก 0 . /lib/lsb/init-functions process_options() ( [ -e /etc/network/options ] || return 0 log_warning_msg "/etc/network/options ยังคงมีอยู่ และมันจะถูกละเว้น! อ่าน README.Debian ของ netbase" ) check_network_file_systems() ( [ -e /proc/mounts ] || ส่งคืน 0 ถ้า [ -e /etc/iscsi/iscsi.initramfs ]; จากนั้น log_warning_msg "ไม่ยกเลิกการกำหนดค่าอินเทอร์เฟซเครือข่าย: รูท iSCSI ถูกเมาท์" ทางออก 0 fi exec 9<&0 < /proc/mounts while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd*|/dev/etherd/e*) log_warning_msg "not deconfiguring network interfaces: network devices still mounted." exit 0 ;; esac case $FSTYPE in nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs) log_warning_msg "not deconfiguring network interfaces: network file systems still mounted." exit 0 ;; esac done exec 0<&9 9<&- } check_network_swap() { [ -e /proc/swaps ] || return 0 exec 9<&0 < /proc/swaps while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd*|/dev/etherd/e*) log_warning_msg "not deconfiguring network interfaces: network swap still mounted." exit 0 ;; esac done exec 0<&9 9<&- } case "$1" in start) process_options log_action_begin_msg "Configuring network interfaces" if ifup -a; then log_action_end_msg $? else log_action_end_msg $? fi ;; stop) check_network_file_systems check_network_swap log_action_begin_msg "Deconfiguring network interfaces" if ifdown -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;; force-reload|restart) process_options log_warning_msg "Running $0 $1 is deprecated because it may not enable again some interfaces" log_action_begin_msg "Reconfiguring network interfaces" ifdown -a --exclude=lo || true if ifup -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;; *) echo "Usage: /etc/init.d/networking {start|stop}" exit 1 ;; esac exit 0

คุณสามารถค้นหาฟังก์ชันต่างๆ ที่จะตรวจสอบการมีอยู่ของระบบไฟล์เครือข่ายที่ติดตั้งอยู่ ( check_network_file_systems(), check_network_swap()) รวมถึงการตรวจสอบการมีอยู่ของการกำหนดค่าบางอย่างที่ยังไม่ชัดเจน /etc/เครือข่าย/ตัวเลือก (การทำงาน กระบวนการ_ตัวเลือก()) และที่ด้านล่างสุดคือการออกแบบ กรณี "$1" ในและตามพารามิเตอร์ที่ป้อน (start/stop/force-reload|restart หรืออื่นๆ) จะดำเนินการบางอย่าง เดียวกันนี้" การกระทำบางอย่าง" โดยใช้อาร์กิวเมนต์ start เป็นตัวอย่าง คุณจะเห็นว่าฟังก์ชันถูกเปิดใช้งานก่อน กระบวนการ_ตัวเลือกจากนั้นวลีจะถูกส่งไปยังบันทึก การกำหนดค่าอินเทอร์เฟซเครือข่ายและคำสั่งถูกรัน ifup -a. หากคุณดูที่ man ifup คุณจะเห็นว่าคำสั่งนี้อ่านการกำหนดค่าจากไฟล์ /etc/เครือข่าย/อินเทอร์เฟซและตามกุญแจ -กเปิดตัวอินเทอร์เฟซทั้งหมดที่มีพารามิเตอร์ อัตโนมัติ.

คำสั่ง ifup และ ifdown สามารถใช้เพื่อกำหนดค่า (หรือยกเลิกการกำหนดค่าตามลำดับ) อินเทอร์เฟซเครือข่ายตามข้อกำหนดอินเทอร์เฟซในไฟล์ /etc/network/interfaces

-a, --ทั้งหมด
หากกำหนดให้ ifup จะส่งผลต่ออินเทอร์เฟซทั้งหมดที่ทำเครื่องหมายเป็นอัตโนมัติ อินเทอร์เฟซจะปรากฏขึ้นตามลำดับที่กำหนดไว้ใน /etc/network/interfaces หากกำหนดให้ ifdown จะส่งผลต่ออินเทอร์เฟซที่กำหนดไว้ทั้งหมด อินเทอร์เฟซจะถูกลดระดับลงตามลำดับที่แสดงอยู่ในไฟล์สถานะ เฉพาะอินเทอร์เฟซที่กำหนดไว้ใน /etc/network/interfaces เท่านั้นที่จะถูกปิดลง

ip-server:~# cat /etc/network/interfaces # ไฟล์นี้อธิบายอินเทอร์เฟซเครือข่ายที่มีอยู่ในระบบของคุณ # และวิธีการเปิดใช้งาน สำหรับข้อมูลเพิ่มเติม โปรดดูอินเทอร์เฟซ (5) # อินเทอร์เฟซเครือข่ายลูปแบ็คอัตโนมัติ lo iface lo inet loopback # อินเทอร์เฟซเครือข่ายหลักอนุญาตให้ใช้ hotplug eth0 iface eth0 inet dhcp อนุญาต hotplug eth2 iface eth2 ที่อยู่คงที่ inet 192.168.1.1 netmask 255.255.255.0 เกตเวย์ 192.168.1.254 ออกอากาศ 192.168.1.255

ในการกำหนดค่าบรรทัดนี้ อนุญาต hotplugและ อัตโนมัติ- สิ่งเหล่านี้คือคำพ้องความหมายและอินเทอร์เฟซจะถูกยกขึ้นตามคำสั่ง ifup -a. อันที่จริงนี่คือห่วงโซ่การทำงานทั้งหมดของระบบย่อยเครือข่าย ในทำนองเดียวกันในการกระจายอื่น ๆ : ใน RedHat และ SUSE เครือข่ายจะถูกเปิดใช้งานโดยสคริปต์ /etc/init.d/เครือข่าย. เมื่อตรวจสอบแล้ว คุณจะพบว่าการกำหนดค่าเครือข่ายอยู่ที่ใดในทำนองเดียวกัน

/etc/hosts

ไฟล์นี้จัดเก็บรายการ ที่อยู่ IPและ ชื่อโฮสต์ที่สอดคล้องกับพวกเขา (ที่อยู่).รูปแบบไฟล์ไม่แตกต่างจากไฟล์หลัก:

Ip-เซิร์ฟเวอร์:~# cat /etc/hosts # โฮสต์ ip.in.domain โฮสต์ 127.0.0.1 localhost 127.0.1.1 ip-server.domain.local ip-server 192.168.1.1 ip-server.domain.local ip-เซิร์ฟเวอร์

ในอดีต ไฟล์นี้ถูกใช้แทนบริการ DNS ปัจจุบัน ไฟล์ดังกล่าวยังสามารถนำมาใช้แทนบริการ DNS ได้ แต่มีเงื่อนไขว่าจำนวนเครื่องในเครือข่ายของคุณจะถูกวัดเป็นหน่วย และไม่ใช่เป็นสิบหรือร้อย เพราะในกรณีนี้ คุณจะต้องตรวจสอบ ความถูกต้องของไฟล์นี้ในแต่ละเครื่อง

/etc/ชื่อโฮสต์

ไฟล์นี้มี ชื่อโฮสต์ NetBIOS:

IP เซิร์ฟเวอร์:~# cat /etc/hostname ip-server

ไฟล์นี้จัดเก็บชื่อและที่อยู่ของเครือข่ายท้องถิ่นและเครือข่ายอื่นๆ ตัวอย่าง:

Ip-server:~# cat /etc/networks เริ่มต้น 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 เครือข่ายในบ้าน 192.168.1.0

เมื่อใช้ไฟล์นี้ เครือข่ายสามารถจัดการตามชื่อได้ เช่น อย่าเพิ่มเส้นทาง เพิ่มเส้นทาง 192.168.1.12 , ก เพิ่มเส้นทาง.

/etc/nsswitch.conf

ไฟล์กำหนด ลำดับการค้นหาชื่อโฮสต์/network บรรทัดต่อไปนี้รับผิดชอบการตั้งค่านี้:

สำหรับโฮสต์: โฮสต์: ไฟล์ DNS สำหรับเครือข่าย: เครือข่าย: ไฟล์

พารามิเตอร์ ไฟล์ ระบุให้ใช้ไฟล์ที่ระบุ (/etc/hostsและ /etc/networksตามลำดับ) พารามิเตอร์ DNS ระบุว่าจะใช้บริการ DNS.

/etc/host.conf

ไฟล์ระบุพารามิเตอร์การจำแนกชื่อสำหรับตัวแก้ไข

Ip-server:~# cat /etc/host.conf เปิดหลายตัว

ไฟล์นี้จะบอกไลบรารี resolv ให้ส่งคืนที่อยู่โฮสต์ที่ถูกต้องทั้งหมดที่ปรากฏในไฟล์ /etc/hosts ไม่ใช่เฉพาะที่อยู่แรก

/etc/resolv.conf

ไฟล์นี้กำหนดพารามิเตอร์ของกลไกในการแปลงชื่อเครือข่ายเป็นที่อยู่ IP กล่าวง่ายๆ ก็คือ กำหนดการตั้งค่า DNS. ตัวอย่าง:

Ip-server:~# cat /etc/resolv.conf เนมเซิร์ฟเวอร์ 10.0.0.4 เนมเซิร์ฟเวอร์ 10.0.0.1 ค้นหา domain.local

2 บรรทัดแรก ระบุเซิร์ฟเวอร์ DNS. บรรทัดที่สามระบุโดเมนการค้นหา เมื่อแก้ไขชื่อ หากชื่อนั้นไม่ใช่ชื่อ FQDN โดเมนนี้จะถูกแทนที่ด้วย "ส่วนสิ้นสุด" ตัวอย่างเช่น เมื่อดำเนินการคำสั่งโฮสต์ ping ที่อยู่ที่ส่ง Ping จะถูกแปลงเป็น host.domain.local พารามิเตอร์ที่เหลือสามารถอ่านได้ใน man resolv.conf บ่อยครั้งที่ Linux ใช้การสร้างไฟล์นี้แบบไดนามิกโดยใช้สิ่งที่เรียกว่า โปรแกรม /sbin/resolvconf.โปรแกรมนี้เป็นตัวกลางระหว่างบริการที่ให้บริการเนมเซิร์ฟเวอร์แบบไดนามิก (เช่น ไคลเอ็นต์ DHCP) และบริการที่ใช้ข้อมูลเนมเซิร์ฟเวอร์ หากต้องการใช้ไฟล์ที่สร้างขึ้นแบบไดนามิก /etc/resolv.confคุณต้องทำให้ไฟล์นี้เป็นลิงก์สัญลักษณ์ /etc/resolvconf/run/resolv.conf. ในการแจกแจงบางอย่าง เส้นทางอาจแตกต่างกัน ซึ่งจะถูกเขียนไว้อย่างแน่นอน ผู้ชายแก้ปัญหา.

การกำหนดค่าเครือข่าย

หลังจากตรวจสอบไฟล์การกำหนดค่าหลักแล้ว คุณสามารถดูไฟล์ . คำสั่งได้ถูกกล่าวถึงข้างต้นแล้ว ถ้าอัพ, ถ้าลงแต่เครื่องมือเหล่านี้ไม่ได้เป็นสากลทั้งหมด ตัวอย่างเช่น การแจกแจง RH ไม่มีคำสั่งเหล่านี้ตามค่าเริ่มต้น นอกจากนี้ ดิสทริบิวชั่นใหม่ได้เปิดตัวเครื่องมือการจัดการเครือข่ายระดับสูงใหม่ซึ่งเป็นของแพ็คเกจ iproute ฉันจะอุทิศมันให้กับเขา (แพ็คเกจ iproute) และในโพสต์ปัจจุบันฉันจะไม่พิจารณามัน คำสั่งที่อธิบายด้านล่างนี้เป็นของ .

ดังนั้นเพื่อให้แน่ใจว่าคำสั่งนี้ใช้ได้กับการแจกจ่าย Linux ใด ๆ คุณต้องใช้คำสั่งเก่าหลักสองคำสั่ง นี้ และ arp ทีมชุดแรก (รับผิดชอบ การตั้งค่าอินเทอร์เฟซเครือข่าย(IP, มาสก์, เกตเวย์), ที่สอง () - การตั้งค่าเส้นทาง, ที่สาม (ARP) - การจัดการตาราง ARP. ฉันต้องการทราบว่าการรันคำสั่งเหล่านี้โดยไม่ปิดใช้งานสคริปต์เริ่มต้น SystemV มาตรฐานของระบบย่อยเครือข่ายจะทำการเปลี่ยนแปลงจนกว่าจะรีบูต/รีสตาร์ทบริการเครือข่ายครั้งแรกเท่านั้น เนื่องจาก ถ้าลองคิดดูก็เข้าใจได้เลยว่าสคริปท์ /etc/init.d/เครือข่ายครั้งถัดไปที่เริ่มต้น ระบบจะอ่านการกำหนดค่าข้างต้นอีกครั้งและใช้การตั้งค่าเก่า ดังนั้นทางออกสำหรับการตั้งค่าอย่างถาวรคือการป้อนคำสั่ง ifconfig ด้วยพารามิเตอร์ที่เหมาะสมใน หรือแก้ไขการกำหนดค่าที่เกี่ยวข้องของอินเทอร์เฟซเครือข่ายด้วยตนเอง

นอกจากนี้หากดำเนินการตามคำสั่ง ifconfig โดยไม่มีพารามิเตอร์(เช่น เฉพาะที่อยู่ IP) จากนั้นส่วนที่เหลือจะถูกเพิ่มโดยอัตโนมัติ (เช่น ที่อยู่การออกอากาศจะถูกเพิ่มตามค่าเริ่มต้นโดยมีที่อยู่โฮสต์ที่ลงท้ายด้วย 255 และซับเน็ตมาสก์เริ่มต้นคือ 255.255.255.0)

การกำหนดเส้นทางสำหรับอินเทอร์เฟซที่มีอยู่ในเคอร์เนลสมัยใหม่นั้นเคอร์เนลจะถูกยกโดยอัตโนมัติเสมอ หรือค่อนข้างเป็นเส้นทางตรงไปยังเครือข่ายตามการตั้งค่า IP และซับเน็ตที่อินเทอร์เฟซที่ยกขึ้นนั้นถูกสร้างขึ้นโดยอัตโนมัติโดยเคอร์เนล ฟิลด์เกตเวย์สำหรับรายการดังกล่าวระบุที่อยู่ของอินเทอร์เฟซเอาต์พุตหรือ * ในเคอร์เนลเวอร์ชันเก่า (ฉันไม่สามารถบอกคุณได้ว่าหมายเลขเคอร์เนลที่เส้นทางใดเริ่มเพิ่มขึ้นโดยอัตโนมัติ) จำเป็นต้องเพิ่มเส้นทางด้วยตนเอง

หากมีความจำเป็นในการจัดระเบียบของคุณ เส้นทางจากนั้นคุณจะต้องใช้ ด้วยคำสั่งนี้ คุณสามารถเพิ่มและลบเส้นทางได้ แต่การทำเช่นนี้จะช่วยได้จนกว่าคุณจะรีสตาร์ท /etc/init.d/networking (หรือสคริปต์อื่นที่รับผิดชอบเครือข่ายในการแจกจ่ายของคุณ) เพื่อให้เส้นทางถูกเพิ่มโดยอัตโนมัติ คุณต้องเพิ่มคำสั่งสำหรับการเพิ่มเส้นทางไปยัง rc.local เช่นเดียวกับคำสั่ง ifconfig หรือแก้ไขการกำหนดค่าอินเทอร์เฟซเครือข่ายที่เกี่ยวข้องด้วยตนเอง (เช่น ใน Deb - /etc/เครือข่าย/ตัวเลือก).

ตามกฎเกณฑ์อะไร. เส้นทางสู่เครือข่ายเกิดขึ้นฉันเข้าแล้ว

การวินิจฉัยเครือข่าย Linux

มีเครื่องมือวินิจฉัยเครือข่ายจำนวนมากใน Linux ซึ่งมักจะคล้ายกับยูทิลิตี้จาก Microsoft มาก ฉันจะดูยูทิลิตี้การวินิจฉัยเครือข่ายหลัก 3 รายการโดยที่ไม่ระบุปัญหาได้ยาก

ฉันคิดว่ายูทิลิตี้นี้เกือบทุกคนคุ้นเคย ยูทิลิตี้นี้ทำงานโดย การส่งที่เรียกว่า แพ็กเก็ต ICMPไปยังเซิร์ฟเวอร์ระยะไกลซึ่งจะระบุไว้ในพารามิเตอร์คำสั่งเซิร์ฟเวอร์จะส่งคืนคำสั่งที่ส่งและ ปิงนับเวลาจำเป็นสำหรับแพ็กเก็ตที่ส่งไปถึงเซิร์ฟเวอร์และส่งคืน ตัวอย่างเช่น:

# ping ya.ru PING ya.ru (87.250.251.3) ข้อมูล 56(84) ไบต์ 64 ไบต์จาก www.yandex.ru (87.250.251.3): icmp_seq=1 ttl=57 เวลา=42.7 ms 64 ไบต์จาก www.yandex.ru (87.250.251.3): icmp_seq=2 ttl=57 เวลา=43.2 ms 64 ไบต์ จาก www.yandex.ru (87.250.251.3): icmp_seq=3 ttl=57 เวลา=42.5 ms 64 ไบต์จาก www.yandex.ru (87.250.251.3): icmp_seq=4 ttl=57 เวลา=42.5 ms 64 ไบต์จาก www .yandex.ru (87.250.251.3): icmp_seq=5 ttl=57 time=41.9 ms ^C --- ya.ru ping สถิติ --- ส่ง 5 แพ็กเก็ต, ได้รับ 5 ครั้ง, สูญเสียแพ็กเก็ต 0%, เวลา 4012ms rtt min/ เฉลี่ย/สูงสุด/mdev = 41.922/42.588/43.255/0.500 มิลลิวินาที

ดังที่เห็นได้จากตัวอย่างข้างต้น ปิงให้ข้อมูลที่เป็นประโยชน์มากมายแก่เรา ก่อนอื่นเลยเราพบว่า เราสามารถสร้างการเชื่อมต่อกับโฮสต์ ya.ru ได้(บางครั้งพวกเขาบอกว่า “โฮสต์ ya.ru พร้อมใช้งานสำหรับเรา”) ประการที่สองเราเห็นสิ่งนั้น DNS ทำงานอย่างถูกต้องเนื่องจากชื่อ “ping” ถูกแปลงเป็นที่อยู่ IP อย่างถูกต้อง (PING ya.ru (87.250.251.3)) ไกลออกไป, ในสนาม icmp_seq= ระบุหมายเลขของแพ็กเก็ตที่ส่ง. แต่ละแพ็กเก็ตที่ส่งจะถูกกำหนดหมายเลขตามลำดับ และหากมี "การลดลง" ในหมายเลขนี้ สิ่งนี้จะบอกเราว่าการเชื่อมต่อกับ "ปิง" นั้นไม่เสถียร และอาจหมายความว่าเซิร์ฟเวอร์ที่แพ็กเก็ตถูกส่งไปนั้นมีการใช้งานมากเกินไป . ตามมูลค่า เวลา=ที่เราเห็น, แพ็คเกจเดินทางนานแค่ไหนเป็น 87.250.251.3 และย้อนกลับ คุณสามารถหยุดยูทิลิตี้ ping ได้โดยกด Ctrl+C

อีกด้วย, ยูทิลิตี้ปิงเป็นเรื่องที่น่าสนใจเพราะสามารถช่วยให้คุณเห็นได้อย่างชัดเจนว่าปัญหาเกิดขึ้นที่ไหน เอาเป็นว่า ยูทิลิตี้ปิงแสดงข้อความ ไม่สามารถเข้าถึงเครือข่าย (เครือข่ายไม่พร้อมใช้งาน)หรือข้อความอื่นที่คล้ายคลึงกัน สิ่งนี้น่าจะบ่งชี้ว่าระบบของคุณได้รับการกำหนดค่าไม่ถูกต้อง ในกรณีนี้ คุณสามารถส่งแพ็กเก็ตไปยังที่อยู่ IP ของผู้ให้บริการเพื่อทำความเข้าใจว่าปัญหาเกิดขึ้นที่ใด (ระหว่างพีซีในพื้นที่หรือ "เพิ่มเติม") หากคุณเชื่อมต่ออินเทอร์เน็ตผ่านเราเตอร์ คุณสามารถส่งแพ็กเก็ตผ่าน IP ได้ ดังนั้น หากปัญหาปรากฏขึ้นแล้วในขั้นตอนนี้ แสดงว่าการกำหนดค่าระบบภายในเครื่องไม่ถูกต้อง หรือสายเคเบิลเสียหาย หากเราเตอร์ถูกเรียกคืน แต่เซิร์ฟเวอร์ของผู้ให้บริการไม่ได้ แสดงว่าปัญหาอยู่ในช่องทางการสื่อสารของผู้ให้บริการ ฯลฯ . สุดท้ายนี้ หากการแปลงชื่อเป็น IP ล้มเหลว คุณสามารถตรวจสอบการเชื่อมต่อ IP ได้ หากการตอบสนองถูกต้อง คุณสามารถเดาได้ว่าปัญหาอยู่ใน DNS

ควรสังเกตว่ายูทิลิตี้นี้ไม่ใช่เครื่องมือวินิจฉัยที่เชื่อถือได้เสมอไป เซิร์ฟเวอร์ระยะไกลสามารถบล็อกการตอบสนองต่อคำขอ ICMP

ตามรอย

พูดง่ายๆ ก็คือ เรียกว่าคำสั่ง การติดตามเส้นทาง. ตามชื่อที่แนะนำ ยูทิลิตี้นี้จะแสดงเส้นทางที่แพ็กเก็ตใช้เพื่อไปถึงโฮสต์ ยูทิลิตี้การติดตามค่อนข้างคล้ายกับ ปิงแต่แสดงข้อมูลที่น่าสนใจมากขึ้น ตัวอย่าง:

# Traceroute ya.ru ติดตามเส้นทางไปยัง ya.ru (213.180.204.3) สูงสุด 30 hops แพ็กเก็ต 60 ไบต์ 1 243-083-free.kubtelecom.ru (213.132.83.243) 6.408 ms 6.306 ms 6.193 ms 2 065-064 ฟรี .kubtelecom.ru (213.132.64.65) 2.761 ms 5.787 ms 5.777 ms 3 lgw.kubtelecom.ru (213.132.75.54) 5.713 ms 5.701 ms 5.636 ms 4 KubTelecom-lgw.Krasnodar.gldn.net (1 94 .186.6.177) 81.430 มิลลิวินาที 81.581 ms 81.687 ms 5 cat26.Moscow.gldn.net (194.186.10.118) 47.789 ms 47.888 ms 48.011 ms 6 213.33.201.230 (213.33.201.230) 43.322 ms 41.7 83 ms 41 106 ms 7 สีแดงเลือดนก-vlan602.yandex.net (87.250.242.206) 41.199 มิลลิวินาที 42.578 มิลลิวินาที 42.610 มิลลิวินาที 8 www.yandex.ru (213.180.204.3) 43.185 มิลลิวินาที 42.126 มิลลิวินาที 42.679 มิลลิวินาที

อย่างที่คุณเห็นคุณสามารถติดตามเส้นทางจากเราเตอร์ของผู้ให้บริการ 243-083-free.kubtelecom.ru (213.132.83.243) (ทางใต้ของรัสเซีย) ไปยังโฮสต์ปลายทางที่ www.yandex.ru (213.180.204.3) ในมอสโก .

ขุด

ยูทิลิตี้นี้ส่งแบบสอบถามไปยังเซิร์ฟเวอร์ DNS และส่งกลับข้อมูลเกี่ยวกับโดเมนที่ระบุ ตัวอย่าง:

# ขุด @ns.kuban.ru roboti.ru ;<<>> DiG 9.3.6-P1<<>> @ns.kuban.ru roboti.ru ; (พบ 1 เซิร์ฟเวอร์) ;; ตัวเลือกส่วนกลาง: printcmd ;; มีคำตอบ: ;; ->>ส่วนหัว<<- opcode: QUERY, status: NOERROR, id: 64412 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;roboti.ru. IN A ;; ANSWER SECTION: roboti.ru. 448 IN A 72.52.4.90 ;; AUTHORITY SECTION: roboti.ru. 345448 IN NS ns1.sedoparking.com. roboti.ru. 345448 IN NS ns2.sedoparking.com. ;; Query time: 102 msec ;; SERVER: 62.183.1.244#53(62.183.1.244) ;; WHEN: Thu Feb 17 19:44:59 2011 ;; MSG SIZE rcvd: 94

คำสั่งขุดส่งคำขอ เซิร์ฟเวอร์ DNS - ns.kuban.ru (@ns.kuban.ru- ไม่จำเป็นต้องระบุพารามิเตอร์นี้ ในกรณีนี้แหล่งที่มาของข้อมูลเกี่ยวกับ DNS จะเป็นเซิร์ฟเวอร์จากการตั้งค่าระบบของคุณ) เกี่ยวกับชื่อโดเมน roboti.ru. เป็นผลให้ฉันได้รับคำตอบซึ่งเราสามารถดูได้ในส่วนนี้ ส่วนคำตอบข้อมูลเกี่ยวกับที่อยู่ IP ของโดเมนในส่วนนี้ ส่วนอำนาจข้อมูลเกี่ยวกับสิ่งที่เรียกว่า เซิร์ฟเวอร์ DNS ที่เชื่อถือได้ บรรทัดที่สามจากด้านล่างบอกเราว่าเซิร์ฟเวอร์ใดให้การตอบกลับ

ยูทิลิตี้การวินิจฉัยอื่น ๆ

คุณสามารถดู ping, dig และยูทิลิตี้การวินิจฉัยอื่น ๆ พร้อมพารามิเตอร์ได้ในโพสต์

การเชื่อมต่อการ์ดเครือข่ายใหม่

การเชื่อมต่อและเปิดใช้งานการ์ดเครือข่ายใหม่นั้นมีขั้นตอนเพียงไม่กี่ขั้นตอน:

1. การเชื่อมต่อทางกายภาพของการ์ด

3. ดูผลลัพธ์ว่าระบบตรวจพบการ์ดเครือข่ายใหม่หรือไม่:

มาดูบทสรุปกัน ก่อนเชื่อมต่อการ์ดใหม่:

เซิร์ฟเวอร์:~# dmesg | grep eth [4.720550] e1000: eth0: e1000_probe: การเชื่อมต่อเครือข่าย Intel(R) PRO/1000 [5.130191] e1000: eth1: e1000_probe: การเชื่อมต่อเครือข่าย Intel(R) PRO/1000 [15.285527] e1000: eth2: e1000_watchdog: ลิงก์ NIC คือ Full Duplex ความเร็วสูงสุด 1,000 Mbps, Flow Control: RX [15.681056] e1000: eth0: e1000_watchdog: NIC Link ความเร็วสูงสุด 1,000 Mbps Full Duplex, Flow Control: RX

ผลลัพธ์แสดงว่าระบบมีการ์ดเครือข่าย 2 ใบ eth1 และ eth2 เราเชื่อมต่ออันที่สามและดูผลลัพธ์:

เซิร์ฟเวอร์:~# dmesg | grep eth [4.720513] e1000: eth0: e1000_probe: การเชื่อมต่อเครือข่าย Intel (R) PRO / 1000 [5.132029] e1000: eth1: e1000_probe: การเชื่อมต่อเครือข่าย Intel (R) PRO / 1000 [5.534684] e1000: eth2: e1000_probe: Intel (R ) การเชื่อมต่อเครือข่าย Pro/1000 [39.274875] udev: เปลี่ยนชื่ออินเทอร์เฟซเครือข่าย Eth2 เป็น Eth3 [39.287661] UDEV: เปลี่ยนชื่อเครือข่าย IntH1_RENAME_REN เป็น ETH2 [45.670744] ETH2 [45.670744] 1000: ETH2: E1000_WatchDOG: Nic Link เพิ่มขึ้น 100 0 MBPS ฟูลดูเพล็กซ์ โฟลว์ การควบคุม: RX [46.237232] e1000: eth0: e1000_watchdog: NIC ลิงก์เพิ่มขึ้น 1,000 Mbps Full Duplex, Flow Control: RX [96.977468] e1000: eth3: e1000_watchdog: NIC Link เพิ่มขึ้น 1,000 Mbps Full Duplex, Flow Control: RX

ใน ดีเอ็มเอสจีเราเห็นว่าเครือข่ายใหม่ปรากฏขึ้น - eth3 ซึ่งจริงๆ แล้วคือ eth2 แต่เปลี่ยนชื่อโดยตัวจัดการอุปกรณ์ udev เป็น eth3 และจริง ๆ แล้ว eth2 เป็นการเปลี่ยนชื่อ eth1 (เราจะพูดถึง udev ในโพสต์แยกต่างหาก) การปรากฏตัวของเครือข่ายใหม่ของเราใน dmesgบอกเราว่าการ์ดเครือข่าย ได้รับการสนับสนุนหลักและถูกต้อง ตัดสินใจแล้ว. สิ่งที่เหลืออยู่คือการตั้งค่าอินเทอร์เฟซใหม่ /etc/เครือข่าย/อินเทอร์เฟซ(Debian) เนื่องจากแผนที่นี้ไม่ได้เริ่มต้นโดยสคริปต์เริ่มต้น /etc/init.d/เครือข่าย. ถ้ากำหนดค่าเห็นแผนที่นี้:

เซิร์ฟเวอร์:~# ifconfig eth3 eth3 Link encap:Ethernet HWaddr 08:00:27:5f:34:ad inet6 addr: fe80::a00:27ff:fe5f:34ad/64 ขอบเขต:ลิงก์ UP BROADCAST RUNNING MULTICAST MTU:1500 Metric: 1 แพ็กเก็ต RX:311847 ข้อผิดพลาด:0 ลดลง:0 โอเวอร์รัน:0 เฟรม:0 แพ็กเก็ต TX:126 ข้อผิดพลาด:0 ลดลง:0 โอเวอร์รัน:0 ผู้ให้บริการ:0 การชน:0 txqueuelen:1000 ไบต์ RX:104670651 (99.8 MiB) ไบต์ TX: 16184 (15.8 กิโลไบต์)

แต่อีกครั้ง - มันไม่ได้กำหนดค่า วิธีการกำหนดค่าการ์ดเครือข่ายได้กล่าวไว้ข้างต้น

สรุป

ฉันคิดว่านั่นคือทั้งหมดสำหรับวันนี้ เมื่อฉันเริ่มเขียนบทความนี้ ฉันคิดว่าฉันจะรวมไว้ในโพสต์เดียว แต่มันกลายเป็นเรื่องใหญ่มาก จึงมีมติให้แยกบทความออกเป็นสองส่วน โดยรวมแล้ว ฉันพยายามนำเสนอไม่ใช่ขั้นตอนการตั้งค่าเครือข่ายแบบทีละขั้นตอน แต่เพื่อสรุปหลักการและอธิบายความเข้าใจเกี่ยวกับวิธีการเริ่มต้นและการทำงานของเครือข่ายใน Linux ฉันหวังว่าฉันจะประสบความสำเร็จจริงๆ ฉันยินดีที่จะเห็นความคิดเห็นและการเพิ่มเติมของคุณ เมื่อเวลาผ่านไปฉันจะเพิ่มบทความ

ถุงพลาสติก ถ้าอัพดาวน์เป็นเครื่องมือที่ครอบคลุมสำหรับการกำหนดค่าพารามิเตอร์เครือข่าย โดยเฉพาะที่ใช้ในการเริ่มต้นเครือข่ายเมื่อโหลดระบบปฏิบัติการเข้าไป เดเบียน GNU\Linux(พร้อมกับสคริปต์ที่เกี่ยวข้อง ifupdown-สะอาด, ถ้าอัพดาวน์, เครือข่ายอยู่ในไดเร็กทอรี /etc/init.d)

ตั้งแต่เวอร์ชัน 6.0 (บีบ) นักพัฒนา Debian ได้จัดประเภทแพ็คเกจ ifupdown ว่าล้าสมัยในเอกสารประกอบ และแนะนำให้ใช้เครื่องมือ เช่น NetworkManager หรือ Wicd วิธีการนี้เหมาะสมสำหรับเวิร์กสเตชันที่ติดตั้งเครื่องมือส่วนติดต่อผู้ใช้แบบกราฟิกไว้ สำหรับเซิร์ฟเวอร์ ยังคงใช้ ifupdown ซึ่งเป็นเครื่องมือการจัดการระบบย่อยเครือข่ายที่มีคุณลักษณะหลากหลายและมีเอกสารประกอบอย่างดี ต่อไป

แพ็คเกจ ifupdown มีสองคำสั่ง ถ้าอัพและ ถ้าลงเพื่อเปิดหรือปิดการเชื่อมต่อเครือข่าย (ในกรณีนี้คืออินเทอร์เฟซ eth1):

# ifdown eth1 # ifup eth1

คำสั่งเหล่านี้ตามค่าเริ่มต้นจะใช้การตั้งค่าที่เขียนไว้ในไฟล์ /etc/เครือข่าย/อินเทอร์เฟซ.

ในการเริ่มต้น ให้รีสตาร์ทและหยุดระบบย่อยเครือข่าย คุณควรใช้สคริปต์ /etc/init.d/เครือข่ายพร้อมพารามิเตอร์ เริ่ม, เริ่มต้นใหม่และ หยุดตามลำดับ:

# /etc/init.d/รีสตาร์ทเครือข่าย

ไฟล์การตั้งค่าอินเทอร์เฟซเครือข่าย /etc/network/interfaces

ไฟล์ /etc/network/interfaces อยู่ในรูปแบบข้อความที่ผู้ดูแลระบบสามารถแก้ไขได้โดยใช้โปรแกรมแก้ไขข้อความ ในขณะที่คำสั่ง ifup และ ifdown ยังสามารถอ่านและรับรู้การตั้งค่าที่ระบุในนั้น

ตัวอย่างของไฟล์นี้:

อัตโนมัติ eth1 eth0 iface แท้จริง inet loopback iface eth1 inet ที่อยู่คงที่ 192.168.1.100 netmask 255.255.255.0 เกตเวย์ 192.168.1.1 dns-nameservers 192.168.1.1 192.168.1.10 iface eth0 inet dhcp

คำสำคัญ อัตโนมัติด้วยการแสดงรายการชื่ออินเทอร์เฟซแบบคั่นด้วยช่องว่าง ระบุเพื่อเปิดใช้งานอินเทอร์เฟซเหล่านี้เมื่อเริ่มต้นระบบ. คำสำคัญ ไอเฟซเป็นคำอธิบายของอินเทอร์เฟซ (รูปแบบทั่วไป: ไอเฟซ). ดังนั้นในตัวอย่าง:

  • ในบรรทัด iface หรือ inet loopbackอินเทอร์เฟซภายในเครื่องได้รับการกำหนดค่าแล้ว สำหรับการโต้ตอบของแอพพลิเคชั่นภายในคอมพิวเตอร์ที่กำหนด (ลูปแบ็ค)
  • ในบรรทัด iface eth1 inet แบบคงที่อินเทอร์เฟซ eth1 ถูกกำหนดค่าไว้ วิธีการกำหนดค่าแบบคงที่(ระบุพารามิเตอร์เครือข่ายด้วยตนเอง คงที่). ถัดไปจะระบุพารามิเตอร์สำหรับการกำหนดค่าอินเทอร์เฟซแบบคงที่ (รูปแบบทั่วไป :)): ที่อยู่ IP ( ที่อยู่), ซับเน็ตมาสก์ ( เน็ตมาสก์) เกตเวย์เริ่มต้น ( ประตู) ที่อยู่เซิร์ฟเวอร์ DNS ( DNS-เนมเซิร์ฟเวอร์) ฯลฯ หากมีเซิร์ฟเวอร์ DNS หลายเซิร์ฟเวอร์ เซิร์ฟเวอร์เหล่านั้นจะถูกแสดงรายการโดยคั่นด้วยช่องว่าง
  • ในบรรทัด iface eth0 dhcpระบุการกำหนดค่าอินเทอร์เฟซ eth0 โดย โปรโตคอลการกำหนดค่าโหนดแบบไดนามิก.

มาตรการ ดีเอชซีพี(Dynamic Host Configuration Protocol) ช่วยให้คอมพิวเตอร์รับที่อยู่ IP โดยอัตโนมัติผ่านเครือข่ายและพารามิเตอร์อื่น ๆ ที่จำเป็นสำหรับการทำงานของอินเทอร์เฟซเครือข่าย หากต้องการใช้โปรโตคอล DHCP จำเป็นต้องกำหนดค่าโดเมนการออกอากาศนี้ เซิร์ฟเวอร์ DHCP. เมื่อตั้งค่าอุปกรณ์เครือข่าย คอมพิวเตอร์จะติดต่อกับเซิร์ฟเวอร์ DHCP และรับพารามิเตอร์เครือข่ายที่จำเป็น

นอกเหนือจากการกำหนดค่าอินเทอร์เฟซแบบคงที่และไดนามิกแล้ว ยังมีวิธีการกำหนดค่าด้วยตนเอง ( คู่มือ), ที่ ถือว่าอินเทอร์เฟซจะได้รับการกำหนดค่าโดยใช้เครื่องมือของบุคคลที่สามในการ ifupdown.

ไวยากรณ์ของไฟล์อินเทอร์เฟซมีการอธิบายโดยละเอียดในหน้าช่วยเหลือที่เกี่ยวข้อง ( อินเทอร์เฟซของมนุษย์).

การเพิ่มเส้นทางคงที่แบบถาวร

ตัวเลือกอินเทอร์เฟซในไฟล์อินเทอร์เฟซช่วยให้คุณสามารถระบุคำสั่งที่จะดำเนินการเมื่อเปิดใช้งานอินเทอร์เฟซ ( ตัวเลือกขึ้น) และปิด ( ตัวเลือกลง).

ตัวอย่างเช่น มาตั้งค่าการกำหนดค่าเครือข่ายถาวรด้วยเส้นทางคงที่ผ่านเกตเวย์สำรอง (ส่วนของไฟล์ /etc/network/interfaces ปรากฏขึ้น):

Iface eth1 ที่อยู่คงที่ inet 192.168.1.100 netmask 255.255.255.0 ขึ้นไปเส้นทาง ip เพิ่ม 192.168.24.0/24 ผ่านเกตเวย์ 192.168.1.2 192.168.1.1

ลองใช้การกำหนดค่านี้โดยใช้คำสั่ง ifdown/ifup และดูตารางเส้นทาง:

# ifdown eth1 # ifup eth1 # เส้นทาง ip แสดง dev eth1 192.168.1.0/24 ลิงก์ขอบเขตเคอร์เนลโปรโต src 192.168.1.100 192.168.24.0/24 ผ่าน 192.168.1.2 ค่าเริ่มต้นผ่าน 192.168.1.1

ที่อยู่ IP หลายรายการบนอินเทอร์เฟซเครือข่ายเดียว

งานในการเพิ่มที่อยู่ IP หลายรายการให้กับอินเทอร์เฟซโดยใช้ไฟล์ /etc/network/interfaces ได้รับการแก้ไขดังนี้:

อัตโนมัติ eth1 eth1: เพิ่ม iface eth1 ที่อยู่คงที่ inet 192.168.11.10 netmask 255.255.255.0 เกตเวย์ 192.168.11.1 iface eth1: เพิ่มที่อยู่คงที่ inet 192.168.11.11 netmask 255.255.255.0

นามแฝงถูกระบุด้วยเครื่องหมายโคลอนหลังชื่ออินเทอร์เฟซ นอกจากนี้ยังจำเป็นต้องระบุการเปิดใช้งานอินเทอร์เฟซใหม่โดยอัตโนมัติในพารามิเตอร์อัตโนมัติ

หากต้องการใช้การกำหนดค่านี้ คุณต้องรันคำสั่งต่อไปนี้:

# ถ้าลง eth1; ถ้าอัพ eth1; ifup eth1:เพิ่ม

# /etc/init.d/รีสตาร์ทเครือข่าย


บางครั้งข้อผิดพลาดของเครือข่ายและข้อผิดพลาดอื่นๆ ของระบบ Windows อาจเกี่ยวข้องกับปัญหาในรีจิสทรีของ Windows หลายโปรแกรมสามารถใช้ไฟล์เครือข่ายได้ แต่เมื่อโปรแกรมเหล่านั้นถูกถอนการติดตั้งหรือแก้ไข บางครั้งรายการรีจิสทรีของ Windows "ที่ถูกละเลย" (ไม่ถูกต้อง) จะถูกทิ้งไว้ข้างหลัง

โดยพื้นฐานแล้ว หมายความว่าแม้ว่าเส้นทางที่แท้จริงของไฟล์อาจเปลี่ยนแปลงไป แต่ตำแหน่งเดิมที่ไม่ถูกต้องยังคงถูกบันทึกไว้ใน Windows Registry เมื่อ Windows พยายามค้นหาการอ้างอิงไฟล์ที่ไม่ถูกต้องเหล่านี้ (ตำแหน่งไฟล์บนพีซีของคุณ) เครือข่าย นอกจากนี้ การติดมัลแวร์อาจทำให้รายการรีจิสทรีที่เกี่ยวข้องกับ Microsoft Windows เสียหาย ดังนั้นรายการรีจิสทรี Windows ที่เสียหายเหล่านี้จำเป็นต้องได้รับการแก้ไขเพื่อแก้ไขปัญหาที่ราก

ไม่แนะนำให้แก้ไขรีจิสทรีของ Windows ด้วยตนเองเพื่อลบคีย์เครือข่ายที่ไม่ถูกต้อง เว้นแต่คุณจะเป็นผู้เชี่ยวชาญด้านบริการพีซี ข้อผิดพลาดที่เกิดขึ้นเมื่อแก้ไขรีจิสทรีอาจทำให้พีซีของคุณใช้งานไม่ได้และทำให้ระบบปฏิบัติการของคุณเสียหายอย่างไม่อาจแก้ไขได้ ในความเป็นจริงแม้แต่ลูกน้ำเพียงตัวเดียวที่วางผิดตำแหน่งก็สามารถป้องกันไม่ให้คอมพิวเตอร์ของคุณบูทได้!

เนื่องจากความเสี่ยงนี้ เราขอแนะนำอย่างยิ่งให้ใช้เครื่องมือล้างรีจิสทรีที่เชื่อถือได้ เช่น WinThruster (พัฒนาโดย Microsoft Gold Certified Partner) เพื่อสแกนและซ่อมแซมเครือข่ายใดๆ เมื่อใช้ตัวล้างรีจิสทรี คุณสามารถทำให้กระบวนการค้นหารายการรีจิสทรีที่เสียหาย การอ้างอิงไฟล์หายไป (เช่น เครือข่ายที่ทำให้เกิดข้อผิดพลาด) และลิงก์ที่เสียหายภายในรีจิสทรีเป็นไปโดยอัตโนมัติ ก่อนการสแกนแต่ละครั้ง สำเนาสำรองจะถูกสร้างขึ้นโดยอัตโนมัติ ช่วยให้คุณสามารถยกเลิกการเปลี่ยนแปลงใดๆ ได้ด้วยคลิกเดียว และปกป้องคุณจากความเสียหายที่อาจเกิดขึ้นกับคอมพิวเตอร์ของคุณ ส่วนที่ดีที่สุดคือการขจัดข้อผิดพลาดของรีจิสทรีสามารถปรับปรุงความเร็วและประสิทธิภาพของระบบได้อย่างมาก


คำเตือน:เราไม่แนะนำให้แก้ไขรีจิสทรีของ Windows ด้วยตนเอง เว้นแต่คุณจะเป็นผู้ใช้พีซีที่มีประสบการณ์ การใช้ Registry Editor ไม่ถูกต้องอาจทำให้เกิดปัญหาร้ายแรงซึ่งอาจทำให้คุณต้องติดตั้ง Windows ใหม่ เราไม่รับประกันว่าปัญหาที่เกิดจากการใช้ Registry Editor ไม่ถูกต้องจะสามารถแก้ไขได้ คุณใช้ Registry Editor โดยยอมรับความเสี่ยงเอง

ก่อนที่จะกู้คืนรีจิสทรี Windows ด้วยตนเอง คุณจะต้องสร้างการสำรองข้อมูลโดยส่งออกส่วนที่เกี่ยวข้องกับเครือข่ายของรีจิสทรี (เช่น Microsoft Windows):

  1. คลิกที่ปุ่ม เริ่ม.
  2. เข้า " สั่งการ"วี แถบค้นหา... อย่าเพิ่งคลิก เข้า!
  3. ขณะที่กดปุ่มค้างไว้ CTRL-Shiftบนแป้นพิมพ์ของคุณ ให้กด เข้า.
  4. กล่องโต้ตอบสำหรับการเข้าถึงจะปรากฏขึ้น
  5. คลิก ใช่.
  6. กล่องดำเปิดขึ้นพร้อมกับเคอร์เซอร์กะพริบ
  7. เข้า " ลงทะเบียนใหม่" และกด เข้า.
  8. ใน Registry Editor ให้เลือกคีย์ที่เกี่ยวข้องกับเครือข่าย (เช่น Microsoft Windows) ที่คุณต้องการสำรองข้อมูล
  9. ในเมนู ไฟล์เลือก ส่งออก.
  10. ในรายการ บันทึกที่เลือกโฟลเดอร์ที่คุณต้องการบันทึกข้อมูลสำรองคีย์ Microsoft Windows
  11. ในสนาม ชื่อไฟล์ป้อนชื่อไฟล์สำรองข้อมูล เช่น "Microsoft Windows Backup"
  12. ให้แน่ใจว่าสนาม ช่วงการส่งออกเลือกค่าแล้ว สาขาที่เลือก.
  13. คลิก บันทึก.
  14. ไฟล์จะถูกบันทึก มีนามสกุล .reg.
  15. ขณะนี้คุณมีข้อมูลสำรองของรายการรีจิสทรีที่เกี่ยวข้องกับเครือข่ายของคุณแล้ว

ขั้นตอนต่อไปนี้สำหรับการแก้ไขรีจิสทรีด้วยตนเองจะไม่ได้อธิบายไว้ในบทความนี้ เนื่องจากอาจสร้างความเสียหายให้กับระบบของคุณได้ หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขรีจิสทรีด้วยตนเอง โปรดดูลิงก์ด้านล่าง