麒麟V10操作系统之KVM部署虚拟机_麒麟v10安装kvm-CSDN博客文章浏览阅读3.7k次,点赞30次,收藏25次。本文介绍了在麒麟V10操作系统上部署KVM虚拟机的详细步骤,包括检查虚拟化支持、安装KVM组件、创建虚拟机、配置网络桥接,以及解决可能遇到的问题。特别强调了如何处理网卡桥接和配置文件的持久化设置。https://blog.csdn.net/qq_53146347/article/details/137963006?fromshare=blogdetail&sharetype=blogdetail&sharerId=137963006&sharerefer=PC&sharesource=qq_53146347&sharefrom=from_link其实我们可以看到,现在只是用到了麒麟操作系统上的KVM服务,本质上麒麟操作系统是可以不需要对外提供服务的,因此我们可以直接把麒麟操作系统封锁了那需要怎么操作呢?
KVM桥接模式中网络网卡与虚拟网卡之间的关系
可以看到,在KVM中创建出来的虚拟网卡是Virbr0,桥接到了物理网卡eno3上,此时br0网口有一个IP:1.64
我们再看下eno3的IP地址
确认了是同一网段,1.64是我们需要对外提供服务的IP,而1.112是麒麟V10对外提供服务用的,聪明的你是不是和我想的一样,直接在麒麟V10底层启用iptables规则拦截1.112岂不是就好了。
iptables规则拦截机制
答对了,是这样的,但是有没有发现有一个小疑惑的地方?在同一物理网口上起了桥接,封堵了服务器的IP地址那我内部KVM服务的IP是否还能通呢?又为什么能通呢?
首先,我们通过下面的命令将1.112所有的出站数据包全部拦截:
iptables -A OUTPUT -s X.X.1.112 -j DROP
此时,我们再想网络在进行TCP连接时的,数据包转发过程,是不是这样:
-
ARP探测阶段(局域网内)
- [客户端→广播] ARP请求帧:Who has [目标]? Tell [客户端MAC]
- [目标→客户端] ARP响应帧:[目标MAC] is at [目标IP]
-
TCP三次握手
- [客户端→目标] SYN(Seq=x)
- [目标→客户端] SYN+ACK(Seq=y, Ack=x+1)
- [客户端→目标] ACK(Ack=y+1)
-
SSH协议交互
- [目标→客户端] SSH版本字符串(如"SSH-2.0-OpenSSH")
- [客户端→目标] 支持的SSH版本响应
- 双方交换算法列表(加密/HMAC/压缩等)
显然我相信你肯定看出端倪了,根据TCP/IP协议栈划分,IP属于三层协议,iptables也是作用于三层和四层,所以每一个IP都是独立的逻辑接口,所以不论是一个接口上有多IP还是同一个接口做了桥接,封堵其中一个IP是不会影响另一个IP的出入站的。