2020年3月24日 星期二

system arp cache

指令

arp -aip neigh show顯示 arp cache
arp -d hostname?移除 entry
arp -s hostname hw_addr?新增永久 entry
arp -s hostname hw_addr temp?新增暫時 entry

-A 或 -p [inet|...]: protocol

-H 或 -t [ether|...]:HW type

nDv

/proc/net/arp

arp flags

0x02COM, completed entry (ha valid)
0x04PERM, permanent entry
0x08PUBL, publish entry
0x10USETRAILERS, has requested trailers
0x20NETMASK, want to use a netmask (only for proxy entries)
0x40DONTPUB, don't answer this addresses
0x?MAGIC, AUTO

arp 項目狀態

none新建立。
incomplete新建立後首次 ARP 請求。
reachable
已確認可達性後尚未過期。更新?
permanent手動設定,不偵測可達性,從不過期。
noarp
不偵測可達性。
stale已過期仍嘗試直送,使用時進入 delay 確認。經過 gc_stale_time 時間進入 ?failed 狀態。
delay排程 ARP 請求確認
probe送 ARP 請求
failed
沒收到回應。?gc_interval 週期檢查如果沒任何參照則移除。

/proc/sys/net/ipv4/neigh/*/*

  • anycast_delay
  • app_solicit
  • base_reachable_time, base_reachable_time_ms:過期時間,預設 30 秒,實際會設為 ± 一半時間的亂數。過期後稱為 stale。
  • delay_first_probe_time:過期後 first probe 的延遲,預設 5 秒。
  • gc_stale_time:garbage collection stale time,多久檢查 stale entry 一次,預設 60 秒。it is resolved again before sending data to it.
  • locktime
  • mcast_solicit
  • proxy_delay
  • proxy_qlen
  • retrans_time, retrans_time_ms
  • ucast_solicit
  • unres_qlen

註:IPv6 用 ND 取代 ARP

在 ARP table 至少有 gc_thresh1 筆時,才以 gc_interval 週期執行 neigh_periodic_work() 進行 ARP garbage collection,避免消耗太多 CPU cycles 卻沒有省到什麼記憶體。gc_thresh3 是 ARP table 筆數上限。

?只有 ARP 的 mac 會存到 ARP cache

?何時會 unicast ARP 確認?

參考

  1. man arp
  2. http://linux-ip.net/html/ether-arp.html

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...