KVM 网桥分配静态 IP

mus*_*ing 4 kvm

我安装了 Ubuntu 服务器 14.04。并为其分配了静态IP...然后安装了KVM和虚拟机管理器...然后创建了一个测试虚拟机,它也可以通过NAT使用本地IP地址。

我有两张 LAN 卡,只有一张连接到互联网。

我想要的是将 em2 桥接到来宾机器的配置。因此,该静态 IP 地址也适用于来宾计算机。现在,如果我将静态 ip 分配给来宾机器,则没有连接。

我的 ifconfig 详细信息是:

ifconfig -a

em1       Link encap:Ethernet  HWaddr 0c:c4:7a:4d:96:aa  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  
          Memory:f7100000-f717ffff  

em2       Link encap:Ethernet  HWaddr 0c:c4:7a:4d:96:ab  
          inet addr:68.168.105.130  Bcast:68.168.105.255  Mask:255.255.255.0  
          inet6 addr: fe80::ec4:7aff:fe4d:96ab/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:3717 errors:0 dropped:10 overruns:0 frame:0  
          TX packets:373 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:269655 (269.6 KB)  TX bytes:239608 (239.6 KB)  
          Interrupt:20 Memory:f7200000-f7220000  

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:65536  Metric:1  
          RX packets:123 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:123 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:8881 (8.8 KB)  TX bytes:8881 (8.8 KB)  

virbr0    Link encap:Ethernet  HWaddr 52:54:00:23:1c:65  
          inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  

virbr0-nic Link encap:Ethernet  HWaddr 52:54:00:23:1c:65  
          BROADCAST MULTICAST  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:500  
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B) 
Run Code Online (Sandbox Code Playgroud)

和 /etc/network/interfaces 详细信息是:

auto lo  
iface lo inet loopback  


auto em2  
iface em2 inet static  
        address 68.168.105.130  
       netmask 255.255.255.0  
       network 68.168.105.0  
       broadcast 68.168.105.255  
       gateway 68.168.105.1  
       # dns-* options are implemented by the resolvconf package, if installed  
        dns-nameservers 8.8.8.8  
        dns-search dedicated.codero.net 
Run Code Online (Sandbox Code Playgroud)

Dou*_*ies 6

第 1 步:创建桥

您可能已经bridge-utils安装了,但如果您没有安装:

sudo apt-get install bridge-utils
Run Code Online (Sandbox Code Playgroud)

在主机中以 root 身份编辑/etc/network/interfaces

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
address 68.168.105.130
netmask 255.255.255.0
network 68.168.105.0
broadcast 68.168.105.255
gateway 68.168.105.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search dedicated.codero.net 
bridge_ports em2
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
Run Code Online (Sandbox Code Playgroud)

现在您可以重新启动或:

sudo ifup br0
Run Code Online (Sandbox Code Playgroud)

参考

步骤 2:修改您的 VM 定义以使用网桥

注意:可能有一种方法可以使用 来执行此步骤virt-manager,但是我不使用它,也不知道如何使用。

使用virsh edit并更改您的接口定义行以使用桥接而不是当前使用的。这是我的一个 VM 的示例。前:

sudo apt-get install bridge-utils
Run Code Online (Sandbox Code Playgroud)

后:

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
address 68.168.105.130
netmask 255.255.255.0
network 68.168.105.0
broadcast 68.168.105.255
gateway 68.168.105.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search dedicated.codero.net 
bridge_ports em2
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
Run Code Online (Sandbox Code Playgroud)

步骤 3:在来宾 VM 中指定静态 IP 地址

现在,在运行来宾 VM(目前可能存在网络问题)时,编辑/etc/network/interfaces并添加接口名称的静态定义。例如,并猜测您的设置:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 68.168.105.101
netmask 255.255.255.0
network 68.168.105.0
broadcast 68.168.105.255
gateway 68.168.105.1
dns-nameservers 8.8.8.8
dns-search dedicated.codero.net 
Run Code Online (Sandbox Code Playgroud)

笔记:

使用的默认编辑器由环境变量virsh edit定义$EDITOR,或者vi如果它不存在。添加export EDITOR="/bin/nano"到您的~/.bashrc文件以设置,例如,nano 作为您的默认编辑器。

您必须使用virsh edit不会直接编辑XML文件,因为virsh edit在保存并退出会做了一堆检查。从任何目录,例如,执行:

virsh edit desk_tt
Run Code Online (Sandbox Code Playgroud)

  • 据我所知 virt-manager 算是一个不错的工具,我只是不使用它。备份解决方案是一个不同的问题,无论如何我都不知道。我只是使用 rsync 到另一台计算机。我花了很多时间在我的答案上。如果它对你有用,请接受它。 (2认同)