В этом разделе:
Часто используемые команды при работе с сетью:
| ip a | информации о состоянии сетевых интерефейсов |
| ip -s -s link show dev bond0 | статистика по сетевому интерфейсу bond0 |
| cat /proc/net/bonding/bond0 | подробная статистика по интерфейсу bond0 |
| scp логин@адрес_сервера:путь1 путь2 | копирование файлов с сервера на клиента |
| scp -r путь1 логин@адрес_сервера:путь2 | копирование рекурсивно файлов с клиента на сервер |
| mtr 8.8.8.8 | трасировка до узла 8.8.8.8 |
| cat /proc/net/bonding/bond0 | просмотр состояния бонда |
Как посмотреть, какие DNS серверы используются:
#resolvectl
#systemd-resolve --status
#vi /etc/resolv.conf
#/etc/systemd/resolved.conf
Основной файл резолва DNS имен обычно здесь: /etc/resolv.conf
Пример, как выглядит:
nameserver 8.8.8.8
nameserver 4.4.4.4
search dpc.tax.domain.ru idmz.domain.rvv
Самый простой способ настроить через графический интерфейс. Здесь не описываем.
Настройка через консоль (используется NetWorkManager)
Настройки задаются здесь: /etc/NetworkManager/system-connections/имя_подключения.nmconnection
id=connection 1
uuid=08542923-758e-327b-99b1-33c8f1247407
type=ethernet
autoconnect-priority=-999
interface-name=eth0
timestamp=1721296745
[ethernet]
[ipv4]
address1=192.168.48.5/24,192.168.48.1
dns=8.8.8.8;4.4.4.4;
ignore-auto-dns=true
method=manual
[ipv6]
addr-gen-mode=stable-privacy
method=auto
[proxy]
# systemctl restart NetworkManager
Проверка доступности шары
где 192... - хост, на котором расшарена папка, /root/smbcred - файл с логином и паролем для подключения к шаре (если требуется)
username=имя_пользователя
password=пароль
Также необходимо проверить доступность TCP порта 445.
Типовые ошибки при монтировании
can’t find in /etc/fstab - не указали папку куда будет смонтирован сетевой диск
mount does not exist - папки share, указанной в строчке /mnt/share/, нет.
Сначала необходимо установить пакеты: apt-get install cifs-utils, samba-client
1. Примонтировать на текущий сеанс
Возможные опции монтирования:
username=a1 - имя пользователя, под которым подключаемся к шаре. Если не задать, то будет использоваться переменная USER
password=123 – пароль пользователя. Если не задать, то используется переменная PASSWORD (если она есть)
credentinal=/root/pass – путь к файлу, содержащий имя и пароль пользователя, под которым подключаемся
cifs – тип монтируемой ФС
rw – на чтение и запиь, ro – только на чтение
user - разрешение монтировать для любого пользователя
uid=500,guid=500 – идентификатор пользователя и группы, которому будут принадлежать все файлы в смонтированной ФС
file_mode=0777,dir_mode=0777 -–права доступа на файлы и каталоги
port=446 – какой порт использовать при подключении
domain=имя – имя группы или домена
guest – не запрашивать пароль
iocharset=8 – используемая кодировка
ver=1.0 (2.0, 3.0) - версия используемого SMB протокола
2. Примонтировать на постоянку (прописываем в fstab с нужными параметрами)
//10.1.5.43/share /mnt/share cifs rw,user,suid,iocharset=8,ver=2.0,username=user1,password=123 0 0
3. Если не хотим светить пароль в fstab
Создаем файл, например smbcred, в директории /root с содержимым:
username=имя_пользователя
password=пароль
//10.1.5.43/share /mnt/share cifs rw,credentials=/root/smbcred 0 0
Ethernet bonding — это объединение двух или более физических сетевых интерфейсов в один виртуальный для обеспечения отказоустойчивости и повышения пропускной способности сети. Или, простым языком говоря, Raid для сетевых карт.
В большинстве случаев используется режим Bond 0. Подробнее про режимы ниже в теории.
Объединение сетевых карт в Linux осуществляется с помощью драйвера bonding.
Параметры модуля bonding:
Небольшая выжимка, подробнее можно посмотреть здесь: хттпс adminia.ru/linux-bonding-obiedinenie-setevyih-interfeysov-v-linux
mode - определяет политику поведения объединенных интерфейсов (mode = 0 по-умолчанию)
0 — balance-rr — (round-robin) — режим циклического выбора активного интерфейса для исходящего трафика (рекомендован для включения по умолчанию, не требует применения специальных коммутаторов), рименяется для балансировки нагрузки и отказоустойчивости.
1 — active-backup — активен только один интерфейс, остальные в режиме горячей замены (самый простой режим, работает с любым оборудованием, не требует применения специальных коммутаторов), применяется для отказоустойчивости.
2 — balance-xor — режим, в котором каждый получатель закрепляется за одним из физических интерфейсов, который выбирается по специальной формуле (не требует применения специальных коммутаторов). Опционально распределение передачи может быть основано и на политике «xmit_hash». Политика XOR применяется для балансировки нагрузки и отказоустойчивости.
3 — broadcast — трафик идет через все интерфейсы одновременно (примитивный и потенциально конфликтный режим), применяется для отказоустойчивости.
4 — 802.3ad — (dynamic link aggregation) — в группу объединяются одинаковые по скорости и режиму интерфейсы. Все физические интерфейсы используются одновременно в соответствии со спецификацией IEEE 802.3ad. Для реализации этого режима необходима поддержка на уровне драйверов сетевых карт и коммутатор, поддерживающий стандарт IEEE 802.3ad (коммутатор требует отдельной настройки). Можно использовать «xmit_hash» политику.
5 — balance-tlb — (adaptive transmit load balancing) — исходящий трафик распределяется в соответствии с текущей нагрузкой (с учетом скорости) на интерфейсах (для данного режима необходима его поддержка в драйверах сетевых карт);
6 — balance-alb — (adaptive load balancing) — включает в себя balance-tlb, плюс балансировку на приём (rlb) для IPv4 трафика и не требует применения специальных коммутаторов.
xmit_hash_policy — определяет хэш политику передачи пакетов (xmit_hash_policy = layer2 по-умолчанию)
layer2 - использует только MAC адреса для генерации хэша (политика по-умолчанию)
layer2+3 - использует как MAC адреса так и IP адреса для генерации хэша. Алгоритм совместим с 802.3ad.
layer3+4 - используется IP адреса и протоколы транспортного уровня (TCP или UDP) для генерации хэша. Алгоритм не всегда совместим с 802.3ad, так как в пределах одного и того же TCP или UDP взаимодействия может передаваться как фрагментированные так и не фрагментированнные пакеты. В фрагментированных пакетах порт источника и порт назначения отсутствуют. В результате в рамках одной сессии пакеты могут дойти до получателя не в том порядке (так как отправляются через разные интерфейсы). Некоторое оборудование, совместимое с 802.3ad может некорректно отработать такую ситуацию.
miimon - устанавливает периодичность MII мониторинга в миллисекундах. Определяет как часто будет проверяться состояние линии на наличие отказов. Значение по умолчанию 0 — отключает MII мониторинг, рекомендуется сперва попробовать значение 100.
downdelay - определяет время в миллисекундах задержки перед отключением интерфейса, если произошел сбой соединения. Эта опция действительна только для мониторинга miimon.
updelay - задает время задержки в миллисекундах, перед тем как поднять линк при обнаружении восстановления канала. Этот параметр возможен только при miimon мониторинге.
max_bonds - указывает сколько bonding устройств следует создавать драйверу. Например, если max_bonds = 3, то в системе будут созданы bond0, bond1, bond2 интерфейсы.
Настрока bond (примеры)
Создаем файл /etc/sysconfig/network-scripts/ifcfg-bond0
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=static
ONBOOT=yes
USERCTL=no
NM_CONTROLLED=no
IPV6INIT=no
BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer3+4"
IPADDR= ip сервера
NETMASK= маска подсети
GATEWAY= шлюз
MTU= выставляем значение (1500 по умолчанию)
В файлы формата /etc/sysconfig/network-scripts/ifcfg-имя_карты, которая будет входить в bond0, вносим изменения
vi /etc/sysconfig/network-scripts/ifcfg-имя_карты
DEVICE= имя_карты
NAME= имя_карты
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
NM_CONTROLLED=no
IPV6INIT=no
MTU=1500
!! Все остальные строки которые не перечислены выше нужно удалить !!!
Вносим изменения в файл /etc/network/interfaces
auto bond0
iface bond0 inet static
address ip сервера/префикс
gateway шлюз
dns-nameservers ip dns сервера, не обязательно
bond-slaves имена интерфейсов которые будет входить в bond0 (через пробел)
bond-mode 802.3ad
bond-lacp-rate slow
bond-miimon 100
bond-downdelay 200
bond-updelay 200
Все остальные строки оставляем как есть, так как конф. файл общий для всех сетевых интерфейсов
Включить(UP) все интерфейсы и посмотреть, какие акивны {0..7} цифры зависят от количества интерфейсов
#for i in {0..7};do ip link set dev eth$i up;done
Посмотреть, какие интерфейсы активны
#ip -br link show
eth0 DOWN a0:c5:f2:11:15:ba <broadcast,multicast>
eth1 DOWN a0:c5:f2:11:15:b8 <broadcast,multicast>
eth2 UP e4:3d:1a:d7:49:d0 <broadcast,multicast,slave,up,lower_up>
eth3 DOWN a0:c5:f2:11:15:bb <broadcast,multicast>
eth4 DOWN a0:c5:f2:11:15:b9 <broadcast,multicast>
eth5 DOWN e4:3d:1a:d7:49:d1 <broadcast,multicast>
eth6 DOWN a0:c5:f2:11:15:bc <broadcast,multicast>
eth7 UP e4:3d:1a:d7:25:10 <broadcast,multicast,slave,up,lower_up>
В данном примере видим, что активны 2-ой и 7-ой интерфейсы. Их мы будем объединять в bond4 layer3+4.
Необходимо зафиксировать(привязать к MAC) имена активных сетевых интерфейсов. Редактируем файл, находя в нем активные интерфейсы, обнаруженные на прошлом шаге и переименновываем их как показано в примере:
#vi /etc/udev/rules.d/70-persistent-net.rules
# PCI device 0x14e4:0x16d7 (bnxt_en)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e4:3d:1a:d7:49:d0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="ether00"
# PCI device 0x14e4:0x16d7 (bnxt_en)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e4:3d:1a:d7:25:10", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="ether01"
Переходим в /etc/net/ifaces/ и создаем 3 каталога: ether00, ether01 и bond0
Переходим в каталог, сетевого интерфейса ether00 "cd /etc/net/ifaces/ether00"
Создаем файл options, как указано ниже:
#vim options
TYPE=eth
CONFIG_WIRELESS=no
BOOTPROTO=static
CONFIG_IPV4=yes
ONBOOT=yes
После создания файла options на предыдущем шаге, его надо скопировать также в каталог ether01
#cp /etc/net/ifaces/ether00/options /net/ifaces/ether01/
Далее также создаем файл options в каталоге bond0 и приводим его к виду:
#vim /etc/net/ifaces/bond0/options
TYPE=bond
CONFIG_WIRELESS=no
BOOTPROTO=static
CONFIG_IPV4=yes
ONBOOT=yes
HOST="ether00 ether01"
BONDMODE=4
BONDOPTIONS="miimon=100 xmit_hash_policy=layer3+4"
Также в папке bond0 необходимо создать еще два файла: ipv4address и ipv4route
#vim /etc/net/ifaces/bond0/ipv4address
10.253.10.229/23 - задаем ip адрес и маску для интерфейса bond0
#vim /etc/net/ifaces/bond0/ipv4route
default via 10.253.10.1 - шлюз по умолчанию
Далее необходимо задать mac адрес для бонда. Для этого возьмем mac от первой сетевой ether00 и запишем также в папку bond0 в файл iplink. Кроме этого зададим еще MTU
#vim /etc/net/ifaces/bond0/iplink
address e4:3d:1a:d7:49:d0
mtu 1500
Настройка закончена. Необходимо перезагрузить ОС и, после перезагрузки, выполнить следующие команды:
# /etc/init.d/network restart
# /etc/net/scripts/contrib/initconf write
# reboot