iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
自我挑戰組

馬克的 Kali Linux 與資安學習小筆記系列 第 5

30-5 Linux 的基礎之網路指令 traceroute 與 arp

  • 分享至 

  • xImage
  •  

接下來這篇要來說說 traceroute 與 arp 這兩個指令

traceroute - 從你家到某個人家的所有路徑

traceroute 它是一個可以跟蹤從你的電腦但某個目標之間的每個路由器的過程。

以電腦執行的結果如下 ,總共有 7 跳,然後每一條有三個時間,例如第一跳的 6.002 ms 8.019 ms 7.969 ms,代表往返時間 ( RTT ),會有 3 個是因為 traceroute 預設會發出三個請求。

然後裡面還有 64 hops max 這是最大跳躍數,然後 52 byte packets 為發送的封包大小。

╰─➤  traceroute hahow.in                                                                                                                                                                                        1 ↵
traceroute to hahow.in (35.229.250.9), 64 hops max, 52 byte packets
 1  192.168.84.122 (192.168.84.122)  6.002 ms  8.019 ms  7.969 ms
 2  * * *
 3  10.157.65.41 (10.157.65.41)  48.075 ms
    10.157.65.45 (10.157.65.45)  39.567 ms
    10.157.65.41 (10.157.65.41)  39.697 ms
 4  10.157.67.177 (10.157.67.177)  42.303 ms  40.104 ms  41.776 ms
 5  tyfo-3335.hinet.net (210.65.126.210)  41.562 ms  34.425 ms  116.685 ms
 6  72.14.213.90 (72.14.213.90)  50.516 ms
    142.250.169.122 (142.250.169.122)  37.521 ms  57.299 ms
 7  9.250.229.35.bc.googleusercontent.com (35.229.250.9)  37.963 ms  65.620 ms  59.137 ms

arp - 查看本地 ARP Cache

要知道這個指令在幹啥,可能也要理解網路的基本架構,之前有寫過一篇關於通訊協義的東西,可以用這裡來簡單理解一下整個結構。

30-10之通訊協議的基本常識

然後簡單的說一下,ARP (Address Resolution Protocol)是 tcp/ip 協義的網路層的東西,它的主要功能就是 :

可以透過 IP 來找到對應的 MAC 位址

這裡先說一下,一直以來應該不少人以為用 ip 就可以連到對方電腦,但根據網路協定最下面的那層,電腦連電腦是以 MAC 為地址,然後 ip 是建在他上面的,然後當要傳輸資料時,整個封包的產生順序是由上往下,也就是說根據下圖走到網路層時,因為要準備產生 MAC,所以他這時就需要用 arp 來找到對應的 MAC,因為這樣才能走到最下面一層傳輸過去。

https://ithelp.ithome.com.tw/upload/images/20230920/20089358Dd6Uq8ApzT.png

╰─➤  arp -a
? (169.254.169.254) at (incomplete) on en0 [ethernet]
? (192.168.84.122) at 32:a0:e7:45:bb:36 on en0 ifscope [ethernet]
? (192.168.84.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
mdns.mcast.net (224.0.0.251) at 1:0:5e:0:0:fb on en0 ifscope permanent [ethernet]
? (239.255.255.250) at 1:0:5e:7f:ff:fa on en0 ifscope permanent [ethernet]
broadcasthost (255.255.255.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]

以上為 arp 指令的結果,他顯示了我們電腦的 arp cache。

  • ? (169.254.169.254) at (incomplete) on en0 [ethernet]:

    • 這條無法解析。
  • ? (192.168.84.122) at 32:a0:e7:45:bb:36 on en0 ifscope [ethernet]:

    • 這條記錄表示IP地址 192.168.84.122 的ARP映射,對應的MAC地址是 32:a0:e7:45:bb:36

    • 它在本地網絡接口 en0 上。

  • ? (192.168.84.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]:

    • 這條記錄表示IP地址 192.168.84.255 的ARP映射,對應的MAC地址是 ff:ff:ff:ff:ff:ff

    • 它是廣播地址,用於內網中的所有主機發送封包。

  • mdns.mcast.net (224.0.0.251) at 1:0:5e:0:0:fb on en0 ifscope permanent [ethernet]

    • 這條記錄表示多播地址 224.0.0.251 的ARP映射,對應的MAC地址是 1:0:5e:0:0:fb

    • 它用於支持mDNS( Multicast DNS )服務,用於區網上的本地主機發現。

  • (239.255.255.250) at 1:0:5e:7f:ff:fa on en0 ifscope permanent [ethernet]:

    • 這條記錄表示多播地址 239.255.255.250 的ARP映射,對應的MAC地址是 1:0:5e:7f:ff:fa。

    • 它用於SSDP( Simple Service Discovery Protoco l)服務,通常用於UPnP( Universal Plug and Pla y)設備發現。

  • broadcasthost (255.255.255.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]:

    • 這條記錄表示廣播地址 255.255.255.255 的ARP映射,對應的MAC地址是 ff:ff:ff:ff:ff:ff。

    • 它用於向局域網中的所有主機發送廣播數據包。

然後順到說一下,arp 沒辦法支援 ipv6 而是用 NDP,結果如下,概念事實上也上 arp 差不多。

╰─➤  ndp -a                                                                                                                                                                                                   127 ↵
Neighbor                        Linklayer Address  Netif Expire    St Flgs Prbs
2001-b400-e35a-b55a-0000-0000-0000-0064.emome-ip6.hinet.net 32:a0:e7:45:bb:36 en0 23h26m37s S  R
2001-b400-e35a-b55a-048d-c50c-7840-754f.emome-ip6.hinet.net f8:ff:c2:3d:82:26 en0 permanent R
2001-b400-e35a-b55a-0886-f1b9-a29c-d96c.emome-ip6.hinet.net f8:ff:c2:3d:82:26 en0 permanent R
fe80::1%lo0                     (incomplete)         lo0 permanent R
fe80::aede:48ff:fe00:1122%en4   ac:de:48:0:11:22     en4 permanent R

fe80::aede:48ff:fe33:4455%en4   ac:de:48:33:44:55    en4 10s       R
fe80::4e5:a091:aadd:256e%en0    f8:ff:c2:3d:82:26    en0 permanent R
fe80::30a0:e7ff:fe45:bb36%en0   32:a0:e7:45:bb:36    en0 18s       R  R
fe80::647e:c8ff:fe45:a218%awdl0 66:7e:c8:45:a2:18  awdl0 permanent R
fe80::647e:c8ff:fe45:a218%llw0  66:7e:c8:45:a2:18   llw0 permanent R
fe80::51ac:1d5a:7788:c16%utun0  (incomplete)       utun0 permanent R
fe80::6d72:531a:8029:db1e%utun1 (incomplete)       utun1 permanent R 

問題

1. 如果 arp 裡面要去的 ip 沒有對應到的 mac,那接下來會發生什麼事呢 ?

簡單的說它會發送『 arp request 』到區網的所有設備,然後看看這個 ip 在這裡有沒有 mac,如果沒有則會繼續往更外一層的網路發送,直到找到為止。


上一篇
30-4 Linux 的基礎之網路指令 ifconfig
下一篇
30-6 Linux 的基礎之 DNS 網路指令 dig
系列文
馬克的 Kali Linux 與資安學習小筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言