У меня есть сервер Ubuntu 16.04.2 с блоком IPv6 / 64.
Если я добавлю блок, например:
ip addr add 2001:41d0:xxx:yyy::/64 dev eth2
работает только первый:
$ curl -g http://[2001:41d0:xxx:yyy::]/
<!DOCTYPE html>...
$ curl -g http://[2001:41d0:xxx:yyy::1]/
curl: (7) Failed to connect to 2001:41d0:xxx:yyy::1 port 80: Connection timed out
Если я добавляю другие по одному, они работают:
ip addr add 2001:41d0:xxx:yyy::1/128 dev eth2
Что я делаю не так?
Блок также находится в / etc / network / interfaces:
iface eth2 inet6 static
address 2001:41d0:xxx:yyy::
netmask 64
@Ron_Maupin дает правильный ответ, но я чувствовал, что его можно дополнить более простым:
/ 64 не означает, что весь блок назначен интерфейсу. Он назначил интерфейсу один адрес и сообщает ему, что в локальной сети есть блок / 64. Это почти всегда что вы хотите для интерфейса Ethernet.
/ 128 есть почти никогда что вы хотите для интерфейса Ethernet. Эти адреса не будут доступны из локальной сети.
Адрес интерфейса - это единственный адрес, хотя вы можете назначить интерфейсу несколько адресов IPv6, поэтому вы действительно добавляете 2001:41d0:xxx:yyy::
адрес в 2001:41d0:xxx:yyy::/64
сеть к интерфейсу.
IPv6 фактически позволяет вам использовать каждый адрес в сети в качестве адреса хоста, в отличие от IPv4, где сетевой адрес не может использоваться в качестве адреса хоста, но RFC 2373, архитектура адресации IP версии 6 определяет произвольный адрес подсети Router-Subnet как нулевой адрес для сети.
2.6.1 Требуемый адрес Anycast
Любой адрес подсети-маршрутизатора предопределен. Его формат следующий:
| n bits | 128-n bits | +------------------------------------------------+----------------+ | subnet prefix | 00000000000000 | +------------------------------------------------+----------------+
«Префикс подсети» в произвольном адресе - это префикс, который определяет конкретную ссылку. Этот произвольный адрес синтаксически совпадает с адресом одноадресной рассылки для интерфейса в канале связи с идентификатором интерфейса, установленным на ноль.
Пакеты, отправленные на произвольный адрес подсети-маршрутизатора, будут доставлены на один маршрутизатор в подсети. Все маршрутизаторы должны поддерживать произвольные адреса подсети-маршрутизатора для подсетей, интерфейсы которых у них есть.