Debian

IPv6 網關外部網路 (OVH)

  • October 2, 2018

我們是 OVH 的專用伺服器,分配了 2001:41d0:a:72xx::/64

根據來自主機的虛擬機的 IPv6 公共路由,我已將機器設置在橋接到 wan 的網段上

網關是2001:41d0:a:72ff:ff:ff:ff:ff,網路外

我們正在執行一堆虛擬 Debian 伺服器。

我們的一些(較舊的)伺服器很樂意將 ipv6 路由到網關,但我嘗試設置的新伺服器在 ping gw 時說“無法訪問目標;無法訪問地址”。

防火牆設置相同(/64 的規則,而不是主機級別的規則),並且 /etc/network/interfaces 是相同的;ipv6 設置為靜態。(不同的原因地址)

在工作和非工作機器上, netstat -rn6|grep eth1 show

2001:41d0:a:72xx::/64          ::                         U    256 2    40 eth1
2001:41d0:a:7200::/56          ::                         UAe  256 2    71 eth1
2001:41d0:a1:72xx::/64         ::                         UAe  256 0     0 eth1
2000::/3                       2001:41d0:a:72ff:ff:ff:ff:ff UG   1024 2 63479 eth1
fe80::/64                      ::                         U    256 0     0 eth1
::/0                           fe80::205:73ff:fea0:1      UGDAe 1024 1     2 eth1
::/0                           fe80::20c:29ff:fe22:60f8   UGDAe 1024 0     0 eth1
ff00::/8                       ::                         U    256 2108951 eth1

在非工作機器上,ping gw 或 workd 會返回“Destination unreachable”。

這些機器都可以在本地區域網路上相互訪問。

我不知道這是否相關,但

ping -c3 ff02::2%eth1
64 bytes from fe80::20c:29ff:fedb:a137%eth1: icmp_seq=1 ttl=64 time=0.240 ms
64 bytes from fe80::20c:29ff:fe22:60f8%eth1: icmp_seq=1 ttl=64 time=0.250 ms (DUP!)
64 bytes from fe80::2ff:ffff:feff:fffd%eth1: icmp_seq=1 ttl=64 time=3.57 ms (DUP!)
64 bytes from fe80::2ff:ffff:feff:fffe%eth1: icmp_seq=1 ttl=64 time=5.97 ms (DUP!)

關於非工作

ping -c3 ff02::2%ens34
PING ff02::2%ens34(ff02::2%ens34) 56 data bytes
64 bytes from fe80::20c:29ff:fedb:a137%ens34: icmp_seq=1 ttl=64 time=0.130 ms
64 bytes from fe80::20c:29ff:fe22:60f8%ens34: icmp_seq=1 ttl=64 time=0.138 ms (DUP!)

:fffd amd :fffe 地址失去。

所有 ipv6 地址都已在 OVH 控制面板中分配。

TL;DR:新舊伺服器之間肯定有些不同,但我找不到。

更新:工作機器的複製不起作用。

在 pfsense 的外部,設置為網橋,機器發送以下內容:

12:33:23.087778 IP6 test1.example.org > fe80::2ff:ffff:feff:fffe: ICMP6, neighbor advertisement, tgt is test1.example.org, length 32 12:33:24.106302 IP6 test1.example.org > par10s28-in-x0e.1e100.net: ICMP6, echo request, seq 451, length 64

但什麼都回不來了。來自外部的 ping 也不會通過。

由於機器是工作機器的精確複製,除了 ip 地址,它必須是 OVH 的上游問題。

更新 2 現在 OVH 聲稱要將數據路由到 IPv6,mac 需要與 IPv4 地址相關聯。OMG工作的 IPv6 不是。

OVH 不知道如何正確地執行 IPv6,它們的設置僅在某些情況下有效,並不適用於任何地方。

只有當伺服器暴露於世界並且還具有公共 IPv4 地址時,它才可以在沒有特殊的箍跳的情況下工作。

他們無法提供一個公共 ipv6 和路由到它的子網,如果想要在自己的防火牆後面執行 VM,則需要這樣做。

如果您對 IPv6 感興趣,那麼在他們讓他們的東西正常工作之前,最好去別處看看。

OVH 在其交換機上執行交換機埠安全性,因此只有列入白名單的 MAC 地址才能使用任何給定埠。這不適用於 vRack;在 vRack 上禁用交換機埠安全性。但是 OVH 還不允許您將 IPv6 子網路由到 vRack。您也不能將IPv6 子網故障轉移到另一台伺服器。這是一個嚴重的疏忽;在這兩種功能都存在之前,OVH 的 IPv6 支持被認為是有限的。

所以這就是我如何設置一個執行幾十個虛擬機的 OVH 伺服器:

在主機伺服器上,br3 是一個包含 eno3 和我在其上路由 IPv6 的虛擬網路介面的網橋。主機配置為:

# cat /etc/sysconfig/network-scripts/ifcfg-br3
DEVICE="br3"
TYPE="Bridge"
STP="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_FAILURE_FATAL="no"
NAME="br3"
ONBOOT="yes"
ZONE="public"
BOOTPROTO="static"
IPADDR="203.0.113.24"
PREFIX="24"
GATEWAY="203.0.113.1"
IPV6_AUTOCONF="no"
IPV6ADDR="2001:db8:1f3:c187::/64"

我有這樣配置的靜態路由:

# cat /etc/sysconfig/network-scripts/route6-br3 
2001:db8:1f3:c187::/64 dev br3
2001:db8:1f3:c1ff:ff:ff:ff:ff dev br3
default via 2001:db8:1f3:c1ff:ff:ff:ff:ff dev br3

然後我執行ndppd,它會回答我的 /64 中任何地址的 NDP 鄰居請求查詢。它是這樣配置的:

# cat /etc/ndppd.conf 
route-ttl 30000
proxy br3 {
  router yes
  timeout 500   
  ttl 30000
  rule 2001:db8:1f3:c187::/64 {
     static
  }
}

這會導致主機的 MAC 地址用於子網中的所有 IPv6 地址,然後我將其路由到 libvirt 中的虛擬介面,拆分為 /80 網路。一個範例是這樣配置的:

# cat /etc/libvirt/qemu/networks/v6bridge_1.xml 
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
 virsh net-edit v6bridge_1
or other application using the libvirt API.
-->

<network>
 <name>v6bridge_1</name>
 <uuid>7007a2b2-08b8-4cd5-a4aa-49654ae0829b</uuid>
 <forward mode='route'/>
 <bridge name='v6bridge_1' stp='on' delay='0'/>
 <mac address='52:54:00:fc:d4:da'/>
 <ip family='ipv6' address='2001:db8:1f3:c187:1::' prefix='80'>
 </ip>
</network>

此特定網路中的所有 VM 都分配有手動 IPv6 地址,但您可以根據需要設置 DHCPv6。那看起來像:

 <ip family='ipv6' address='2001:db8:1f3:c187:1::' prefix='80'>
   <dhcp>
     <range start="2001:db8:1f3:c187:1::100" end="2001:db8:1f3:c187:1::1ff"/>
   </dhcp>
 </ip>

然後,我將 IPv4 故障轉移地址路由到 vRack,該 vRack 橋接到一個網橋br4eno4我的所有 VM 都從該網橋獲得第二個虛擬 NIC。因此,它們在一個介面上有 IPv6,在另一個介面上有 IPv4。這是可選的;您可以在主界面上保留 IPv4 故障轉移地址(例如,如果您沒有 vRack)。

引用自:https://serverfault.com/questions/932362