Как проверить, включена ли IPv6 в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как проверить, включена и настроена ли IPv6 на вашей системе Linux. Вы изучите различные методы для проверки статуса и параметров IPv6.

В частности, вы будете использовать команду ip addr для проверки настроенных IPv6-адресов, изучать каталог /proc/sys/net/ipv6 для проверки статуса IPv6 в ядре системы и использовать команду sysctl для просмотра подробных сетевых параметров IPv6. Эти шаги дадут вам полное представление о конфигурации IPv6 на вашей системе.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/ls -.-> lab-558791{{"Как проверить, включена ли IPv6 в Linux"}} linux/cat -.-> lab-558791{{"Как проверить, включена ли IPv6 в Linux"}} linux/ifconfig -.-> lab-558791{{"Как проверить, включена ли IPv6 в Linux"}} linux/netstat -.-> lab-558791{{"Как проверить, включена ли IPv6 в Linux"}} linux/ip -.-> lab-558791{{"Как проверить, включена ли IPv6 в Linux"}} end

Проверка IPv6-адресов с помощью команды ip addr

На этом шаге вы узнаете, как проверить IPv6-адреса, настроенные на вашей системе, с помощью команды ip addr. IPv6 - это последняя версия протокола Интернета, разработанная для замены IPv4. Она предоставляет гораздо больший адресный простор, а также имеет другие улучшения.

Команда ip является мощным инструментом в Linux для управления сетевыми интерфейсами, маршрутизацией и туннелями. Подкоманда addr используется для просмотра и изменения сетевых адресов.

Если вы еще не открыли терминал, сделайте это. Для этого нажмите на значок Xfce Terminal слева на рабочем столе.

Теперь введите следующую команду и нажмите Enter:

ip addr

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

Найдите разделы, которые начинаются с номера, за которым следует двоеточие и имя интерфейса (например, 1: lo: или 2: eth0:). В каждом разделе найдите строки, которые начинаются с inet6. Эти строки показывают IPv6-адреса, назначенные этому интерфейсу.

Например, вы можете увидеть вывод, похожий на следующий (вывод может отличаться в зависимости от конфигурации вашей системы):

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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 mq state UP group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:2/64 scope link
       valid_lft forever preferred_lft forever

В этом примере:

  • lo - это локальный петлевой интерфейс (loopback interface), обычно используемый для внутреннего обмена данными на одной машине. Он имеет IPv6-адрес ::1/128.
  • eth0 - это стандартный Ethernet-интерфейс. Он имеет IPv6-адрес fe80::42:acff:fe11:2/64.

Части /128 и /64 указывают на длину сетевого префикса, аналогично маске подсети в IPv4.

Используя команду ip addr, вы можете быстро увидеть, какие интерфейсы имеют настроенные IPv6-адреса и какие именно адреса это.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка статуса IPv6 в каталоге /proc/sys/net/ipv6

На этом шаге вы будете исследовать файловую систему /proc для проверки статуса IPv6 на вашей системе. Файловая система /proc представляет собой виртуальную файловую систему, которая предоставляет информацию о процессах и других аспектах системы. Это отличное место для поиска деталей о работающем ядре Linux.

В частности, мы рассмотрим файлы в каталоге /proc/sys/net/ipv6/. Эти файлы содержат параметры, которые управляют поведением стека протокола IPv6.

Для просмотра содержимого каталога /proc/sys/net/ipv6/ вы можете использовать команду ls:

ls /proc/sys/net/ipv6/

Вы увидите список файлов и каталогов. Каждый файл представляет собой определенный параметр ядра для IPv6.

anycast_src_interval  bindv6only  conf  flowlabel_reflect  flowlabel_state  icmp  ip6frag_high_thresh  ip6frag_low_thresh  ip6frag_secret_interval  ip6frag_time  neigh  route  tcp_metrics_hash_size  tcp_metrics_info  tcp_metrics_purge_interval  tcp_metrics_reg_interval  tcp_metrics_req_interval  tcp_metrics_slack  tcp_metrics_sync_interval  tcp_metrics_timeout  udp_metrics_hash_size  udp_metrics_info  udp_metrics_purge_interval  udp_metrics_reg_interval  udp_metrics_req_interval  udp_metrics_slack  udp_metrics_sync_interval  udp_metrics_timeout

Один из важных файлов - это disable. Этот файл показывает, отключена (1) или включена (0) IPv6 на всей системе.

Для просмотра содержимого файла disable вы можете использовать команду cat:

cat /proc/sys/net/ipv6/disable

Вывод будет либо 0, либо 1.

0
  • Если вывод равен 0, то IPv6 включена.
  • Если вывод равен 1, то IPv6 отключена.

Другой полезный файл - это conf. Это каталог, содержащий конфигурационные файлы для каждого сетевого интерфейса и каталог default для параметров по умолчанию.

Давайте посмотрим на содержимое каталога conf:

ls /proc/sys/net/ipv6/conf/

Вы увидите каталоги для каждого интерфейса (например, all, default, eth0, lo).

all  default  eth0  lo

Затем вы можете проверить статус IPv6 для конкретного интерфейса, например, eth0, просмотрев файл disable_ipv6 в его каталоге:

cat /proc/sys/net/ipv6/conf/eth0/disable_ipv6

Этот файл также содержит 0 (включено) или 1 (отключено) для данного интерфейса.

0

Исследование файлов в /proc/sys/net/ipv6/ позволяет получить низкоуровневый взгляд на конфигурацию IPv6 вашей системы.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка настроек IPv6 с помощью sysctl net.ipv6

На этом шаге вы будете использовать команду sysctl для проверки параметров ядра IPv6. Команда sysctl используется для изменения параметров ядра во время выполнения. Она предоставляет более удобный для пользователя способ просмотра и изменения тех же параметров, которые можно найти в файловой системе /proc/sys/, которую вы исследовали на предыдущем шаге.

Для просмотра всех параметров ядра, связанных с IPv6, вы можете использовать sysctl с префиксом net.ipv6.

Введите следующую команду в терминале и нажмите Enter:

sysctl net.ipv6

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

net.ipv6.conf.all.accept_dad = 1
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.disable_ipv6 = 0
net.ipv6.conf.all.force_tmo = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.keep_addr_on_down = 0
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.regen_max_retry_delay = 1
net.ipv6.conf.all.regen_retry_delay = 1
net.ipv6.conf.all.router_solicit_delay = 1
net.ipv6.conf.all.router_solicit_interval = 600
net.ipv6.conf.all.router_solicit_max_interval = 1200
net.ipv6.conf.all.router_solicits = -1
net.ipv6.conf.all.rtr_probe_interval = 600
net.ipv6.conf.all.suppress_frag_ndisc = 1
net.ipv6.conf.all.temp_prefer_mpatemp = 1
net.ipv6.conf.all.temp_valid_lifetime = 86400
net.ipv6.conf.all.temp_preferred_lifetime = 14400
net.ipv6.conf.all.use_deprecated = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.all.optimistic_dad = 0
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.accept_ra_mtu = 1
net.ipv6.conf.all.ignore_routes_with_linkdown = 0
net.ipv6.conf.all.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.all.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.all.keep_addr_on_down = 0
net.ipv6.conf.default.accept_dad = 1
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.disable_ipv6 = 0
net.ipv6.conf.default.force_tmo = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.keep_addr_on_down = 0
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.regen_max_retry_delay = 1
net.ipv6.conf.default.regen_retry_delay = 1
net.ipv6.conf.default.router_solicit_delay = 1
net.ipv6.conf.default.router_solicit_interval = 600
net.ipv6.conf.default.router_solicit_max_interval = 1200
net.ipv6.conf.default.router_solicits = -1
net.ipv6.conf.default.rtr_probe_interval = 600
net.ipv6.conf.default.suppress_frag_ndisc = 1
net.ipv6.conf.default.temp_prefer_mpatemp = 1
net.ipv6.conf.default.temp_valid_lifetime = 86400
net.ipv6.conf.default.temp_preferred_lifetime = 14400
net.ipv6.conf.default.use_deprecated = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.default.optimistic_dad = 0
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.accept_ra_mtu = 1
net.ipv6.conf.default.ignore_routes_with_linkdown = 0
net.ipv6.conf.default.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.default.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.default.keep_addr_on_down = 0
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.dad_transmits = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.force_tmo = 0
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.keep_addr_on_down = 0
net.ipv6.conf.eth0.max_desync_factor = 600
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.eth0.mtu = 1280
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_retry_delay = 1
net.ipv6.conf.eth0.regen_retry_delay = 1
net.ipv6.conf.eth0.router_solicit_delay = 1
net.ipv6.conf.eth0.router_solicit_interval = 600
net.ipv6.conf.eth0.router_solicit_max_interval = 1200
net.ipv6.conf.eth0.router_solicits = -1
net.ipv6.conf.eth0.rtr_probe_interval = 600
net.ipv6.conf.eth0.suppress_frag_ndisc = 1
net.ipv6.conf.eth0.temp_prefer_mpatemp = 1
net.ipv6.conf.eth0.temp_valid_lifetime = 86400
net.ipv6.conf.eth0.temp_preferred_lifetime = 14400
net.ipv6.conf.eth0.use_deprecated = 0
net.ipv6.conf.eth0.use_tempaddr = 0
net.ipv6.conf.eth0.optimistic_dad = 0
net.ipv6.conf.eth0.accept_ra_defrtr = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 1
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1
net.ipv6.conf.eth0.accept_ra_mtu = 1
net.ipv6.conf.eth0.ignore_routes_with_linkdown = 0
net.ipv6.conf.eth0.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.eth0.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.eth0.keep_addr_on_down = 0
net.ipv6.conf.lo.accept_dad = 1
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.disable_ipv6 = 0
net.ipv6.conf.lo.force_tmo = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.keep_addr_on_down = 0
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.mtu = 65536
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.regen_max_retry_delay = 1
net.ipv6.conf.lo.regen_retry_delay = 1
net.ipv6.conf.lo.router_solicit_delay = 1
net.ipv6.conf.lo.router_solicit_interval = 600
net.ipv6.conf.lo.router_solicit_max_interval = 1200
net.ipv6.conf.lo.router_solicits = -1
net.ipv6.conf.lo.rtr_probe_interval = 600
net.ipv6.conf.lo.suppress_frag_ndisc = 1
net.ipv6.conf.lo.temp_prefer_mpatemp = 1
net.ipv6.conf.lo.temp_valid_lifetime = 86400
net.ipv6.conf.lo.temp_preferred_lifetime = 14400
net.ipv6.conf.lo.use_deprecated = 0
net.ipv6.conf.lo.use_tempaddr = 0
net.ipv6.conf.lo.optimistic_dad = 0
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.accept_ra_mtu = 1
net.ipv6.conf.lo.ignore_routes_with_linkdown = 0
net.ipv6.conf.lo.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.lo.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.lo.keep_addr_on_down = 0
net.ipv6.flowlabel_reflect = 0
net.ipv6.flowlabel_state = 0
net.ipv6.ip6frag_high_thresh = 4194304
net.ipv6.ip6frag_low_thresh = 3145728
net.ipv6.ip6frag_secret_interval = 0
net.ipv6.ip6frag_time = 60
net.ipv6.tcp_metrics_hash_size = 512
net.ipv6.tcp_metrics_info = 1
net.ipv6.tcp_metrics_purge_interval = 600
net.ipv6.tcp_metrics_reg_interval = 1800
net.ipv6.tcp_metrics_req_interval = 300
net.ipv6.tcp_metrics_slack = 10
net.ipv6.tcp_metrics_sync_interval = 300
net.ipv6.tcp_metrics_timeout = 1800
net.ipv6.udp_metrics_hash_size = 512
net.ipv6.udp_metrics_info = 1
net.ipv6.udp_metrics_purge_interval = 600
net.ipv6.udp_metrics_reg_interval = 1800
net.ipv6.udp_metrics_req_interval = 300
net.ipv6.udp_metrics_slack = 10
net.ipv6.udp_metrics_sync_interval = 300
net.ipv6.udp_metrics_timeout = 1800

Вы также можете проверить конкретный параметр. Например, чтобы проверить статус отключения IPv6 на всей системе с помощью sysctl, вы можете использовать:

sysctl net.ipv6.conf.all.disable_ipv6

Вывод покажет имя параметра и его значение:

net.ipv6.conf.all.disable_ipv6 = 0

Это подтверждает, что IPv6 включена на всей системе, что соответствует тому, что вы видели в файловой системе /proc.

Команда sysctl представляет собой удобный способ просмотра и изменения параметров ядра без прямого взаимодействия с файлами в /proc/sys/.

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке вы узнали, как проверить, включена ли IPv6 на системе Linux, изучая сетевые настройки. Вы начали с использования команды ip addr для отображения деталей сетевых интерфейсов и определения назначенных IPv6-адресов. Эта команда предоставляет полный обзор как IPv4-, так и IPv6-адресов, настроенных на сетевых интерфейсах системы.

Затем вы исследовали каталог /proc/sys/net/ipv6, чтобы проверить статус IPv6 в ядре, просматривая конкретные файлы в этой виртуальной файловой системе. Наконец, вы использовали команду sysctl net.ipv6 для проверки различных параметров ядра, связанных с IPv6, что дало более глубокое понимание настроек и конфигурации IPv6 на системе.