У меня есть сервер Debian 7 с несколькими сетями и настроенными виртуальными машинами KVM:
Подсеть IPv6 разделена на / 96 сетей, чтобы назначить каждому мосту собственную подсеть.
auto hetzner0
iface hetzner0 inet static
address 144.76.43.151
network 144.76.43.128
netmask 27
gateway 144.76.43.129
iface hetzner0 inet6 static
address 2a01:4f8:191:439b:0:0:0:1
netmask 96
gateway fe80::1
auto hetzner1
iface hetzner1 inet static
address 144.72.132.209
broadcast 144.72.132.208
netmask 29
bridge_ports none
bridge_fd 1
bridge_waitport 0
bridge_stp off
iface hetzner1 inet6 static
address 2a01:4f8:191:439b:0:1:0:1
netmask 96
Хотя IPv4 работает отлично, IPv6 сводит меня с ума. Адрес v6 на hetzner0 назначен правильно, и я могу пинговать по всему миру. Но адрес на hetzner1 не назначается! Я могу добавить его вручную, выполнив следующие действия:
/sbin/ip -f inet6 addr add 2a01:4f8:191:439b:0:1:0:1/96 dev hetzner1
Пока это работает, выполнение этого в хук пост-ап и пре-вниз не работает ...
post-up /sbin/ip -f inet6 addr add 2a01:4f8:191:439b:0:1:0:1/96 dev hetzner1
pre-down /sbin/ip -f inet6 addr add 2a01:4f8:191:439b:0:1:0:1/96 dev hetzner1
IPv6 включен для этого интерфейса через sysctl, в то время как самая автоматическая конфигурация отключена:
╰─$ sysctl -a | grep 'hetzner1'
net.ipv4.conf.hetzner1.accept_local = 0
net.ipv4.conf.hetzner1.accept_redirects = 0
net.ipv4.conf.hetzner1.accept_source_route = 0
net.ipv4.conf.hetzner1.arp_accept = 0
net.ipv4.conf.hetzner1.arp_announce = 0
net.ipv4.conf.hetzner1.arp_filter = 0
net.ipv4.conf.hetzner1.arp_ignore = 0
net.ipv4.conf.hetzner1.arp_notify = 0
net.ipv4.conf.hetzner1.bootp_relay = 0
net.ipv4.conf.hetzner1.disable_policy = 0
net.ipv4.conf.hetzner1.disable_xfrm = 0
net.ipv4.conf.hetzner1.force_igmp_version = 0
net.ipv4.conf.hetzner1.forwarding = 1
net.ipv4.conf.hetzner1.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.hetzner1.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.hetzner1.log_martians = 0
net.ipv4.conf.hetzner1.mc_forwarding = 0
net.ipv4.conf.hetzner1.medium_id = 0
net.ipv4.conf.hetzner1.promote_secondaries = 0
net.ipv4.conf.hetzner1.proxy_arp = 0
net.ipv4.conf.hetzner1.proxy_arp_pvlan = 0
net.ipv4.conf.hetzner1.route_localnet = 0
net.ipv4.conf.hetzner1.rp_filter = 1
net.ipv4.conf.hetzner1.secure_redirects = 1
net.ipv4.conf.hetzner1.send_redirects = 0
net.ipv4.conf.hetzner1.shared_media = 1
net.ipv4.conf.hetzner1.src_valid_mark = 0
net.ipv4.conf.hetzner1.tag = 0
net.ipv4.neigh.hetzner1.anycast_delay = 100
net.ipv4.neigh.hetzner1.app_solicit = 0
net.ipv4.neigh.hetzner1.base_reachable_time_ms = 30000
net.ipv4.neigh.hetzner1.delay_first_probe_time = 5
net.ipv4.neigh.hetzner1.gc_stale_time = 60
net.ipv4.neigh.hetzner1.locktime = 100
net.ipv4.neigh.hetzner1.mcast_solicit = 3
net.ipv4.neigh.hetzner1.proxy_delay = 80
net.ipv4.neigh.hetzner1.proxy_qlen = 64
net.ipv4.neigh.hetzner1.retrans_time_ms = 1000
net.ipv4.neigh.hetzner1.ucast_solicit = 3
net.ipv4.neigh.hetzner1.unres_qlen = 31
net.ipv4.neigh.hetzner1.unres_qlen_bytes = 65536
net.ipv6.conf.hetzner1.accept_dad = 0
net.ipv6.conf.hetzner1.accept_ra = 0
net.ipv6.conf.hetzner1.accept_ra_defrtr = 0
net.ipv6.conf.hetzner1.accept_ra_pinfo = 0
net.ipv6.conf.hetzner1.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.hetzner1.accept_ra_rtr_pref = 0
net.ipv6.conf.hetzner1.accept_redirects = 0
net.ipv6.conf.hetzner1.accept_source_route = 0
net.ipv6.conf.hetzner1.autoconf = 0
net.ipv6.conf.hetzner1.dad_transmits = 1
net.ipv6.conf.hetzner1.disable_ipv6 = 0
net.ipv6.conf.hetzner1.force_mld_version = 0
net.ipv6.conf.hetzner1.force_tllao = 0
net.ipv6.conf.hetzner1.forwarding = 1
net.ipv6.conf.hetzner1.hop_limit = 64
net.ipv6.conf.hetzner1.max_addresses = 16
net.ipv6.conf.hetzner1.max_desync_factor = 600
net.ipv6.conf.hetzner1.mc_forwarding = 0
net.ipv6.conf.hetzner1.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.hetzner1.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.hetzner1.mtu = 1500
net.ipv6.conf.hetzner1.ndisc_notify = 0
net.ipv6.conf.hetzner1.optimistic_dad = 0
net.ipv6.conf.hetzner1.proxy_ndp = 0
net.ipv6.conf.hetzner1.regen_max_retry = 3
net.ipv6.conf.hetzner1.router_probe_interval = 60
net.ipv6.conf.hetzner1.router_solicitation_delay = 1
net.ipv6.conf.hetzner1.router_solicitation_interval = 4
net.ipv6.conf.hetzner1.router_solicitations = 3
net.ipv6.conf.hetzner1.suppress_frag_ndisc = 1
net.ipv6.conf.hetzner1.temp_prefered_lft = 86400
net.ipv6.conf.hetzner1.temp_valid_lft = 604800
net.ipv6.conf.hetzner1.use_tempaddr = 0
net.ipv6.neigh.hetzner1.anycast_delay = 100
net.ipv6.neigh.hetzner1.app_solicit = 0
net.ipv6.neigh.hetzner1.base_reachable_time_ms = 30000
net.ipv6.neigh.hetzner1.delay_first_probe_time = 5
net.ipv6.neigh.hetzner1.gc_stale_time = 60
net.ipv6.neigh.hetzner1.locktime = 0
net.ipv6.neigh.hetzner1.mcast_solicit = 3
net.ipv6.neigh.hetzner1.proxy_delay = 80
net.ipv6.neigh.hetzner1.proxy_qlen = 64
net.ipv6.neigh.hetzner1.retrans_time_ms = 1000
net.ipv6.neigh.hetzner1.ucast_solicit = 3
net.ipv6.neigh.hetzner1.unres_qlen = 31
net.ipv6.neigh.hetzner1.unres_qlen_bytes = 65536
Я в отчаянии, есть ли у кого-нибудь решение для меня?
Виктор
ОБНОВИТЬ:
Я смущен, но пока я случайным образом щелкал по ссылкам с правой стороны, ища проблему, аналогичную моей, я обнаружил следующее:
IPv6 работает только после проверки связи шлюза по умолчанию.
Мое внимание привлекли следующие строки (да, мой провайдер - Hetzner Germany):
Потому что Debian без ума от того, что этого там еще нет? - Майкл Хэмптон ♦ 23 фев.
Файл предоставлен hetzner: "### Hetzner Online AG - installimage" Но это определенно моя вина, что я не увидел его в первую очередь: D. - dexstar 23 фев 2013, в 9:31
Итак, я попробовал его решение, и оно наконец сработало! Я добавил в / etc / network / interfaces, а установочный образ Hetzner не предоставляет этого:
iface lo inet6 loopback