如何列出当前 Linux 主机中正在运行的虚拟以太网对?

如何列出当前 Linux 主机中正在运行的虚拟以太网对?

我有一个关于vethLinux 系统中使用的 pair 的问题。我想知道veth当前主机中正在运行哪些 pair,我的意思是使用一个 Linux 命令来查询 pair 或在某些文件中找到相关配置。

我知道要构造veth对,你可以简单地使用

ip link add name1 type veth name2

但是我还没有找到可以用来查询当前正在运行的 veth 对的命令或文件。

如果您知道可以找到当前正在运行的对的方法veth,可以告诉我吗?这对我很有帮助。

答案1

您可以使用以下 ethtool 命令获取对等 ifindex。

# ethtool -S veth1
NIC statistics:
     peer_ifindex: 7

ifindex 显示为:

# ip link

参考: http://www.spinics.net/lists/netdev/msg102062.html

答案2

我有一个较旧的 Linux 内核,没有 ip netns,所以我拼凑了这些来获取所需的信息。假设您可以通过 ssh 进入您的 LXC 容器,这可能会对您有用。这是一个快速破解 8)

MY_VMS="10.0.1.1" # etc... change as needed
for A_VM in $MY_VMS
do
  if [ ! -f $A_VM.list ]
  then
    ssh $A_VM ip link list > $A_VM.list
  fi

  for i in `ifconfig -a | grep "Link encap" | sed 's/ .*//g'`
  do
    PEER_IFINDEX=`ethtool -S $i 2>/dev/null | grep peer_ifindex | sed 's/ *peer_ifindex: *//g' `
    if [ "$PEER_IFINDEX" = "" ]
    then
      continue
    fi

    PEER_IF=`grep "^$PEER_IFINDEX:" $A_VM.list  | awk '{print $2}' | sed 's/:.*//g'`
    if [ "$PEER_IF" = "" ]
    then
      continue
    fi
    printf "%-10s is paired with %-10s on %-20s\n" $i $PEER_IF $A_VM
  done
done

答案3

使用这个简单的脚本,你可以找到对(对于OpenStack):

#!/bin/bash
for i in `ifconfig -a |grep qv |awk -F: '{print $1}'` ;
   do
      echo "---------------"
      echo $i
      echo "Our ID: " `ip link show dev $i | grep $i | awk -F: '{print $1}'`
      echo "Peer ID: " `ethtool -S $i |  grep -i peer_ifindex | awk -F: '{print $2}'`
      echo "---------------"
done

在 OpenStack 中韦特对 - veth 接口名称以 开头qv*

答案4

要获取所有 veth 接口,只需使用

# ip -c link show type veth

17: veth1@if16: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 8e:61:92:d9:03:15 brd ff:ff:ff:ff:ff:ff link-netnsid 0
25: veth3@if24: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 2a:a1:13:8c:9b:d2 brd ff:ff:ff:ff:ff:ff link-netnsid 0
27: veth5@if26: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 3a:b6:fb:5e:5b:ce brd ff:ff:ff:ff:ff:ff link-netnsid 0
28: veth8@if29: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether de:30:40:26:04:20 brd ff:ff:ff:ff:ff:ff link-netnsid 1
30: veth11@veth10: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether de:bb:24:8c:40:00 brd ff:ff:ff:ff:ff:ff
31: veth10@veth11: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 96:07:3e:b2:ac:1c brd ff:ff:ff:ff:ff:ff

相关内容