Система: CentOS 6.5
Сеть: Мост на br0
IPv6: ISP Native / 64 блок.
IPv4: адрес интернет-провайдера (не внутренняя LAN)
Цель: чтобы назначать IPv6 только гостям (вручную), я не хочу, чтобы адрес IPv4 назначался гостевой ОС.
На хосте:
/etc/sysctl.conf:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.br0.forwarding = 1
net.ipv6.conf.default.forwarding = 1
brctl шоу
bridge name bridge id STP enabled interfaces
br0 8000.e840f2ecdfed no eth0
vnet0
virbr0 8000.52540051ef3c yes virbr0-nic
ifconfig:
br0 Link encap:Ethernet HWaddr E8:40:F2:EC:DF:ED
inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Mask:255.255.255.0
inet6 addr: 2607:beef:be:beef::1/64 Scope:Global
inet6 addr: fe80::ea40:f2ff:feec:dfed/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:365707 errors:0 dropped:0 overruns:0 frame:0
TX packets:470458 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:28867567 (27.5 MiB) TX bytes:574512176 (547.8 MiB)
eth0 Link encap:Ethernet HWaddr E8:40:F2:EC:DF:ED
inet6 addr: fe80::ea40:f2ff:feec:dfed/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:392675 errors:0 dropped:0 overruns:0 frame:0
TX packets:608319 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:46359514 (44.2 MiB) TX bytes:586262036 (559.1 MiB)
Interrupt:20 Memory:fe500000-fe520000
/ etc / sysconfig / networt-scripts / ifcfg-br0:
DEVICE=br0
BOOTPROTO=static
IPADDR=xxx.xxx.xxx.xxx
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=xxx.xxx.xxx.xxx
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR=2607:beef:be:beef::1/64
TYPE=Bridge
DELAY=0
кошка / и т. д. / sysconfig / сетевые скрипты / route6-br0
2607:beef:be:bff:ff:ff:ff:ff dev br0
default via 2607:beef:be:bff:ff:ff:ff:ff
маршрут -A inet6 -n
Kernel IPv6 routing table
Destination Next Hop Flags Metric Ref Use Iface
2607:beef:be:beef::/64 :: U 256 0 0 br0
2607:beef:be:bff:ff:ff:ff:ff/128 :: U 1024 1 0 br0
fe80::/64 :: U 256 0 0 virbr0
fe80::/64 :: U 256 0 0 vnet0
fe80::/64 :: U 256 0 0 br0
fe80::/64 :: U 256 0 0 eth0
::/0 2607:beef:be:bff:ff:ff:ff:ff UG 1024 20281 4 br0
::1/128 :: U 0 1 1 lo
2607:beef:be:beef::/128 :: U 0 0 1 lo
2607:beef:be:beef::1/128 :: U 0 36128 1 lo
...
ip6tables -S:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
-A FORWARD -s 2607:beef:be:beef::/64 -i br0 -j ACCEPT
В гостях:
ОС: CentOS 6.5 минимальная
Сеть: Руководство
кошка / и т.д. / sysconfig / сетевые сценарии / ifcfg-eth0:
ONBOOT=yes
NM_CONTROLLED=no
IPV6INIT=yes
IPV6ADDR=2607:beef:be:beef::2/64
IPV6_DEFAULTGW=2607:beef:be:beef::1 (The host's ipv6 address)
Поведение:
На хосте я могу пропинговать гостевой адрес ipv6, vise-vesa.
Я не могу пинговать любой другой адрес ipv6 от гостя, включая google dns 2001: 4860: 4860 :: 8888/8844. (Время вышло)
Я не могу пинговать гостю с любого неназначенного IPv6-адреса провайдера. (Время вышло)
ping6 от Хостов к внешнему в порядке.
Обновить:
Может ли кто-нибудь помочь мне понять, что происходит, пожалуйста? Спасибо.
Итак, получив уведомление от Марка, я отвечу на свой вопрос.
Настройка хоста:
Назначьте субблок IPv6 вашему виртуальному мосту, в моем примере:
Добавить
<ip family='ipv6' address='2607:beef:be:beef:1::' prefix='96'>
Чтобы /etc/libvirt/qemu/networks/default.xml
, используйте virsh
уничтожить и восстановить устройство virbr0, в моем случае оно сгенерировало устройство virbr1.
Добавьте правило ip6tables:
ip6tables -A FORWARD -m physdev --physdev-is-bridged -j ACCEPT
ip6tables -A FORWARD -i br0 -j ACCEPT
На стороне ВМ:
Добавьте выбранный IPv6-адрес в файл конфигурации:
IPV6INIT=yes
IPV6ADDR=2607:beef:be:beef:1::253:8/128
Перезагрузите сетевой интерфейс вашей виртуальной машины, он просто работает.
Я предполагаю, что это потому, что виртуальная машина подключается к внешнему миру через интерфейс virbr1 на хосте. Шлюз на хосте - br0. С правилом ip6tables все уладится.
Я собрал в своем блоге пошаговое руководство, https://luxing.im/adding-ipv6-support-for-kvm-vms/
Ваш шлюз неправильный у вашего гостя.
Поскольку вы подключили сетевое соединение через мост, виртуальная машина находится в той же подсети (LAN), что и хост. Таким образом, он должен использовать тот же адрес шлюза, что и хост.