Làm thế nào virbr0-nic được tạo ra?


11

Làm thế nào tôi có thể tạo một giao diện mạng ảo như thế virbr0-nicnào? Tôi đang cố gắng tìm cách tạo ra một NIC như thế virbr0-nicnhưng mọi thứ tôi có thể tìm thấy trên Internet là cách tạo giao diện gắn liền với giao diện vật lý như thế nào eth0:0. Khi tôi viết

# brctl show
bridge name bridge id       STP enabled interfaces
virbr0      8000.525400e0af01   yes virbr0-nic
virbr1      8000.525400e8a6b1   yes virbr1-nic
                            vnet1

Vậy virbr0là cây cầu virbr0-nicđược gắn vào. Vậy làm thế nào virbr0-nicvnet1được tạo ra?


thường là liên kết với một cái gì đó giống như một cây cầu dành riêng cho một chút phần mềm. Bạn đang thực sự cố gắng làm gì?
Geek

Tôi đã cài đặt KVM và nhận thấy rằng nó đã tạo ra NIC virbr0-nic mới. Tôi chỉ tự hỏi làm thế nào tôi có thể tạo ra NIC của riêng mình như cái này.
cosimo

Câu trả lời:


10

Đây là những thiết bị giả. Bạn có thể chạy

modprobe dummy

Để tạo một giao diện mạng được gọi là dummy0.

Nếu bạn muốn có nhiều hơn một thiết bị, bạn có thể tạo say 5 với

modprobe dummy numdummies=5

Sau đó, bạn có thể điều khiển các thiết bị này giống như bất kỳ thiết bị mạng nào khác.

Cung cấp cho nó một địa chỉ MAC với

ip link set dummy0 address aa:aa:aa:bb:bb:bb

Cung cấp cho nó một địa chỉ IP với

ip addr add 10.0.0.1/24 dev dummy0

Thêm nó vào cây cầu hiện tại của bạn với

brctl addif virbr0 dummy0

Thiết lập nó, đặt nó xuống, NAT tắt nó, và như vậy.


1
Câu trả lời này có vẻ đúng hơn so với giải pháp thay thế nhưng nó thiếu chi tiết về việc chỉ tạo một giao diện tương đương với những gì KVM thiết lập theo mặc định (virbr0-nic).
pepper_chico

Người đăng câu hỏi dường như hiểu cây cầu làm gì và thiết bị giả làm gì, anh ta chỉ muốn biết cách tạo giao diện tương tự. Bạn được chào đón để cải thiện câu trả lời nếu bạn cảm thấy nó có thể tốt hơn.
suprjami

6

Libvirt đang sử dụng thiết bị TUN cho mục đích này. Bạn có thể tự tạo thiết bị này bằng lệnh sau:

# /usr/bin/tunctl -t virbr0-nic

3

virbr0-nic là viết tắt của cầu ảo ảo.

Về cơ bản, nó là cầu nối giữa Thẻ mạng vật lý của bạn và Thẻ mạng ảo của Máy ảo.

Để quản lý giao diện cầu nối, bạn có thể sử dụng brctllệnh. Bạn có thể liệt kê tất cả các giao diện bắc cầu của bạn với

brctl show 

và thêm hoặc sửa đổi các cây cầu phù hợp với nhu cầu của bạn. Để tạo một cây cầu mới sử dụng

brctl addbr <name>

nơi <name>sẽ là tên cây cầu mới của bạn (dưới dạng virbr0-nic). Sau đó, bạn có thể thêm giao diện vào cây cầu với

brctl addif <brname> <ifname>

Bạn có thể tham khảo trang người đàn ông để biết thêm thông tin.


1
Điều này thực sự không nói về việc tạo ra một "virbr1-nic" mới, chỉ là một "virbr1" mới có giao diện được đặt ("virbr1-nic") được ngụ ý tồn tại trước đó.
pepper_chico

Tôi cũng không nghĩ nó là cầu nối giữa vật lý và ảo. Tôi phải giả mạo giữa virbr0 và vật lý cho các gói để được định tuyến.
Pete Ashdown

2

Không rõ chính xác loại thiết bị nào virbr0-nicvnet1trong thiết lập của bạn. Có một số loại thiết bị ảo có thể hữu ích để đưa vào một cây cầu, một số trong số đó có thể được tạo bằng iplệnh.

Một loại thiết bị ảo vethtạo ra các cặp giao diện Ethernet ảo được kết nối.

ip link add veth0 type veth peer name veth1

Trong ví dụ này veth0veth1là các tên giao diện tùy ý mà tôi đã đưa ra ví dụ. Ví dụ, phương pháp này có thể hữu ích nếu bạn muốn di chuyển một trong hai giao diện sang một không gian tên mạng khác nhau.

Một loại giao diện ảo khác là vlannơi bạn tạo một giao diện Ethernet ảo duy nhất được gắn vào thẻ 802.1q cụ thể trên giao diện vật lý:

ip link add link eth0 name eth0.10 type vlan id 10

Có một trang hướng dẫn với thông tin về nhiều loại giao diện ảo có thể được tạo bằng iplệnh. Tên của trang man phụ thuộc vào phiên bản bạn đã cài đặt, tôi đã thấy nó được đặt tên ip-linkhoặc chỉ ip.

Ngoài ra, nếu bạn đang sử dụng bất kỳ ảo hóa nào, có các giao diện ảo kết nối máy chủ và VM. Các chi tiết cụ thể phụ thuộc vào giải pháp ảo hóa mà bạn đang sử dụng.


1

nhưng tôi không có cái này / usr / bin / tuncl -t virbr0-nic tôi điều được cài đặt từ buồng lái và tôi không thể tìm thấy tùy chọn xóa khi tôi sẽ sử dụng máy ảo thì nó vẫn ổn khi tồn tại nhưng để kết nối mạng với systemd-networkd tôi có nhiều vấn đề với nó. Buồng lái sẽ sử dụng Trình quản lý mạng và các tệp cấu hình từ nó. Sau khi cài đặt, mạng của tôi bị hỏng, tất cả các thiết bị và ứng dụng đều gặp sự cố.

Nếu bạn kiểm tra 'ifconfig -a' sau khi cài đặt mới hệ thống RHEL / CentOS 6,7, bạn sẽ tìm thấy tên virbr0 giao diện. Dưới đây là một ví dụ từ hệ thống CentOS 7 mới cài đặt.

ifconfig -a

....

virbr0: flags=4099[UP,BROADCAST,MULTICAST]  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:d5:f2:0c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0-nic: flags=4098[BROADCAST,MULTICAST]  mtu 1500
        ether 52:54:00:d5:f2:0c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Giao diện virbr0 là gì Giao diện cầu virbr0 được tạo bởi cấu hình mạng mặc định của libvirtd. libvirtd là dịch vụ cung cấp cơ sở cho máy chủ hoạt động như một trình ảo hóa. Vì vậy, trong trường hợp bạn không sử dụng ảo hóa xen kẽ, bạn có thể ngăn mạng mặc định của libvirtd được kích hoạt khi khởi động hoặc bạn có thể ngăn libvirtd tự kích hoạt khi khởi động. Cái trước sẽ ngăn bất kỳ máy khách VM nào được gắn vào mạng mặc định của libvirtd có kết nối mạng và cái sau sẽ ngăn VM chạy. Sẽ không sao nếu bạn không sử dụng nó. Vô hiệu hóa mạng mặc định libvirtd

  1. Bạn có thể tạm thời vô hiệu hóa mạng mặc định của libvirtd bằng lệnh virsh. Điều này sẽ không tồn tại trong suốt quá trình khởi động lại.

    virsh phá hủy mặc định

  2. Để vô hiệu hóa vĩnh viễn mạng mặc định libvirtd khi được tạo khi khởi động:

    virsh net-autostart mặc định - có thể chia sẻ

Xóa mạng mặc định libvirtd Để xóa vĩnh viễn mạng mặc định libvirtd:

virsh net-undefine default

Để vô hiệu hóa vĩnh viễn dịch vụ libvirtd bắt đầu khi khởi động trên RHEL5 và RHEL6:

chkconfig libvirtd off

Để vô hiệu hóa vĩnh viễn dịch vụ libvirtd bắt đầu khi khởi động trên RHEL7:

systemctl disable libvirtd.service
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.