我想隨時隨地存取我的家庭網絡,但只能透過 IPv6 從外部存取。我想要存取的網路通常只有 IPv4。 (如何)我可以透過中間的伺服器存取整個家庭網路嗎?
我們假設以下情況:
網路 A(家庭):
- 內部 IP 範圍:192.168.0.0/24(我想暫時保留內部 IPv4)
- 機器 A:aaaa:bbbb:cccc:dddd(可從外部存取 IPv6)
- 機器 A(內部):192.168.0.1
網路 B(遠端):
- 內部IP範圍:192.168.178.0/24
- 機器 B(內部):192.168.178.2
- 公共IP:1.2.3.4(路由器)
伺服器:
- IPv4:2.3.4.5
- IPv6: bbbb:cccc:dddd:eeee
現在我想從192.168.178.2(網路B)存取192.168.0.3(網路A)。這可以使用 OpenVPN / (SSH) 隧道 / iptables / 路由來完成嗎?如果是這樣:如何?
抱歉,通常我有一個半途而廢的方法,或至少有一個想法如何解決我的問題,但我一整天都在想這個,腦子裡只剩下混亂;所以我最好從頭開始。 (當然我的想法是伺服器將IPv6網路A與IPv4網路B連接起來。但是如何呢?)
如果網路 A 和伺服器以及伺服器和網路 B(即網際網路)之間的所有流量都經過加密,則會獲得獎勵積分。
答案1
你沒有提到你正在使用哪些作業系統,所以我只能給你一個一般性的建議:
您必須設定兩個隧道:
- 機器 A 和伺服器之間的 IPv4-over-IPv6 隧道
- 機器 B 和伺服器之間的 IPv4-over-IPv4 隧道
在家庭網路上,您必須將流量路由到192.168.178.0/24
機器 A。否則,您必須在預設閘道上新增靜態路由才能將該流量傳送到電腦192.168.178.0/24
A。
在遠端網路上,您必須將流量路由到192.168.0.0/24
機器 B。否則,您必須在預設閘道上新增靜態路由才能將該流量傳送到電腦192.168.0.0/24
B。
伺服器將需要兩個靜態路由:
192.168.0.0/24
通往機器 A 的 IPv4-over-IPv6 隧道192.168.178.0/24
通往機器 B 的 IPv4-over-IPv4 隧道
現在,家庭網路上的電腦會將其封包傳送192.168.178.0/24
到預設閘道。如果這不是機器 A,則預設閘道會將它們轉送到機器 A。伺服器將透過 IPv4-over-IPv4 隧道將它們轉送到機器 B,機器 B 將封包轉送到遠端網路。
現在,遠端網路上的電腦會將其封包傳送192.168.0.0/24
到預設閘道。如果這不是機器 B,則預設閘道會將它們轉送到機器 B。伺服器將透過 IPv4-over-IPv6 隧道將它們轉送到機器 A,機器 A 將封包轉送到家庭網路。
我明確地寫下了兩條方向路徑的每一跳。溝通只有在以下情況才有效每一個上述步驟有效。
您可以使用許多協定和應用程式來設定隧道。普通 IPvX-in-IPvY 隧道是最簡單的,但不提供加密。 GRE 隧道也是如此。 OpenVPN 設定起來有點困難,但確實提供加密。看看Linux IPv6 操作方法和Linux 高階路由指南的隧道部分查看如何設定隧道。