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 / user-955462

Misc08's questions

Martin Hope
Misc08
Asked: 2022-02-18 11:37:38 +0800 CST

Não é possível conectar o contêiner com ponte à Internet usando networkd

  • 0

Eu tenho um servidor executando o Ubuntu 20.04 LTS conectado através de uma interface ethernet física à Internet. Meu prodiver me atribuiu um IP4 primário estático (eu usarei AAAA aqui para este IP), então meu arquivo de configuração systemd-networkd ficou assim antes (netplan desabilitado para trabalhar diretamente com systemd-networkd):

# /etc/systemd/network/20-enp7s0.network
[Match]
Name=enp7s0

[Network]
LinkLocalAddressing=ipv6
Address=A.A.A.A/32
Gateway=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Route]
Destination=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=true

Meu provedor oferece a adição de um endereço IP adicional ao meu servidor, que é roteado para a mesma interface que o IP primário. Ao adicionar este segundo IP à minha interface, posso pingar. Como estou usando contêineres systemd-nspawn, estava pensando em usar esse IP adicional para fornecer um dos meus contêineres com um IP4 estático exclusivo (vai usar BBBB aqui). Isso seria ótimo para mapear entradas DNS diretamente para um contêiner no meu servidor, enquanto todos os outros aplicativos no servidor ainda usam o endereço IP primário.

Então comecei a seguir as boas instruções do wiki do Arch em systemd-nspawn e systemd-networkd . Configurei uma bridge e movi todo o endereçamento da interface física para ela:

/etc/systemd/network/br0.netdev

[NetDev]
Name=br0
Kind=bridge
MACAddress=xx:xx:xx:xx:xx:xx  # same as my phys. interface

/etc/systemd/network/20-br0.network

[Match]
Name=br0

[Network]
LinkLocalAddressing=ipv6
Address=A.A.A.A/32
Gateway=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Route]
Destination=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=true

/etc/systemd/network/20-enp7s0.network

[Match]
Name=enp7s0

[Network]
Bridge=br0

O encaminhamento IP4 está ativado:

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

Eu inicio meu container nspawn com a seguinte configuração:

/etc/systemd/nspawn/mycontainer.nspawn

[Network]
VirtualEthernet=yes
Bridge=br0

Dentro do container (Debian 11 Bullseye) eu habilitei systemd-networkd e uso a seguinte configuração para rede:

# /etc/systemd/network/80-container-host0.network
[Match]
Name=host0

[Network]
Address=B.B.B.B/32
DNS=X.X.X.1
DNS=X.X.X.2

[Route]
Destination=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=true

Este é o resultado desta configuração. No anfitrião:

$ ip a

2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet A.A.A.A/32 scope global br0
       valid_lft forever preferred_lft forever
6: vb-mycontainer@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
    link/ether yy:yy:yy:yy:yy:yy brd ff:ff:ff:ff:ff:ff link-netnsid 0

$ networkctl status -a
● 1: lo      [...]                                  
● 2: enp7s0                                                            
             Link File: /usr/lib/systemd/network/99-default.link       
          Network File: /etc/systemd/network/20-enp7s0.network         
                  Type: ether                                          
                 State: enslaved (configured)
                  Path: pci-0000:07:00.0                               
                Driver: igb                                            
                Vendor: Intel Corporation                              
                 Model: I210 Gigabit Network Connection                
            HW Address: xx:xx:xx:xx:xx:xx                              
                   MTU: 1500 (min: 68, max: 9216)                      
  Queue Length (Tx/Rx): 8/8                                            
      Auto negotiation: yes                                            
                 Speed: 1Gbps                                          
                Duplex: full                                           
                  Port: tp                                             
     Activation Policy: up                                             
   Required For Online: yes                                            
● 3: br0                                                                 
               Link File: /usr/lib/systemd/network/99-default.link       
            Network File: /etc/systemd/network/20-br0.network            
                    Type: bridge                                         
                   State: routable (configured)
                  Driver: bridge                                         
              HW Address: xx:xx:xx:xx:xx:xx                              
                     MTU: 1500 (min: 68, max: 65535)                     
           Forward Delay: 15s                                            
              Hello Time: 2s                                             
                 Max Age: 20s                                            
             Ageing Time: 5min                                           
                Priority: 32768                                          
                     STP: no                                             
  Multicast IGMP Version: 2                                              
    Queue Length (Tx/Rx): 1/1                                            
                 Address: A.A.A.A                                                  
                 Gateway: Y.Y.Y.Y (Juniper Networks)                  
                          fe80::1 (Juniper Networks)                     
                     DNS: X.X.X.1                                    
                          X.X.X.2                                                           
       Activation Policy: up                                             
     Required For Online: yes                                            
● 6: vb-mycontainer                                              
             Link File: /usr/lib/systemd/network/99-default.link
          Network File: n/a                                     
                  Type: ether                                   
                 State: degraded (unmanaged) 
                Driver: veth                                    
            HW Address: yy:yy:yy:yy:yy:yy                       
                   MTU: 1500 (min: 68, max: 65535)              
  Queue Length (Tx/Rx): 1/1                                     
      Auto negotiation: no                                      
                 Speed: 10Gbps                                  
                Duplex: full                                    
                  Port: tp                                      
               Address: fe80::xxxx:xxxx:xxxx:xxxx               
     Activation Policy: up                                      
   Required For Online: yes

$ ip route
default via Y.Y.Y.Y dev br0 proto static onlink

E dentro do meu container:

# ip a
1: lo: [...]
2: host0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether yy:yy:yy:yy:yy:yy brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet B.B.B.B/32 scope global host0
       valid_lft forever preferred_lft forever
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link 
       valid_lft forever preferred_lft forever

# networkctl status -a
● 1: lo           [...]
● 2: host0                                                                     
                     Link File: n/a
                  Network File: /etc/systemd/network/80-container-host0.network
                          Type: ether
                         State: routable (configured)
                    HW Address: zz:zz:zz:zz:zz:zz
                           MTU: 1500 (min: 68, max: 65535)
                         QDisc: noqueue
  IPv6 Address Generation Mode: eui64
          Queue Length (Tx/Rx): 1/1
              Auto negotiation: no
                         Speed: 10Gbps
                        Duplex: full
                          Port: tp
                       Address: B.B.B.B
                                fe80::xxxx:xxxx:xxxx:xxxx
                       Gateway: Y.Y.Y.Y
                           DNS: X.X.X.1
                                X.X.X.2
             DHCP6 Client DUID: DUID-EN/Vendor:0000ab117511f183668420370000

Feb 17 19:45:26 mycontainer systemd-networkd[25]: host0: Link UP
Feb 17 19:45:26 mycontainer systemd-networkd[25]: host0: Gained carrier
Feb 17 19:45:27 mycontainer systemd-networkd[25]: host0: Gained IPv6LL

# ip route
default via Y.Y.Y.Y dev host0 proto static onlink

Em relação a todas as outras configurações, mantenho os padrões do sistema. Mas não está funcionando, não consigo pingar do host para o convidado, nem do convidado para o host, a internet ou o gateway, apenas obtendo Destination Host Unreachable . Então, eu sinto falta de algo aqui? Eu não sou muito profundo em redes e já gastei muito tempo nisso, mas já peço desculpas por alguns erros estúpidos que eu possa ter cometido. Toda pista é bem-vinda. Obrigada!

EDITAR:

Dei uma olhada na tabela de vizinhos:

Host:

$ ip neighbor
Y.Y.Y.Y dev br0 lladdr 84:c1:c1:76:ae:9b REACHABLE <- gateway
fe80::f80b:aff:fe80:d92 dev vb-mycontainer  FAILED
fe80::6c91:a7ff:fe1f:19a2 dev br0  FAILED
fe80::1 dev br0 lladdr 84:c1:c1:76:ae:9b router STALE
fe80::f80b:aff:fe80:d92 dev br0 lladdr fa:0b:0a:80:0d:92 STALE

Guest:

$ ip neighbor
fe80::7e10:c9ff:fe21:ed87 dev host0 lladdr 7c:10:c9:21:ed:87 router STALE
fe80::6c91:a7ff:fe1f:19a2 dev host0  FAILED
fe80::1 dev host0 lladdr 84:c1:c1:76:ae:9b router STALE

fe80::6c91:a7ff:fe1f:19a2 é o endereço de localidade do link da interface virtual vb-mycontainer no host. Então, parece haver um problema de conexão entre o convidado e o host, suponho?

bridge linux-networking systemd-networkd static-ip
  • 1 respostas
  • 295 Views

Sidebar

Stats

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

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 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