Arquivo mensal 26 de novembro de 2020

porplague70

Agregação de interfaces de rede

Agregação de interfaces de rede

Objectivo

A maior parte dos sistemas actuais dispõe de 2 ligações Ethernet. Estas podem ser utilizadas em separado ou em paralelo, numa técnica chamada bonding. Esta técnica é muito interessante, uma vez que possibilita o balanceamento de dados (os dados são transmitidos pelas 2 interfaces) e tolerância a falhas (caso uma ligação falhe, a transmissão é assegurada pela outra).

No nosso servidor, iremos agregar as duas interfaces físicas do sistema eth0 e eth1 para criar uma nova interface de rede bond0 de alta disponibilidade.Ethernet bonding
Ethernet bonding, regulado pela norma IEEE 802.3ad com o título link aggregation é um termo da disciplina de redes de computadores que descreve o acoplamento de dois ou mais canais Ethernet em paralelo para produzir um único canal de maior velocidade e/ou aumentar a disponibilidade e redundância desse canal.

Instalação

root@server~# aptitude install ifenslave

Configuração

Para criar a interface bond0 deverá ser carregado e configurado o módulo bonding do kernel. Este módulo será carregado automaticamente após a configuração; por agora deverá ser carregado manualmente:

root@server:~# modprobe bonding

Verificar que está realmente carregado:

root@server:~# lsmod | grep bonding
bonding                65204  0

O passo seguinte é a parametrização da nova interface de rede e remoção (ou comentar) qualquer referência às interfaces físicas por ela usadas, o que é feito no ficheiro /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# allow-hotplug eth0
# iface eth0 inet dhcp

# Static IP address
# auto eth0
# iface eth0 inet static
#        address 192.168.1.100
#        netmask 255.255.255.0
#        network 192.168.1.0
#        broadcast 192.168.1.255
#        gateway 192.168.1.1

# Interface bonding
# Static IP address
auto bond0
iface bond0 inet static
        bond-slaves eth0 eth1
        bond-mode balance-rr
        bond-miimon 100
        bond-primary eth0 eth1

        address 192.168.1.100
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1

O parâmetro bond-mode balance-rr indica que a interface irá operar em modo balance-rr, em que os dados serão transmitidos alternadamente pelas diversas interfaces físicas que compõem a nova interface bond0.

Finalmente, reiniciar os serviços de rede:

root@server:~# /etc/init.d/networking restart

Verificação

O comando ifconfig permite verificar o estado das interfaces de rede:

root@server:~# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:30:1b:b0:6e:84
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::230:1bff:feb0:6e84/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:23339499 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11308048 errors:0 dropped:0 overruns:5 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:182934407 (174.4 MiB)  TX bytes:1008040228 (961.3 MiB)

eth0      Link encap:Ethernet  HWaddr 00:30:1b:b0:6e:84
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:12004063 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5654023 errors:0 dropped:0 overruns:5 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:597782690 (570.0 MiB)  TX bytes:519229722 (495.1 MiB)
          Interrupt:18 Base address:0xa000

eth1      Link encap:Ethernet  HWaddr 00:30:1b:b0:6e:84
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:11335436 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5654025 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3880119013 (3.6 GiB)  TX bytes:488810506 (466.1 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:193243 errors:0 dropped:0 overruns:0 frame:0
          TX packets:193243 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:31609190 (30.1 MiB)  TX bytes:31609190 (30.1 MiB)

A interface bond0 tem atribuído um endereço Internet e as 3 interfaces (bond0eth0 e eth1) têm o mesmo endereço físico (“HWaddr 00:30:1b:b0:6e:84”), para que sejam “vistas” pelo resto da rede como sendo apenas uma.

porplague70

Ethernet RTL 8168 driver on Debian

Ethernet RTL 8168 driver on Debian

By default on Debian is used 8169 driver instead of 8168 (Realtek ethernet driver). Also, 8168 driver does not exist.

~# find /lib/modules/`uname -r`/kernel/drivers/net/ethernet/ -name *816*
/lib/modules/3.16.0-4-amd64/kernel/drivers/net/ethernet/realtek/r8169.ko

The network device

~# lspci |grep Ether
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 09)

The loaded driver

~# lsmod |grep 816
r8169                  68262  0 

Driver installation

~# apt-get update
~# apt-get install dkms
~# wget https://www.unixteacher.org/download/r8168-dkms_8.040.00-1_all.deb
~# dpkg -i r8168-dkms_8.040.00-1_all.deb 
Selecting previously unselected package r8168-dkms.
(Reading database ... 45372 files and directories currently installed.)
Preparing to unpack r8168-dkms_8.040.00-1_all.deb ...
Unpacking r8168-dkms (8.040.00-1) ...
Setting up r8168-dkms (8.040.00-1) ...
Loading new r8168-8.040.00 DKMS files...
First Installation: checking all kernels...
...........
~# init 6

After reboot everything looks ok

~# lsmod |grep 816
r8168                 490633  0 
~# dmesg |grep 8168
[    0.245756] pci 0000:03:00.0: [10ec:8168] type 00 class 0x020000
[    0.538032] r8168 Gigabit Ethernet driver 8.040.00-NAPI loaded
[    0.538150] r8168 0000:03:00.0: irq 41 for MSI/MSI-X
[    0.559287] r8168: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625.
[    0.559290] r8168  Copyright (C) 2015  Realtek NIC software team  
[    4.557205] r8168: eth0: link up

// Update: For Debian Stretch, you can install r8168-dkms from non-free. Is not necessary to download the package.

apt-get install build-essential linux-headers-`uname -r` r8168-dkms

My ‘/etc/apt/sources.list’:

deb http://httpredir.debian.org/debian stretch main non-free contrib
deb-src http://httpredir.debian.org/debian stretch main non-free contrib

deb http://security.debian.org stretch/updates main non-free contrib
deb-src http://security.debian.org stretch/updates main non-free contrib

# stretch-updates, previously known as 'volatile'
deb http://httpredir.debian.org/debian stretch-updates main non-free contrib
deb-src http://httpredir.debian.org/debian stretch-updates main non-free contrib

Published inLinux