Network CentOS 7
Настройка сетевого интерфейса
Временно
ip a add 10.20.20.30/24 dev eth0
#добавление шлюза по умолчанию
ip r add default via 10.20.20.1 dev eth0
На постоянно
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IP6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
# имя интерфейса
NAME=enp0s3
UUID=aa490401-e69a-4919-a43b-d5b601424030
# автозагрузка да/нет
ONBOOT=yes
DNS1=192.168.0.1
# mac-адрес сетевой карты
HWADDR=08:00:27:54:59:C8
# ip адрес
IPADDR=192.168.0.103
PREFIX=24
# шлюз по умолчанию
GATEWAY=192.168.0.1
После внесения изменений нужно перезапустить сетевые службы.
systemctl restart network
Допонительный адрес сетевого интерфейса
Временный
ip a add 10.20.20.30/24 dev eth0
Постоянный
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IP6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=aa490401-e69a-4919-a43b-d5b601424030
ONBOOT=yes
DNS1=192.168.0.1
HWADDR=08:00:27:54:59:C8
IPADDR=192.168.0.103
PREFIX=24
GATEWAY=192.168.0.1
# дополнительный адрес и его маска
IPADDR1=10.50.23.11
PREFIX1=32
# дополнительный адрес 2 и его маска
IPADDR2=10.60.2.18
PREFIX2=25
После внесения изменений нужно перезапустить сетевые службы.
systemctl restart network
Настройка сетевого интерфейса для приема тегированого трафика
Временный
ip link add link eth0 name eth0.8 type vlan id 8
Постоянный
Подготавливаем физический интерфейс
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
DEVICE=enp0s3
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
Настраиваем тегированый интерфейс
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3.192
DEVICE=enp0s3.192
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.1
PREFIX=24
NETWORK=192.168.1.0
VLAN=yes
После внесения изменений нужно перезапустить сетевые службы.
systemctl restart network
Настройка сетевого моста
Подготавливаем физический интерфейс
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
DEVICE=ethX
TYPE=Ethernet
HWADDR=AA:BB:CC:DD:EE:FF
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0
Настраиваем мост
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
DELAY=0
После внесения изменений нужно перезапустить сетевые службы.
systemctl restart network
Настройка LAG/LACP/Bonding
Настроим и включим сответствующие модули ядра
modprobe bonding
vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=4 lacp_rate=1
Подготавливаем физические интерфейсы
vim /etc/sysconfig/network-scripts/ifcfg-eno1
DEVICE=eno1
NM_CONTROLLED=no
BOOTPROTO=none
NAME=eno1
ONBOOT=yes
SLAVE=yes
MASTER=bond0
vim /etc/sysconfig/network-scripts/ifcfg-eno2
DEVICE=eno2
NM_CONTROLLED=no
BOOTPROTO=none
NAME=eno1
ONBOOT=yes
SLAVE=yes
MASTER=bond0
Строим LAG интерфейс
vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
IPADDR=10.1.1.5
NETMASK=255.255.255.0
GATEWAY=10.1.1.1
DNS1=10.1.1.1
DNS2=10.1.1.2
#IPV6INIT=yes
ONBOOT=yes
USERCTL=no
После внесения изменений нужно перезапустить сетевые службы.
systemctl restart network
Просмотр статуса LAG интерфейса
cat /proc/net/bonding/bond0
Уровни агрегации
- mode=0 (balance-rr)
Последовательно кидает пакеты, с первого по последний интерфейс.
- mode=1 (active-backup)
Один из интерфейсов активен. Если активный интерфейс выходит из строя (link down и т.д.), другой интерфейс заменяет активный. Не требует дополнительной настройки коммутатора
- mode=2 (balance-xor)
Передачи распределяются между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс работает с определённым получателем. Режим даёт балансировку нагрузки и отказоустойчивость.
- mode=3 (broadcast)
Все пакеты на все интерфейсы
- mode=4 (802.3ad)
Link Agregation — IEEE 802.3ad, требует от коммутатора настройки.
- mode=5 (balance-tlb)
Входящие пакеты принимаются только активным сетевым интерфейсом, исходящий распределяется в зависимости от текущей загрузки каждого интерфейса. Не требует настройки коммутатора.
- mode=6 (balance-alb)
Тоже самое что 5, только входящий трафик тоже распределяется между интерфейсами. Не требует настройки коммутатора, но интерфейсы должны уметь изменять MAC.
Возврат старых имен сетевых интерфейсов (eth*) / отключение назначения имен согласно BIOS
В CentOS 7 после установки (по умолчанию) названия сетевых интерфейсов имеют вид enp2s0, enp4s2f0 это связано с тем что названия формируются согласно с номером PCI линии в которую они подключены, для того чтобы вернуть привычные eth* нужно:
1) выключить модули ядра дающие такие имена. Делается ето добавлениям опций net.ifnames=0 biosdevname=0 в загрузчик ядра (GRUB2).
vim /etc/default/grub
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.keymap=us crashkernel=auto rd.lvm.lv=centos/root vconsole.font=latarcyrheb-sun16 rhgb quiet net.ifnames=0 biosdevname=0"
2) перегенерируем конфиг загрузчика
grub2-mkconfig -o /boot/grub2/grub.cfg
3) изменим названия конфигов сетевых интерфейсов и названия самих интерфейсов в этих конфигах
cd /etc/sysconfig/network-scripts
cp ifcfg-enp2s0 ifcfg-eth0
vim ifcfg-eth0
4) Перезагрузим систему для применения изменений.