libvirt: Không thể khởi tạo tường lửa phụ trợ hợp lệ


18

Tôi đang cố gắng thiết lập một thiết bị mạng NAT ảo không có DHCP để phát hành trên máy chủ Arch Linux.

Những gì tôi đã thử:

# virsh net-define network.xml 
Network default defined from network.xml

[ network.xml]:

<network>
  <name>default</name>
  <bridge name="maas0" />
  <forward mode="nat" />
  <ip address="10.137.0.1" netmask="255.255.255.0" />
</network>

Máy tính xách tay của tôi xuất ra các phần sau khi khởi động:

# virsh net-start default
error: Failed to start network default
error: internal error: Failed to initialize a valid firewall backend

Tất cả các chủ đề khác liên quan đến chủ đề này đều nói về việc nâng cấp phần mềm - Tôi đang sử dụng các phiên bản mới nhất:

$ pacman -Q ebtables dnsmasq libvirt iptables
ebtables 2.0.10_4-5
dnsmasq 2.75-1
libvirt 1.3.3-1
iptables 1.4.21-3

Điều gì có thể là lý do cho điều đó internal errorvà tôi có thể làm gì để chống lại?

Câu trả lời:


29

Cài đặt ebtablesdnsmasqdường như để khắc phục vấn đề. Đừng quên khởi động lại libvirtddịch vụ.

Các lệnh:

sudo pacman -Syu ebtables dnsmasq
sudo systemctl restart libvirtd

LƯU Ý: đừng quên đóng và mở lại virt-managerGUI của bạn (nếu bạn đang sử dụng một).

EDIT: Câu trả lời ban đầu đề nghị cũng cài đặt firewalld. Điều này dường như không cần thiết đối với nhiều người dùng và có thể thêm một tường lửa không mong muốn bổ sung vào hệ thống của bạn. Tuy nhiên nếu bạn muốn thử nó, bạn cũng có thể thêm các lệnh sau:

sudo pacman -Syu firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo systemctl restart libvirtd

17
Không cần phải cài đặt firewalld, nó cũng không được liệt kê trên ArchLinux wiki , nó chỉ là cần thiết để bắt đầu ebtablesdnsmasqvới libvirtd/ virtlogdsau đó.
pepper_chico

11
Tôi muốn nhấn mạnh, khởi động lại libvirtd , sau khi cài đặt ebtablesdnsmasq
ThorSummoner

3
Tôi xác nhận không cần cài đặt firewalld, như ghi chú của @pepper_chico (bình luận) và Stuart P. Bentley (câu trả lời khác).
Alex Oliveira

"CẢM ƠN" tường lửa của bạn chỉ khóa tôi bên ngoài máy chủ từ xa của tôi và KHÔNG LÀM TUYỆT ĐỐI KHÔNG CÂU HỎI ... CÂU ​​CHUYỆN LÀ BẠN, hoặc bạn là một trong những người CHỈ CẦN THAM GIA NGƯỜI KHÁC ... !?
THESorcerer

9

Đây là lỗi xuất hiện nếu libvirtd được khởi động mà không có ebtablesvà / hoặc dnsmasqcài đặt. Nếu bạn đã cài đặt chúng và bạn vẫn gặp sự cố này, có lẽ bạn cần phải khởi động lại libvirtddịch vụ:

sudo systemctl restart libvirtd.service

Tín dụng cho các ý kiến về câu trả lời khác cho câu hỏi này để làm sáng tỏ điều này. Tôi đang gửi nó dưới dạng câu trả lời mới và riêng biệt cho câu hỏi ban đầu vì cài đặt và bắt đầu firewalldgiải quyết vấn đề ban đầu có thể gây ra sự cố mới : một khi trình nền tường lửa đang chạy, hầu hết các dịch vụ bạn muốn trong máy ảo của mình , bao gồm DHCP, sẽ bị chặn theo mặc định , có nghĩa là máy ảo của bạn sẽ không thể truy cập mạng khi khởi tạo.

Tôi đã mất hơn một giờ trong cuộc đời để cố gắng theo dõi vấn đề này và truy tìm nó đến một tường lửa mà tôi vừa kích hoạt là một trong những nguồn lỗi nghiêm trọng nhất mà tôi từng gặp phải. Đừng để nó mất bất cứ lúc nào từ bạn .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.