Я пытаюсь включить IPv6 на своих узлах Debian (OpenVZ) с помощью venet; мой хост находится под Proxmox 2.2 (ядро 2.6.32-16-pve), и кажется, что маршрутизация не работает.
Мой хост правильно пингует все мои узлы; все мои узлы пингуют мой хост, но ни один из узлов не может пинговать другой узел или внешний мир. Когда я запускаю трассировку к моему узлу со своего компьютера, она останавливается, не дойдя до моего хоста (трассировка до моего узла работает хорошо).
Вот моя сетевая конфигурация:
X
маска сети: 2001: 41d0: 2: 520X
:: / 64X
IPv6: 2001: 41d0: 2: 520X
:: 1На моем хосте vmbr0
конфигурация (из /etc/network/interfaces
):
iface vmbr0 inet6 static
address 2001:41d0:2:52ae::1
netmask 64
gateway 2001:41d0:2:52ff:ff:ff:ff:ff
post-up ip -6 route add 2001:41d0:2:52ff:ff:ff:ff:ff/128 dev vmbr0 #gateway
post-up ip -6 route add default via 2001:41d0:2:52ff:ff:ff:ff:ff #gateway
post-up ip -6 route add 2001:41d0:2:520X::/64 dev vmbr1 # node X
post-up ip -6 neigh add proxy 2001:41d0:2:52ff:ff:ff:ff:ff dev vmbr1
post-up ip -6 neigh add proxy 2001:41d0:2:520X::1 dev vmbr0 # node X
На каждом узле (от /etc/network/interfaces
, автоматически генерируется proxmox):
iface venet0 inet6 manual
up ifconfig venet0 add 2001:41d0:2:520X::1/128
down ifconfig venet0 del 2001:41d0:2:520X::1/128
up route -A inet6 add default dev venet0
down route -A inet6 del default dev venet0
Я что-то упускаю, или это просто невозможно через Venet?
Редактировать: вот результат ip -6 route show
на моем хосте:
2001:41d0:2:520X::1 dev venet0 metric 1024 mtu 1500 advmss 1440 hoplimit 4294967295
2001:41d0:2:52ae::/64 dev vmbr0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
2001:41d0:2:5200::/56 dev vmbr0 proto kernel metric 256 expires 0sec mtu 1500 advmss 1440 hoplimit 4294967295
fe80::1 dev venet0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev dummy0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev vmbr1 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev vmbr0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev venet0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
default via fe80::5:73ff:fea0:0 dev vmbr0 proto kernel metric 1024 expires 0sec mtu 1500 advmss 1440 hoplimit 64
И на моем узле:
2001:41d0:2:520X::1 dev venet0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev venet0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
default dev venet0 metric 1 mtu 1500 advmss 1440 hoplimit 0
Edit2: Перешел с venet на veth, работает без сбоев. Тем не менее, мне все еще интересно найти способ заставить его работать через Venet ... Используя ip -6 route show
с veth показывает маршрут шлюза, с venet его нет. Может, это могло быть причиной ...
Показанная вами конфигурация / etc / network / interfaces не может работать.
Вы указываете свой шлюз по умолчанию на локальный адрес, который вы настраиваете на хосте. Ваш шлюз по умолчанию (почти наверняка) должен иметь адрес в сети вашего провайдера.
Вы не указали публичный IPv6-адрес на своем интерфейсе eth0 для связи с вашим провайдером (скорее всего, это то место, куда должен идти ваш адрес 2001: 41d0: 2: 52ae :: 1/64, и, скорее всего, вашим шлюзом по умолчанию должен быть 2001: 41d0: 2: 52ff: ff: ff: ff: ff через устройство eth0.
Когда у вас есть базовая работа с сетью на eth0, вы можете работать над маршрутизацией других / 64 в вашем / 56 на другие ваши виртуальные машины.