servidor Linux duas interfaces de rede

1

Estou configurando um servidor local que vem com duas interfaces de rede (enp3s0f0 e enp3s0f1). Eu gosto de ter ambas as interfaces na mesma sub-rede (192.168.178. *) Com diferentes endereços IP (192.168.178.4 | 192.168.178.5), (é possível ter o mesmo mapeamento de endereço em ambos os dispositivos?) Para arquivar o seguinte:

  • O servidor deve estar acessível com interfaces de 1GBit executando 2 endereços, mas o mesmo domínio. Desta forma, pensei que poderia dividir as conexões DNS-RR e fornecer capacidades de 2GB.
  • O servidor está configurado como host KVM e deve poder conectar as duas interfaces aos clientes. Isso pode permitir que um cliente se beneficie da conexão de 2GBit também.

Este é o meu / etc / network / interfaces atual do host

# Loopback device:
auto lo
iface lo inet loopback

# device: br0
auto  br0
iface br0 inet static
  address   192.168.178.4
  dns-nameservers 8.8.8.8
  netmask   255.255.255.0
  gateway   192.168.178.1
  bridge_ports   enp3s0f0
  bridge_stp     off
  bridge_fd      0
  bridge_maxwait 0

  up route add -host 192.168.178.6 dev br0

# device: br1
auto  br1
iface br1 inet static
  address   192.168.178.5
  dns-nameservers 8.8.8.8
  netmask   255.255.255.0
  gateway   192.168.178.1
  bridge_ports   enp3s0f1
  bridge_stp     off
  bridge_fd      0
  bridge_maxwait 0

  up route add -host 192.168.178.7 dev br1

O host agora pode ser acessado por ambos os endereços (.4 / .5), mas arp -a mostrou que eles têm o mesmo mac:

? (192.168.178.4) at c:c4:7a:de:e5:55 on en0 ifscope [ethernet]
? (192.168.178.5) at c:c4:7a:de:e5:55 on en0 ifscope [ethernet]

Meus hosts ifconfig

br0       Link encap:Ethernet  Hardware Adresse 0c:c4:7a:de:e5:54  
          inet Adresse:192.168.178.4  Bcast:192.168.178.255  Maske:255.255.255.0
          inet6-Adresse: fe80::ec4:7aff:fede:e554/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:19698 Fehler:0 Verloren:380 Überläufe:0 Fenster:0
          TX-Pakete:8 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:2717375 (2.7 MB)  TX-Bytes:648 (648.0 B)

br1       Link encap:Ethernet  Hardware Adresse 0c:c4:7a:de:e5:55  
          inet Adresse:192.168.178.5  Bcast:192.168.178.255  Maske:255.255.255.0
          inet6-Adresse: fe80::ec4:7aff:fede:e555/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:21054 Fehler:0 Verloren:380 Überläufe:0 Fenster:0
          TX-Pakete:998 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:2814729 (2.8 MB)  TX-Bytes:246287 (246.2 KB)

enp3s0f0  Link encap:Ethernet  Hardware Adresse 0c:c4:7a:de:e5:54  
          inet6-Adresse: fe80::ec4:7aff:fede:e554/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:28517 Fehler:0 Verloren:38 Überläufe:0 Fenster:0
          TX-Pakete:24 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:5224971 (5.2 MB)  TX-Bytes:1944 (1.9 KB)

enp3s0f1  Link encap:Ethernet  Hardware Adresse 0c:c4:7a:de:e5:55  
          inet6-Adresse: fe80::ec4:7aff:fede:e555/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:30087 Fehler:0 Verloren:38 Überläufe:0 Fenster:0
          TX-Pakete:1282 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:5363437 (5.3 MB)  TX-Bytes:350457 (350.4 KB)

lo        Link encap:Lokale Schleife  
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:65536  Metrik:1
          RX-Pakete:163 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:163 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1 
          RX-Bytes:12176 (12.1 KB)  TX-Bytes:12176 (12.1 KB)

virbr0    Link encap:Ethernet  Hardware Adresse 52:54:00:0b:76:e9  
          inet Adresse:192.168.122.1  Bcast:192.168.122.255  Maske:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)

Esta é a maneira correta de ter o desempenho máximo da rede? Ou há alguma maneira mais inteligente de resolver isso?

    
por christian667 07.07.2017 / 11:27

2 respostas

0

Em geral, é possível, mas o que você está experimentando agora com a tabela ARP é conhecido como arp flux .
Você deve conseguir superar isso definindo os parâmetros da seguinte maneira em /etc/sysctl.conf , dependendo de sua distribuição e lançamento.

net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

Essas configurações só serão aplicadas após a reinicialização, mas você poderá echo desses valores em /proc/sys/net/ipv4/<interface>/[arp_ignore|arp_announce] . Você também precisa limpar seu cache de arp posteriormente e os switches também podem ter uma tabela de arp incorreta. Então seja paciente.

A melhor abordagem seria configurar uma ligação como @ christian667 já mencionada. No linux você configura, e. balanceado-alb que não precisa de suporte ao switch.
Se o seu comutador suporta colagem, use este.

A ligação tornará mais fácil para você e para os outros.

    
por 07.07.2017 / 11:51
0

Ok, acho que vou seguir o caminho da união. Eu não acho que nossos switches suportam a ligação, então eu tento do modo Linux. Meu / etc / network / interfaces ficaria assim:

# Loopback device:
auto lo
iface lo inet loopback

auto bond0
iface bond0 inet static
    address 192.168.178.5
    netmask 255.255.255.0
    network 192.168.178.0
    broadcast 192.168.178.255
    gateway 192.168.178.1
    dns-nameservers 8.8.8.8 
    bond-slaves enp3s0f0 enp3s0f1
    bond-mode 0
    bond-miimon 100
    bond-updelay 200
    bond-downdelay 200

Atualização: esta é minha interface / etc / network / final isso está correto ou estou faltando alguma coisa?

# Loopback device: 
auto lo 
iface lo inet loopback 

auto bond0
iface bond0 inet manual
# 0 - balance-rr
# 6 - balance-alb
# 4 - 802.3ad
bond-mode 6
bond-miimon 100
bond-updelay 200
bond-downdelay 200
bond-slaves none

auto enp3s0f0
iface enp3s0f0 inet manual
bond-master bond0

auto enp3s0f1
iface enp3s0f1 inet manual
bond-master bond0

auto br0
iface br0 inet static
address 192.168.178.5
netmask 255.255.255.0
broadcast 192.168.178.255
gateway 192.168.178.1
dns-nameservers 8.8.8.8
bridge_ports bond0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

up route add -host 192.168.178.6 dev br0
up route add -host 192.168.178.7 dev br0
up route add -host 192.168.178.8 dev br0
up route add -host 192.168.178.9 dev br0
up route add -host 192.168.178.10 dev br0

Atualização 2: Eu tentei vários modos de balanceamento de carga quando tentei atingir um desempenho geral de 2 GBit / s e, finalmente, estou usando o modo 6 (balanceamento de carga adaptável). O servidor raiz KVM agora pode ser acessado com 2 GBit / s (1 GBit / s para cada escritório), mas os clientes KVM só têm 1 GBit / s. Eu testei ambos com iperf.

Preciso fazer mais ajustes para melhorar o desempenho dos clientes?

    
por 07.07.2017 / 12:00