Linux虚拟网络

39 阅读2分钟

Dummy interface

虚拟接口是完全虚拟的, 例如环回口; 虚拟接口的目的是提供一个设备来路由数据包, 而不实际传输数据包

创建操作如下

# ip link add dummy1 type dummy
# ip addr add 1.1.1.1/24 dev dummy1
# ip link set dummy1 up

参考文档: developers.redhat.com/blog/2018/1…

网卡混杂模式(promiscuous mode)

混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。 普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。

一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。

网卡具有如下的几种工作模式:

  1. 广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。
  2. 多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。
  3. 直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己 Mac地址的帧。
  4. 混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。

网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。

设置混杂模式的两种方式

# 开启
# ifconfig eth0 promisc
# 关闭
# ifconfig eth0 -promisc

image.png

# 开启
# ip link set eth0  promisc on
# 关闭
# ip link set eth0  promisc off

image.png

注意: 是否处于混杂模式, 并不能通过ifconfig命令查看是否有PROMISC字段来判断, 因为在tcpdump抓包时默认会进入混杂模式, 此时网卡信息上是没有PROMISC字段; 可以通过查看下列文件内容来知晓是否处于混杂模式, 如果文件值为0x1103说明处于混杂模式, 如果为0x1003说明不处于混杂模式

# cat  /sys/class/net/eth0/flags
0x1103