4

У меня есть вопрос, связанный с парой veth которая используется в системе Linux. Я хочу знать, какие пары veth работают на текущем хосте, что я имею в виду, запросив пары с помощью одной команды Linux или найдя соответствующую конфигурацию в некоторых файлах.

Я знаю, что построить пару veth , вы можете просто с помощью

ip link add name1 type veth name2

Но я не нашел команду или файл, которые могли бы быть использованы для запроса текущих работающих пар veth.

Если вы знаете, как найти текущие пары veth , подскажите , пожалуйста? Это мне очень поможет.

4 ответа4

6

Вы можете получить равный ifindex с помощью следующей команды ethtool.

# ethtool -S veth1
NIC statistics:
     peer_ifindex: 7

ifindex показывается с помощью:

# ip link

Ссылка:http://www.spinics.net/lists/netdev/msg102062.html

1

Я только что написал команду, чтобы показать интерфейс peer 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
$
0

У меня старое ядро 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
0

С помощью этого простого скрипта вы можете найти пары (для 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

В парах Veth OpenStack - имена интерфейсов Veth начинается с qv*

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .