Введение
В этом практическом занятии (лабораторной работе) вы узнаете, как проверить, включена и настроена ли IPv6 на вашей системе Linux. Вы изучите различные методы для проверки статуса и параметров IPv6.
В частности, вы будете использовать команду ip addr для проверки настроенных IPv6-адресов, изучать каталог /proc/sys/net/ipv6 для проверки статуса IPv6 в ядре системы и использовать команду sysctl для просмотра подробных сетевых параметров IPv6. Эти шаги дадут вам полное представление о конфигурации IPv6 на вашей системе.
Проверка 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 на системе.



