web-dev-qa-db-ja.com

現在のLinuxホストで実行されている仮想イーサネットペアを一覧表示するにはどうすればよいですか?

Linuxシステムで使用されているvethペアに関連する質問があります。現在のホストで実行されているvethペアを知りたいのですが、これは、1つのLinuxコマンドを使用してペアを照会するか、いくつかのファイルで関連する構成を見つけることを意味します。

vethペアを作成するには、次を使用するだけでよいことを知っています。

ip link add name1 type veth name2

しかし、現在実行中のvethペアを照会するために使用できるコマンドまたはファイルが見つかりませんでした。

現在実行中のvethペアを見つける方法を知っている場合は、教えてください。これは私に大いに役立つでしょう。

4
Yang

次のethtoolコマンドを使用して、ピアifindexを取得できます。

# ethtool -S veth1
NIC statistics:
     peer_ifindex: 7

ifindexは次のように表示されます:

# ip link

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

5
Etsukata

ピアvethインターフェイスを表示するコマンドを作成しました。

https://github.com/hariguchi/veth-peer

$ Sudo ip link add foo-bar type veth peer name bar-foo
[Sudo] password for XXX:
$ veth-peer foor-bar
bar-foo
$ veth-peer xxx
xxx: Link not found
$ veth-peer lo
lo is not veth.
$ Sudo ip link del foo-bar
           $ veth-peer bar-foo
           bar-foo: Link not found
$
1

私はIPネットのない古いLinuxカーネルを持っているので、必要な情報を得るためにこれをまとめました。 LXCコンテナーにSSHで接続できると仮定すると、これは役立つかもしれません。簡単なハックです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
0
Neil McGill

この単純なスクリプトを使用すると、ペアを見つけることができます(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ペア-vethインターフェース名はqv*で始まります。

0
HrvojeH