Network CentOS 7: различия между версиями

Материал из Webko Wiki
Перейти к навигации Перейти к поиску
 
(не показаны 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* нужно:
  
Запускаем консольный интерфейс утилиты Network Manager
+
'''1)''' выключить модули ядра дающие такие имена. Делается ето добавлениям опций '''net.ifnames=0 biosdevname=0''' в загрузчик ядра (GRUB2).
nmtui
 
и редактируем настройки сети под свои нужды.
 
Пример
 
  
IPv4 CONFIGURATION : Manual
+
''vim /etc/default/grub''
Addresses : 192.168.0.103/24
+
<syntaxhighlight lang="bash">
Gateway : 192.168.0.1
+
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"
DNS servers : 192.168.0.1
+
</syntaxhighlight>
IPv6 CONFIGURATION : Ignore
 
Automatically connect
 
Set system hostname
 
Hostname: centos7
 
Activate a connection
 
enp0s3
 
  
Ещё один вариант настройки сети — это редактирование файла ''/etc/sysconfig/network-scripts/ifcfg-enp0s3''
+
'''2)''' перегенерируем конфиг загрузчика
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
+
<syntaxhighlight lang="bash">
Пример
+
grub2-mkconfig -o /boot/grub2/grub.cfg
 +
</syntaxhighlight>
  
TYPE=Ethernet
+
'''3)''' изменим названия конфигов сетевых интерфейсов и названия самих интерфейсов в этих конфигах
BOOTPROTO=none
+
<syntaxhighlight lang="bash">
DEFROUTE=yes
+
cd /etc/sysconfig/network-scripts
IPV4_FAILURE_FATAL=no
+
cp ifcfg-enp2s0 ifcfg-eth0
IP6INIT=no
+
vim ifcfg-eth0
IPV6_AUTOCONF=yes
+
</syntaxhighlight>
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
 
  
Перезапуск сети
+
'''4)''' Перезагрузим систему для применения изменений.
systemctl restart network
 
  
 
[[Категория: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) Перезагрузим систему для применения изменений.