Network CentOS 7: различия между версиями
Sol (обсуждение | вклад) |
Sol (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
== Настройка сетевого интерфейса == | == Настройка сетевого интерфейса == | ||
− | === | + | === Временно === |
− | === | + | <syntaxhighlight lang="bash"> |
+ | ip a add 10.20.20.30/24 dev eth0 | ||
+ | #добавление шлюза по умолчанию | ||
+ | ip r add default via 10.20.20.1 dev eth0 | ||
+ | </syntaxhighlight> | ||
+ | === На постоянно === | ||
+ | ''vim /etc/sysconfig/network-scripts/ifcfg-enp0s3'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | После внесения изменений нужно перезапустить сетевые службы. | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | systemctl restart network | ||
+ | </syntaxhighlight> | ||
=== Допонительный адрес сетевого интерфейса === | === Допонительный адрес сетевого интерфейса === | ||
==== Временный ==== | ==== Временный ==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | ip a add 10.20.20.30/24 dev eth0 | ||
+ | </syntaxhighlight> | ||
==== Постоянный ==== | ==== Постоянный ==== | ||
+ | ''vim /etc/sysconfig/network-scripts/ifcfg-enp0s3'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | После внесения изменений нужно перезапустить сетевые службы. | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | systemctl restart network | ||
+ | </syntaxhighlight> | ||
+ | |||
== Настройка сетевого интерфейса для приема тегированого трафика == | == Настройка сетевого интерфейса для приема тегированого трафика == | ||
=== Временный === | === Временный === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | ip link add link eth0 name eth0.8 type vlan id 8 | ||
+ | </syntaxhighlight> | ||
=== Постоянный === | === Постоянный === | ||
+ | Подготавливаем физический интерфейс | ||
+ | |||
+ | ''vim /etc/sysconfig/network-scripts/ifcfg-enp0s3'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | DEVICE=enp0s3 | ||
+ | TYPE=Ethernet | ||
+ | BOOTPROTO=none | ||
+ | ONBOOT=yes | ||
+ | </syntaxhighlight> | ||
+ | Настраиваем тегированый интерфейс | ||
+ | |||
+ | ''vim /etc/sysconfig/network-scripts/ifcfg-enp0s3.192'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | DEVICE=enp0s3.192 | ||
+ | BOOTPROTO=none | ||
+ | ONBOOT=yes | ||
+ | IPADDR=192.168.1.1 | ||
+ | PREFIX=24 | ||
+ | NETWORK=192.168.1.0 | ||
+ | VLAN=yes | ||
+ | </syntaxhighlight> | ||
+ | После внесения изменений нужно перезапустить сетевые службы. | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | systemctl restart network | ||
+ | </syntaxhighlight> | ||
+ | |||
== Настройка сетевого моста == | == Настройка сетевого моста == | ||
− | == Настройка LAG/LACP == | + | Устанавливаем необходимые утилиты, модули |
+ | <syntaxhighlight lang="bash"> | ||
+ | yum install bridge-utils -y | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Подготавливаем физический интерфейс | ||
+ | |||
+ | ''vim /etc/sysconfig/network-scripts/ifcfg-enp0s3'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | DEVICE=ethX | ||
+ | TYPE=Ethernet | ||
+ | HWADDR=AA:BB:CC:DD:EE:FF | ||
+ | BOOTPROTO=none | ||
+ | ONBOOT=yes | ||
+ | NM_CONTROLLED=no | ||
+ | BRIDGE=br0 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Настраиваем мост | ||
+ | |||
+ | ''vim /etc/sysconfig/network-scripts/ifcfg-br0'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | DEVICE=br0 | ||
+ | TYPE=Bridge | ||
+ | IPADDR=192.168.1.1 | ||
+ | NETMASK=255.255.255.0 | ||
+ | ONBOOT=yes | ||
+ | BOOTPROTO=none | ||
+ | NM_CONTROLLED=no | ||
+ | DELAY=0 | ||
+ | </syntaxhighlight> | ||
+ | После внесения изменений нужно перезапустить сетевые службы. | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | systemctl restart network | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Настройка LAG/LACP/Bonding == | ||
+ | Настроим и включим сответствующие модули ядра | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | modprobe bonding | ||
+ | </syntaxhighlight> | ||
+ | ''vim /etc/modprobe.d/bond.conf'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | alias bond0 bonding | ||
+ | options bond0 miimon=100 mode=4 lacp_rate=1 | ||
+ | </syntaxhighlight> | ||
+ | Подготавливаем физические интерфейсы | ||
+ | |||
+ | ''vim /etc/sysconfig/network-scripts/ifcfg-eno1'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | DEVICE=eno1 | ||
+ | NM_CONTROLLED=no | ||
+ | BOOTPROTO=none | ||
+ | NAME=eno1 | ||
+ | ONBOOT=yes | ||
+ | SLAVE=yes | ||
+ | MASTER=bond0 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ''vim /etc/sysconfig/network-scripts/ifcfg-eno2'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | DEVICE=eno2 | ||
+ | NM_CONTROLLED=no | ||
+ | BOOTPROTO=none | ||
+ | NAME=eno1 | ||
+ | ONBOOT=yes | ||
+ | SLAVE=yes | ||
+ | MASTER=bond0 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Строим LAG интерфейс | ||
+ | |||
+ | ''vim /etc/sysconfig/network-scripts/ifcfg-bond0'' | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | После внесения изменений нужно перезапустить сетевые службы. | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | systemctl restart network | ||
+ | </syntaxhighlight> | ||
+ | === Просмотр статуса 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 == | == Возврат старых имен сетевых интерфейсов (eth*) / отключение назначения имен согласно BIOS == | ||
+ | В CentOS 7 после установки (по умолчанию) названия сетевых интерфейсов имеют вид enp2s0, enp4s2f0 это связано с тем что названия формируются согласно с номером PCI линии в которую они подключены, для того чтобы вернуть привычные eth* нужно: | ||
− | + | '''1)''' выключить модули ядра дающие такие имена. Делается ето добавлениям опций '''net.ifnames=0 biosdevname=0''' в загрузчик ядра (GRUB2). | |
− | |||
− | |||
− | |||
− | + | ''vim /etc/default/grub'' | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | 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" | |
− | + | </syntaxhighlight> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | '''2)''' перегенерируем конфиг загрузчика | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | grub2-mkconfig -o /boot/grub2/grub.cfg | |
+ | </syntaxhighlight> | ||
− | + | '''3)''' изменим названия конфигов сетевых интерфейсов и названия самих интерфейсов в этих конфигах | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | cd /etc/sysconfig/network-scripts | |
− | + | cp ifcfg-enp2s0 ifcfg-eth0 | |
− | + | vim ifcfg-eth0 | |
− | + | </syntaxhighlight> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | '''4)''' Перезагрузим систему для применения изменений. | |
− | |||
[[Категория:Linux]] | [[Категория:Linux]] |
Текущая версия на 12:31, 10 апреля 2018
Настройка сетевого интерфейса
Временно
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
Настройка сетевого моста
Устанавливаем необходимые утилиты, модули
yum install bridge-utils -y
Подготавливаем физический интерфейс
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) Перезагрузим систему для применения изменений.