問題

問題

問題

我知道如何向介面添加塊。但我真的不知道如何動態使用特定位址。

我想要的是

例如:

  • 我的應用程式有一個區塊 fe80::/32 。
  • 我將讓我的用戶透過一個帶有憑證的 ipv4 位址存取伺服器。
  • 我將發送帶有 IPV6 的鉤子
  • 我想給每個用戶一個特定的發送地址。
  • 用戶A:fe80::1用戶B:fe80::2

我有一整塊的空間,所以會有大量的用戶使用這項服務。

我做了什麼

但我發現我無法將請求與特定位址綁定,這會導致 errno99。

我正在使用curl來測試linux是否支援我想要的功能,但我發現我不能。

我該如何測試它:

測試伺服器範圍

伺服器

python3 -m http.server --bind ::

客戶

curl -vvv -6  "http://[fe80::3]:8000"
curl -vvv -6  "http://[fe80::4]:8000"

這將有效找到。因為伺服器正在偵聽所有位址。因此您可以與他們中的任何人一起訪問。

使用範圍測試客戶端

伺服器

python3 -m http.server --bind ::

客戶

curl -vvv -6 -i "fe80::2" "http://[fe80::1]:8000"
curl -vvv -6 -i "fe80::3" "http://[fe80::1]:8000"

這是行不通的。 Curl 會拋出 errno99

將每個ip綁定到接口

我有一個完整的IP範圍,我必須將每個IP綁定在/32下是多麼瘋狂。所以我正在尋找更好的解決方案。

關於討論

刪掉了一些討論。而且我找不到它的歷史。

免責聲明:

  • 我在“我想要什麼”中輸入了“例如:”
  • 如果你查看這個問題的編輯歷史,你會發現「例如:」第一次出現在這裡。
  • 這個問題是由客戶要求的功能所引起的。
  • 我想簡單地解決這個問題,我不想再談論這個了。
  • 我不知道為什麼我會被解僱,只是因為我必須滿足在純 IPV6 VPS 上託管服務的客戶。
  • 我遇到的問題是我不知道我應該在硬體或軟體上設定一些東西來解決這個問題,但我認為這是一個伺服器問題,這會導致偏離主題。我找到了解決方案。

答案1

你需要進行現實檢查,並且——咳嗽——一些 RTFM。

  • 位址區塊 FE80 是連結本地的。這是最後的手段。如果 IPv6 處於活動狀態,乙太網路段上的每個端點都會有一個位址。恭喜。
  • 這意味著首先,您不能使用所有位址,因為電腦中隨機有位址。這是隨機的 - 基於他們的 MAC。
  • 因為此前綴是本地鏈路並自動分配到每個鏈路上 - 它也不是路由的。因此,除非您的用戶是本地用戶,否則他們無法發送給它。
  • 最後,你做了一個很大的建築愚蠢行為。您終止 IPv4 位址上的使用者 - 這很好,使用者因此可以存取 IPv4 - 然後給他們一個 IPv6 來存取 - 假設(這是一個非常愚蠢的想法)他們甚至有 IPv6 活動。事實並非如此。取得 ipv4,堅持 ipv4。取得 IPv6,堅持使用 IPv6。但在這種情況下不相關,因為 - 非路由。但一般來說你不應該切換協定 - 你假設是雙棧,但 99.9% 的人並非如此。

答案2

您可以考慮使用 corosync 和pacemaker 建立一個集群,並使用兩個節點和幾個具有來自您的區塊的虛擬 IP 的服務。該 IP 將是虛擬的,因為該服務將由節點 1 和節點 2 使用,因此節點 1 和節點 2 應該能夠使用它。

相關內容