首页 > 解决方案 > 如何在 Linux 中使用 c-api 查找 VRF 设备的路由表 ID

问题描述

我想找到 VRF 设备和路由表 ID 之间的关联。

VRF 设备“vrf-blue”是已知的,但结构 rtmsg 需要表 ID“10”。 rtnetlink

# ip link add vrf-blue type vrf table 10

struct rtmsg {
    unsigned char       rtm_family;
    unsigned char       rtm_dst_len;
    unsigned char       rtm_src_len;
    unsigned char       rtm_tos;
    unsigned char       rtm_table;  /* Routing table id */
    unsigned char       rtm_protocol;   /* Routing protocol; see below  */
    unsigned char       rtm_scope;  /* See below */ 
    unsigned char       rtm_type;   /* See below    */
    unsigned        rtm_flags;
};

标签: clinuxrouting

解决方案


使用详细的输出选项:

ip -d link show type vrf

示例输出:

14: vrf5: <NOARP,MASTER> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 5a:32:3b:9f:e9:ef brd ff:ff:ff:ff:ff:ff promiscuity 0
    vrf table 327 addrgenmode eui64    <----------------table id is 327
15: vrf6: <NOARP,MASTER> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 76:8f:8f:dc:13:8f brd ff:ff:ff:ff:ff:ff promiscuity 0
    vrf table 328 addrgenmode eui64

推荐阅读