通信-在虚拟机上eth0 ping 主机,为什么在其他出接口(eth1)tcpdump还能看到报文?

问题描述

在虚拟机上eth0 ping 主机,为什么在其他出接口(eth1)tcpdump还能看到报文?

主机信息:

连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::998f:e20:1480:3aab%13
IPv4 地址 . . . . . . . . . . . . : 192.168.1.107
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.1.1

虚拟机信息(路由和ip地址):
eth0 Link encap:Ethernet HWaddr 00:0C:29:A0:55:AB

inet addr:192.168.1.108 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fea0:55ab/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8313 errors:0 dropped:0 overruns:0 frame:0
TX packets:9646 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:612195 (597.8 KiB) TX bytes:2116557 (2.0 MiB)
Interrupt:19 Base address:0x2024

eth1 Link encap:Ethernet HWaddr 00:0C:29:A0:55:B5

inet addr:192.168.1.109 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fea0:55b5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1443 errors:0 dropped:0 overruns:0 frame:0
TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:128176 (125.1 KiB) TX bytes:5634 (5.5 KiB)
Interrupt:19 Base address:0x20a4

eth2 Link encap:Ethernet HWaddr 00:0C:29:A0:55:BF

inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fea0:55bf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8109 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1117965 (1.0 MiB) TX bytes:1408 (1.3 KiB)
Interrupt:16 Base address:0x2424

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:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1584 (1.5 KiB) TX bytes:1584 (1.5 KiB)

[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth2
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

在虚拟机上进行如下操作:(去ping主机的ip地址,用eth0)
[root@localhost ~]# ping 192.168.1.107 -I eth0
PING 192.168.1.107 (192.168.1.107) from 192.168.1.108 eth0: 56(84) bytes of data.
64 bytes from 192.168.1.107: icmp_seq=1 ttl=64 time=0.492 ms
64 bytes from 192.168.1.107: icmp_seq=2 ttl=64 time=0.500 ms
64 bytes from 192.168.1.107: icmp_seq=3 ttl=64 time=1.13 ms
64 bytes from 192.168.1.107: icmp_seq=4 ttl=64 time=0.517 ms
64 bytes from 192.168.1.107: icmp_seq=5 ttl=64 time=0.381 ms
在虚拟机上抓包(抓eth2)
[root@localhost ~]# tcpdump -i eth2 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
18:11:46.945393 IP 192.168.1.108 > 192.168.1.107: ICMP echo request, id 54537, seq 8, length 64
18:11:46.945438 IP 192.168.1.107 > 192.168.1.108: ICMP echo reply, id 54537, seq 8, length 64
18:11:47.947676 IP 192.168.1.108 > 192.168.1.107: ICMP echo request, id 54537, seq 9, length 64
竟然可以抓到。
我就很疑惑,虚拟机的网卡都是桥连的,感谢大牛为我解决疑惑。

解决方案

本来所有虚拟网卡你抓包都可能抓到。

解决方案二:

虚拟机的三个口eth0/eth1/eth2都是桥接的?

可以把虚拟系统的桥接方式,理解为主机和所有的桥接口都连接到一个虚拟hub上。
所以,每个hub口都可以监听所有hub口上的流量。

按理说,实现成虚拟switch更合理一些,这跟monitor的实现有关系。
比如说,像virtual box,它的networking有一个选项,叫做Promiscumous Mode,可以取Deny All/Allow VMs/Allow All几个值,这个控制粒度就更进了一步。

时间: 2024-10-28 19:33:00

通信-在虚拟机上eth0 ping 主机,为什么在其他出接口(eth1)tcpdump还能看到报文?的相关文章

convirt2.5在虚拟机上安装笔记

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">convirt2.5在虚拟机上安装笔记</span> 简介:ConVirt开源是业内领先的Xen/KVM开源管理产品, 使企业能够以集中的方式管理其虚拟环境.ConVirt开源支持企业通过一个交互式的Web用户界面进行虚拟机部署.性能诊断.负载均衡.ConVirt开源对用户完

怎样访问虚拟机上的hadoop

问题描述 我主机是WIn7,虚拟机安装的是CentOS64,在CentOS安装hadoop,但是要怎么样才能在主机浏览器上访问虚拟机上安装的hadoop呢? 解决方案 解决方案二:1首先你的虚拟机和主机间的网络必须是通的(这个在你虚拟机软件上配置的)2其次是在hadoop的core-site.xml,hdfs-site.xml,mapred-site.xml三个文件上把你的master名和端口配上3hadoop能正常起来并且俩台机器间通信网络没问题,就可以通过http://虚拟机ip:50070

如何实现光盘在虚拟机上打开拷贝?

  第一步:打开虚拟机 1.双击桌面上的虚拟机软件VMware快捷方式,打开虚拟机软件,如下图 2.点击命令项目中的"启动此虚拟机"命令,启动虚拟机,如下图 点击"启动此虚拟机"命令后,虚拟机开始启动并自动进入在此虚拟机上安装的操作系统,如下图 第二步:插入光盘 1.我们把光盘插入电脑光驱,如下图 2.当我们打开主机的"我的电脑"里的"DVD驱动器"后,光盘的所有文件都呈现在当前窗口里面,但在虚拟机里面,我们却打不开光驱,如下

服务器-win7网页上访问不到虚拟机上linux的ip

问题描述 win7网页上访问不到虚拟机上linux的ip 上图是linux虚拟机的网卡配置,下图是ipconfig 我想在win7下的浏览器上通过ip访问linux的服务器但是说找不到,通过ftp来打开也说找不到,不能正常连接,请问大神我这网络配置出什么问题了 解决方案 1.查看虚拟网卡是否被禁用了(如果被禁用就打开) 2.连接网络-->选择桥接 3.重启linux 4.关闭防火墙, ---->命令: service iptables stop 5.查看linux的ip ----> 命令

win7下使用Navicat for Mysql连接Ubuntu虚拟机上的mysql服务器步骤

问题描述 win7下使用Navicat for Mysql连接Ubuntu虚拟机上的mysql服务器步骤 虚拟机ubuntu,需要操作什么命令,虚拟机上可以进入mysql创建的数据库,但是在win7中Navicat for Mysql没有显示 Navicat for Mysql中主机名或IP地址是localhost,是否应该连接虚拟机的IP地址? 解决方案 设置虚拟机ip地址. 解决方案二: 使用Navicat for Mysql连接Ubuntu虚拟机上的mysql服务器失败 - Segment

关于在虚拟机上搭建域的疑问……

呵呵,这几天真他妈的太忙了.昨天忙到夜里12点,今天又忙了一天.但是,这并不能阻止的我的学习,我的进步. 下面就我最近研究在虚拟机搭建域过程中遇到的问题与解决方法. 必备知识: 无论是DC(域控制器)还是客户端网络接入模式,一定要选择桥接模式.否则无论你的DC还是客户端设置多么正确,但是客户端就是不能加入域. 问题1:在虚拟机上搭建好域好后,客户端如何加入域??? 具体客户端如何加入域,我在这就不做具体介绍了.你可以看看我以前的帖子.烂泥:研究域小进步--一般出现的情况是:不能加入域. 解决方法

java web-如何在本机访问虚拟机上所写的javaweb

问题描述 如何在本机访问虚拟机上所写的javaweb 如何在本机访问虚拟机上所写的javaweb?本机win8.1 虚拟机win7系统 是否先ping虚拟机的地址?还是有其他方法 在线求解 解决方案 虚拟机用bridge而不是nat,在一个网段内.打开防火墙,配置好web服务器和ip就可以了. 解决方案二: 不是局域网就无法访问了么? 解决方案三: 用ip即可,如果是linux记得关掉selinux并且打开80端口. 解决方案四: 直接用IP就可以了,都能访问到.然后就是浏览器等打开web页面

linux系统问题,虚拟机上的linux上网问题

问题描述 linux系统问题,虚拟机上的linux上网问题 电脑win7,ip为192.168.200.102 虚拟机虚拟网卡 vm8:192.168.204.1 linux系统 ip: 192.168.204.3 网关设置无问题,上网方式为NAT,为什么我的win7可以ping通虚拟机网卡和linux, 但是linux系统只能ping通虚拟机网卡,ping不通win7的ip? 解决方案 windows,跟Linux机器之间互通本来就支持不够好,ping不同很正常,看能不能互相访问文件等 解决方

azure-如和将自己的网站挂到Azure虚拟机上

问题描述 如和将自己的网站挂到Azure虚拟机上 小白有一个脑残的问题,望大神指导 因为Azure虚拟机有一个公用虚拟IP和一个内部IP,那我我应该怎样设置解析才可以将网站挂到Azure虚拟机上. 解决方案 创建个AZURE WEBSITE,创建完成后会生成一个配置文件,下载到本地后,当用VS发布网站时,加载此配置文件,可直接将你的本地网站发布到AZURE 解决方案二: 虚拟机首先装好iis,然后部署你的网站,绑定到主机ip,azure确保vm打开了80端口,此时就可以通过azure分配给你的域