How can I list which virtual ethernet pairs are running in the current linux host?
Solution 1
You can get peer ifindex with the following ethtool command.
# ethtool -S veth1
NIC statistics:
peer_ifindex: 7
ifindex is shown with:
# ip link
Ref: http://www.spinics.net/lists/netdev/msg102062.html
Solution 2
I have just written a command to show the peer veth interface:
https://github.com/hariguchi/veth-peer
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
$
Solution 3
I have an older linux kernel without ip netns so I cobbled this together to get the needed info. Assuming you can ssh into your LXC containers, this might be of use to you. It's a quick hack 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
Related videos on Youtube
user1984103
I am a Computer Programmer and Software Engineer in Austin, TX. I develop web applications for a living and spend my spare time tinkering with all manner of computers and hosted servers, and playing D&D when CPUs aren't melting.
Updated on September 18, 2022Comments
-
user1984103 over 1 year
I have a question related to the
veth
pair that is used in Linux system. I want to know whichveth
pairs are running in the current host, which I mean querying the pairs by using one Linux command or finding the related configuration in some files.I know that to construct
veth
pair, you can simply by usingip link add name1 type veth name2
But I haven't found an command or file that could be used to query the current running veth pairs.
If you know a way that could find the current running
veth
pairs, could you please tell me? This would help me a lot. -
Curtis Yallop about 6 yearsFor me it shows the peer ifindex right in "ip link" eg veth173321d@if82 so 82 is the linked address if I type "ethtool -S veth173321d".