Você pode obter peer ifindex com o seguinte comando ethtool.
# ethtool -S veth1
NIC statistics:
peer_ifindex: 7
ifindex é mostrado com:
# ip link
Ref: link
Eu tenho uma pergunta relacionada ao par veth
que é usado no sistema Linux. Eu quero saber quais veth
pares estão executando no host atual, o que quero dizer consultando os pares usando um comando do Linux ou encontrando a configuração relacionada em alguns arquivos.
Eu sei que, para construir veth
pair, você pode simplesmente usar
ip link add name1 type veth name2
Mas não encontrei um comando ou arquivo que pudesse ser usado para consultar os pares veth em execução.
Se você conhece uma maneira de encontrar os pares veth
em execução, você poderia me informar? Isso me ajudaria muito.
Você pode obter peer ifindex com o seguinte comando ethtool.
# ethtool -S veth1
NIC statistics:
peer_ifindex: 7
ifindex é mostrado com:
# ip link
Ref: link
Acabei de escrever um comando para mostrar a interface peer veth:
Example
$ 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
$
Eu tenho um kernel linux mais antigo sem ip netns, então eu montei isso juntos para obter as informações necessárias. Supondo que você pode ssh em seus contêineres LXC, isso pode ser útil para você. É um hack rápido 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
Com este script simples você pode encontrar os pares (para 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
Em pares OpenStack veth - os nomes da interface veth começam com qv*
.