Puncte:0

Nu se poate conecta containerul cu bridge la internet folosind networkd

drapel pm

Am un server care rulează Ubuntu 20.04 LTS conectat printr-o interfață ethernet fizică la internet. Prodiverul meu mi-a atribuit un IP4 primar static (voi folosi A.A.A.A aici pentru acest IP), așa că fișierul meu de configurare systemd-networkd arăta așa înainte (netplan dezactivat pentru a funcționa direct cu systemd-networkd):

# /etc/systemd/network/20-enp7s0.network
[Meci]
Nume=enp7s0

[Reţea]
LinkLocalAddressing=ipv6
Adresa=A.A.A.A/32
Gateway=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Traseu]
Destinație=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=adevărat

Furnizorul meu oferă adăugarea unei adrese IP suplimentare la serverul meu, care este direcționată către aceeași interfață ca și IP-ul principal. Când adaug acest al doilea IP la interfața mea, pot să-l pun ping. Deoarece folosesc containere systemd-nspawn, mă gândeam să folosesc acest IP suplimentar pentru a furniza unuia dintre containerele mele un IP4 static exclusiv (voi folosi B.B.B.B aici). Ar fi grozav să mapați intrările DNS direct într-un container de pe serverul meu, în timp ce toate celelalte aplicații de pe server încă folosesc adresa IP primară.

Așa că am început să urmez instrucțiunile frumoase de pe wiki-ul Arch systemd-nspawn și systemd-networkd. Am configurat o punte și am mutat toate adresele de la interfața fizică la el:

/etc/systemd/network/br0.netdev

[NetDev]
Nume=br0
Kind=pod
Adresa MAC=xx:xx:xx:xx:xx:xx # la fel ca fizica mea. interfata

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

[Meci]
Nume=br0

[Reţea]
LinkLocalAddressing=ipv6
Adresa=A.A.A.A/32
Gateway=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Traseu]
Destinație=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=adevărat

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

[Meci]
Nume=enp7s0

[Reţea]
Pod=br0

Redirecționarea IP4 este activată:

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

Încep containerul meu nspawn cu următoarea configurație:

/etc/systemd/nspawn/mycontainer.nspawn

[Reţea]
VirtualEthernet=da
Pod=br0

În interiorul containerului (Debian 11 Bullseye) am activat systemd-networkd și am folosit următoarea configurație pentru rețea:

# /etc/systemd/network/80-container-host0.network
[Meci]
Nume=gazdă0

[Reţea]
Adresa=B.B.B.B/32
DNS=X.X.X.1
DNS=X.X.X.2

[Traseu]
Destinație=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=adevărat

Acesta este rezultatul acestei configurații. Pe gazda:

$ ip a

2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
    link/eter 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/eter xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet A.A.A.A/32 domeniu global br0
       valid_lft pentru totdeauna preferred_lft pentru totdeauna
6: vb-mycontainer@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
    link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff link-netnsid 0

$ starea networkctl -a
â 1: iată [...]                                  
â 2: enp7s0                                                            
             Fișier de legătură: /usr/lib/systemd/network/99-default.link       
          Fișier de rețea: /etc/systemd/network/20-enp7s0.network         
                  Tip: eter                                          
                 Stare: înrobit (configurat)
                  Calea: pci-0000:07:00.0                               
                Sofer: igb                                            
                Furnizor: Intel Corporation                              
                 Model: I210 Gigabit Network Connection                
            Adresa HW: xx:xx:xx:xx:xx:xx                              
                   MTU: 1500 (min: 68, max: 9216)                      
  Lungimea cozii (Tx/Rx): 8/8                                            
      Negociere automată: da                                            
                 Viteza: 1 Gbps                                          
                Duplex: plin                                           
                  Port: tp                                             
     Politica de activare: sus                                             
   Necesar pentru online: da                                            
â 3: br0                                                                 
               Fișier de legătură: /usr/lib/systemd/network/99-default.link       
            Fișier de rețea: /etc/systemd/network/20-br0.network            
                    Tip: pod                                         
                   Stare: rutabil (configurat)
                  Șofer: pod                                         
              Adresa HW: xx:xx:xx:xx:xx:xx                              
                     MTU: 1500 (min: 68, max: 65535)                     
           Întârziere înainte: 15s                                            
              Bună ziua Timp: 2s                                             
                 Varsta maxima: 20 ani                                            
             Timp de maturare: 5 min                                           
                Prioritate: 32768                                          
                     STP: nu                                             
  Versiunea IGMP multicast: 2                                              
    Lungimea cozii (Tx/Rx): 1/1                                            
                 Adresa: A.A.A.A                                                  
                 Gateway: Y.Y.Y.Y (Juniper Networks)                  
                          fe80::1 (Juniper Networks)                     
                     DNS: X.X.X.1                                    
                          X.X.X.2                                                           
       Politica de activare: sus                                             
     Necesar pentru online: da                                            
â 6: vb-mycontainer                                              
             Fișier de legătură: /usr/lib/systemd/network/99-default.link
          Fișier de rețea: n/a                                     
                  Tip: eter                                   
                 Stare: degradat (negestionat) 
                Șofer: veth                                    
            Adresa HW: aa:aa:aa:aa:aa:aa                       
                   MTU: 1500 (min: 68, max: 65535)              
  Lungimea cozii (Tx/Rx): 1/1                                     
      Negociere automată: nu                                      
                 Viteza: 10 Gbps                                  
                Duplex: plin                                    
                  Port: tp                                      
               Adresă: fe80::xxxx:xxxx:xxxx:xxxx               
     Politica de activare: sus                                      
   Necesar pentru online: da

$ traseu ip
implicit prin Y.Y.Y.Y dev br0 proto static onlink

Și în interiorul recipientului meu:

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

# starea networkctl -a
â 1: iată [...]
â 2: gazdă0                                                                     
                     Fișier link: n/a
                  Fișier de rețea: /etc/systemd/network/80-container-host0.network
                          Tip: eter
                         Stare: rutabil (configurat)
                    Adresa HW: zz:zz:zz:zz:zz:zz
                           MTU: 1500 (min: 68, max: 65535)
                         QDisc: noqueue
  Mod de generare a adresei IPv6: eui64
          Lungimea cozii (Tx/Rx): 1/1
              Negociere automată: nu
                         Viteza: 10 Gbps
                        Duplex: plin
                          Port: tp
                       Adresa: B.B.B.B
                                fe80::xxxx:xxxx:xxxx:xxxx
                       Gateway: Y.Y.Y.Y
                           DNS: X.X.X.1
                                X.X.X.2
             DUID client DHCP6: DUID-EN/Vendor:0000ab117511f183668420370000

17 februarie 19:45:26 mycontainer systemd-networkd[25]: host0: Link UP
17 februarie 19:45:26 mycontainer systemd-networkd[25]: host0: operator câștigat
17 februarie 19:45:27 mycontainer systemd-networkd[25]: host0: IPv6LL obținut

# traseu ip
implicit prin Y.Y.Y.Y dev host0 proto static onlink

În ceea ce privește toate celelalte setări, rămân la setările implicite ale sistemului. Dar nu funcționează, nu pot da ping de la gazdă la oaspete, nici de la oaspete la gazdă, internet sau gateway, doar ajung Destinatie finala negasita. Deci îmi scapa ceva aici? Nu sunt cu adevărat adânc în rețele și am petrecut deja mult timp cu asta, dar deja îmi cer scuze pentru unele greșeli stupide pe care le-am putut face. Fiecare indiciu este binevenit. Mulțumesc!

EDITAȚI | ×:

M-am uitat la masa vecinilor:

Gazdă:

$ ip vecin
Y.Y.Y.Y dev br0 lladdr 84:c1:c1:76:ae:9b ACCESIBIL <- 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

Oaspete:

$ ip vecin
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 este adresa link-locale a interfeței virtuale vb-mycontainer de pe gazdă. Deci pare să existe o problemă de conexiune între oaspete și gazdă presupun?

Puncte:0
drapel pm

Ok, am rezolvat singur problema. Îmi lipsea să adaug o rută IP în configurația bridge-ului pe gazdă la containerul meu:

# /etc/systemd/network/20-br0.network
[Meci]
Nume=br0

[Reţea]
LinkLocalAddressing=ipv6
Adresa=A.A.A.A/32
Gateway=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Traseu]
Destinație=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=adevărat

[Traseu]
Destinație=B.B.B.B/32

Și în invitat, poarta de acces este adresa IPv4 principală a gazdei (A.A.A.A/32):

# /etc/systemd/network/80-container-host0.network
[Meci]
Nume=gazdă0

[Reţea]
Adresa=B.B.B.B/32
DNS=X.X.X.1
DNS=X.X.X.2

[Traseu]
Destinație=0.0.0.0/0
Gateway=A.A.A.A
GatewayOnlink=adevărat

Mai mult, este nevoie de mai multe soluții de sistem activate pentru a obține rezoluția DNS.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.