Sebagai pentadbir Linux, pernahkah anda menghadapi masalah seperti sambungan rangkaian yang lemah dan kependaman yang tinggi? Pernahkah anda ingin mengetahui lebih lanjut tentang teknik pengesanan dan pengesanan laluan rangkaian untuk menyelesaikan masalah dengan lebih baik? Jika ya, maka anda mesti mempelajari kemahiran pengesanan laluan di bawah Linux! Dalam artikel ini, kami akan memperkenalkan secara terperinci cara menggunakan alat baris arahan Linux untuk melaksanakan pengesanan dan pengesanan laluan dengan cepat dan mudah.
Linux lihat penghalaan rangkaian
Setiap komputer yang disambungkan ke rangkaian memerlukan beberapa jenis arahan penghalaan untuk paket TCP/IP rangkaian apabila ia meninggalkan localhost. Ini biasanya sangat mudah kerana kebanyakan persekitaran rangkaian adalah sangat mudah dan hanya terdapat dua pilihan untuk meninggalkan paket. Semua paket dihantar ke peranti pada rangkaian tempatan atau ke rangkaian jauh lain.
Pastikan untuk mentakrifkan rangkaian "tempatan" sebagai rangkaian logik tempat hos tempatan berada, dan biasanya juga rangkaian fizikal. Secara logiknya, ini merujuk kepada subnet tempatan di mana hos diberikan salah satu julat alamat IP subnet tempatan. Secara fizikal, ini bermakna hos disambungkan kepada satu atau lebih suis, yang juga disambungkan ke seluruh rangkaian tempatan.
Model Rangkaian TCP/IP
Sebelum anda masuk ke dalam penghalaan, dapatkan sedikit bantuan tentang cara paket mencari laluan mereka ke hos yang betul pada rangkaian. Model rangkaian TCP/IP mentakrifkan tindanan lima lapisan yang menerangkan mekanisme yang diperlukan untuk memindahkan paket dari satu hos ke hos yang lain, sama ada hos itu berada pada rangkaian tempatan atau di seluruh dunia. Dalam huraian berikut bagi model ini, setiap lapisan dinomborkan dan juga mengandungi nama unit data yang diproses oleh lapisan tersebut.
5 Lapisan aplikasi: Mesej Lapisan ini termasuk protokol sambungan yang diperlukan untuk komunikasi oleh pelbagai aplikasi rangkaian, seperti HTTP, DHCP, SSH, FTP, SMTP, IMAP, dll. Apabila anda meminta halaman web daripada tapak web jauh, permintaan sambungan dihantar ke pelayan web, respons dihantar semula kepada hos lapisan itu dan penyemak imbas memaparkan halaman web dalam tetingkapnya.
4. Lapisan pengangkutan: Segmen TCP. Lapisan pengangkutan menyediakan pemindahan data hujung ke hujung dan perkhidmatan pengurusan strim yang bebas daripada jenis data dan protokol yang diangkut. Ia menggunakan port 80 (cth. HTTP) dan 25 (SMTP) untuk mewujudkan sambungan antara hos penghantar dan hos jauh.
3. Lapisan Internet: paket data. Penghalaan paket dilakukan pada lapisan Internet. Lapisan ini bertanggungjawab untuk menghalakan paket merentasi dua atau lebih rangkaian berbeza untuk sampai ke destinasi akhir mereka. Lapisan ini menggunakan alamat IP dan jadual penghalaan untuk menentukan peranti seterusnya untuk menghantar paket. Jika dihantar ke penghala, setiap penghala hanya bertanggungjawab untuk menghantar paket ke penghala seterusnya dalam siri ini, bukan untuk memetakan keseluruhan laluan dari hos tempatan ke hos destinasi. Lapisan Internet terutamanya mengenai penghala yang bercakap dengan penghala untuk menentukan penghala seterusnya dalam pautan.
2. Lapisan pautan data: rangka kerja. Lapisan pautan menguruskan sambungan langsung antara hos perkakasan pada rangkaian logik tempatan tunggal. Lapisan ini menggunakan alamat kawalan akses media (MAC) yang dibenamkan dalam kad antara muka rangkaian (NIC) untuk mengenal pasti peranti fizikal yang disambungkan ke rangkaian tempatan. Lapisan ini tidak boleh mengakses hos yang bukan pada rangkaian tempatan.
1. Lapisan fizikal: bit. Ini ialah lapisan perkakasan, yang terdiri daripada NIC dan kabel Ethernet fizikal, serta protokol peringkat perkakasan yang digunakan untuk menghantar bit individu yang membentuk bingkai data antara mana-mana dua hos atau nod rangkaian lain yang membentuk sambungan setempat.
Contoh mudah
Jadi bagaimana rupanya apabila hos benar-benar menghantar data melalui rangkaian menggunakan model rangkaian TCP/IP? Ini adalah penerangan lengkap saya tentang cara data bergerak dari satu rangkaian ke rangkaian yang lain. Dalam contoh ini, komputer saya menghantar permintaan halaman web ke pelayan jauh.
Pada lapisan aplikasi, penyemak imbas memulakan mesej permintaan sambungan HTTP kepada hos jauh www.example.com untuk menghantar semula data yang mengandungi kandungan halaman web. Berikut ialah mesejnya, ia hanya mengandungi alamat IP pelayan web jauh.
Lapisan pengangkutan merangkum mesej yang mengandungi permintaan halaman web dalam datagram TCP yang disasarkan pada alamat IP pelayan web jauh. Paket ini sekarang, bersama-sama dengan paket permintaan asal, termasuk port sumber dari mana permintaan itu dibuat, biasanya port rawak yang sangat besar supaya data yang dikembalikan mengetahui port mana yang didengar oleh penyemak imbas. dan port destinasi pada hos jauh (port 80 dalam kes ini).
Lapisan Internet merangkum datagram TCP dalam satu paket, yang juga mengandungi alamat IP sumber dan alamat IP destinasi.
Lapisan pautan data menggunakan Address Resolution Protocol (ARP) untuk mengenal pasti alamat MAC fizikal penghala lalai dan merangkum paket Internet dalam bingkai yang mengandungi alamat MAC sumber dan destinasi.
Bingkai dihantar melalui wayar (biasanya CAT5 atau CAT6) daripada NIC pada hos tempatan kepada NIC pada penghala lalai.
Penghala lalai membuka datagram dan menentukan alamat IP destinasi. Penghala menggunakan jadual penghalaannya sendiri untuk mengenal pasti alamat IP penghala seterusnya yang akan membawa bingkai ke langkah seterusnya. Penghala kemudian merangkum semula bingkai ke dalam datagram baharu yang mengandungi MAC sendiri sebagai sumber dan alamat MAC penghala seterusnya, yang kemudiannya dihantar melalui antara muka yang sesuai. Penghala melaksanakan tugas penghalaan mereka pada Lapisan 3 (lapisan Internet).
Sila ambil perhatian bahawa suis tidak dapat dilihat oleh semua protokol di Lapisan 2 dan ke atas, jadi ia tidak menjejaskan penghantaran data dalam sebarang cara yang logik. Fungsi suis hanyalah untuk menyediakan kaedah mudah untuk menyambungkan berbilang hos ke dalam rangkaian fizikal tunggal melalui kabel Ethernet yang panjang.
Anda boleh menggunakan arahan arp[-n] untuk melihat semua alamat MAC yang telah disimpan oleh hos dalam jadual arpnya. Ini sentiasa menjadi hos pada rangkaian tempatan.
jadual penghalaan
Semua peranti rangkaian, sama ada hos, penghala atau jenis nod rangkaian lain seperti pencetak yang dilampirkan rangkaian, perlu memutuskan tempat untuk menghalakan paket TCP/IP. Jadual penghalaan menyediakan maklumat konfigurasi yang diperlukan untuk membuat keputusan ini. Sama seperti jadual penghalaan yang sangat mudah dalam Rajah 1, jadual penghalaan ini digunakan untuk menentukan laluan tunggal yang tersedia untuk hos tempatan biasa dan menentukan sama ada untuk menghantar paket ke penghala get laluan lalai. . Arahan route -n menyenaraikan jadual penghalaan pilihan -n hanya memaparkan hasil sebagai alamat IP dan tidak cuba melakukan carian DNS, yang menggantikan alamat IP dengan nama hos jika tersedia. Menggunakan perintah netstat –RN menghasilkan hasil yang hampir sama.
[root@host1 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.254 0.0.0.0 UG 100 0 0 eno1 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
Rajah 1: Jadual penghalaan mudah.
Apabila menggunakan pilihan -n, get laluan lalai sentiasa ditunjukkan dengan sasaran 0.0.0.0. Jika -n tidak digunakan, perkataan "Lalai" muncul dalam lajur Destinasi output. Alamat IP dalam lajur Gateway ialah alamat IP penghala get laluan keluar. Netmask 0.0.0.0 untuk get laluan lalai bermakna, tanpa mengira kelas rangkaian, sebarang paket dalam jadual penghalaan yang tidak dialamatkan kepada rangkaian tempatan atau penghala keluar lain melalui entri tambahan akan dihantar ke get laluan lalai.
Lajur Iface dalam Rajah 1 ialah nama NIC keluar, dalam kes ini eno1. Untuk hos yang bertindak sebagai penghala, sekurang-kurangnya dua dan kadangkala lebih banyak NIC mungkin akan digunakan. Setiap NIC yang digunakan sebagai penghala akan disambungkan ke rangkaian fizikal dan logik yang berbeza. Bendera dalam lajur Bendera menunjukkan bahawa laluan adalah Atas (U), yang merupakan get laluan lalai (G). Tanda-tanda lain mungkin muncul juga.
Bagi kebanyakan hos, keputusan penghalaan adalah sangat mudah:
Jika hos sasaran berada pada rangkaian tempatan, hantar data terus ke hos sasaran.
Jika hos sasaran berada pada rangkaian jauh yang boleh dicapai melalui get laluan tempatan yang disenaraikan dalam jadual penghalaan, hantarkannya ke get laluan yang ditakrifkan secara eksplisit.
Jika hos destinasi berada pada rangkaian jauh dan tiada entri lain menentukan laluan ke hos itu, data dihantar ke get laluan lalai.
Peraturan ini hanya bermaksud bahawa jika semua operasi lain gagal disebabkan oleh ketidakpadanan, paket dihantar ke get laluan lalai.
Jadual penghalaan dalam Rajah 2 di bawah adalah lebih rumit sedikit kerana ia milik hos Linux yang bertindak sebagai penghala yang disambungkan kepada tiga rangkaian, salah satunya menuju ke Internet. Terdapat entri dalam jadual untuk rangkaian Kelas C tempatan (192.168.0.0/24 pada antara muka eth1, 192.168.25.0/24 pada eth2), serta laluan lalai pada eth0 ke seluruh dunia.
[root@host2 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.24 0.0.0.0 255.255.255.252 U 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.25.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 0.0.0.0 192.168.1.25 0.0.0.0 UG 0 0 0 eth0
Rajah 2: Jadual penghalaan yang lebih kompleks dengan berbilang rangkaian.
Sila ambil perhatian bahawa masih terdapat hanya satu get laluan lalai dan ia adalah pada antara muka eth0. Walau bagaimanapun, sebagai tambahan kepada kemasukan laluan lalai yang menghala terus ke alamat IP sebelah LAN penghala, terdapat juga entri untuk keseluruhan rangkaian 192.168.1.24/30. Rangkaian hanya mengandungi dua alamat IP yang tersedia, satu untuk bahagian LAN penghala, 192.168.1.25/30 dan satu untuk hos itu sendiri, 192.168.1.26/30.
Konfigurasi penghalaan
Jadi bagaimana untuk mengkonfigurasi jadual penghalaan? Untuk hos yang disambungkan ke rangkaian menggunakan DHCP, pelayan DHCP menyediakan maklumat konfigurasi untuk laluan lalai ini serta DNS, alamat IP hos, dan mungkin maklumat lain (seperti alamat IP pelayan NTP). Untuk konfigurasi statik, ia biasanya mudah, tetapi kadangkala ia boleh menjadi sedikit rumit.
Dalam kebanyakan kes, menambah laluan lalai pada fail /etc/sysconfig/network akan menyebabkan rangkaian mengkonfigurasi laluan lalai dalam jadual penghalaan. Entri ini serupa dengan contoh dalam Rajah 3.
GATEWAY=192.168.0.1
Rajah 3: Kemasukan gerbang dalam fail rangkaian.
Hanya get laluan lalai boleh dikonfigurasikan menggunakan fail rangkaian.
Cara lain untuk mengkonfigurasi get laluan lalai dalam persekitaran yang dikonfigurasikan secara statik adalah dengan menambahkannya pada fail konfigurasi antara muka yang sepadan dalam direktori /etc/sysconfig/network-scripts. Untuk menambah get laluan kepada fail konfigurasi antara muka untuk antara muka eth0, tambahkan baris yang sama seperti dalam Rajah 3 di atas pada fail ifcfg-eth0. Jika anda melakukan ini, entri hendaklah dialih keluar daripada fail rangkaian.
在更复杂的环境中,例如当主机使用多个NIC连接到多个网络时,以及至少需要在路由表中输入两条或更多条路由时,您应该考虑在其中使用路由文件。 / etc / sysconfig / network-scripts。 对于NIC enp7s1,该文件将是route-enp7s1,它将包含图4所示的条目。
default via 192.168.0.1 dev enp7s1
图4:enp7s1的默认路由条目。
路由接口文件中的默认网关设置将覆盖网络文件中可能列出的所有网关。
当然,您始终可以使用route命令从命令行添加路由。 如果您需要在每次系统引导时都执行此操作,则可能会花费一些时间,因此您可能要考虑使用上述方法,或创建在启动时运行的脚本。 我为我的系统之一编写了一个脚本,其中包含以下两行,如图5所示。
route del default route add default gw 192.168.0.1
图5:从命令行设置默认路由的命令。
请注意,设备名称在所有这些命令中都是可选的,在图5中未使用。
通过阅读本文,我们已经了解了如何使用常见的Linux路由检测命令,例如traceroute和mtr,以及如何利用tcpdump和wireshark来分析网络数据包。通过这些技巧,我们能够有效定位网络连接问题,并快速排除故障。相信这些知识对于广大Linux管理员和网络工程师都将有所帮助,让你们能够更加从容应对复杂的网络环境,提升自己的技术水平。
Atas ialah kandungan terperinci Rahsia menjejak penghalaan rangkaian, kemahiran pengesanan penghalaan Linux didedahkan!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!