簡體   English   中英

通過 linux 用戶空間 C 中的特定下一跳發送 ping

[英]Send a ping through a specific next hop in linux userspace C

如何從我正在編寫的 Linux C 用戶空間應用程序發送icmp請求並控制下一跳。

我有一個網卡( 192.168.1.10/24 ),它連接到同一子網( 192.168.1.1192.168.1.2 )上的 2 個路由器。

我想通過192.168.1.1192.168.1.2訪問互聯網( 8.8.8.8 ),並根據延遲結果決定我的默認路由是什么。

有沒有辦法可以控制用戶空間 C 中的下一跳? 我正在使用原始套接字。

您可以使用源路由

在計算機網絡中,源路由,也稱為路徑尋址,允許數據包的發送者部分或完全指定數據包通過網絡所采用的路由。 [1] 相比之下,在傳統路由中,網絡中的路由器根據數據包的目的地逐步確定路徑。

但是請注意,源路由數據包被突然和靜默丟棄是很常見的,因為接收器無法相信它們來自它們似乎來自的地方而沒有改變。

Sonicwall 關於他們的防火牆配置是這樣說的

丟棄源路由 IP 數據包-(默認啟用。)如果您正在測試兩個特定主機之間的流量並且您正在使用源路由,請清除此復選框。

IP 源路由是 IP 中的一個標准選項,它允許數據包的發送者指定應該用於將數據包送到其目的地的部分或全部路由器。

這個 IP 選項通常被阻止使用,因為它可以被竊聽者用來接收數據包,方法是插入一個選項,通過路由器 C 將數據包從 A 發送到 B。路由表應該控制數據包采用的路徑,以便它不會被發送者或下游路由器覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM