Агрегация интерфейсов в Ubuntu 16.04 LTS, lacp, бондинг

Объединение сетевых карт в Linux можно осуществить с помощью драйвера bonding, он предоставляет методы для агрегирования нескольких сетевых интерфейсов в один логический. Поведение связанных интерфейсов зависит от режима. В общем случае, объединенные интерфейсы могут работать в режиме горячего резерва (отказоустойчивости) или в режиме балансировки нагрузки. Ядро в Ubuntu 16.04 LTS имеет этот драйвер в виде модуля bonding и утилиты пользовательского уровня ifenslave для управления им. Утилита ifenslave обычно не установлена, её нужно установить отдельно. Приступим к настройке Для начала установим требуемый пакет apt-get install ifenslave Отредактируем файл (это обычно не нужно) 1 2 3 # vim /etc/modprobe.d/bonding.conf bonding mode=4 miimon=100 lacp_rate=1​ Отредактируем файл с настройками сетевых интерфейсов 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # vim /etc/network/interfaces auto eth0 iface eth0 inet manual bond-master bond0 auto eth1 iface eth1 inet manual bond-master bond0 auto bond0 iface bond0 inet static bond-mode 4 bond-miimon 100 bond-lacp-rate 1 bond-slaves none address 10.0.0.80 gateway 10.0.0.1 netmask 255.255.255.0 Для применения изменений нужно выполнить ...

24 квітня 2020 · 2 хвилин · 336 слів · dimetrius

Настройка сети в LiveCD CentOS 6

Часто приходится выполнять какие-то действия из-под LIveCD, при этом требуется настроить доступность сервера по сети. Обычно это CentOS 6. Останавливаем NetworkManager, иначе он будет время от времени переписывать наши настройки. 1 # service NetworkManager stop Редактируем список DNS серверов 1 # vi /etc/resolv.conf Добавляем в него записи 1 2 nameserver 1.1.1.1 nameserver 8.8.8.8 Настраиваем IP на интерфейсе 1 # ifconfig eth0 inet 192.168.0.11/24 После этого пункта выполнение может не завершаться, можно оборвать нажатием Ctrl+C. Настраиваем маршрут по умолчанию 1 # route add default gw 192.168.0.1 eth0 Готово, можно пользоваться интернетом на сервере.

9 травня 2019 · 1 хвилина · 92 слів · dimetrius

Настраиваем LACP, бондинг на Debian 9.8

В этой заметке я хочу привести пример конфигурации для настройки LACP, Bonding, Bond - интерфейса для ОС Debian 9.8. А если ближе к людям, то речь пойдёт об агрегации нескольких физических интерфейсов в один логический. Не важно какой у вас железо, важно чтоб было требуемое количество сетевых интерфейсов. Конечно же обновляем дерево пакетов # apt update Устанавливаем требуемые пакеты # apt install ifenslave Отключаем существующие интерфейсы (можно пропустить, если перезагрузить сервер после настройки) 1 2 ifdown eth0 (Выполните для всех интерфейсов, которые планируете включить в агрегацию) /etc/init.d/networking stop Иногда, если не сработали команды выше, можно использовать # ifconfig eth0 down Правим /etc/network/interfaces 1 2 3 4 5 6 7 8 9 10 11 12 13 14 auto eno1 iface eno1 inet manual auto eno2 iface eno2 inet manual auto bond0 iface bond0 inet static address IPADDRESS/24 gateway GATEWAY dns-nameservers DNS1 DNS2 slaves eno1 eno2 bond-mode 802.3ad bond-lacp-rate slow Включаем настроенный сетевой интерфейс (или перезагружаем сервер) 1 2 ifup bond0 /etc/init.d/networking start После успешного поднятия интерфейса мы можем наблюдать за его состоянием в файле /proc/net/bonding/bond0 ...

3 квітня 2019 · 3 хвилин · 510 слів · dimetrius

Изменяем скорость и дуплекс сетевой карты в Linux

Для изменения скорости и дуплекса сетевой карты, можно воспользоваться утилитой ethtool. Установка ETHTOOL Для установки ethtool, выполните одну из следующих команд, в зависимости от Вашего дистрибутива Linux. Установка ethtool в Fedora, CentOS, RHEL и т. д.: 1 # yum install ethtool Установка ethtool в Ubuntu, Debian и т. д.: 1 # sudo apt-get install ethtool Узнать скорость, дуплекс и прочую информации о сетевом интерфейсе eth0 Для того, чтобы узнать текущую скорость, дуплекс и прочую информацию об интерфейсе eth0, выполните следующую команду с правами пользователя root. 1 # ethtool eth0 Пример результата выполнения команды: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Settings for eth0: Supported ports: [ MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Half Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: g Wake-on: d Current message level: 0x000000ff (255) Link detected: yes Изменение настроек скорости и дуплекса Данные изменения являются временными и перестанут действовать после перезагрузки. См. п.4, если Вам необходимы изменения на постоянной основе. Примеры Активировать функцию Авто-Определения: # ethtool -s eth0 autoneg on​ ...

27 червня 2018 · 2 хвилин · 307 слів · dimetrius

Intel 10Gbit и несовместимый SFP+ модуль

Итак, есть сервер под CentOS 7 , в котором установлена сетевая карта Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01), хотя может быть и другая аналогичная от Intel. Проблема заключается в том, что не все SFP+ модули будут в ней работать, например EX-SFP-10GE-LR или EX-SFP-10GE-LR-С отказываются запускаться с ошибкой: ixgbe 0000:04:00.0: failed to load because an unsupported SFP+ module type was detected. В общем, отсюда следует, что сетевая карта не знает такой SFP модуль и не уверена, что сможет с ним работать. Но эту проблему можно обойти и запустить их работать в паре, только если это запускается в продакшене, то лучше хорошо всё протестировать после запуска. Для успешного запуска такого модуля в первую очередь нужно выгрузить драйвер командой modprobe ixgbe -r после чего загружаем его обратно с опцией allow_unsupported_sfp=1 командой modprobe ixgbe allow_unsupported_sfp=1 Если после данных манипуляций сетевой интерфейс успешно определился можно перезапустить сеть или поднять его вручную и убедиться в корректной работе. Если сетевых интерфейсов несколько, то может потребоваться прописать 1 для каждого из них, делается это по количеству и через запятую. Для четырех интерфейсов опция будет выглядеть так: allow_unsupported_sfp=1,1,1,1. Для обеспечения автоматического применения данной опции следует прописать ей в соответствующий конфигурационный файл, например /etc/modprobe.d/ixgbe.conf : options ixgbe allow_unsupported_sfp=1 Данная опция позволит подгрузить модуль с опцией через modprobe, однако всё равно после ребута не поможет, тут потребуется дописать следующую опцию для ядра через конфиг загрузчика (grub): ixgbe.allow_unsupported_sfp=1 ...

21 березня 2018 · 2 хвилин · 242 слів · dimetrius

Упорядочивание и изменение имён сетевых интерфейсов Ubuntu 16.04 LTS

В ранних версиях Ubuntu 16.04 сетевые устройства именуются в зависимости от информации из их BIOS. Это может быть enp6s0, wlp7s0 и тому подобное. Для изменения имён на привычные всем ethX требуется выполнить несколько шагов. 1 vim /etc/default/grub​ Добавляем в строку 1 GRUB_CMDLINE_LINUX=""​ параметры 1 GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"​ После этого выполняем 1 $ sudo update-grub​ и перезагружаем ОС 1 $ sudo reboot​ Уже сейчас мы получаем сетевые интерфейсы с именами ethX. Но нас может не устраивать порядок интерфейсов, или же порядок интерфейсов может изменяться после каждой перезагрузки. В таком случае выполняем ещё один шаг. Создаём файл $ sudo gedit /etc/udev/rules.d/70-persistent-net.rules​ с примерным содержимым 1 2 3 4 5 6 7 8 9 10 11 # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device lan Device SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:yy:XX:yy:XX:yy", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="ethX" # PCI device Wlan Device SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:yy:XX:yy:XX:yy", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="wlanX" Здесь нужно изменить MAC адрес реального вашего устройства и ethX, wlanX на желаемые вами eth0, eth1, wlan0 и так далее. Снова перезагружаемся $ sudo reboot ...

30 червня 2017 · 2 хвилин · 215 слів · dimetrius

Дополнительные IP в CentOS

Пусть для примера установлен 1 ip на интерфейсе eth0: 1 2 eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 Задача: добавить еще один адрес 192.168.0.11. Создадим /etc/sysconfig/network-scripts/ifcfg-eth0:0 со следующим содержанием: 1 2 3 4 5 DEVICE=eth0:0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.11 NETMASK=255.255.255.255 Это можно сделать выполнив команду: vim ifcfg-eth0:0 После этого выполняем service network restart Выполняем ifconfig, видим что появился eth0:0 1 2 3 4 eth0:0 Link encap:Ethernet HWaddr 00:11:22:33:44:55 inet addr:192.168.0.11 Bcast:192.168.0.11 Mask:255.255.255.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:185 Base address:0xa000 Теперь несколько усложним задачу, предположим нам нужно добавить 20 штук ip 192.168.0.101-120. Можно сделать 20 конфигов, аналогичных указанному выше, но для добавления непрерывного диапазона ip есть способ лучше. Создадим /etc/sysconfig/network-scripts/ifcfg-eth0-range0 1 2 3 4 5 IPADDR_START=192.168.0.101 IPADDR_END=192.168.0.120 NETMASK=255.255.255.255 CLONENUM_START=1 NO_ALIASROUTING=yes Выполним service network restart В результате появятся 20 алиасов eth0:1 - eth0:20, c заданными нами адресами. Нужно отметить что добавлять/изменять/удалять ip-адреса можно с помощью команд ip и ifconfig, например если нужно временно поднять дополнительный адрес: ifconfig eth0:0 inet 192.168.0.11/32 Естественно, после перезагрузки адрес пропадет. Чтобы убрать: ifconfig eth0:0 down ...

13 квітня 2016 · 1 хвилина · 204 слів · dimetrius

Запуск, остановка и перезапуск сетевых интерфейсов в ОС Ubuntu Server 14.04, Debian 7

С некоторых пор команды запуска, остановки, перезапуска сетевых интерфейсов не срабатывают так, как мы того ждём. 1 2 3 service networking start service networking stop service networking restart Вместо них теперь используются новые команды: запуск сетевого интерфейса eth0 ifup eth0 остановка сетевого интерфейса eth0 ifdown eth0 и, соответственно, перезапуск ifdown eth0 && sudo ifup eth0

13 квітня 2016 · 1 хвилина · 55 слів · dimetrius

Настройка PPTP-сервера в Debian/Ubuntu

Эта статья описывает установку и настройку того самого PPTP-сервера под управлением Linux. В качестве исходных данных будем использовать: офисный интернет-шлюз под управлением Ubuntu Server 7.10 с адресом в локальной сети 192.168.1.1. Для начала устанавливаем всё необходимое: 1 apt-get install ppp pptpd Далее приступаем к настройке. Всё достаточно просто. Первым делом открываем в редакторе файл /etc/pptpd.conf и дописываем в конец следующие строки: 1 2 3 4 5 # IP-адрес сервера в локальной сети localip 192.168.1.1 # Диапазон адресов для клиентов PPTP-сервера remoteip 192.168.1.200-254 Следующим шагом дописываем в файл /etc/ppp/pptpd-options следующие две строчки: 1 2 3 4 5 # требуем авторизацию у клиентов auth # Используем шифрование require-mppe Ну и наконец открываем в редакторе файл /etc/ppp/chap-secrets и заполняем строчками вида: 1 2 3 4 5 6 # Если пользователь должен динамически получать IP-адрес # из диапазона remoteip в pptpd.conf: user1 pptpd password1 "*" # Если мы хотим привязать определённый IP к логину: user2 pptpd password2 "192.168.1.101" После этого перезапускаем pptpd: /etc/init.d/pptpd restart Скорее всего на сервере стоит файрволл. Добавим в скрипт iptables несколько строк: ...

13 квітня 2016 · 2 хвилин · 244 слів · dimetrius

Немного о маршрутизации

Я часто настраиваю людям роутеры. В основном это что-то из D-Link, TP-Link, Asus, реже какой-то хлам и ещё реже Mikrotik. После того, как убрал из дома сервер, на котором хостились все мои сайты, который выполнял функции роутера, возник вопрос подбора роутера для домашней сети. Опыта довольно много, поэтому все приемлемые изделия D-Link сразу же откинулись. Пал мой взгляд на TP-Link TL-WR1043ND. На тот момент у него была максимальная производительность среди “бытовых” роутеров. Роутер куплен, предстоит настройка. Обычно это занимает не более 10 минут, но в этот раз пришлось повозиться. Мой провайдер предоставляет локалку, а через неё доступ к PPTP, PPPOE, L2TP серверам. Так называемый Dual Access. Для того чтоб всё это дело одновременно работало необходимо прописать маршрут на 192.168.0.0/16 (или 255.255.0.0). При этом я хочу в домашней сети оставить подсеть 192.168.0.0-255. Обычно роутеры не против такого. Но TP-Link оказался не обычным роутером, а со своими фокусами. Он отказался прописывать маршрут 192.168.0.0 255.255.0.0, потому что внутренняя сеть пересекалась с этой. Я не забыл что провайдер не использует нулевую подсеть, соответственно у меня остался вариант прописать маршруты на все подсети, кроме нулевой. Именно об этом я и хочу вам поведать, точнее сохранить эти маршруты на память, вдруг ещё пригодятся, а помощи искать негде будет. Адрес (хост или сеть) Битов или маска Шлюз 192.168.1.0 24 или 255.255.255.0 ваш шлюз 192.168.2.0 23 или 255.255.254.0 ваш шлюз 192.168.4.0 22 или 255.255.252.0 ваш шлюз 192.168.8.0 21 или 255.255.248.0 ваш шлюз 192.168.16.0 20 или 255.255.240.0 ваш шлюз 192.168.32.0 19 или 255.255.224.0 ваш шлюз 192.168.64.0 18 или 255.255.192.0 ваш шлюз 192.168.128.0 17 или 255.255.128.0 ваш шлюз Таким образом мне удалось добиться полноценной работы внутренней сети моего провайдера и моей внутренней сети 192.168.0.0-255. ...

13 квітня 2016 · 2 хвилин · 325 слів · dimetrius