我有一个关于veth
Linux 系统中使用的 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
答案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