Мой хостинг-провайдер предоставил мне следующую информацию:
Подсеть: 2a02: f99: 0: 64 :: / 64
Шлюз: 2a02: f99: 0: 64 :: 1
Так я и сделал (да eth3
правильный интерфейс)
ip addr add 2a02:f99:0:64::2/64 dev eth3
ip -6 route add ::/0 via 2a02:f99:0:64::1 dev eth3
но
$ ip -6 neigh show
2a02:f99:0:64::1 dev eth3 FAILED
$ ping6 google.com
PING google.com(ams16s30-in-x0e.1e100.net) 56 data bytes
From 2a02:f99:0:64::2 icmp_seq=1 Destination unreachable: Address unreachable
...
Я тоже пробовал
ip -6 route del ::/0 via 2a02:f99:0:64::1 dev eth3
ip -6 route add ::/0 via fe80::1 dev eth3
но это ничего не изменило, по-прежнему не могу войти или выйти.
Где я неправ? Как мне запустить IPv6?
Обновление 2017-07-07:
Хостинг-провайдер утверждает, что с инфраструктурой все в порядке.
Другой компьютер с доступом к той же подсети может привязать адрес и установить соединение IPv6 через то, что я считаю Router Advertisement (RA), только fe80::20a:8bff:fe98:3400
как шлюз работает, а указанный провайдером адрес шлюза - нет.
Однако машине, о которой идет речь в этом посте, все еще не повезло с поиском каких-либо соседей. Включение RA тоже, похоже, не имеет никакого эффекта.
Запуск IPv6 через перекрестное соединение двух машин (на их вторичных сетевых адаптерах) сработал сразу, поэтому IPv6 должен быть в основном доступен для них обоих (все вставки с проблемной машины):
PING fe80::62eb:69ff:fed2:a122%eth2(fe80::62eb:69ff:fed2:a122) 56 data bytes
64 bytes from fe80::62eb:69ff:fed2:a122: icmp_seq=1 ttl=64 time=0.224 ms
64 bytes from fe80::62eb:69ff:fed2:a122: icmp_seq=2 ttl=64 time=0.171 ms
--- fe80::62eb:69ff:fed2:a122%eth2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
PING fd00:32::3(fd00:32::3) 56 data bytes
64 bytes from fd00:32::3: icmp_seq=1 ttl=64 time=0.286 ms
64 bytes from fd00:32::3: icmp_seq=2 ttl=64 time=0.168 ms
--- fd00:32::3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
Конфигурация IP выглядит так:
2: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP qlen 1000
link/ether f0:1f:af:df:c8:7b brd ff:ff:ff:ff:ff:ff
inet 85.XX.XX.186/30 brd 85.XX.XX.187 scope global eth3
inet6 2a02:f99:0:64::2/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::f21f:afff:fedf:c87b/64 scope link
valid_lft forever preferred_lft forever
2a02:f99:0:64::/64 dev eth3 proto kernel metric 256
fd00:32::/32 dev eth2 proto kernel metric 256
fe80::/64 dev eth2 proto kernel metric 256
fe80::/64 dev eth3-ifb proto kernel metric 256
fe80::/64 dev eth3 proto kernel metric 256
default via 2a02:f99:0:64::1 dev eth3 metric 1024
Обнаружение соседей находит только локальный для ссылки адрес интерфейса:
PING ff02::1%eth3(ff02::1) 56 data bytes
64 bytes from fe80::f21f:afff:fedf:c87b: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from fe80::f21f:afff:fedf:c87b: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from fe80::f21f:afff:fedf:c87b: icmp_seq=3 ttl=64 time=0.060 ms
--- ff02::1%eth3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
Попытка пинговать шлюз также приводит к:
PING 2a02:f99:0:64::1(2a02:f99:0:64::1) from 2a02:f99:0:64::2 eth3: 56 data bytes
From 2a02:f99:0:64::2 icmp_seq=1 Destination unreachable: Address unreachable
From 2a02:f99:0:64::2 icmp_seq=2 Destination unreachable: Address unreachable
From 2a02:f99:0:64::2 icmp_seq=3 Destination unreachable: Address unreachable
--- 2a02:f99:0:64::1 ping statistics ---
5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3999ms
Вот что sysctl -A | grep ipv6
выплевывает (где я тоже не вижу ничего плохого):
net.ipv6.neigh.default.mcast_solicit = 3
net.ipv6.neigh.default.ucast_solicit = 3
net.ipv6.neigh.default.app_solicit = 0
net.ipv6.neigh.default.delay_first_probe_time = 5
net.ipv6.neigh.default.gc_stale_time = 60
net.ipv6.neigh.default.unres_qlen = 3
net.ipv6.neigh.default.proxy_qlen = 64
net.ipv6.neigh.default.anycast_delay = 100
net.ipv6.neigh.default.proxy_delay = 80
net.ipv6.neigh.default.locktime = 0
net.ipv6.neigh.default.retrans_time_ms = 1000
net.ipv6.neigh.default.base_reachable_time_ms = 30000
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024
net.ipv6.neigh.lo.mcast_solicit = 3
net.ipv6.neigh.lo.ucast_solicit = 3
net.ipv6.neigh.lo.app_solicit = 0
net.ipv6.neigh.lo.delay_first_probe_time = 5
net.ipv6.neigh.lo.gc_stale_time = 60
net.ipv6.neigh.lo.unres_qlen = 3
net.ipv6.neigh.lo.proxy_qlen = 64
net.ipv6.neigh.lo.anycast_delay = 100
net.ipv6.neigh.lo.proxy_delay = 80
net.ipv6.neigh.lo.locktime = 0
net.ipv6.neigh.lo.retrans_time_ms = 1000
net.ipv6.neigh.lo.base_reachable_time_ms = 30000
net.ipv6.neigh.eth3.mcast_solicit = 3
net.ipv6.neigh.eth3.ucast_solicit = 3
net.ipv6.neigh.eth3.app_solicit = 0
net.ipv6.neigh.eth3.delay_first_probe_time = 5
net.ipv6.neigh.eth3.gc_stale_time = 60
net.ipv6.neigh.eth3.unres_qlen = 3
net.ipv6.neigh.eth3.proxy_qlen = 64
net.ipv6.neigh.eth3.anycast_delay = 100
net.ipv6.neigh.eth3.proxy_delay = 80
net.ipv6.neigh.eth3.locktime = 0
net.ipv6.neigh.eth3.retrans_time_ms = 1000
net.ipv6.neigh.eth3.base_reachable_time_ms = 30000
net.ipv6.neigh.eth2.mcast_solicit = 3
net.ipv6.neigh.eth2.ucast_solicit = 3
net.ipv6.neigh.eth2.app_solicit = 0
net.ipv6.neigh.eth2.delay_first_probe_time = 5
net.ipv6.neigh.eth2.gc_stale_time = 60
net.ipv6.neigh.eth2.unres_qlen = 3
net.ipv6.neigh.eth2.proxy_qlen = 64
net.ipv6.neigh.eth2.anycast_delay = 100
net.ipv6.neigh.eth2.proxy_delay = 80
net.ipv6.neigh.eth2.locktime = 0
net.ipv6.neigh.eth2.retrans_time_ms = 1000
net.ipv6.neigh.eth2.base_reachable_time_ms = 30000
net.ipv6.neigh.eth3-ifb.mcast_solicit = 3
net.ipv6.neigh.eth3-ifb.ucast_solicit = 3
net.ipv6.neigh.eth3-ifb.app_solicit = 0
net.ipv6.neigh.eth3-ifb.delay_first_probe_time = 5
net.ipv6.neigh.eth3-ifb.gc_stale_time = 60
net.ipv6.neigh.eth3-ifb.unres_qlen = 3
net.ipv6.neigh.eth3-ifb.proxy_qlen = 64
net.ipv6.neigh.eth3-ifb.anycast_delay = 100
net.ipv6.neigh.eth3-ifb.proxy_delay = 80
net.ipv6.neigh.eth3-ifb.locktime = 0
net.ipv6.neigh.eth3-ifb.retrans_time_ms = 1000
net.ipv6.neigh.eth3-ifb.base_reachable_time_ms = 30000
net.ipv6.xfrm6_gc_thresh = 2048
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.router_solicitations = 3
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.all.temp_valid_lft = 604800
net.ipv6.conf.all.temp_prefered_lft = 86400
net.ipv6.conf.all.regen_max_retry = 3
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.max_addresses = 16
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_ra_rtr_pref = 1
net.ipv6.conf.all.router_probe_interval = 60
net.ipv6.conf.all.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.optimistic_dad = 0
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.force_tllao = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.router_solicitations = 3
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.default.temp_valid_lft = 604800
net.ipv6.conf.default.temp_prefered_lft = 86400
net.ipv6.conf.default.regen_max_retry = 3
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.max_addresses = 16
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_ra_rtr_pref = 1
net.ipv6.conf.default.router_probe_interval = 60
net.ipv6.conf.default.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.default.optimistic_dad = 0
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.force_tllao = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.mtu = 16436
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.dad_transmits = 1
net.ipv6.conf.lo.router_solicitations = 3
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.use_tempaddr = -1
net.ipv6.conf.lo.temp_valid_lft = 604800
net.ipv6.conf.lo.temp_prefered_lft = 86400
net.ipv6.conf.lo.regen_max_retry = 3
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.max_addresses = 16
net.ipv6.conf.lo.accept_ra_defrtr = 1
net.ipv6.conf.lo.accept_ra_pinfo = 1
net.ipv6.conf.lo.accept_ra_rtr_pref = 1
net.ipv6.conf.lo.router_probe_interval = 60
net.ipv6.conf.lo.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.accept_source_route = 0
net.ipv6.conf.lo.optimistic_dad = 0
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.accept_dad = -1
net.ipv6.conf.lo.force_tllao = 0
net.ipv6.conf.eth3.forwarding = 0
net.ipv6.conf.eth3.hop_limit = 64
net.ipv6.conf.eth3.mtu = 1500
net.ipv6.conf.eth3.accept_ra = 1
net.ipv6.conf.eth3.accept_redirects = 1
net.ipv6.conf.eth3.autoconf = 0
net.ipv6.conf.eth3.dad_transmits = 1
net.ipv6.conf.eth3.router_solicitations = 3
net.ipv6.conf.eth3.router_solicitation_interval = 4
net.ipv6.conf.eth3.router_solicitation_delay = 1
net.ipv6.conf.eth3.force_mld_version = 0
net.ipv6.conf.eth3.use_tempaddr = 1
net.ipv6.conf.eth3.temp_valid_lft = 604800
net.ipv6.conf.eth3.temp_prefered_lft = 86400
net.ipv6.conf.eth3.regen_max_retry = 3
net.ipv6.conf.eth3.max_desync_factor = 600
net.ipv6.conf.eth3.max_addresses = 16
net.ipv6.conf.eth3.accept_ra_defrtr = 1
net.ipv6.conf.eth3.accept_ra_pinfo = 1
net.ipv6.conf.eth3.accept_ra_rtr_pref = 1
net.ipv6.conf.eth3.router_probe_interval = 60
net.ipv6.conf.eth3.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth3.proxy_ndp = 0
net.ipv6.conf.eth3.accept_source_route = 0
net.ipv6.conf.eth3.optimistic_dad = 0
net.ipv6.conf.eth3.mc_forwarding = 0
net.ipv6.conf.eth3.disable_ipv6 = 0
net.ipv6.conf.eth3.accept_dad = 1
net.ipv6.conf.eth3.force_tllao = 0
net.ipv6.conf.eth2.forwarding = 0
net.ipv6.conf.eth2.hop_limit = 64
net.ipv6.conf.eth2.mtu = 1500
net.ipv6.conf.eth2.accept_ra = 1
net.ipv6.conf.eth2.accept_redirects = 1
net.ipv6.conf.eth2.autoconf = 1
net.ipv6.conf.eth2.dad_transmits = 1
net.ipv6.conf.eth2.router_solicitations = 3
net.ipv6.conf.eth2.router_solicitation_interval = 4
net.ipv6.conf.eth2.router_solicitation_delay = 1
net.ipv6.conf.eth2.force_mld_version = 0
net.ipv6.conf.eth2.use_tempaddr = 0
net.ipv6.conf.eth2.temp_valid_lft = 604800
net.ipv6.conf.eth2.temp_prefered_lft = 86400
net.ipv6.conf.eth2.regen_max_retry = 3
net.ipv6.conf.eth2.max_desync_factor = 600
net.ipv6.conf.eth2.max_addresses = 16
net.ipv6.conf.eth2.accept_ra_defrtr = 1
net.ipv6.conf.eth2.accept_ra_pinfo = 1
net.ipv6.conf.eth2.accept_ra_rtr_pref = 1
net.ipv6.conf.eth2.router_probe_interval = 60
net.ipv6.conf.eth2.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth2.proxy_ndp = 0
net.ipv6.conf.eth2.accept_source_route = 0
net.ipv6.conf.eth2.optimistic_dad = 0
net.ipv6.conf.eth2.mc_forwarding = 0
net.ipv6.conf.eth2.disable_ipv6 = 0
net.ipv6.conf.eth2.accept_dad = 1
net.ipv6.conf.eth2.force_tllao = 0
net.ipv6.conf.eth3-ifb.forwarding = 0
net.ipv6.conf.eth3-ifb.hop_limit = 64
net.ipv6.conf.eth3-ifb.mtu = 1500
net.ipv6.conf.eth3-ifb.accept_ra = 1
net.ipv6.conf.eth3-ifb.accept_redirects = 1
net.ipv6.conf.eth3-ifb.autoconf = 1
net.ipv6.conf.eth3-ifb.dad_transmits = 1
net.ipv6.conf.eth3-ifb.router_solicitations = 3
net.ipv6.conf.eth3-ifb.router_solicitation_interval = 4
net.ipv6.conf.eth3-ifb.router_solicitation_delay = 1
net.ipv6.conf.eth3-ifb.force_mld_version = 0
net.ipv6.conf.eth3-ifb.use_tempaddr = 0
net.ipv6.conf.eth3-ifb.temp_valid_lft = 604800
net.ipv6.conf.eth3-ifb.temp_prefered_lft = 86400
net.ipv6.conf.eth3-ifb.regen_max_retry = 3
net.ipv6.conf.eth3-ifb.max_desync_factor = 600
net.ipv6.conf.eth3-ifb.max_addresses = 16
net.ipv6.conf.eth3-ifb.accept_ra_defrtr = 1
net.ipv6.conf.eth3-ifb.accept_ra_pinfo = 1
net.ipv6.conf.eth3-ifb.accept_ra_rtr_pref = 1
net.ipv6.conf.eth3-ifb.router_probe_interval = 60
net.ipv6.conf.eth3-ifb.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth3-ifb.proxy_ndp = 0
net.ipv6.conf.eth3-ifb.accept_source_route = 0
net.ipv6.conf.eth3-ifb.optimistic_dad = 0
net.ipv6.conf.eth3-ifb.mc_forwarding = 0
net.ipv6.conf.eth3-ifb.disable_ipv6 = 0
net.ipv6.conf.eth3-ifb.accept_dad = -1
net.ipv6.conf.eth3-ifb.force_tllao = 0
net.ipv6.ip6frag_high_thresh = 262144
net.ipv6.ip6frag_low_thresh = 196608
net.ipv6.ip6frag_time = 60
net.ipv6.route.gc_thresh = 1024
net.ipv6.route.max_size = 4096
net.ipv6.route.gc_min_interval = 0
net.ipv6.route.gc_timeout = 60
net.ipv6.route.gc_interval = 30
net.ipv6.route.gc_elasticity = 9
net.ipv6.route.mtu_expires = 600
net.ipv6.route.min_adv_mss = 1220
net.ipv6.route.gc_min_interval_ms = 500
net.ipv6.icmp.ratelimit = 1000
net.ipv6.bindv6only = 0
net.ipv6.ip6frag_secret_interval = 600
net.ipv6.mld_max_msf = 64
Обновление 2017-07-07 # 2:
Провайдер сообщает, что обе машины подключены к одному коммутатору. Это означает, что это проблема конфигурации.
Обновление 2017-07-08:
Я обновил ядро с 3.4 до 3.16 и Intel igb
Драйвер сетевой карты до последней версии пакета со своего веб-сайта. Однако безрезультатно наблюдаемое поведение вообще не изменилось.
Команды, которые вы ввели на первый взгляд, выглядят полностью правильными, учитывая приведенную информацию от провайдера. Это оставляет нам несколько возможных предположений относительно того, в чем может быть проблема.
eth3
но кое-что еще.Поиск whois покажет, что используемый IP-адрес является частью 2a00::/12
выделен RIPE, но еще не выделен ни одному интернет-провайдеру. Я предполагаю, что провайдер неправильно ввел IP-адрес в полученной вами информации.
Несколько дополнительных примечаний, которые могут представлять интерес, а могут и не представлять. Команда маршрута может быть сокращена до:
ip -6 route add ::/0 via 2a02:f99:0:64::1
Излишне указывать dev eth3
здесь, потому что у вас уже есть маршрут, указывающий, что 2a02:f99:0:64::1
Я видел, как хотя бы один провайдер использовал fe80::1
как адрес шлюза. Учитывая, что поставщик сказал вам использовать 2a02:f99:0:64::1
в качестве адреса шлюза он не должен был работать, но все же это была разумная попытка выяснить, что не так.
Еще пара вещей, которые вы можете сделать, чтобы попытаться выяснить, что происходит, - это посмотреть на захват пакета, например, набрав:
tcpdump -ni eth3 ip6 -s0
И вы можете попытаться найти все узлы IPv6 в сегменте с помощью:
ping6 ff02::1%eth3
Но мой лучший совет - попросить поставщика предоставить правильную информацию, указав, что 2a02:f99::/32
нераспределен.
После недели разговоров с хостинг-провайдером (и бесчисленных часов, потраченных на попытки всевозможных вещей) выясняется, что это все-таки проблема провайдера / инфраструктуры.
После того, как они подключили серверы к другому маршрутизатору, все работает нормально.
Я предполагаю, что здесь нужно усвоить урок: поставщики не всегда правы, когда говорят вам, что это проблема конфигурации машины.