Điểm:0

Không thể kết nối container với cầu nối với internet bằng mạng

lá cờ pm

tôi có một máy chủ chạy Ubuntu 20.04 LTS được kết nối thông qua một giao diện ethernet vật lý với internet. Nhà cung cấp của tôi đã chỉ định cho tôi một IP4 chính tĩnh (tôi sẽ sử dụng A.A.A.A ở đây cho IP này), vì vậy tệp cấu hình systemd-networkd của tôi trông như thế này trước đây (kế hoạch mạng bị vô hiệu hóa để hoạt động trực tiếp với systemd-networkd):

# /etc/systemd/network/20-enp7s0.network
[Trận đấu]
Tên=enp7s0

[Mạng]
LinkLocalAddressing=ipv6
Địa chỉ=A.A.A.A/32
Cổng=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Tuyến đường]
Đích=0.0.0.0/0
Cổng=Y.Y.Y.Y
CổngOnlink=true

Nhà cung cấp của tôi cung cấp thêm một địa chỉ IP bổ sung vào máy chủ của tôi, địa chỉ này được định tuyến đến cùng một giao diện với IP chính. Khi thêm IP thứ hai này vào giao diện của tôi, tôi có thể ping nó. Vì tôi đang sử dụng các bộ chứa systemd-nspawn nên tôi đã nghĩ đến việc sử dụng IP bổ sung này để cung cấp cho một trong các bộ chứa của mình một IP4 tĩnh độc quyền (sẽ sử dụng B.B.B.B tại đây). Điều này thật tuyệt khi ánh xạ trực tiếp các mục nhập DNS tới một vùng chứa trên máy chủ của tôi, trong khi tất cả các ứng dụng khác trên máy chủ vẫn sử dụng địa chỉ IP chính.

Vì vậy, tôi bắt đầu làm theo các hướng dẫn hữu ích từ Arch wiki trên systemd-nspawnsystemd-mạngd. Tôi đã định cấu hình một cây cầu và chuyển tất cả địa chỉ từ giao diện vật lý sang nó:

/etc/systemd/network/br0.netdev

[NetDev]
Tên=br0
Loại = cầu
MACAddress=xx:xx:xx:xx:xx:xx # giống như địa chỉ vật lý của tôi. giao diện

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

[Trận đấu]
Tên=br0

[Mạng]
LinkLocalAddressing=ipv6
Địa chỉ=A.A.A.A/32
Cổng=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Tuyến đường]
Đích=0.0.0.0/0
Cổng=Y.Y.Y.Y
CổngOnlink=true

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

[Trận đấu]
Tên=enp7s0

[Mạng]
Cầu=br0

Chuyển tiếp IP4 được bật:

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

Tôi bắt đầu bộ chứa nspawn của mình với cấu hình sau:

/etc/systemd/nspawn/mycontainer.nspawn

[Mạng]
VirtualEthernet=có
Cầu=br0

Bên trong vùng chứa (Debian 11 Bullseye), tôi đã bật systemd-networkd và sử dụng cấu hình sau để kết nối mạng:

# /etc/systemd/network/80-container-host0.network
[Trận đấu]
Tên=máy chủ0

[Mạng]
Địa chỉ=B.B.B.B/32
DNS=X.X.X.1
DNS=X.X.X.2

[Tuyến đường]
Đích=0.0.0.0/0
Cổng=Y.Y.Y.Y
CổngOnlink=true

Đây là kết quả của cấu hình này. Trên máy chủ:

$ip một

2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 trạng thái Nhóm LÊN mặc định qlen 1000
    liên kết/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 trạng thái qdisc noqueue UP nhóm mặc định qlen 1000
    liên kết/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet A.A.A.A/32 phạm vi toàn cầu br0
       hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
6: vb-mycontainer@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 trạng thái Nhóm LÊN mặc định qlen 1000
    liên kết/ether yy:yy:yy:yy:yy:yy brd ff:ff:ff:ff:ff:ff link-netnsid 0

$ networkctl status -a
â 1: lo [...]                                  
â 2: enp7s0                                                            
             Tệp liên kết: /usr/lib/systemd/network/99-default.link       
          Tệp mạng: /etc/systemd/network/20-enp7s0.network         
                  Loại: ether                                          
                 Trạng thái: nô lệ (đã định cấu hình)
                  Đường dẫn: pci-0000:07:00.0                               
                Trình điều khiển: igb                                            
                Nhà cung cấp: Tập đoàn Intel                              
                 Model: Kết nối mạng Gigabit I210                
            Địa chỉ CTNH: xx:xx:xx:xx:xx:xx                              
                   MTU: 1500 (tối thiểu: 68, tối đa: 9216)                      
  Độ dài hàng đợi (Tx/Rx): 8/8                                            
      Đàm phán tự động: có                                            
                 Tốc độ: 1Gbps                                          
                Duplex: đầy đủ                                           
                  Cảng: tp                                             
     Chính sách kích hoạt: lên                                             
   Cần thiết cho trực tuyến: có                                            
â 3: br0                                                                 
               Tệp liên kết: /usr/lib/systemd/network/99-default.link       
            Tệp mạng: /etc/systemd/network/20-br0.network            
                    Loại: cầu                                         
                   Trạng thái: có thể định tuyến (được định cấu hình)
                  Tài xế: cầu                                         
              Địa chỉ CTNH: xx:xx:xx:xx:xx:xx                              
                     MTU: 1500 (tối thiểu: 68, tối đa: 65535)                     
           Chuyển tiếp chậm trễ: 15 giây                                            
              Thời gian chào: 2s                                             
                 Tuổi tối đa: 20s                                            
             Thời gian lão hóa: 5 phút                                           
                Ưu tiên: 32768                                          
                     STP: không                                             
  Phiên bản IGMP đa hướng: 2                                              
    Độ dài hàng đợi (Tx/Rx): 1/1                                            
                 Địa chỉ: A.A.A.A                                                  
                 Cổng: Y.Y.Y.Y (Mạng Juniper)                  
                          fe80::1 (Mạng Juniper)                     
                     DNS: X.X.X.1                                    
                          X.X.X.2                                                           
       Chính sách kích hoạt: lên                                             
     Cần thiết cho trực tuyến: có                                            
â 6: vb-mycontainer                                              
             Tệp liên kết: /usr/lib/systemd/network/99-default.link
          Tệp mạng: n/a                                     
                  Loại: ether                                   
                 Trạng thái: xuống cấp (không được quản lý) 
                Tài xế: viet                                    
            Địa chỉ HW: yy:yy:yy:yy:yy:yy                       
                   MTU: 1500 (tối thiểu: 68, tối đa: 65535)              
  Độ dài hàng đợi (Tx/Rx): 1/1                                     
      Đàm phán tự động: không                                      
                 Tốc độ: 10Gbps                                  
                Duplex: đầy đủ                                    
                  Cảng: tp                                      
               Địa chỉ: fe80::xxxx:xxxx:xxxx:xxxx               
     Chính sách kích hoạt: lên                                      
   Cần thiết cho trực tuyến: có

tuyến đường $ ip
mặc định qua Y.Y.Y.Y dev br0 proto tĩnh onlink

Và bên trong container của tôi:

# ip a
1: lo: [...]
2: host0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 trạng thái qdisc noqueue nhóm LÊN mặc định qlen 1000
    liên kết/ether yy:yy:yy:yy:yy:yy brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet B.B.B.B/32 phạm vi máy chủ toàn cầu0
       hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
    liên kết phạm vi inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 
       hợp lệ_lft mãi mãi ưa thích_lft mãi mãi

# trạng thái mạngctl -a
â 1: lo [...]
â 2: máy chủ0                                                                     
                     Tệp liên kết: không có
                  Tệp mạng: /etc/systemd/network/80-container-host0.network
                          Loại: ether
                         Trạng thái: có thể định tuyến (được định cấu hình)
                    Địa chỉ HW: zz:zz:zz:zz:zz:zz
                           MTU: 1500 (tối thiểu: 68, tối đa: 65535)
                         QDisc: noqueue
  Chế độ tạo địa chỉ IPv6: eui64
          Độ dài hàng đợi (Tx/Rx): 1/1
              Đàm phán tự động: không
                         Tốc độ: 10Gbps
                        Duplex: đầy đủ
                          Cảng: tp
                       Địa chỉ: B.B.B.B
                                fe80::xxxx:xxxx:xxxx:xxxx
                       Cổng: Y.Y.Y.Y
                           DNS: X.X.X.1
                                X.X.X.2
             DUID máy khách DHCP6: DUID-EN/Nhà cung cấp:0000ab117511f183668420370000

Ngày 17 tháng 2 19:45:26 mycontainer systemd-networkd[25]: host0: Liên kết LÊN
Ngày 17 tháng 2 19:45:26 mycontainer systemd-networkd[25]: host0: Đã nhận được nhà cung cấp dịch vụ
Ngày 17 tháng 2 19:45:27 mycontainer systemd-networkd[25]: host0: Đạt được IPv6LL

# lộ trình ip
mặc định qua Y.Y.Y.Y dev host0 proto tĩnh onlink

Về tất cả các cài đặt khác, tôi tuân theo các giá trị mặc định của hệ thống. Nhưng nó không hoạt động, tôi không thể ping từ máy chủ đến khách, cũng như từ khách đến máy chủ, internet hoặc cổng, chỉ nhận được Máy chủ đích không thể truy cập. Vì vậy, tôi bỏ lỡ một cái gì đó ở đây? Tôi không thực sự hiểu sâu về mạng và đã dành nhiều thời gian cho việc này, nhưng tôi đã xin lỗi vì một số sai lầm ngu ngốc mà tôi có thể mắc phải. Mọi manh mối đều được chào đón. Cảm ơn bạn!

CHỈNH SỬA:

Tôi đã nhìn vào bảng hàng xóm:

Chủ nhà:

$ ip hàng xóm
Y.Y.Y.Y dev br0 lladdr 84:c1:c1:76:ae:9b CÓ THỂ ĐẠT ĐƯỢC <- cổng
fe80::f80b:aff:fe80:d92 dev vb-mycontainer KHÔNG THÀNH CÔNG
fe80::6c91:a7ff:fe1f:19a2 dev br0 KHÔNG THÀNH CÔNG
fe80::1 dev br0 lladdr 84:c1:c1:76:ae:9b bộ định tuyến STALE
fe80::f80b:aff:fe80:d92 dev br0 lladdr fa:0b:0a:80:0d:92 STALE

Khách:

$ ip hàng xóm
fe80::7e10:c9ff:fe21:ed87 dev host0 lladdr 7c:10:c9:21:ed:87 bộ định tuyến STALE
fe80::6c91:a7ff:fe1f:19a2 dev host0 KHÔNG THÀNH CÔNG
fe80::1 dev host0 lladdr 84:c1:c1:76:ae:9b bộ định tuyến STALE

fe80::6c91:a7ff:fe1f:19a2 là địa chỉ liên kết ngôn ngữ của giao diện ảo vb-mycontainer trên máy chủ. Vì vậy, dường như có sự cố kết nối giữa khách và chủ nhà mà tôi giả sử?

Điểm:0
lá cờ pm

Ok, tôi đã tự mình giải quyết vấn đề. Tôi đã thiếu để thêm một tuyến IP trong cấu hình cầu nối trên Máy chủ vào vùng chứa của mình:

# /etc/systemd/network/20-br0.network
[Trận đấu]
Tên=br0

[Mạng]
LinkLocalAddressing=ipv6
Địa chỉ=A.A.A.A/32
Cổng=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Tuyến đường]
Đích=0.0.0.0/0
Cổng=Y.Y.Y.Y
CổngOnlink=true

[Tuyến đường]
Đích=B.B.B.B/32

Và trong máy khách, cổng là địa chỉ IPv4 chính của Máy chủ (A.A.A.A/32):

# /etc/systemd/network/80-container-host0.network
[Trận đấu]
Tên=máy chủ0

[Mạng]
Địa chỉ=B.B.B.B/32
DNS=X.X.X.1
DNS=X.X.X.2

[Tuyến đường]
Đích=0.0.0.0/0
Cổng=A.A.A.A
CổngOnlink=true

Cần phải kích hoạt thêm systemd-resolved để có được độ phân giải DNS.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.