ссылки:
1 2 3 4 |
https://wiki.archlinux.org/title/Systemd-networkd https://wiki.archlinux.org/title/systemd-networkd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) https://wiki.archlinux.org/title/systemd-networkd https://b14esh.com/virtualization/ovs/openvswitch.html |
wi-fi wpa_supplicant
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
0. Генерируем параметры подключения wpa_passphrase MYSSID passphrase - генерация подключения к SSID + PASSWORD -------------------------------- выхлопа: network={ ssid="MYSSID" psk="passphrase" psk=59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d } -------------------------------- 1.Создаем файл /etc/wpa_supplicant/example.conf # wpa_passphrase MYSSID passphrase >> /etc/wpa_supplicant/example.conf vim /etc/wpa_supplicant/example.conf ------------------------------------ ctrl_interface=/run/wpa_supplicant eapol_version=1 ap_scan=1 fast_reauth=1 network={ ssid="MYSSID" psk="passphrase" psk=59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d } ------------------------------------ 2. Проверяем что подключение работает wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/example.conf 3. Если все ок Переименовываем файл example.conf в wpa_supplicant-wlan0.conf systemctl enable wpa_supplicant@wlan0 systemctl start wpa_supplicant@wlan0 |
bond средствами systemd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
0. Переходим в катало /etc/systemd/network и создаем файлы конфигурации cd /etc/systemd/network 0. создаем устройство bond0 / wi-fi + wired vim 30-bond0.netdev -------------------- [NetDev] Name=bond0 Kind=bond [Bond] Mode=active-backup PrimaryReselectPolicy=always MIIMonitorSec=1s -------------------- 1. Настраиваем проводной интерфейс vim 30-ethernet-bond0.network ----------------------------- [Match] Name=enp2s0 [Network] Bond=bond0 PrimarySlave=true ----------------------------- 2. Настраиваем без проводной интерфейс vim 30-wifi-bond.network ------------------------ [Match] #Name=wlan0 MACAddress=d4:1b:81:03:25:03 #MACAddress=MAC_address_of_the_WiFi_card [Network] Bond=bond0 ------------------------ 3. Настраиваем получение IP на bond0 vim 30-bond0.network ---------------- [Match] Name=bond0 [Network] DHCP=ipv4 #Address=10.1.10.9/24 #Gateway=10.1.10.1 #DNS=10.1.10.1 ---------------- 4. Перезапускаем systemd и проверяем настройки systemctl restart systemd-networkd.service networkctl |
bond openvswitch / ovs
1 2 3 4 5 6 7 8 9 10 |
### !!1 с wi-fi не работает ovs-vsctl add-br ovsbr1 ovs-vsctl add-bond ovsbr1 bond0 eth1 eth3 # режим бонада должно уметь оборудование ovs-vsctl set port bond0 lacp=active ovs-vsctl add-bond ovsbr0 bond0 eth1 eth2 bond_mode=active-backup # info ovs-appctl bond/show bond0 - показать информацию о bond ovs-appctl lacp/show bond0 - показать информацию о lacp ovs-vsctl list port bond0 |
P.S
1 2 3 4 |
Бонидинг средствами systemd работает прекрасно с eth+wifi. (если делать по этой вот статье https://wiki.archlinux.org/title/Systemd-networkd) Бондинг средствами ovs на виртуальных проводных интерфейсах в виртуальной машине, работает. Бондинг средствами systemd на виртуальных проводных интерфейсах в виртуальной машине, работает. Если интерфейс bond(созданный с помощью systemd) всунуть в ovs то бондинг не работает. (в случае поломки не переключается на исправный, хотя в инфо показывает что переключение случилось ) |
Своя генерация linklocal ipv4 / APIPA
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
APIPA = 169.254.0.0/16 vim /etc/systemd/network/ens6.network ------------------------ [Match] Name=ens6 [Network] DHCP=ipv4 LinkLocalAddressing=ipv4 IPv6AcceptRA=no IPv4LLStartAddress=169.254.55.55 [DHCP] MaxAttempts=3 RouteMetric=10 ClientIdentifier=mac ------------------------ |
Что то похожие на APIPA IPV6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
vim /etc/systemd/network/ens6.network ------------------------------------- [Match] Name=ens6 [Network] IPv6AcceptRA=no IPv6PrivacyExtensions=prefer-public [DHCP] MaxAttempts=3 RouteMetric=10 ClientIdentifier=mac ------------------------------------- |
APIPA IPV4 + IPV6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
cat > /etc/systemd/network/50_ens6.network << "EOF" [Match] Name=ens6 [Network] LinkLocalAddressing=yes IPv4LLStartAddress=169.254.55.55 IPv6AcceptRA=no IPv6PrivacyExtensions=prefer-public [DHCP] MaxAttempts=3 RouteMetric=10 ClientIdentifier=mac EOF |
Виртуальных интерфейсы: tun, tap и dummy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
Отличие интерфейсов tun и tap заключается в том, что tap старается больше походить на реальный сетевой интерфейс, а именно он позволяет себе принимать и отправлять ARP запросы, обладает MAC адресом и может являться одним из интерфейсов сетевого моста, так как он обладает полной поддержкой ethernet - протокола канального уровня (уровень 2). Интерфейс tun этой поддержки лишен, поэтому он может принимать и отправлять только IP пакеты и никак не ethernet кадры. Он не обладает MAC-адресом и не может быть добавлен в бридж. Зато он более легкий и быстрый за счет отсутствия дополнительной инкапсуляции и прекрасно подходит для тестирования сетевого стека или построения виртуальных частных сетей (VPN). Виртуальный интерфейс типа dummy очень похож на tap, разница лишь в том, что он реализуется другим модулем ядра. Создаем интерфейс типа tun вручную и на время(жить будет до перезагрузки): ip tuntap add dev tun0 mode tun ip address add 10.0.0.1/30 dev tun0 ip address show tun0 !!! Внимание tun интерфейс невозможно добавить в бриджи (так как он не имеет MAC) Собственно при попытки добавить tun в бридж будет ошибка: ip link set dev tun0 master br0 RTNETLINK answers: Invalid argument Создаем интерфейс типа tap вручную и на время(жить будет до перезагрузки): ip tuntap add dev tap0 mode tap ip address add 10.0.0.5/30 dev tap0 ip address show tap0 В бридж tap добавляется без проблем: ip link set dev tap0 master br0 Создаем интерфейс типа dumm вручную и на время(жить будет до перезагрузки): ip link add dev dum0 type dummy ip address add 10.0.0.7/30 dev dum0 ip address show dum0 В бридж dumm добавляется без проблем: ip link set dev dum0 master br0 Примеры конфигов для systemd: TUN: vim /etc/systemd/network/tun0.netdev ------------------------------------ [NetDev] Name=tun0 Kind=tun ------------------------------------ vim /etc/systemd/network/tun0.netdev ------------------------------------ [Match] Name=tun0 [Network] Address=10.0.0.1/30 ------------------------------------ TAP: vim /etc/systemd/network/tap0.netdev ------------------------------------ [NetDev] Name=tap0 Kind=tap ------------------------------------ vim /etc/systemd/network/tap0.network ------------------------------------- [Match] Name=tap0 [Network] Address=10.0.0.5/30 ------------------------------------- DUMMY: vim /etc/systemd/network/dum0.netdev ------------------------------------ [NetDev] Name=dum0 Kind=dummy ------------------------------------ vim /etc/systemd/network/dum0.network ------------------------------------- [Match] Name=dum0 [Network] Address=10.0.0.7/30 ------------------------------------- P.S. Стоит отметить, что если вы планируете маршрутизировать траффик через виртуальные интерфейсы ( а, используя их для цели создания виртуальных частных сетей (VPN), вы точно этого хотите), то в конфигурационный файл в секции "Network" следует добавить диррективу "IPForward=yes". |