问题客户机安装完成后,需要为其设置网络接口的网络连接

问题

客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。

KVM 客户机网络连接有两种方式:

本文主要解释NAT方式的配置。

NAT方式原理

NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。

检查当前的网络设置:

#virsh net-list –all

Name State Autostart

—————————————–

default active yes

default是宿主机安装虚拟机支持模块的时候自动安装的。

检查当前的网络接口:

#ifconfig

eth0 Link encap:Ethernet HWaddr 44:37:E6:4A:62:AD

inet6 addr: fe80::4637:e6ff:fe4a:62ad/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:987782 errors:0 dropped:0 overruns:0 frame:0

TX packets:84155 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:109919111 (104.8 MiB) TX bytes:12695454 (12.1 MiB)

Interrupt:17

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:16436 Metric:1

RX packets:4 errors:0 dropped:0 overruns:0 frame:0

TX packets:4 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:240 (240.0 b) TX bytes:240 (240.0 b)

virbr0 Link encap:Ethernet HWaddr 52:54:00:B9:B0:96

inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

图片[1]-问题客户机安装完成后,需要为其设置网络接口的网络连接-唐朝资源网

TX packets:2126 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:0 (0.0 b) TX bytes:100387 (98.0 KiB)

virbr0-nic Link encap:Ethernet HWaddr 52:54:00:B9:B0:96

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)

其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。

几个虚拟机管理模块产生的接口关系如下图:

从图上可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。

virbr0是一个桥接器,接收所有到网络192.168.122.*的内容。从下面命令可以验证:

# brctl show

bridge name bridge id STP enabled interfaces

virbr0 8000.525400b9b096 yes virbr0-nic

# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0

同时,虚拟机支持模块会修改iptables规则,通过命令可以查看:

# iptables -t nat -L -nv

Chain PREROUTING (policy ACCEPT 16924 packets, 2759K bytes)

pkts bytes targetprot opt inoutsourcedestination

Chain POSTROUTING (policy ACCEPT 2009 packets, 125K bytes)

pkts bytes targetprot opt inoutsourcedestination

421 31847 MASQUERADEall–**192.168.122.0/24!192.168.122.0/24———–>这条是关键,它配置了NAT功能。

Chain OUTPUT (policy ACCEPT 2011 packets, 125K bytes)

pkts bytes targetprot opt inoutsourcedestination

# iptables -t filter -L -nv

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

pkts bytes targetprot opt inoutsourcedestination

174 ACCEPTudp–virbr0 *0.0.0.0/00.0.0.0/0udp dpt:53 —->由libvirt脚本自动写入

00 ACCEPTtcp–virbr0 *0.0.0.0/00.0.0.0/0tcp dpt:53 —->由libvirt脚本自动写入

3984 ACCEPTudp–virbr0 *0.0.0.0/00.0.0.0/0udp dpt:67 —->由libvirt脚本自动写入

00 ACCEPTtcp–virbr0 *0.0.0.0/00.0.0.0/0tcp dpt:67 —->由libvirt脚本自动写入

178K195M ACCEPTall–**0.0.0.0/00.0.0.0/0state RELATED,ESTABLISHED—->iptables的系统预设

2168 ACCEPTicmp –**0.0.0.0/00.0.0.0/0—->iptables的系统预设

1148216K ACCEPTall–lo*0.0.0.0/00.0.0.0/0—->iptables的系统预设

160 ACCEPTtcp–**0.0.0.0/00.0.0.0/0state NEW tcp dpt:22 —->iptables的系统预设

16564 2721K REJECTall–**0.0.0.0/00.0.0.0/0reject-with icmp-host-prohibited—->iptables的系统预设

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes targetprot opt inoutsourcedestination

3726 3485K ACCEPTall–*virbr00.0.0.0/0192.168.122.0/24state RELATED,ESTABLISHED —->由libvirt脚本自动写入

3491399K ACCEPTall–virbr0 *192.168.122.0/240.0.0.0/0—->由libvirt脚本自动写入

00 ACCEPTall–virbr0 virbr00.0.0.0/00.0.0.0/0—->由libvirt脚本自动写入

00 REJECTall–*virbr00.0.0.0/00.0.0.0/0reject-with icmp-port-unreachable —->由libvirt脚本自动写入

00 REJECTall–virbr0 *0.0.0.0/00.0.0.0/0reject-with icmp-port-unreachable —->由libvirt脚本自动写入

00 REJECTall–**0.0.0.0/00.0.0.0/0reject-with icmp-host-prohibited —->iptables的系统预设

Chain OUTPUT (policy ACCEPT 181K packets, 138M bytes)

pkts bytes targetprot opt inoutsourcedestination

如果没有default的话,或者需要扩展自己的虚拟网络,可以使用命令重新安装NAT。

NAT方式的适用范围

桌面主机虚拟化。

创建步骤

#virsh net-define /usr/share/libvirt/networks/default.xml

此命令定义一个虚拟网络,default.xml的内容:

default

也可以修改xml,创建自己的虚拟网络。

标记为自动启动:

#virsh net-autostart default

Network default marked as autostarted

启动网络:

#virsh net-start default

Network default started

网络启动后可以用命令brctl show 查看和验证。

修改/etc/sysctl.conf中参数,允许ip转发:

net.ipv4.ip_forward=1

© 版权声明
THE END
喜欢就支持一下吧
点赞202赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容