AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 474973
Accepted
slm
slm
Asked: 2018-10-12 21:35:54 +0800 CST2018-10-12 21:35:54 +0800 CST 2018-10-12 21:35:54 +0800 CST

Gostaria de configurar uma interface bond0 usando dispositivos 2 eth no CentOS 7 no VirtualBox?

  • 772

Eu gostaria de configurar uma VM CentOS 7.x dentro do VirtualBox para que eu possa experimentar interfaces de ligação. Como posso configurar esta VM para que ela tenha as seguintes interfaces:

  • eth1 (rede privada - 192.168.56.101)
  • eth2 (escravo para bond0)
  • eth3 (escravo para bond0)
  • bond0 (usando LACP)

Usar o Vagrant para facilitar a configuração seria útil, por isso é mais fácil de replicar.

NOTA: Eu gostaria de fazer a configuração manualmente, então mostre um exemplo onde o NetworkManager está desabilitado.

networking centos
  • 1 1 respostas
  • 1354 Views

1 respostas

  • Voted
  1. Best Answer
    slm
    2018-10-12T21:35:54+08:002018-10-12T21:35:54+08:00

    Configurando o Vagrant

    Para começar, você pode usar o seguinte Vagrantfilepara construir sua VM:

    $ cat Vagrantfile
    Vagrant.configure("2") do |config|
    
      config.vm.box = "centos/7"
      config.vm.hostname="box-101"
      config.ssh.forward_x11 = true
    
      config.vm.network "private_network", ip: "192.168.56.101"
      config.vm.network "public_network", bridge: "en0: Wi-Fi (Wireless)", auto_config: false
      config.vm.network "public_network", bridge: "en0: Wi-Fi (Wireless)", auto_config: false
    
      config.vm.provider "virtualbox" do |vb|
        vb.memory = "2048"
      end
    
      config.vm.provision "shell", inline: <<-SHELL
        yum install -y git vim socat tcpdump wget sysstat
        yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
      SHELL
    end
    

    NOTA: A NIC que estou usando para meus public_network's é o bridge: "en0: Wi-Fi (Wireless)"dispositivo do meu Macbook. Se você estiver fazendo isso em qualquer outra coisa, precisará alterá-lo para uma NIC apropriada em seu sistema host onde o Vagrant/VirtualBox está sendo executado.

    O arquivo acima contém 3 NICs que resultarão quando a VM for iniciada. Para iniciar a VM e o SSH nela:

    $ vagrant up
    $ vagrant ssh
    

    Configuração de rede inicial

    Se observarmos a rede resultante, veremos o seguinte:

    $ ip a l
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 52:54:00:c0:42:d5 brd ff:ff:ff:ff:ff:ff
        inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
           valid_lft 85127sec preferred_lft 85127sec
        inet6 fe80::5054:ff:fec0:42d5/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:ce:88:39 brd ff:ff:ff:ff:ff:ff
        inet 192.168.56.101/24 brd 192.168.56.255 scope global noprefixroute eth1
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:27ff:fece:8839/64 scope link
           valid_lft forever preferred_lft forever
    4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:d7:c2:ec brd ff:ff:ff:ff:ff:ff
        inet6 fe80::df68:9ee2:4b5:ad5f/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:59:b0:69 brd ff:ff:ff:ff:ff:ff
    

    E o roteamento correspondente:

    $ ip r
    default via 10.0.2.2 dev eth0 proto dhcp metric 100
    10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 metric 100
    192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.101 metric 102
    

    Desativar Gerenciador de Rede

    Para esta VM vamos desabilitar o NetworkManager, só para podermos configurar manualmente a interface de ligação + slaves.

    $ for i in NetworkManager-dispatcher NetworkManager NetworkManager-wait-online; do
        systemctl disable $i && systemctl stop $i
      done
    

    Confirmando que o NM agora está desabilitado:

    $ systemctl list-unit-files |grep NetworkManager
    NetworkManager-dispatcher.service             disabled
    NetworkManager-wait-online.service            disabled
    NetworkManager.service                        disabled
    

    Configurando a interface de ligação

    Para começar vamos construir 3 arquivos. 1 para a interface bond0 e 1 para cada uma das 2 interfaces que vamos usar como slaves (eth2 & eth3).

    ifcfg-bond0

    $ cat /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    Type=Bond
    NAME=bond0
    BONDING_MASTER=yes
    BOOTPROTO=none
    ONBOOT=yes
    IPADDR=192.168.1.232
    PREFIX=24
    GATEWAY=192.168.1.2
    BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
    

    NOTA: mode=4 é (802.3ad) também conhecido como. LACP. miimon=100é 100ms de intervalo de verificação e lacp_rate=1é TX rápido do parceiro. Você pode ver todos os parâmetros que o módulo bonding aceita através deste comando modinfo bonding.

    eth2

    $ cat /etc/sysconfig/network-scripts/ifcfg-eth2
    DEVICE=eth2
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    NM_CONTROLLED=no
    IPV6INIT=no
    MASTER=bond0
    SLAVE=yes
    

    eth3

    $ cat /etc/sysconfig/network-scripts/ifcfg-eth3
    DEVICE=eth3
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    NM_CONTROLLED=no
    IPV6INIT=no
    MASTER=bond0
    SLAVE=yes
    

    NOTA: No exemplo acima, estou atribuindo estaticamente à interface bond0 o endereço IP 192.168.1.232 e o gateway 192.168.1.2. Você vai querer alterá-los para algo apropriado para sua situação.

    Iniciando a interface

    De longe, a maneira mais fácil de iniciar a rede é reiniciar o serviço de rede:

    $ systemctl restart network
    

    Se dermos uma olhada nas interfaces e no roteamento:

    $ ip a l
    ..
    ..
    4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
        link/ether 08:00:27:d7:c2:ec brd ff:ff:ff:ff:ff:ff
    5: eth3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
        link/ether 08:00:27:d7:c2:ec brd ff:ff:ff:ff:ff:ff
    6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 08:00:27:d7:c2:ec brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.232/24 brd 192.168.1.255 scope global bond0
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:27ff:fed7:c2ec/64 scope link
           valid_lft forever preferred_lft forever
    
    $ ip r
    default via 10.0.2.2 dev eth0
    10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
    169.254.0.0/16 dev eth0 scope link metric 1002
    169.254.0.0/16 dev eth1 scope link metric 1003
    169.254.0.0/16 dev bond0 scope link metric 1006
    192.168.1.0/24 dev bond0 proto kernel scope link src 192.168.1.232
    192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.101
    

    Detalhes da ligação

    Também podemos dar uma olhada no dispositivo da interface de ligação para mais detalhes sobre o estado das interfaces:

    $ cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: IEEE 802.3ad Dynamic link aggregation
    Transmit Hash Policy: layer2 (0)
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    802.3ad info
    LACP rate: fast
    Min links: 0
    Aggregator selection policy (ad_select): stable
    System priority: 65535
    System MAC address: 08:00:27:d7:c2:ec
    Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 1
        Actor Key: 9
        Partner Key: 1
        Partner Mac Address: 00:00:00:00:00:00
    
    Slave Interface: eth2
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 08:00:27:d7:c2:ec
    Slave queue ID: 0
    Aggregator ID: 1
    Actor Churn State: none
    Partner Churn State: churned
    Actor Churned Count: 0
    Partner Churned Count: 1
    details actor lacp pdu:
        system priority: 65535
        system mac address: 08:00:27:d7:c2:ec
        port key: 9
        port priority: 255
        port number: 1
        port state: 207
    details partner lacp pdu:
        system priority: 65535
        system mac address: 00:00:00:00:00:00
        oper key: 1
        port priority: 255
        port number: 1
        port state: 3
    
    Slave Interface: eth3
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 08:00:27:59:b0:69
    Slave queue ID: 0
    Aggregator ID: 2
    Actor Churn State: churned
    Partner Churn State: churned
    Actor Churned Count: 1
    Partner Churned Count: 1
    details actor lacp pdu:
        system priority: 65535
        system mac address: 08:00:27:d7:c2:ec
        port key: 9
        port priority: 255
        port number: 2
        port state: 199
    details partner lacp pdu:
        system priority: 65535
        system mac address: 00:00:00:00:00:00
        oper key: 1
        port priority: 255
        port number: 1
        port state: 3
    

    Verificando a conectividade externa

    Abaixo você pode ver a saída de um ping para o endereço IP do bond0 que eu tinha rodando em outra caixa da minha rede. Assim que reiniciamos o networkserviço, podemos ver que ele ficou acessível:

    $ ping 192.168.1.232
    From 192.168.1.10 icmp_seq=7414 Destination Host Unreachable
    From 192.168.1.10 icmp_seq=7415 Destination Host Unreachable
    64 bytes from 192.168.1.232: icmp_seq=7416 ttl=64 time=886 ms
    64 bytes from 192.168.1.232: icmp_seq=7417 ttl=64 time=3.58 ms
    64 bytes from 192.168.1.232: icmp_seq=7418 ttl=64 time=3.52 ms
    64 bytes from 192.168.1.232: icmp_seq=7419 ttl=64 time=3.46 ms
    64 bytes from 192.168.1.232: icmp_seq=7420 ttl=64 time=3.15 ms
    64 bytes from 192.168.1.232: icmp_seq=7421 ttl=64 time=3.50 ms
    

    Dica de reinicialização

    No CentOS 7.x, parece haver um bug/problema com as interfaces bond0 iniciando corretamente durante a inicialização. Uma solução alternativa para esse problema é adicionar o seguinte a:

     $ echo "ifup bond0" >> /etc/rc.d/rc.local
     $ chmod +x /etc/rc.d/rc.local
    

    Isso garantirá que a bond0interface seja ativada corretamente durante as inicializações.

    Referências

    • Como configurar a interface de ligação LACP no CentOS 7
    • Ligação LACP e configuração do Linux
    • Noções básicas do Linux: Criar ligação de rede no CentOS 7/6.5
    • 3

relate perguntas

  • Um endereço IP pode terminar em 255 e não ser um endereço IP de transmissão?

  • Criando menus personalizados na guia do menu Aplicativos no CentOS7 GNOME

  • Incapaz de identificar qual saída de endereço MAC do comando arp ou comando ip está correta

  • Roteador estranho funciona com centos 6 [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve