簡體   English   中英

路由是否影響具有綁定源地址的套接字?

[英]Does routing affect a socket with a bound source address?

假設我有兩個網絡接口:

  • eth0 ,地址10.0.0.1
  • eth1 ,地址為192.168.0.1

使用routeip route add我已將其設置為route:

  • 所有地址都是eth0
  • 1.2.3.4僅限eth1

所以1.2.3.4數據包應該路由到eth1 ,其他一切都路由到eth0

然后我創建一個UDP套接字並使用bind()將其本地地址設置為192.168.0.1 然后我發送一個數據包到1.2.3.4

是否會通過路由表或eth0通過eth1發送,因為它綁定到該IP地址? 我試過了,似乎是在eth1上發送的。

有沒有辦法可以強制套接字使用eth0 ,它有一個到目的地的有效路由,但不是最具體的規則? 我知道SO_BINDTODEVICE,但更喜歡避免在C代碼中使用接口名稱。

對於套接字,如果您希望內核及其路由表使用任何可用端口為您選擇最佳接口,則在發送數據報套接字之前不必調用bind()

如果綁定套接字,它將綁定到具有該特定IP地址的網絡設備。 但是,如果數據包無法從該網絡設備到達目標地址,這是否有意義?

暫無
暫無

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

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