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

Материал из Webko Wiki
Перейти к навигации Перейти к поиску
 
(не показана 1 промежуточная версия этого же участника)
Строка 108: Строка 108:
  
 
== Настройка сетевого моста ==
 
== Настройка сетевого моста ==
 +
Устанавливаем необходимые утилиты, модули
 +
<syntaxhighlight lang="bash">
 +
yum install bridge-utils -y
 +
</syntaxhighlight>
 +
 
Подготавливаем физический интерфейс
 
Подготавливаем физический интерфейс
  
Строка 215: Строка 220:
 
== Возврат старых имен сетевых интерфейсов (eth*) / отключение назначения имен согласно BIOS ==
 
== Возврат старых имен сетевых интерфейсов (eth*) / отключение назначения имен согласно BIOS ==
 
В CentOS 7 после установки (по умолчанию) названия сетевых интерфейсов имеют вид enp2s0, enp4s2f0 это связано с тем что названия формируются согласно с номером PCI линии в которую они подключены, для того чтобы вернуть привычные eth* нужно:
 
В CentOS 7 после установки (по умолчанию) названия сетевых интерфейсов имеют вид enp2s0, enp4s2f0 это связано с тем что названия формируются согласно с номером PCI линии в которую они подключены, для того чтобы вернуть привычные eth* нужно:
1) выключить модули ядра дающие такие имена. Делается ето добавлениям опций '''net.ifnames=0 biosdevname=0''' в загрузчик ядра (GRUB2).
+
 
 +
'''1)''' выключить модули ядра дающие такие имена. Делается ето добавлениям опций '''net.ifnames=0 biosdevname=0''' в загрузчик ядра (GRUB2).
  
 
''vim /etc/default/grub''
 
''vim /etc/default/grub''
Строка 222: Строка 228:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
2) перегенерируем конфиг загрузчика
+
'''2)''' перегенерируем конфиг загрузчика
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
grub2-mkconfig -o /boot/grub2/grub.cfg
 
grub2-mkconfig -o /boot/grub2/grub.cfg
 
</syntaxhighlight>
 
</syntaxhighlight>
  
3) изменим названия конфигов сетевых интерфейсов и названия самих интерфейсов в этих конфигах
+
'''3)''' изменим названия конфигов сетевых интерфейсов и названия самих интерфейсов в этих конфигах
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
cd /etc/sysconfig/network-scripts
 
cd /etc/sysconfig/network-scripts
Строка 234: Строка 240:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
4) Перезагрузим систему для применения изменений.
+
'''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) Перезагрузим систему для применения изменений.