Điểm:0

Máy chủ không có quyền truy cập internet khi máy ảo đang chạy

lá cờ eg

Làm cách nào để thiết lập mạng để cả máy chủ và máy ảo đều có thể kết nối với internet?

Tôi đã thiết lập một máy chủ để lưu trữ một số máy ảo bằng KVM. Nó nhằm mục đích phục vụ một thư viện sách có thể tải xuống cho người mù (chi tiết bên dưới).

Trạng thái hiện tại là kết quả của việc cố gắng làm theo một số hướng dẫn về kết nối mạng cho máy ảo. Mục đích là để có quyền truy cập internet từ cả máy chủ và máy ảo.

Cả máy chủ và khách đều chạy Debian 10. Cạc mạng được cấu hình là cầu nối mạng br0 với một địa chỉ tĩnh ('giao diện' xem bên dưới).

Hiện tại, các máy ảo được khởi động thủ công bằng virsh. Khi không có máy ảo nào đang chạy, máy chủ có quyền truy cập internet (ví dụ: ping debian.org, get update, wget...).

Khi VM được khởi động, VM có quyền truy cập internet bằng br0. Mỗi VM có một địa chỉ tĩnh. Máy chủ sau đó mất quyền truy cập internet. Có thể ping đến các máy khác trong mạng cục bộ cũng như bộ định tuyến, nhưng không vượt quá (ping tên miền hoặc địa chỉ IP).

Có thể truy cập cả máy chủ và máy ảo bằng cách sử dụng ssh từ các máy cục bộ khác.

Sau khi máy ảo được đặt thành tự động khởi động, không thể cập nhật mà không tắt máy ảo theo cách thủ công, máy chủ cũng không kết nối với máy chủ thời gian. Hơn nữa, ip hiển thị các gói bị rơi.

Tất cả những điều này rất có thể là kết quả của sự hiểu biết rất hạn chế của tôi về các mạng và các cây cầu nói riêng. Tôi rất biết ơn vì bất kỳ sự giúp đỡ nào!

Dưới đây là một số thông tin thêm.

Mục đích
Một VM được cho là phục vụ người dùng từ bên ngoài mạng cục bộ, sử dụng máy chủ web NginX. Nó xử lý việc tải xuống sách do người dùng kiểm tra được lưu trữ trên ổ đĩa cục bộ.

Máy ảo thứ hai cung cấp một máy chủ cơ sở dữ liệu PostgreSQL, chỉ được truy cập từ các máy trạm cục bộ, nơi người dùng thư viện và các khoản vay được quản lý.

Máy chủ phải được truy cập bằng ssh từ mạng cục bộ. Cần có truy cập Internet để kết nối với máy chủ thời gian và để có thể cập nhật phần mềm.

máy tính
Bo mạch chủ: MSI MPG B550 GAMING PLUS
CPU: AMD Ryzen™ 7 3700X
RAM: Bộ Corsair DIMM 32 GB DDR4-3200
HD: Samsung 980 PRO 1 TB, SSD
Card đồ họa: MSI GeForce GT 710 1GD3H LP

hệ điều hành
uname -r

4.19.0-17-amd64

lsb_release -a

Không có mô-đun LSB nào khả dụng.
ID nhà phân phối: Debian
Mô tả: Debian GNU/Linux 10 (buster)
Phát hành: 10
Tên mã: buster

Mạng
Cho đến khi nó được chuyển đến thư viện, máy chủ ở văn phòng tại nhà của tôi được kết nối với bộ định tuyến AVM Fritz!Box 7490.

ls/sys/lớp/mạng/

br0 enp42s0 lo

con mèo/etc/mạng/giao diện

# Tệp này mô tả các giao diện mạng có sẵn trên hệ thống của bạn
# và cách kích hoạt chúng. Để biết thêm thông tin, xem giao diện (5).

nguồn /etc/network/interfaces.d/*

# Giao diện mạng loopback
tự động lo
vòng lặp iface lo inet

# Giao diện mạng chính
hướng dẫn sử dụng iface enp42s0 inet

# Cài đặt cầu br0
tự động br0
iface br0 inet tĩnh
   bridge_ports enp42s0
      địa chỉ 192.168.10.50
      mạng 192.168.10.0
      phát 192.168.10.255
      mặt nạ mạng 255.255.255.0
      cổng 192.168.10.1
      máy chủ tên dns 94.247.43.254 194.36.144.87 192.168.10.1
      bridge_stp tắt
      cầu_fd 0
      cầu_maxwait 0

(Các máy ảo có địa chỉ 192.168.10.51, 192.168.10.52)

liên kết ip -s hiển thị dev br0

3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state Chế độ LÊN MẶC ĐỊNH nhóm mặc định qlen 1000
    liên kết/ether 2c:f0:5d:e4:36:d5 brd ff:ff:ff:ff:ff:ff
    RX: lỗi gói byte bị rơi tràn ngập mcast   
    206602 2218 0 1130 0 177     
    TX: lỗi gói byte bị rớt sóng mang collsns 
    99981 593 0 0 0 0       

con mèo /proc/net/dev

  Liên-| Nhận | Chuyển giao
   khuôn mặt | gói byte bị lỗi thả khung fifo nén phát đa hướng | byte gói lỗi thả fifo colls nhà cung cấp dịch vụ được nén
    br0: 210026 2268 0 1138 0 0 0 177 103273 615 0 0 0 0 0 0
  vnet0: 1384510 18903 0 0 0 0 0 0 58389276 40523 0 0 0 0 0 0
     lo: 1840 26 0 0 0 0 0 0 1840 26 0 0 0 0 0
enp42s0: 58580534 42260 0 38 0 0 0 289 1467123 19358 0 0 0 0 0 0

tuyến đường -n

Hạt nhân-IP-Routentabelle
Ziel Router Genmask Flag Metric Ref Sử dụng Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 vnet0
0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 br0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 vnet0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br0

ls/sys/lớp/mạng/

br0 enp42s0 lo vnet0
Điểm:1
lá cờ cz

Cầu của bạn đang giảm một nửa số gói đến! Thật ngạc nhiên là bạn có bất kỳ kết nối nào.

Tôi chỉ thực sự thấy một vấn đề rõ ràng với cấu hình của bạn và thật không may, đó là một mặc định Debian được chọn sai:

      bridge_stp tắt

STP thực sự nên được bật cho bất kỳ cầu nối ảo nào được sử dụng bởi libvirt hoặc cho máy ảo. Quá dễ dàng để tạo ra một vòng lặp do vô tình hoặc cố ý. Điều đó có nghĩa là nó cũng cần được bật trên Fritz! Box của bạn, nhưng rất có thể nó đã được bật rồi. Điều tương tự đối với bất kỳ công tắc nào bạn cắm nó vào thư viện, nhưng một lần nữa, rất có thể nó đã được bật STP.

StefanF avatar
lá cờ eg
Cảm ơn! Tôi sẽ thay đổi điều đó càng sớm càng tốt và báo cáo lại. :-)
StefanF avatar
lá cờ eg
Đặt bridge_stp trên không thay đổi hành vi. Trước tiên, tôi sẽ cố gắng tìm hiểu xem sự cố có liên quan đến bộ định tuyến của mình không. Fritz!Boxes tại một thời điểm đã tắt STP theo mặc định. Thật không may, nhà sản xuất đã vô hiệu hóa quyền truy cập ssh trong hệ điều hành của nó và GUI không hiển thị nó, theo như tôi có thể thấy. Có lẽ hỗ trợ của AVM có thể làm rõ.Cảm ơn bạn một lần nữa vì đã dành thời gian và chỉ ra vấn đề này!
Điểm:0
lá cờ eg
  1. STP: nhà sản xuất Fritz!Boxes đã xác nhận rằng họ không hỗ trợ STP.

  2. gói bị rơi: Tôi sẽ bỏ qua điều đó vào lúc này, vì hai máy tính xách tay linux (Ubuntu Mate, Lubuntu) hiển thị appr. cùng một lượng gói bị rớt, trong khi không có bất kỳ sự cố kết nối rõ ràng nào.

  3. Thiếu truy cập internet của host hình như có liên quan đến connman đặt địa chỉ IP của vnet bằng DHCP.

Gợi ý đầu tiên là, khi tôi nhìn vào đầu ra của ping debian.org sau đó một VM đã được bắt đầu:

PING debian.org (130.89.148.77) 56(84) byte dữ liệu.
Từ blibu.local (169.254.210.100) icmp_seq=1 Máy chủ đích không thể truy cập

ip a đưa ra kết quả sau (đoạn trích)

3: br0: ... inet 192.168.10.50/24
4: vnet0: ... inet 169.254.210.100/16

Vì vậy, ping đã sử dụng vnet0 với một địa chỉ khác với không gian địa chỉ mạng cục bộ.

Sau khi thử một số cách tiếp cận khác nhau (NIC thứ 2, macvtap) với kết quả tương tự, cuối cùng tôi đã nhớ thêm tất cả các vnet vào /etc/connman/main.conf:

NetworkInterfaceDanh sách đen = vmnet,vboxnet,virbr,ifb,ve-,vb-,br,enp42s0,eno1,vnet0,vnet1,vnet2

Rõ ràng mỗi VM đang chạy thêm một vnet.

Đây rất có thể không phải là giải pháp tinh tế hoặc hiệu quả nhất và tôi sẽ đánh giá rất cao bất kỳ trợ giúp nào trong việc cải thiện thiết lập của mình.

Tuy nhiên, cả máy chủ và tất cả các máy ảo hiện đều có quyền truy cập internet và có thể nhận các bản cập nhật phần mềm. :-)

Đă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.