Поиск по сайту

    Мои услуги на Kwork

Настройка IPv6 в Linux Debian, Ubuntu, CentOS и FreeBSD

 

Адреса назначаются и прописываются в настройках ОС статично, т.е. функционал автоматического конфигурирования IPv6 не задействуется. Это связано с особенностями учета адресного пространства и обеспечения безопасности.

Linux Debian v7.XX, Ubuntu v14.XX

В достаточно свежих дистрибутивах ОС Linux уже присутствует полноценная поддержка IPv6. Поэтому доустанавливать что-либо вручную необходимости нет.
Рассмотрим пример настройки.
“/etc/network/interfaces”

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
  address 188.190.XXX.119
  network 188.190.XXX.0
  netmask 255.255.255.0
  broadcast 188.190.XXX.255
  gateway 188.190.XXX.1

auto eth0:1
iface eth0:1 inet static
  address 188.190.XXX.169
  netmask 255.255.255.255

auto eth0:2
iface eth0:2 inet static
  address 188.190.XXX.171
  netmask 255.255.255.255

iface eth0 inet6 static
  address 2a04:XXXX:1:0:0:0:0:12
  netmask 48

iface eth0 inet6 static
  address 2a04:XXXX:1:0:0:0:0:15
  netmask 48

iface eth0 inet6 static
  address 2a04:XXXX:1:0:0:0:0:16
  netmask 48
  gateway 2a04:XXXX:1::1

Тут следует обратить внимание на два момента. Во-первых, все адреса IPv6 назначаются непосредственно на сам сетевой интерфейс: в отличие от IPv4 нет необходимости создавать виртуальные адаптеры типа «eth0:X». Во-вторых, шлюз по умолчанию для IPv6 указывается один раз для любого из адресов. Действовать он будет для всех.
Результат настроек в выводе команды «ifconfig»:

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:16:3e:15:22:aa
          inet addr:188.190.XXX.119  Bcast:188.190.XXX.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe34:80fe/64 Scope:Link
          inet6 addr: 2a04:XXXX:1::12/48 Scope:Global
          inet6 addr: 2a04:XXXX:1::16/48 Scope:Global
          inet6 addr: 2a04:XXXX:1::15/48 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:823965 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1223 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:450489490 (429.6 MiB)  TX bytes:158298 (154.5 KiB)
          Interrupt:26

eth0:1    Link encap:Ethernet  HWaddr 00:16:3e:15:22:aa
          inet addr:188.190.XXX.169  Bcast:188.190.XXX.169  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:26

eth0:2    Link encap:Ethernet  HWaddr 00:16:3e:15:22:aa
          inet addr:188.190.XXX.171  Bcast:188.190.XXX.171  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:26

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Базовую диагностику можно выполнить с помощью команд «ping6 -n -c 4 ipv6.google.com» и «traceroute -n -6 -I ipv6.google.com». Проверить MAC-адреса соседей: «ip -6 neighbor show». Изучить таблицу маршрутизации: «route -n6» или «ip -6 route show». Выяснить, какой из адресов IPv6 используется системой по умолчанию для исходящих подключений: «ip -6 route get 2a00:1450:4013:c01::65».

CentOS v6.XX

Настройка CentOS замысловатее из-за того, что опций несколько больше, и они раскиданы по нескольким файлам.
“/etc/sysconfig/network”

NETWORKING=yes
GATEWAY=188.190.XXX.1
HOSTNAME=ipv6.test
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no
IPV6_AUTOTUNNEL=no
IPV6_DEFAULTDEV=eth0
IPV6_DEFAULTGW=2a04:XXXX:1::1

“/etc/sysconfig/network-scripts/ifcfg-eth0”

TYPE=Ethernet
DEVICE=eth0
ONBOOT=yes
IPADDR=188.190.XXX.208
NETWORK=188.190.XXX.0
NETMASK=188.190.XXX.0
BROADCAST=188.190.XXX.255
GATEWAY=188.190.XXX.1
IPV6INIT=yes
IPV6_DEFAULTGW=2a04:XXXX:1::1
IPV6ADDR=2a04:XXXX:1:0:0:0:0:12/48
IPV6ADDR_SECONDARIES="2a04:XXXX:1:0:0:0:0:15/48 2a04:XXXX:1:0:0:0:0:16/48"

“/etc/sysconfig/network-scripts/ifcfg-eth0:1”

TYPE=Ethernet
DEVICE=eth0:1
ONBOOT=yes
IPADDR=188.190.XXX.213
NETMASK=255.255.255.255

“/etc/sysconfig/network-scripts/ifcfg-eth0:2”

TYPE=Ethernet
DEVICE=eth0:2
ONBOOT=yes
IPADDR=188.190.XXX.232
NETMASK=255.255.255.255

В целом картина аналогична Debian. Виртуальные сетевые интерфейсы «eth0:X» необходимы только для IPv4. Опции «NETWORKING_IPV6» и «IPV6INIT» включают поддержку IPv6. В «IPV6_DEFAULTGW» указываем шлюз по умолчанию. Первый адрес IPv6 назначается в «IPV6ADDR», все остальные перечисляются в «IPV6ADDR_SECONDARIES».

Вывод команды «ifconfig» аналогичен Debian:

$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:16:3E:18:33:54
          inet addr:188.190.XXX.208  Bcast:188.190.XXX.255  Mask:255.255.255.0
          inet6 addr: 2a04:XXXX:1::12/48 Scope:Global
          inet6 addr: 2a04:XXXX:1::15/48 Scope:Global
          inet6 addr: 2a04:XXXX:1::16/48 Scope:Global
          inet6 addr: fe80::216:3eff:fe18:bf3a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:80834 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:40241487 (38.3 MiB)  TX bytes:11895 (11.6 KiB)
          Interrupt:245

eth0:1    Link encap:Ethernet  HWaddr 00:16:3E:18:33:54
          inet addr:188.190.XXX.213  Bcast:188.190.XXX.213  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:245

eth0:2    Link encap:Ethernet  HWaddr 00:16:3E:18:33:54
          inet addr:188.190.XXX.232  Bcast:188.190.XXX.232  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:245

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Инструменты для диагностики — те же самые, что используются в Debian.

FreeBSD v10.XX

В ОС FreeBSD уже также есть все необходимое для поддержки IPv6.
Рассмотрим пример настройки.
” /etc/rc.conf”

hostname="ipv6.test"
defaultrouter="188.190.XXX.1"
ifconfig_xn0="inet 188.190.XXX.41 netmask 255.255.255.0"
ipv6_defaultrouter="2a04:XXXX:1::1"
ifconfig_xn0_ipv6="2a04:XXXX:1:0:0:0:0:12/48"
ifconfig_xn0_aliases="inet6 2a04:XXXX:1:0:0:0:0:15/48 inet6 2a04:XXXX:1:0:0:0:0:16/48 inet 188.190.XXX.104 netmask 255.255.255.255 inet 188.190.XXX.131 netmask 255.255.255.255"

Основной адрес IPv6 указывается в опции «ifconfig_xn0_ipv6». Поскольку в FreeBSD механизм виртуальных сетевых интерфейсов для IPv4 не используется, то все дополнительные адреса, в том числе IPv6, перечисляются в «ifconfig_xn0_aliases».
Вывод команды «ifconfig» немного отличается от ОС Linux.

# ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
xn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=503<RXCSUM,TXCSUM,TSO4,LRO>
        ether 00:16:3e:f4:17:6c
        inet 188.190.XXX.41 netmask 0xffffff00 broadcast 188.190.XXX.255
        inet6 fe80::216:3eff:fef4:176c%xn0 prefixlen 64 scopeid 0x2
        inet6 2a04:XXXX:1::12 prefixlen 48
        inet 188.190.XXX.104 netmask 0xffffffff broadcast 188.190.XXX.104
        inet 188.190.XXX.131 netmask 0xffffffff broadcast 188.190.XXX.131
        inet6 2a04:XXXX:1::15 prefixlen 48
        inet6 2a04:XXXX:1::16 prefixlen 48
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        media: Ethernet manual
        status: active

Инструмент для диагностики также немного другой: «ping6 -n -c 4 ipv6.google.com» и «traceroute6 -n ipv6.google.com». Проверить MAC-адреса соседей: «ndp -an». Изучить таблицу маршрутизации: «netstat -rn6». Выяснить, какой из адресов IPv6 используется системой по умолчанию для исходящих подключений: «route -nv6 get 2a00:1450:4013:c01::65».

# route -nv6 get 2a00:1450:4013:c01::65
RTA_DST: inet6 2a00:1450:4013:c01::65; RTA_IFP: link ; RTM_GET: Report Metrics: len 240, pid: 0, seq 1, errno 0, flags:<UP,GATEWAY,HOST,STATIC>
locks:  inits:
sockaddrs: <DST,IFP>
 2a00:1450:4013:c01::65 link#0
   route to: 2a00:1450:4013:c01::65
destination: ::
       mask: ::
    gateway: 2a04:XXXX:1::1
        fib: 0
  interface: xn0
      flags: <UP,GATEWAY,DONE,STATIC>
 recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire
       0         0         0         0      1500         1         0


locks:  inits:
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
 :: 2a04:XXXX:1::1 :: xn0:0.16.3e.f4.17.6c 2a04:XXXX:1::12

В данном случае адресом по умолчанию является тот, что указан самым последним в выводе команды: «2a04:XXXX:1::12».

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar



Яндекс.Метрика Рейтинг@Mail.ru