Systemd-networkd — Управление сетью

Установка, настройка, эксплуатация.

Модератор: ROOT

Systemd-networkd — Управление сетью

Сообщение ROOT » 15 авг 2024, 19:24

Оглавление


 Темы 
 Преимущества и недостатки systemd-networkd 
 Настройка IPv4 и IPv6 в systemd-networkd 
 Основные команды для управления systemd-networkd 
 Демонстрационные примеры 
 MAC-адреса для мостов в systemd-networkd 
 Пример для TunnelBroker Hurricane Electric 6in4 
 Заключение 
Дополнительные материалы
Network-Scripts — Управление сетью
NetworkManager — Управление сетью


 Преимущества и недостатки systemd-networkd 
systemd-networkd — это сетевой менеджер, являющийся частью systemd, предназначенный для управления сетевыми интерфейсами в Linux. Он поддерживает различные типы сетевых конфигураций, включая проводные и беспроводные сети, VPN, VLAN, мосты и т.д. Этот инструмент особенно полезен для серверов и минималистичных систем, где не требуется графический интерфейс.

Преимущества
  1. Интеграция с systemd:Поскольку systemd-networkd является частью systemd, он тесно интегрирован с остальными компонентами системы, что обеспечивает быструю и эффективную работу.
  2. Легковесность: systemd-networkd потребляет минимальные ресурсы, что делает его идеальным выбором для серверов и встроенных систем.
  3. Автоматизация: Он автоматически обнаруживает и настраивает сетевые интерфейсы при их подключении.
  4. Гибкость: Поддержка множества сетевых функций, таких как VLAN, мосты, туннели, статические и динамические IP-адреса, маршрутизация и другие.
  5. Управление через конфигурационные файлы: systemd-networkd использует простой и понятный формат конфигурационных файлов, что упрощает его настройку и управление.

Недостатки
  1. Отсутствие GUI: В отличие от NetworkManager, systemd-networkd не имеет графического интерфейса для управления сетью, что может затруднить его использование для пользователей, предпочитающих работать в графической среде.
  2. Меньшая популярность: В Fedora и других дистрибутивах по умолчанию используется NetworkManager, поэтому для некоторых пользователей переход на systemd-networkd может потребовать изучения новых инструментов и подходов.
  3. Меньшая поддержка для сложных сетевых конфигураций в десктопных средах: Для продвинутых конфигураций и взаимодействия с Wi-Fi systemd-networkd может быть менее удобным по сравнению с NetworkManager.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 2202 2083 5115 2302


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 468
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 11 дек 2025, 22:56

 Настройка IPv4 и IPv6 в systemd-networkd 
Для настройки сетевых интерфейсов через systemd-networkd, конфигурационные файлы создаются в директории /etc/systemd/network/. Название файла может быть любым, но важно, чтобы он имел расширение .network. Например, файл 20-wired.network.

Пример для IPv4
  1. Создайте конфигурационный файл:
    Код: выделить все
    nano /etc/systemd/network/20-wired.network
  2. Добавьте следующую конфигурацию для статического IP:
    Код: выделить все
    [Match]
    Name=enp1s0

    [Network]
    Address=192.168.1.100/24
    Gateway=192.168.1.1
    DNS=8.8.8.8
  3. Для получения IP-адреса через DHCP:
    Код: выделить все
    [Match]
    Name=enp1s0

    [Network]
    DHCP=yes
  4. Перезапустите systemd-networkd для применения изменений:
    Код: выделить все
    systemctl restart systemd-networkd
  5. Иногда возникает необходимость убрать с конкретного интерфейса LinkLocal адрес. для этого воспользуемся параметром LinkLocalAddressing, а параметр IPv6AcceptRA указываем для игнорирования пакетов (RA) автоматической конфигурации адреса IPv6 на интерфейсе.
    Код: выделить все
    [Network]
    LinkLocalAddressing=no
    IPv6AcceptRA=no

Пример настройки IPv6
  1. Для статической настройки IPv6:
    Код: выделить все
    [Match]
    Name=enp1s0

    [Network]
    Address=2000:2cc0:13b1:3333::4/64
    Gateway=2000:2cc0:13b1:3333::1
    DNS=2000:2cc0:13b1:3333::1
  2. Для получения IP-адреса через SLAAC:
    Код: выделить все
    [Match]
    Name=enp1s0

    [Network]
    IPv6AcceptRA=yes
  3. Для использования DHCPv6:
    Код: выделить все
    [Match]
    Name=enp1s0

    [Network]
    DHCP=yes
  4. Перезапустите systemd-networkd:
    Код: выделить все
    systemctl restart systemd-networkd
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 2202 2083 5115 2302


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 468
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 11 дек 2025, 22:58

 Основные команды для управления systemd-networkd 
  1. Запуск systemd-networkd:
    Код: выделить все
    systemctl start systemd-networkd

  2. Автозапуск при загрузке:
    Код: выделить все
    systemctl enable systemd-networkd

  3. Просмотр статуса сетевых интерфейсов:
    Код: выделить все
    networkctl status

  4. Просмотр состояния конкретного интерфейса:
    Код: выделить все
    networkctl status enp1s0
Переключение сетевого менеджера
Код: выделить все
systemctl disable --now NetworkManager && systemctl enable --now systemd-networkd

После запуска системная служба systemd-resolved создаст свой собственный файл resolv.conf в одной из поддиректорий директории /run/systemd. Однако, обычной практикой является сохранение этого файла по пути /etc/resolv.conf, причем многие сетевые приложения все еще используют именно файл /etc/resolv.conf. Исходя из этого, вам придется создать символьную ссылку с именем /etc/resolv.conf следующим образом:
Код: выделить все
rm /etc/resolv.conf && ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 2202 2083 5115 2302


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 468
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 11 дек 2025, 23:00

 Демонстрационные примеры 
Пример для демонстрации большинства необходимых опций конфигурирования.
Код: выделить все
[Match]
Name=eth0

[Network]
#DHCP=yes
#DHCP=ipv6
Address=192.168.114.10/24
Address=2000:2cc0:13b1:3333::4/64
DNS=192.168.114.3
DNS=2000:2cc0:13b1:3333::1
DNSSEC=false
DNSSECNegativeTrustAnchors=tr-home.de
Domains=tr-home.de ~.
# overrides setting via sysctl
IPv6PrivacyExtensions=kernel
ManageTemporaryAddress=true
IPv6AcceptRA=true
LinkLocalAddressing=ipv6
IPv6LinkLocalAddressGenerationMode=eui64

[IPv6AcceptRA]
UseDNS=false
Token=eui64

[DHCPv6]
UseDNS=false

[Route]
Gateway=192.168.114.1
GatewayOnlink=yes

[Route]
Gateway=2000:2cc0:13b1:3333::1

В конфигурационном файле для systemd-networkd используются различные параметры для настройки сетевого интерфейса и его поведения. Давайте рассмотрим назначение опций:

    [Match]
  • Name=eth0: Этот параметр указывает, что настройки из этого файла будут применяться только к сетевому интерфейсу с именем eth0. Если интерфейс имеет другое имя, настройки не будут применяться.

    [Network]
  • DNSSEC=false: Отключает проверку подписей DNSSEC при разрешении доменных имен. DNSSEC обеспечивает защиту от подделки данных DNS, но если эта опция отключена, система не будет проверять подлинность записей DNS.
  • DNSSECNegativeTrustAnchors=tr-home.de: Исключает домен tr-home.de из проверки DNSSEC, даже если DNSSEC включен. Это полезно, если домен не поддерживает DNSSEC, но вы все равно хотите использовать его без предупреждений о некорректных DNS-записях.
  • Domains=tr-home.de ~.: Определяет домены поиска для интерфейса. В этом случае, при запросе неполного имени хоста (например, host1), система сначала попробует найти его в домене tr-home.de, а затем в корневом домене (.). Символ ~. указывает, что этот домен должен использоваться как резервный, если имя не удалось разрешить в других доменах.
  • IPv6PrivacyExtensions=kernel: Управляет использованием временных IPv6-адресов, которые используются для повышения конфиденциальности. Значение kernel указывает, что конфигурация должна использовать параметры, заданные в ядре системы. Временные адреса помогают предотвратить отслеживание устройства на основе его MAC-адреса.
  • ManageTemporaryAddress=true: Если установлено в true, systemd-networkd будет управлять временными IPv6-адресами, которые создаются для повышения конфиденциальности. Эти адреса часто используются для исходящих подключений, чтобы скрыть основной IPv6-адрес устройства.
  • IPv6AcceptRA=true: Включает получение и обработку объявлений маршрутизаторов (RA) для настройки IPv6 через Stateless Address Autoconfiguration (SLAAC). Это позволяет устройству автоматически получать адреса и другую информацию от маршрутизаторов в сети.
  • LinkLocalAddressing=ipv6: Указывает, что на интерфейсе будут использоваться только локальные IPv6-адреса. Локальные адреса используются для связи между устройствами в одной сети (например, fe80::/64). Вариантами также могут быть ipv4, both, или no (отключает локальные адреса).
    IPv6LinkLocalAddressGenerationMode=eui64: Указывает, как генерировать локальный IPv6-адрес. Значение eui64 означает, что адрес будет сгенерирован на основе MAC-адреса интерфейса, что делает его стабильным и предсказуемым.

    [IPv6AcceptRA]
  • UseDNS=false: Отключает автоматическую настройку DNS-серверов, полученных через объявления маршрутизаторов (RA). Это может быть полезно, если вы хотите использовать свои DNS-серверы, а не те, которые предоставляются маршрутизатором.
  • Token=eui64: Использует механизм EUI-64 для генерации идентификатора интерфейса в IPv6-адресах, полученных через SLAAC. Это обеспечивает стабильность адресов, сгенерированных на основе MAC-адреса интерфейса.

    [DHCPv6]
  • UseDNS=false: Отключает использование DNS-серверов, полученных через DHCPv6. Это позволяет использовать вручную настроенные DNS-серверы вместо тех, что предлагает DHCP-сервер.

    [Route]
  • GatewayOnlink=yes: Этот параметр указывает, что шлюз, указанный для маршрута, может находиться в любой сети, не обязательно в сети, к которой подключен данный интерфейс. Это полезно, если шлюз находится за пределами прямого сетевого сегмента, но вы знаете, что он доступен через определённый интерфейс.
    Обычное поведение при указании шлюза в маршрутах — это проверка, находится ли шлюз в одной и той же сети, что и интерфейс, на который назначен маршрут. Если эта проверка не проходит, маршрут не будет активирован. Параметр GatewayOnlink=yes игнорирует эту проверку, позволяя маршрутам с указанным шлюзом быть активированными, даже если он находится "вне" локальной сети.
    Это может быть полезно в сложных сетевых конфигурациях, например, когда вы настраиваете маршрут через VPN или через многосегментные сети, где шлюз не принадлежит напрямую сети интерфейса.
Эти параметры позволяют гибко настроить поведение сетевого интерфейса eth0, управляя тем, как он получает IPv6-адреса, обрабатывает DNS-запросы, использует временные адреса для повышения конфиденциальности и взаимодействует с объявлениями маршрутизаторов. Они обеспечивают более точный контроль над тем, как интерфейс взаимодействует с сетью, что особенно важно в сложных или чувствительных к безопасности средах.
Пример DUAL STACK
Пример конфигурационного файла с опциями максимально приближенными к реальным условиям использования
Код: выделить все
[Match]
Name=enp0s3

[Network]
DHCP=no
DNS=192.168.114.254
DNS=2000:2cc0:13b1:3333::1
ManageTemporaryAddress=false
IPv6AcceptRA=false
LinkLocalAddressing=ipv6
IPv6LinkLocalAddressGenerationMode=eui64
Domains=free-adm.ru ~.
DNSSECNegativeTrustAnchors=free-adm.ru

[IPv6AcceptRA]
UseDNS=false

[Address]
Label=LANv4
Address=192.168.114.19/24

[Address]
Label=LANv6
Address=2000:2cc0:13b1:3333::19/64

[Route]
Gateway=192.168.114.254

[Route]
Gateway=2000:2cc0:13b1:3333::1


Пример с VLANs
cd /etc/systemd/network/
Код: выделить все
├── 10-enp0s3.link
├── 10-enp0s3.network
├── 20-enp0s3.10.netdev
├── 20-enp0s3.10.network
├── 20-enp0s3.20.netdev
├── 20-enp0s3.20.network
├── 20-enp0s3.30.netdev
├── 20-enp0s3.30.network
├── 20-enp0s3.40.netdev
├── 20-enp0s3.40.network
├── 20-enp0s3.50.netdev
└── 20-enp0s3.50.network


cat 10-enp0s3.link
Код: выделить все
[Match]
MACAddress=08:00:27:f3:11:31

[Link]
Name=enp0s3
RequiredForOnline=no

RequiredForOnline — это параметр в systemd-networkd, который определяет, считается ли интерфейс обязательным для состояния сети «online».
Если RequiredForOnline=yes, то:
  • systemd-networkd-wait-online будет ожидать, пока этот интерфейс полностью поднимется (адрес, маршруты, link-up),
  • система не перейдёт в состояние network-online.target, пока интерфейс не будет готов.
Если RequiredForOnline=no, то:
  • интерфейс игнорируется для цели «network online»,
  • загрузка не задерживается, даже если интерфейс отсутствует, недоступен или не получил IP.
Проще говоря:
RequiredForOnline — указывает, должен ли интерфейс быть полностью рабочим, чтобы система считалась "в сети".
cat 10-enp0s3.network
Код: выделить все
[Match]
Name=enp0s3

[Network]
VLAN=enp0s3.10
VLAN=enp0s3.20
VLAN=enp0s3.30
VLAN=enp0s3.40
VLAN=enp0s3.50
LinkLocalAddressing=no
IPv6AcceptRA=no

отключаем для родительского интерфейса Link Local Address и приём пакетов RA (router advertisements)

cat 20-enp0s3.10.netdev
Код: выделить все
[NetDev]
Name=enp0s3.10
Kind=vlan
MACAddress=02:00:27:f3:11:0a

[VLAN]
Id=10


cat 20-enp0s3.10.network
Код: выделить все
[Match]
Name=enp0s3.10

[Network]
Address=192.168.1.1/24
DNS=192.168.1.1

Отсутствие параметра gateway не является недочётом конфигурации (в данном случае), так как используется OSPF.
cat 20-enp0s3.20.netdev
Код: выделить все
[NetDev]
Name=enp0s3.20
Kind=vlan
MACAddress=02:00:27:f3:11:14

[VLAN]
Id=20


cat 20-enp0s3.20.network
Код: выделить все
[Match]
Name=enp0s3.20

[Network]
Address=10.10.11.6/29


cat 20-enp0s3.30.netdev
Код: выделить все
[NetDev]
Name=enp0s3.30
Kind=vlan
MACAddress=02:00:27:f3:11:1e

[VLAN]
Id=30


cat 20-enp0s3.30.network
Код: выделить все
[Match]
Name=enp0s3.30

[Network]
Address=10.10.11.14/29


cat 20-enp0s3.40.netdev
Код: выделить все
[NetDev]
Name=enp0s3.40
Kind=vlan
MACAddress=02:00:27:f3:11:28

[VLAN]
Id=40


cat 20-enp0s3.40.network
Код: выделить все
[Match]
Name=enp0s3.40

[Network]
Address=10.10.11.22/29


cat 20-enp0s3.50.netdev
Код: выделить все
[NetDev]
Name=enp0s3.50
Kind=vlan
MACAddress=02:00:27:f3:11:32

[VLAN]
Id=50


cat 20-enp0s3.50.network
Код: выделить все
[Match]
Name=enp0s3.50

[Network]
Address=10.10.11.30/29

На VLAN'ы назначаются MAC адреса из диапазона LAA вида 02.XX:XX:XX:XX:ID. ID - идентификатор VLAN, который указан как HEX. В примере задействован последний байт для наглядности. Чтобы покрыть весь диапазон возможных значений нужно задействовать 2 последних байта адреса (от 00:00 до FF:FF) - это как раз покрывает полный диапазон от 1 до 4094 возможных значений VLAN ID.
VLAN является самостоятельным широковещательным доменом, однако наличие одинаковых MAC адресов может является проблемой:
  • VLAN изолирует широковещательные домены, но не "вселенные MAC-адресов". MAC-адрес — это идентификатор конкретного сетевого интерфейса в рамках общей среды передачи данных (Ethernet).
  • Проблема возникает при маршрутизации между VLAN (L3) или при использовании устройств, которые работают с несколькими VLAN одновременно (роутеры, L3-коммутаторы, межсетевые экраны, некоторые серверы с тегированными интерфейсами).
Совет: Не стоит считать, что VLAN разрешает дублирование MAC-адресов.
Для преобразования десятичных значений в шестнадцатеричный вид можно использовать простой однострочный скрипт. Примерно такой:
Код: выделить все
printf "%x\n" 20
14


Настройка параметров Ethernet
# /etc/systemd/networkd/internet.link
Код: выделить все
[Match]
MACAddress=a0:36:9f:6e:52:26

[Link]
BitsPerSecond=1G
Duplex=full
MTUBytes=1480
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 2202 2083 5115 2302


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 468
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 11 дек 2025, 23:01

 MAC-адреса для мостов в systemd-networkd 
В Linux рекомендуется использовать следующие правила:
  • всё виртуальное — только с LAA;
  • всё физическое — с MAC производителя (OUI).

Это обеспечивает предсказуемость, отсутствие конфликтов и корректную работу сетевых протоколов (ARP, STP, ND, VLAN).

1. Рекомендуемый вариант — фиксированный LAA
Используем локально адм. адрес (LAA) для моста:
Код: выделить все
[NetDev]
Name=br0
Kind=bridge
MACAddress=02:xx:xx:xx:xx:ID


Пояснения:
  • Первый байт = 02 — признак LAA.
  • Последний байт = ID моста / VLAN (обеспечивает уникальность).
  • Предсказуемая работа ARP, STP, IPv6 ND.
  • Нет конфликтов при подключении/отключении физических интерфейсов.

Пример:

Код: выделить все
[NetDev]
Name=br0
Kind=bridge
MACAddress=02:00:27:09:74:00


Почему нельзя использовать MAC физического интерфейса
  1. Конфликты MAC.
    При переносе физического интерфейса в мост его MAC может остаться активным → коллизии.
  2. STP/RSTP может работать некорректно.
    Несколько портов могут «бороться» за один MAC.
  3. Некоторые коммутаторы/маршрутизаторы сохраняют MAC в таблицах и путаются при его переносе.

2. Вариант: унаследовать MAC от интерфейса
Допустимо, но не рекомендуется для сложной инфраструктуры.

Код: выделить все
[NetDev]
Name=br0
Kind=bridge
MACAddress=from-enp0s3

systemd возьмёт MAC первого добавленного в мост интерфейса. Подходит только если состав моста фиксирован и не меняется.

Пример полной конфигурации
10-bridge.netdev
Код: выделить все
[NetDev]
Name=br0
Kind=bridge
MACAddress=02:00:27:09:74:00

20-bridge.network
Код: выделить все
[Match]
Name=br0

[Network]
Bridge=br0
LinkLocalAddressing=ipv6

[Address]
Label=LANv4
Address=195.0.1.21/24

[Address]
Address=2001:470:1f21:16b::21/64

[Route]
Destination=0.0.0.0/0
Gateway=195.0.1.254
#GatewayOnLink=yes

30-ethernet.network
Код: выделить все
[Match]
Name=enp0s3

[Network]
Bridge=br0

[Link]
# Сохраняем оригинальный MAC физического интерфейса
MACAddress=08:00:27:09:74:10


Проверка
Код: выделить все
ip link show enp0s3
ip link show br0

Ожидаемый результат:
  • enp0s3 — MAC производителя (08:00:27:...)
  • br0 — LAA (02:00:27:...)

Они обязаны быть разными.

Важно
После включения физического интерфейса в мост:
  • IP-адреса назначаются только на br0
  • enp0s3 становится чистым портом моста
  • весь IPv4/IPv6-трафик проходит через br0
    это нормальное поведение Linux bridge
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 2202 2083 5115 2302


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 468
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 11 дек 2025, 23:02

 Пример для TunnelBroker Hurricane Electric 6in4 
eth1.network
Код: выделить все
# Это может быть любой общедоступный интерфейс, в основном тот, который подключен к Интернету (собственный или мостовой).
[Match]
Name=eth1

[Network]
#ваш обычный адрес интерфейса: 10.1.1.2/24
Address=<LOCAL_IPV4>/<NETMASK>
Gateway=<LOCAL_IPV4_GW> # local ip gw e.g 10.1.1.1

#  ниже приведен адрес туннеля
Tunnel=he6
# Первый из ipv6-адресов маршрутизатора туннеля. ( 2001:470:xxx::1/64 or /48)
Address=<ROUTED_IPV6_ADDRESS>

he.netdev
Код: выделить все
#  Определение и создание туннельного интерфейса
[Match]

[NetDev]
Name=he6
Kind=sit
MTUBytes=1480

[Tunnel]
Remote=<SERVER_IPV4_ADDRESS>
Local=<LOCAL_IPV4>
TTL=255


he.network
Код: выделить все
# Это конфигурация вашего туннельного интерфейса
[Match]
Name=he6

[Network]
Address=<CLIENT_IPV6_ADDRESS>
Gateway=<SERVER_IPV6_ADDRESS>

# опционально ip forward
IPForward=yes

# Приведенные ниже маршруты на основе политики необходимы только в том случае,
# если вы уже настроили ipv6 и хотите убедиться, что входящая маршрутизация работает правильно
[Route]
Gateway=<SERVER_IPV6_ADDRESS>
Destination=::/0
Table=200
Metric=20

[RoutingPolicyRule]
Table=200
Family=ipv6
From=<CLIENT_IPV6_ADDRESS>

[RoutingPolicyRule]
Table=200
Family=ipv6
From=<ROUTED_IPV6_PREFIX>
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 2202 2083 5115 2302


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 468
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 11 дек 2025, 23:03

 Заключение 
systemd-networkd — это мощный инструмент для управления сетью, особенно полезный на серверах и в минималистичных окружениях. Он обеспечивает легкость, гибкость и интеграцию с системой, однако требует знания и работы с конфигурационными файлами без графического интерфейса. Fedora, как и другие современные дистрибутивы, поддерживает использование systemd-networkd, что позволяет гибко управлять сетевыми интерфейсами как для IPv4, так и для IPv6.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 2202 2083 5115 2302


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 468
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный


Вернуться в Fedora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron