Ipv6 — различия между версиями

Материал из pNp Wiki
Перейти к: навигация, поиск
(Настройка интерфейсов)
Строка 135: Строка 135:
 
|}
 
|}
 
== Настройка интерфейсов ==
 
== Настройка интерфейсов ==
 +
Присвоим интерфейсам на машинах <code>vm-01</code> и <code>vm-02</code>, адреса
 +
<code>fc00::1/7</code> и <code>fc00::2/7</code> соответственно:
 +
<syntaxhighlight lang="bash">
 +
[root@vm-01 ~]# nmcli connection show
 +
NAME  UUID                                  TYPE            DEVICE
 +
eth0  89d6addf-2717-4933-ac09-c63936ed5205  802-3-ethernet  eth0 
 +
eth1  b1b57e4d-26fd-438b-846d-bcdee06aee53  802-3-ethernet  eth1 
 +
[root@vm-01 ~]# nmcli connection down eth1
 +
Connection 'eth1' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
 +
[root@vm-01 ~]# ip addr show
 +
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
 +
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 +
    inet 127.0.0.1/8 scope host lo
 +
      valid_lft forever preferred_lft forever
 +
    inet6 ::1/128 scope host
 +
      valid_lft forever preferred_lft forever
 +
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 +
    link/ether 52:54:00:07:c2:1a brd ff:ff:ff:ff:ff:ff
 +
    inet 192.168.122.158/24 brd 192.168.122.255 scope global dynamic eth0
 +
      valid_lft 2561sec preferred_lft 2561sec
 +
    inet6 fe80::5c77:2f55:bace:49ba/64 scope link
 +
      valid_lft forever preferred_lft forever
 +
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 +
    link/ether 52:54:00:92:b1:55 brd ff:ff:ff:ff:ff:ff
 +
[root@vm-01 ~]# nmcli connection edit eth1
  
 +
===| nmcli interactive connection editor |===
 +
 +
Editing existing '802-3-ethernet' connection: 'eth1'
 +
 +
Type 'help' or '?' for available commands.
 +
Type 'describe [<setting>.<prop>]' for detailed property description.
 +
 +
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6
 +
nmcli> set ipv6.addresses
 +
Enter 'addresses' value:
 +
nmcli> print ipv6.addresses
 +
ipv6.addresses:
 +
nmcli> set ipv6.addresses fc00::1/7
 +
Do you also want to set 'ipv6.method' to 'manual'? [yes]: yes
 +
nmcli> save
 +
Connection 'eth1' (b1b57e4d-26fd-438b-846d-bcdee06aee53) successfully updated.
 +
nmcli> save persistent
 +
Connection 'eth1' (b1b57e4d-26fd-438b-846d-bcdee06aee53) successfully updated.
 +
nmcli> quit
 +
[root@vm-01 ~]# nmcli connection up eth1
 +
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
 +
[root@vm-01 ~]# ip -6 addr show dev eth1
 +
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
 +
    inet6 fc00::1/7 scope global
 +
      valid_lft forever preferred_lft forever
 +
    inet6 fe80::9c9f:9e62:26a:7127/64 scope link
 +
      valid_lft forever preferred_lft forever
 +
[root@vm-01 ~]#
  
 
== Ссылки ==
 
== Ссылки ==
 
[https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml IANA IPv6 Special-Purpose Address Registry]
 
[https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml IANA IPv6 Special-Purpose Address Registry]

Версия 11:02, 7 декабря 2017

Конфигурирование ipv6

Предварительные требования

  • Две виртуальная машины с двумя сетевыми интерфейсами
  • Установленные пакеты: bash-completion

Общая информация и терминология

Адрес состоит из 8 блоков (хекстетов) шестнадцатеричных чисел. Каждый блок (хекстет) состоит из 4 символов, например:

2001:0db8:0070:0000:0000:0000:0000:7777/32

Однако, кодируются именно символы, каждый символ в хекстете кодируется 4 битами (ниблом), то есть первый хекстет будет иметь следующий двоичный вид (точки представлены для наглядности): 0010.0000.0000.0001.
Для упрощения манипуляции такими адресами, имеются следующиие правила:

  • Старшие нули в блоках можно опустить. Например:
2001:0db8:70:0000:0000:0000:0000:7777/32
  • Если нули в блоках расположены последовательно, в записи их можно опустить (Zero Compression) вставив два двоеточия :. Но только один раз, дабы не возникло неоднозначности. Например:
2001:0db8:70::7777/32

Методы доставки информации

  • Unicast - от одного источника, к одному получателю. Получатели могут быть следующими:
  1. Global Unicast Addresses - адреса маршрутизируемые в сети Internet (аналог публичного диапазона ipv4), находящиеся в диапазоне от 2066::/16 до 3fff::/16
  2. Unique-Local Addresses - адреса не маршрутизируемые в стети Internet (приблизительный аналог частного диапазона ipv4), находящиеся в пространстве fc00::/7
  3. Link-local Addresses - адреса не маршрутизируемые в стети Internet, необходимые для автоконфигурирования устройств (аналог APIPA в ipv4), находящиеся в пространстве fe80::/10
  • Multicast - от одного источника, к нескольким получателям. В ipv6 также является заменой broadcast'y. Для получения пакетов в мультикасте, необходимо быть включенным в специальную группу. Те интерфейсы, которые не включены в группу - игнорируют мультикаст пакеты.
  • Anycast - множеству интерфейсов присваивается один ip адрес. При этом эникаст пакеты получает "ближайший" получатель, согласно метрике маршрута.


Архитектура адресов

Юникаст адресы формируются следующим образом:

n бит 128 бит
префикс подсети идентификатор интерфейса

Global Unicast Addresses формируются по следующей схеме:

n бит m бит 128-n-m бит
глобальный префикс маршрутизации идентификатор подсети идентификатор интерфейса

Все глобальные юникаст адреса, имеющие первые биты, отличные от 0000, имеют 64 битное поле идентификатора интерфейса. Глобальные юникаст адреса начинающиеся с 0000 не имеют ограничений на размер или структуру поля идентификатора интерфейса

Local IPv6 Unicast Addresses формируются по следующей схеме:

7 бит 1 бит 40 бит 16 бит 64 бита
префикс L глобальный идентификатор идентификатор подсети идентификатор интерфейса

Где:

  • Префикс - fc00::/7 для идентификации локальных ipv6 адресов
  • L - бит установленный в значение 1 указывает, что адрес присвоен локально. Значение 0 зарезервированно для будущего использования.
  • Глобальный идентификатор - 40 битный префикс используемый для создания глобально уникальный префикс
  • Идентификатор подстети - 16 битный идентификатор подсети
  • Идентификатор интерфейса - 64 битный идентификатор интерфейса.

Link-Local IPv6 Unicast Addresses формируются по следующей схеме:

10 бит 54 бита 64 бита
1111111010 0 идентификатор интерфейса

Адреса данного типа созданы для автоматического конфигурирования интерфейсов, для обнаружения соседних сетевых устройств, или в сетях, где отсутствуют маршрутизаторы. Роутеры не должны маршрутизировать пакеты в которых источник или получатель имеет адрес из указанного диапазона.

Специальные адресы

  1. 0:0:0:0:0:0:0:0 - называется неопределенным адресом, то есть отражает отсутствие адреса как такового, поэтому никогда не должен присваиваться. Пакет с таким адресом не подлежит маршрутизации и не должен использоваться в качестве адреса получателя.
  2. 0:0:0:0:0:0:0:1 - петлевой адрес. Может использоваться любой нодой для того, что бы отправить пакет самому себе. Пакет с таким адресом в качестве источника или получателя не должен уходить за пределы ноды, в противном случае - он должен быть отброшен.

Зарезервированные диапазоны

Согласно перечню специальных адресов IANA, зарезервированны следующие диапазоны:

Диапазон Описание RFC
 ::/128 Неопределенный адрес (эквивалентен 0.0.0.0) rfc4291
 ::1/128 Loopback Address (эквивалентен 127.0.0.1/8) rfc4291
 ::ffff:0:0/96 IPv4-mapped Address rfc4291
64:ff9b::/96 IPv4-IPv6 Translat. rfc6052
64:ff9b:1::/48 IPv4-IPv6 Translat. rfc8215
100::/64 Discard-Only Address Block rfc6666
2001::/23 IETF Protocol Assignments rfc2928
2001::/32 TEREDO rfc4380, rfc8190
2001:1::1/128 Port Control Protocol Anycast rfc7723
2001:1::2/128 Traversal Using Relays around NAT Anycast rfc8155
2001:2::/48 Benchmarking rfc5180, RFC Errata 1752
2001:3::/32 AMT rfc7450
2001:4:112::/48 AS112-v6 rfc7535
2001:5::/32 EID Space for LISP (Managed by RIPE NCC) rfc7954
2001:10::/28 Deprecated (previously ORCHID) rfc4843
2001:20::/28 ORCHIDv2 rfc7343
2001:db8::/32 Для использования в документации rfc3849
2002::/16 6to4 rfc3056
2620:4f:8000::/48 Direct Delegation AS112 Service rfc7534
fc00::/7 Unique-Local (эквивалент частным, не маршрутизируемым в интернет сетям в ipv4) rfc4193, rfc8190
fe80::/10 Link-Local Unicast (аналог APIPA) rfc4291

Настройка интерфейсов

Присвоим интерфейсам на машинах vm-01 и vm-02, адреса fc00::1/7 и fc00::2/7 соответственно: <syntaxhighlight lang="bash"> [root@vm-01 ~]# nmcli connection show NAME UUID TYPE DEVICE eth0 89d6addf-2717-4933-ac09-c63936ed5205 802-3-ethernet eth0 eth1 b1b57e4d-26fd-438b-846d-bcdee06aee53 802-3-ethernet eth1 [root@vm-01 ~]# nmcli connection down eth1 Connection 'eth1' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) [root@vm-01 ~]# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host 
      valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

   link/ether 52:54:00:07:c2:1a brd ff:ff:ff:ff:ff:ff
   inet 192.168.122.158/24 brd 192.168.122.255 scope global dynamic eth0
      valid_lft 2561sec preferred_lft 2561sec
   inet6 fe80::5c77:2f55:bace:49ba/64 scope link 
      valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

   link/ether 52:54:00:92:b1:55 brd ff:ff:ff:ff:ff:ff

[root@vm-01 ~]# nmcli connection edit eth1

| nmcli interactive connection editor |

Editing existing '802-3-ethernet' connection: 'eth1'

Type 'help' or '?' for available commands. Type 'describe [<setting>.<prop>]' for detailed property description.

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6 nmcli> set ipv6.addresses Enter 'addresses' value: nmcli> print ipv6.addresses ipv6.addresses: nmcli> set ipv6.addresses fc00::1/7 Do you also want to set 'ipv6.method' to 'manual'? [yes]: yes nmcli> save Connection 'eth1' (b1b57e4d-26fd-438b-846d-bcdee06aee53) successfully updated. nmcli> save persistent Connection 'eth1' (b1b57e4d-26fd-438b-846d-bcdee06aee53) successfully updated. nmcli> quit [root@vm-01 ~]# nmcli connection up eth1 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3) [root@vm-01 ~]# ip -6 addr show dev eth1 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000

   inet6 fc00::1/7 scope global 
      valid_lft forever preferred_lft forever
   inet6 fe80::9c9f:9e62:26a:7127/64 scope link 
      valid_lft forever preferred_lft forever

[root@vm-01 ~]#

Ссылки

IANA IPv6 Special-Purpose Address Registry