新聞中心
在計算機網(wǎng)絡領域中,路由是一個十分重要的概念。路由器是連接多個網(wǎng)絡的設備,通過它可以實現(xiàn)數(shù)據(jù)的傳輸和路由選擇。為了確保網(wǎng)絡順暢運行,必須對路由器進行有效的管理和探測。在本文中,我們將介紹如何使用Linux探測路由。

一、通過ping命令探測路由
Ping命令是最常用的檢測網(wǎng)絡連接問題的工具之一。它也可以用來檢測網(wǎng)絡路由表,主要用來檢測鏈路層、網(wǎng)絡層和傳輸層是否可達。以下是使用ping命令進行路由探測的步驟:
1. 打開終端。
2. 輸入ping命令并指定路由器IP地址,例如ping 192.168.1.1。
3. 按下回車鍵,等待數(shù)秒鐘。
如果路由器可達,它將回復一個“響應”消息,否則將顯示超時錯誤或其他錯誤。這個方法很簡單,但是要注意一些問題,如網(wǎng)絡擁塞和防火墻設置可能會導致探測失敗。
二、通過traceroute命令探測路由
Traceroute命令是一種用來確定數(shù)據(jù)包從源到目的地址經(jīng)過的路由器的工具。它通過向目標地址發(fā)送一系列的ICMP數(shù)據(jù)包來追蹤路徑。以下是使用traceroute命令進行路由探測的步驟:
1. 打開終端。
2. 輸入traceroute命令并指定目標IP地址,例如traceroute 192.168.1.1。
3. 按下回車鍵,等待輸出結果。
結果將顯示到達目標地址所經(jīng)過的每個路由器的IP地址、每個路由器的響應時間和TTL(Time To Live)值。TTL值是每個數(shù)據(jù)包在到達目的地之前可以通過的更大路由數(shù)目。
三、通過tcptraceroute命令探測路由
Tcptraceroute命令是對traceroute的一種改進,它使用TCP協(xié)議而不是UDP協(xié)議來發(fā)送數(shù)據(jù)包,并采用標準TCP連接的方式與每個路由器建立連接,這樣可以更好地跟蹤由于防火墻問題而導致的問題。以下是使用tcptraceroute命令進行路由探測的步驟:
1. 打開終端。
2. 輸入tcptraceroute命令并指定目標IP地址,例如tcptraceroute 192.168.1.1。
3. 按下回車鍵,等待輸出結果。
結果將顯示到達目標地址所經(jīng)過的每個路由器的IP地址、每個路由器的響應時間和TTL值。與traceroute命令相比,tcptraceroute命令具有更好的跟蹤效果和更精確的錯誤報告。
四、通過mtr命令探測路由
Mtr命令是一個跨平臺的網(wǎng)絡診斷工具,它將ping和traceroute兩種工具結合在一起,可以提供更全面的網(wǎng)絡診斷和路由探測功能。以下是使用mtr命令進行路由探測的步驟:
1. 打開終端。
2. 輸入mtr命令并指定目標IP地址,例如mtr 192.168.1.1。
3. 按下回車鍵,等待輸出結果。
結果將顯示到達目標地址所經(jīng)過的每個路由器的IP地址、每個路由器的響應時間、TTL值和丟失的數(shù)據(jù)包數(shù)量。Mtr命令還提供了實時的網(wǎng)絡性能數(shù)據(jù)和一系列跟蹤圖表,可以更直觀地展示網(wǎng)絡狀況和路由問題。
路由是計算機網(wǎng)絡中的一個重要概念,必須時刻保持清晰和有效。Linux操作系統(tǒng)提供了多種方式來探測路由器,如ping、traceroute、tcptraceroute和mtr命令。根據(jù)不同的網(wǎng)絡情況和需求,選擇適合的工具可以更加準確地發(fā)現(xiàn)和解決網(wǎng)絡問題,從而保證網(wǎng)絡的高效性和穩(wěn)定性。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設、網(wǎng)站制作、網(wǎng)頁設計及定制高端網(wǎng)站建設服務!
如何理解ip路由和操作linux的路由表
路由其實就是選擇一條數(shù)據(jù)包傳輸路徑的過程,也就是說主機怎么向它的目滑搏的地順利發(fā)送數(shù)據(jù)的過程。當TCP/IP主機發(fā)送IP數(shù)據(jù)包時,便出現(xiàn)了路由,且當?shù)竭_IP路由器時還會再次出現(xiàn)。路由器是從一個物理網(wǎng)向另一個物理網(wǎng)發(fā)送數(shù)據(jù)包的裝置,路由器通常被稱為網(wǎng)關,它承但著分發(fā)數(shù)據(jù)包的任務。對于發(fā)送的主機和路由器而言,必須決定向哪里轉發(fā)數(shù)據(jù)包。在決定路由時,IP層查詢位于內存中的路由表,然后根據(jù)查詢規(guī)則,進行ip路由。是不是很宴讓襪抽象?用我的話說吧,也就是下面要討論的問題。
先說如何選路:
(1)當一個主機試圖與另一個主機通信時,IP首先決定目的主機是一個內網(wǎng)還是外網(wǎng),怎么確定?當然使用網(wǎng)絡號。
(2)如果是是同一內網(wǎng),那就就是直接發(fā)送了,這個最簡答不過了。
(3)如果目的主機是和發(fā)送主機不在同一個內網(wǎng),也就是在外網(wǎng)了,^_^很啰嗦,IP將查詢路由表來為外網(wǎng)主機或外網(wǎng)選擇一個路由,所以一般情況下有可能為某個外網(wǎng)指定特定的路由,具體問題稍后分析。
(4)若未找到明確的路由,此時在路由表中還會有默認網(wǎng)關,也可稱為缺省網(wǎng)關,IP用缺省的網(wǎng)關地址將一個數(shù)據(jù)傳送給下一個指定的路由器,所以網(wǎng)關也可能是路由器,也可能只是內網(wǎng)向特定路由器傳輸數(shù)據(jù)的網(wǎng)關。
(4)在該路由器收到數(shù)據(jù)后,它再次為遠程主機或網(wǎng)絡查詢路由,若還未找到路由,該數(shù)據(jù)包將發(fā)送到該路由器的缺省網(wǎng)關地址。
每發(fā)現(xiàn)一條路由,數(shù)據(jù)包被轉送下一級路由器,稱為一次“跳步”,按照同樣的方式進行轉發(fā),并最終發(fā)送至目的主機。若未發(fā)現(xiàn)任何一個路由可以接受此次ip包的地址,發(fā)送主機將收到一個出錯信息,也就是說其中任何一跳出現(xiàn)了不可到達,最后的結果也就是報錯了。
上面只是個人的一些理解,事實上當時我們做的實驗不少,但是看看tcp/ip詳解后,就可以一目了然了,現(xiàn)在以linux下的路由表為例說明一下:
$ sudo route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
.168.100.0 * 255.255.255.0 Ueth1
.168.10.0 * 255.255.254.0 Ueth0
default 192.168.10.1 0.0.0.0 UGeth0
——
IP路由選擇是逐跳地(hop-by-hop)進行的。從這個路由表信息可以看出,IP并不知道到達任何目的的完整路徑(當然,除了那些與主機直接相連的目的)。所有的IP路由選擇只為數(shù)據(jù)報傳輸提供下一站路由器的IP地址。它假定下一站路由器比發(fā)送數(shù)據(jù)報的主機更接近目的,而且下一站路由器與該主機是直接相連的。
IP路由選擇主要完成以下這些功能:
1)搜索路由表,尋找能與目的IP地址完全匹配的表目(網(wǎng)絡號和主機號都要匹配)。如果找到,則把報文發(fā)送給該表目指定的下一站路由器或直接連接的網(wǎng)絡接口(取決于標志字段的值)。
2) 搜索路由表,尋找能與目的網(wǎng)絡號相匹配的表目。如果找到,則把報文發(fā)送給該表目指定的下一站路由器或直接連接的網(wǎng)絡接口(取決于標志字段的值)。目的網(wǎng)絡上的所有主機都可以通過這個表目來處置。例如,一個以太網(wǎng)上的所有主機都是通過這種表目進行尋徑的。這種搜索網(wǎng)絡的匹配方法必須考慮可能的子網(wǎng)掩碼。關于這一點我們在下一節(jié)中進行討論。
3)搜索路由表,尋找標為“默認(default)”的表目。如果找到,則把報文發(fā)送給該表目指定的下一晌激站路由器。如果上面這些步驟都沒有成功,那么該數(shù)據(jù)報就不能被傳送。如果不能傳送的數(shù)據(jù)報來自本機,那么一般會向生成數(shù)據(jù)報的應用程序返回一個“主機不可達”或 “網(wǎng)絡不可達”的錯誤。
完整主機地址匹配在網(wǎng)絡號匹配之前執(zhí)行。只有當它們都失敗后才選擇默認路由。默認路由,以及下一站路由器發(fā)送的ICMP間接報文(如果我們?yōu)閿?shù)據(jù)報選擇了錯誤的默認路由),是IP路由選擇機制中功能強大的特性。
以上的解釋都很清楚了,不用再詳細解釋怎么走了,如果你實在還不能理解的話,去看tcp/ip詳解吧。順便解釋一下上面的output內容:
The output of the kernel routing table is organized in the following columns
Destination
The destination network or destination host.
Gateway
The gateway address or ‘*’ if none set.
Genmask
The netmask for the destination net; ‘255.255.255.255’ for a host destination and ‘0.0.0.0’ for the default route.
Flags Possible flags include
U (route is up)
H (target is a host)
G (use gateway)
R (reinstate route for dynamic routing)
D (dynamically installed by daemon or redirect)
M (modified from routing daemon or redirect)
A (installed by addrconf)
C (cache entry)
! (reject route)
Metric The ‘distance’ to the target (usually counted in hops). It is not used by recent kernels, but may be needed by
routing daemons.
Ref Number of references to this route. (Not used in the Linux kernel.)
Use Count of lookups for the route. Depending on the use of -F and -C this will be either route cache misses (-F) or
hits (-C).
Iface Interface to which packets for this route will be sent.
MSS Default maximum segment size for TCP connections over this route.
Window Default window size for TCP connections over this route.
irtt Initial RTT (Round Trip Time). The kernel uses this to guess about the best TCP protocol parameters without wait-
ing on (possibly slow) answers.
HH (cached only)
The number of ARP entries and cached routes that refer to the hardware header cache for the cached route. This
will be -1 if a hardware address is not needed for the interface of the cached route (e.g. lo).
Arp (cached only)
Whether or not the hardware address for the cached route is up to date
同時在freebsd上使用netstat -nr打印路由表,也順便提示一下。
現(xiàn)在問題在如何操作路由表,因為ip的選路全靠它吃飯了,怎么為一個特定的網(wǎng)絡或者主機選擇一條特定的路由?如何刪除路由?這些問題對于網(wǎng)絡維護和系統(tǒng)管理也尤為重要:
還是以上面的路由表為例,建議使用前先man route查看方法,或許各個系統(tǒng)略有差異,下面是以debian為例,由于是測試,所以使用sudo,而不是root權限:
1、為某主機添加路由
$ sudo route add –host 192.168.10.58 dev eth1
//所有通向192.168.10.58的數(shù)據(jù)都是用eth1網(wǎng)卡
$ sudo route add –host 192.168.11.58 gw 192.168.10.1
//通向192.168.11.58的數(shù)據(jù)使用網(wǎng)關192.168.10.1
不經(jīng)意間做了一個驗證實驗:由于eth1是沒有啟動的,所以添加這個路由后,192.168.10.58不可ping通
初始路由表
sudo route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
.168.100.0 * 255.255.255.0 Ueth1
.168.10.0 * 255.255.254.0 Ueth0
default 192.168.10.1 0.0.0.0 UGeth0
可以ping通192.168.10.58
$ ping 192.168.10.58
PING 192.168.10.58 (192.168.10.58) 56(84) bytes of data.
bytes from 192.168.10.58: icmp_seq=1 ttl=64 time=0.188 ms
添加192.168.10.58的路由
$ sudo route add -host 192.168.10.58 dev eth1
$ sudo route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
.168.10.58 * 255.255.255.255 UHeth1
.168.100.0 * 255.255.255.0 Ueth1
.168.10.0 * 255.255.254.0 Ueth0
default 192.168.10.1 0.0.0.0 UGeth0
由于eth0無法使用了,所以發(fā)給eth1,就等于丟入黑洞之中
$ ping 192.168.10.58
PING 192.168.10.58 (192.168.10.58) 56(84) bytes of data.
.168.10.58 ping statistics —
2 packets tranitted, 0 received, 100% packet loss, time 1010ms
指定給網(wǎng)關處理
$ sudo route add -host 192.168.10.58 gw 192.168.10.1
$ sudo route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
.168.10.58 192.168.10.1 255.255.255.255 UGHeth0
.168.10.58 * 255.255.255.255 UHeth1
.168.100.0 * 255.255.255.0 Ueth1
.168.10.0 * 255.255.254.0 Ueth0
default 192.168.10.1 0.0.0.0 UGeth0
要經(jīng)過網(wǎng)關了,驗證了路由表的作用
$ ping 192.168.10.58
PING 192.168.10.58 (192.168.10.58) 56(84) bytes of data.
From 192.168.10.1: icmp_seq=1 Redirect Network(New nexthop: 192.168.10.58)
bytes from 192.168.10.58: icmp_seq=1 ttl=64 time=1.02 ms
廢話少說了,同理為某網(wǎng)路添加路由和刪除路由如下所示:經(jīng)過測試有效:
2、為某網(wǎng)絡的添加路由
$ sudo route add –net 220.181.8.0/24 dev eth0
$ sudo route add –net 220.181.8.0/24 gw 192.168.10.1
3、添加默認網(wǎng)關
$ sudo route add default gw 192.168.10.1
4、刪除路由,
$ sudo route del –host 192.168.168.110 dev eth0
可能你會遇到刪除時候語法錯誤,請參看路由表的Flags,路由上面的之一條,G表示設定了網(wǎng)關,H表示操作了主機,所以就用$ sudo route del -host 192.168.10.58 gw 192.168.10.1刪除,更詳細的請man。
使用route 命令添加的路由,機器重啟或者網(wǎng)卡重啟后路由就失效了,和iptables一樣,需要永久添加的話,也是使用開機執(zhí)行,所以可以用以下方法添加永久路由:
1.在/etc/rc.local里添加執(zhí)行命令,進行開機執(zhí)行,因為是root權限,所以不用sudo了:
route add –net 220.181.8.0/24 dev eth0
route add –net 220.181.9.0/24 gw 192.168.10.1
2.在/etc/sysconfig/network里添加到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
3./etc/sysconfig/static-router :
any net x.x.x.x/24 gw y.y.y.y
Linux多網(wǎng)卡與路由
之前在調試Linux多網(wǎng)卡驅動時,想在應用層實現(xiàn)默認網(wǎng)關的自動切換,需要了解路由的知識,特此總結。
路由是指數(shù)據(jù)包從源節(jié)點到目的節(jié)點過程中,決定端到端路徑的行為。說白了,就是數(shù)據(jù)在網(wǎng)絡中從一個主機到另一個主機的傳遞路徑。舉個例子,我上班需要從家(A)走到公交站(B)坐130路車到大公司(C),那么我上班的路由就是A -> B -> C。
可以理解成是保存某個主機的所有路由信息的。還是說上班那個例子,我也可以從家里(A)走到公家站(B)先坐220路車到達山東路公交站(B1),再轉106路車到達公司(C),所以A -> B -> B1 -> C也是一條路由信息,那么這兩條路由信息都屬于我的路由表。
路由器主要負責查詢數(shù)據(jù)在網(wǎng)絡中的傳遞路由信息,并完成數(shù)據(jù)包的投遞。再舉個公交車的例子,假如有一天我想去五四廣場(D)玩,但不知道坐哪路車,所以我先從家里(A)走到公交站(B),查了一下站牌信息,需要做128路車到達,接著我就等車來然后坐車抵達目的地。在這個情景中,公交站就相當于路核槐由器,幫我查到坐車信息并經(jīng)此抵達,相應的A -> B -> D就是對應的路由。
以上只是對這幾個重要概念的簡單理解,真實網(wǎng)寬氏李絡環(huán)境中肯定要復雜許多。
正常情況下,嵌入式板子有一個網(wǎng)卡就夠用了,要慎遲么WiFi,要么以太網(wǎng)。但有時候需要多個網(wǎng)卡的情況,以連接不同的子網(wǎng)。運行ifconfig命令可以查看系統(tǒng)網(wǎng)卡信息:
上面信息表明我的系統(tǒng)中有兩個以太網(wǎng)卡,一個網(wǎng)絡接口連到 192.168.10.* 段網(wǎng)絡,另一個網(wǎng)絡接口連到 192.168.56.* 段網(wǎng)絡。再來看一下路由表信息,運行route命令可以查看:
上述 route 命令輸出信息中各項的含義請看下表:
可以看到路由表里有4條路由信息。如果要發(fā)送的數(shù)據(jù)包的目的地址是192.168.56.8,跟之一條路由信息的子網(wǎng)掩碼做與運算得到192.168.56.0,可判斷與路由信息中目的網(wǎng)絡地址不符;再跟第二條路由信息的子網(wǎng)掩碼做與運算得到192.168.56.0,正是第二行的目的網(wǎng)絡地址,因此數(shù)據(jù)從eth1網(wǎng)卡發(fā)送出去,由于192.168.56.0正是與eth1接口直接相連的網(wǎng)絡,因此可以直接發(fā)到目的主機,不需要經(jīng)路由器轉發(fā)。如果要發(fā)送的數(shù)據(jù)包的目的地址是114.114.114.114,跟前三條路由表條目都不匹配,那么就要按缺省路由信息,從eth0網(wǎng)卡發(fā)出去,首先發(fā)往地址為192.168.10.1的路由器,再讓路由器根據(jù)它的路由表決定下一跳地址。
通過上面的分析可以發(fā)現(xiàn),若使網(wǎng)絡中任意兩個節(jié)點能夠通信,要么在路由表有對應的路由信息,要么通過默認網(wǎng)關進行轉發(fā)。
純個人理解,如有問題,歡迎指正~~~
如何使用linux服務器實現(xiàn)路由器的功能
1.開啟內核的路由轉發(fā)功租爛能歲檔a
修改/etc/sysctl.conf文件,在里面弊雀漏添加一行 net.ipv4.ip_forward=0
2.sysctl -p #識別修改的的文件
3.添加路由表
route add -net 0.0.0.0/24 gw 7.7.7.2
linux 探測路由的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于linux 探測路由,如何使用Linux探測路由?,如何理解ip路由和操作linux的路由表,Linux多網(wǎng)卡與路由,如何使用linux服務器實現(xiàn)路由器的功能的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)-老牌IDC、云計算及IT信息化服務領域的服務供應商,業(yè)務涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務、云計算服務、IT信息化、AI算力租賃平臺(智算云),軟件開發(fā),網(wǎng)站建設,咨詢熱線:028-86922220
網(wǎng)站標題:如何使用Linux探測路由?(linux探測路由)
當前地址:http://www.dlmjj.cn/article/cogciis.html


咨詢
建站咨詢
