Networking

VPS 上的 FreeBSD 無法連接到網際網路;界面出現配置

  • April 5, 2020

我最近將 FreeBSD 12.1-STABLE 的原始虛擬映像安裝到通過 OVH 提供的 VPS 上。我可以通過控制面板上的 KVM 登錄,但機器無法通過 SSH 訪問。原來這是因為機器無法連接到網際網路。

我能夠vtnet0在其給定的 IPv4 地址上 ping 介面,但# ping 8.8.8.8或任何# ping6返回某種形式的“沒有到主機的路由”。

這是輸出# ifconfig -a

在此處輸入圖像描述

這是輸出# netstat -rn

在此處輸入圖像描述

這是內容/etc/rc.conf

在此處輸入圖像描述

Free BSD 手冊的第 11.5 節讓我相信 NIC 已配置,但此時我不確定要更改或調查什麼才能上網。任何指導表示讚賞。

更新(2020 年 4 月 5 日): 我設法讓我的 VPS 上線,這在很大程度上要感謝提供所選答案的貢獻者、來自 FreeBSD 論壇的幫助以及Tim Chase 的這篇文章

我的解決方案最終需要重新安裝 Debian,然後執行# apt install network-manager# nmcli device show ${INTERFACE_NAME}獲取 OVH 預設分配給我的機器的必要網路資訊,然後重新安裝 FreeBSD 並進行/etc/rc.conf如下配置:

ifconfig_vtnet0="inet $EXTERNAL_IPv4 netmask 255.255.255.255 broadcast $EXTERNAL_IPv4"
static_routes="net1 net2"
route_net1="$GATEWAY_IPv4 -interface vtnet0"
route_net2="default $GATEWAY_IPv4 "
ifconfig_vtnet0_ipv6="inet6 $EXTERNAL_IPv6 prefixlen 64"
ipv6_defaultrouter="$GATEWAY_IPv6"

OVH 配置其實很簡單,對於 IPv4 和 IPv6 都是一樣的:

  • 您將具有 /32 前綴長度的給定 IPv4 地址或具有 /64 前綴長度的給定 IPv6 地址靜態應用於網路介面。
  • 您將預設 IPv4 和 IPv6 網關設置為 OVH 指定的 IPv4/IPv6 地址,這些地址是根據主機IPv4 地址的 /24 前綴或 IPv6 地址的 /56 前綴以可預測和記錄的方式確定的。
  • 您設置了一條靜態路由,告訴您的機器如何路由到預設網關的 IP 地址。

第三部分很重要。OVH 提供的 IP 網關(故意)與您自己的 IPv4/IPv6 地址不在同一子網中,因此您的 LAN IP 廣播流量被排除在外。實際上,您和 Internet 其餘部分之間的連接是一個雙主機 LAN,其中第二個主機不可隱式路由(通過 IPv4 機制),因此必須有一個顯式路由。

這對所有作業系統都是一樣的,只是各個作業系統設置它的方式不同。在“只有 /32 的 OpenBSD 反复刪除其到世界的靜態路由”中,如您所見,OpenBSD 方式是正常的預設 IP 網關內容加上/etc/hostname.vio0.

FreeBSD 的方式是設置/etc/rc.conf

  • aifconfig_vtnet0靜態分配 IPv4 和 IPv6 地址,帶有 IPv4netmask 255.255.255.255或 IPv6prefixlen 64
  • defaultrouterIPv6_defaultrouter設置給出相應網關的 IP 地址
  • (對於 IPv4,因為 IPv6 可以發現路由)到網關的靜態路由,配置為(例如)wibble添加到值static_routes和(隨後命名)route_wibble設置-net,網關地址和vtnet0介面的 IP 地址

請注意,不涉及 DHCP。你可以保留它ifconfig_DEFAULT,只要你有一個特定 ifconfig_vtnet0的取代它。

進一步閱讀

引用自:https://unix.stackexchange.com/questions/576757