目录

简介

先决条件

要求

使用的组件

CDP计时器和CDP保持时间

拓扑

路由器上的日志

在交换机上登录

情形 1：交换机发送带标记的CDP数据包

方案 2：交换机发送无标记CDP数据包

简介

本文档介绍Cisco发现协议(CDP)在路由器和运行Cisco IOS®的交换机之间的行为。

CDP是思科专有的第2层协议，与介质和协议无关，在所有思科制造的设备上运行。Cisco设备将CDP通告发送到组播目的地址01-00-0c-cc-cc-cc，从每个连接的网络接口发出。这些组播数据包由思科交换机和其他支持CDP的网络设备通过其连接的网络接口接收。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。本文档适用于所有运行思科 IOS 的思科路由器和交换机。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

CDP计时器和CDP保持时间

默认情况下，在支持子网访问协议(SNAP)报头（包括以太网、帧中继和ATM）的接口上，每60秒发送一次CDP通告。保持时间指定表中条目的生存期。也就是说，如果设备在超过保持时间的时间段内未收到任何通知，则设备信息将被丢弃（默认为180秒）。

要更改默认CDP计时器（60秒）和CDP保持时间（180秒），请分别输入cdp timer和cdp holdtime Cisco IOS配置命令。可以使用show cdp命令（显示当前设备的CDP设置）来验证更改。

Router#show cdp

Global CDP information:

Sending CDP packets every 60 seconds

Sending a holdtime value of 180 seconds

Sending CDPv2 advertisements is enabled

默认情况下，所有接口上都启用CDP。但是，有一个选项可以针对整个路由器或每个接口禁用CDP。

拓扑

交换机配置

路由器配置

Switch#show run int fa1/0/23

Building configuration...

Current configuration : 267 bytes

!

interface FastEthernet1/0/23

switchport trunk encapsulation dot1q

switchport trunk native vlan 10

switchport mode trunk

power inline never

spanning-tree portfast

spanning-tree guard root

end

int vlan 10

ip address 10.111.51.3 255.255.255.224

int vlan 21

ip address 10.111.48.3 255.255.255.128

Router#show run int gi0/1

interface GigabitEthernet0/1

no ip address

no ip redirects

duplex auto

speed auto

media-type rj45

end

interface GigabitEthernet0/1.1

encapsulation dot1Q 1

shutdown

end

interface GigabitEthernet0/1.10

encapsulation dot1Q 10

ip address 10.111.51.1 255.255.255.224

end

interface GigabitEthernet0/1.21

encapsulation dot1Q 21

ip address 10.111.48.1 255.255.255.128

end

路由器上的接口具有dot1q子接口gi0/0.1、gi0/0.10和gi0/0.21，分别配置了VLAN 1、10和21。交换机上的接口是允许所有VLAN的中继链路。

Router#show ip int brief

Interface                  IP-Address      OK? Method Status             Protocol

GigabitEthernet0/0         10.106.68.151   YES DHCP   up                    up

GigabitEthernet0/1         unassigned      YES NVRAM  up                    up

GigabitEthernet0/1.1       unassigned      YES unset  administratively down down

GigabitEthernet0/1.10      10.111.51.1     YES manual up                    up

GigabitEthernet0/1.21      10.111.48.1     YES manual up                    up

交换机将路由器显示为有效的CDP邻居，如下所示：

Switch#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Router           Fas 1/0/23        145             R S I  3845      Gig 0/1.10

路由器上的相同命令不会显示直连交换机。

Router#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

为CDP运行调试以帮助确定原因(debug cdp { packets |邻接 |事件})。

路由器上的日志

在缓存中找到此条目。

CDP-PA: version 2 packet sent out on GigabitEthernet0/1 --->the packet is sent out on gi0/1

在交换机上登录

CDP-PA: version 2 packet sent out on FastEthernet1/0/23

CDP-EV: No space for insertion of civic location

CDP-EV: No space (1068) for insertion of location information.

CDP-PA: Packet received from Router on interface FastEthernet1/0/23

根据以前的日志，路由器未从任何连接的接口上的交换机接收任何CDP数据包。使用dot1q封装的接口被管理性关闭。因此，当交换机发送CDP数据包时，路由器会丢弃该数据包。

注意：在路由器上，选择具有最低VLAN/dot1q封装的子接口作为传输CDP数据包的首选子接口。在交换机上，CDP流量始终优先于配置的最低VLAN。即VLAN 1始终，无法从VLAN数据库中删除。当交换机将CDP作为带标记数据包或无标记数据包发送时，CDP协议的行为会有所不同，具体取决于中继链路上配置的本征VLAN。

在交换机上，CDP流量始终优先于配置的最低VLAN。即VLAN 1始终，无法从VLAN数据库中删除。

当交换机将CDP作为带标记数据包或无标记数据包发送时，CDP协议的行为会有所不同，具体取决于中继链路上配置的本征VLAN。

情形 1：交换机发送带标记的CDP数据包

Switch configuration:

interface FastEthernet1/0/1

switchport trunk encapsulation dot1q

switchport trunk native vlan 10

switchport mode trunk

end

第 1 种情况： 路由器上配置了VLAN 1的子接口处于up/up状态

interface GigabitEthernet0/1.1

encapsulation dot1Q 1

end

interface GigabitEthernet0/1.10

encapsulation dot1Q 10

ip address 10.111.51.1 255.255.255.224

end

interface GigabitEthernet0/1.21

encapsulation dot1Q 21

ip address 10.111.48.1 255.255.255.128

end

GL.S.14-3800-8#show ip int brief

Interface                  IP-Address      OK? Method Status             Protocol

GigabitEthernet0/0         10.106.68.151   YES DHCP   up                    up

GigabitEthernet0/1         unassigned      YES NVRAM  up                    up

GigabitEthernet0/1.1       unassigned      YES unset  up                    up

GigabitEthernet0/1.10      10.111.51.1     YES manual up                    up

GigabitEthernet0/1.21      10.111.48.1     YES manual up                    up

交换机在VLAN 1上发送CDP数据包，路由器将作为标记数据包接收该数据包。路由器检查其子接口是否配置了VLAN1 dot1q封装，并且处于UP状态。如果此检查成功，则GigabitEthernet 0/1.1上的路由器将处理CDP数据包。

路由器将在编号最小的子接口上生成CDP数据包，该子接口处于up/up状态，并配置了VLAN1 dot1q封装（或最低的VLAN）。

在此场景中，路由器在gi0/1.1上发送无标记CDP数据包，这些数据包由FastEthernet1/0/23上的交换机接收。

在交换机上登录

CDP-PA:第2版数据包在FastEthernet1/0/23上发送。此条目在缓存中找到。

CDP-PA: Packet received from Router on interface FastEthernet1/0/23

路由器上的日志

CDP-PA:第2版数据包在GigabitEthernet0/1.1上发送。CDP-PA:从交换机接口GigabitEthernet0/1.1上收到的数据包。该条目在缓存中找到。

CDP-EV: Lookup for ip phone with idb= GigabitEthernet0/1.1

ip= 10.111.51.3 mac= 0021.567e.e219 platform= cisco WS-C3750-24P

在路由器上输入show cdp neighbor命令。

Switch#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Router          Fas 1/0/23        149             R S I  3845      Gig 0/1.1

在路由器上输入show cdp neigh命令。

Router#show cdp neigh

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge>

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,>

D - Remote, C - CVTA, M - Two-port Mac Relay>

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID>

Switch          Gig 0/1.1          158             S I   WS-C3750- Fas 1/0/23

第 2 种情况：更改路由器接口上的配置，以便您没有VLAN 1的子接口

!

interface GigabitEthernet0/1.1

end

!

Router#show ip interface brief

Interface                  IP-Address      OK? Method Status             Protocol

GigabitEthernet0/0         10.106.68.151   YES DHCP   up                    up

GigabitEthernet0/0.1       unassigned      YES unset  up                    up

GigabitEthernet0/1         unassigned      YES NVRAM  up                    up

GigabitEthernet0/1.1       unassigned      YES unset  up                    up

GigabitEthernet0/1.10      10.111.51.1     YES manual up                    up

GigabitEthernet0/1.21      10.111.48.1     YES manual up                    up

分析

交换机在fa1/0/23上发送CDP标记数据包。当路由器收到数据包时，它会检查路由器上的子接口是否为VLAN 1的encapsulation dot1q配置了子接口。目前未配置子接口。

因此，路由器在主接口上收到CDP数据包。路由器在主接口上收到数据包的原因是VLAN 1处于活动状态。输入show vlan-switch命令进行确认。即使路由器没有为VLAN 1配置任何接口，仍会收到CDP数据包。

Router#show vlan-switch

VLAN Name                             Status    Ports

---- -------------------------------- --------- -------------------------------

1    default                          active

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2

---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------

1    enet  100001     1500  -      -      -        -    -        1002   1003

1002 fddi  101002     1500  -      -      -        -    -        1      1003

1003 tr    101003     1500  1005   0      -        -    srb      1      1002

1004 fdnet 101004     1500  -      -      1        ibm  -        0      0

1005 trnet 101005     1500  -      -      1        ibm  -        0      0

在这种情况下，来自路由器的CDP数据包通过gi0/1发送。

在交换机上登录

CDP-PA: version 2 packet sent out on FastEthernet1/0/23

CDP-PA: Packet received from Router on interface FastEthernet1/0/23

在缓存中找到此条目。

CDP-PA: version 2 packet sent out on FastEthernet1/0/23

路由器上的日志

CDP-PA: version 2 packet sent out on GigabitEthernet0/1>

CDP-PA: Packet received from Switch on interface GigabitEthernet0/1

在缓存中找到此条目。

CDP-EV: Lookup for ip phone with idb= GigabitEthernet0/1 ip= 10.111.51.3

mac= 0021.567e.e219 platform= cisco WS-C3750-24P

在交换机上：

Switch#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Router          Fas 1/0/23        123             R S I  3845      Gig 0/1

在路由器上：

Router#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Switch          Gig 0/1            160             S I   WS-C3750- Fas 1/0/23

将封装VLAN配置为本征接口时，您会看到类似行为。

方案 2：交换机发送无标记CDP数据包

Switch configuration:

interface FastEthernet1/0/1

switchport trunk encapsulation dot1q

switchport trunk native vlan 1

switchport mode trunk

end

案例1：配置VLAN 1的接口为up/up

interface GigabitEthernet0/1.1

encapsulation dot1Q 1

end

interface GigabitEthernet0/1.10

encapsulation dot1Q 10

ip address 10.111.51.1 255.255.255.224

end

interface GigabitEthernet0/1.21

encapsulation dot1Q 21

ip address 10.111.48.1 255.255.255.128

end

当交换机向路由器发送CDP数据包时，它会发送一个无标记数据包，因为本征VLAN用于此通信。因此，路由器在配置了VLAN 1的接口上接收数据包。路由器检查其是否配置了dot1q封装VLAN 1，并且接口为up/up状态。如果此检查成功，路由器将通过该接口发送数据包。

Switch#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Router          Fas 1/0/23        5               R S I  3845      Gig 0/1.1

Router#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Switch          Gig 0/1.1          8               S I   WS-C3750- Fas 1/0/23

路由器上的日志

CDP-PA: version 2 packet sent out on GigabitEthernet0/1.1

CDP-PA: Packet received from Switch on interface GigabitEthernet0/1.1

在缓存中找不到条目。

在交换机上登录

CDP-AD: Aging entry for Router, on interface FastEthernet1/0/23

CDP-PA: Packet received from Router on interface FastEthernet1/0/23

在缓存中找不到条目。

CDP-PA: version 2 packet sent out on FastEthernet1/0/23

第 2 种情况： 配置VLAN的路由器上的接口为up/up，且两个接口均未指定本征VLAN

interface GigabitEthernet0/1.1

encapsulation dot1Q 1

end

interface GigabitEthernet0/1.10

encapsulation dot1Q 10 native

ip address 10.111.51.1 255.255.255.224

end

interface GigabitEthernet0/1.21

encapsulation dot1Q 21

ip address 10.111.48.1 255.255.255.128

end

分析

当交换机向路由器发送CDP数据包时，它会将无标记数据包发送，因为本征VLAN用于通信。路由器通过gi0/1.1接收数据包，因为它自身配置了VLAN 1。路由器检查它是配置了VLAN 1还是配置了任何其他本征VLAN。在当前情况下，接口gi0/1.10配置了native关键字。因此，路由器通过gi0/1.10子接口发送数据包。

此输出在以下场景中显示：

Switch#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Router          Fas 1/0/23        5               R S I  3845      Gig 0/1.1

路由器上的CDP邻居结果如下所示：

Router#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Switch          Gig 0/1.10         7               S I   WS-C3750- Fas 1/0/23

路由器上的日志

CDP-PA: version 2 packet sent out on GigabitEthernet0/1.10

CDP-PA: Packet received from Switch on interface GigabitEthernet0/1.1

在缓存中找不到条目。

在交换机上登录

CDP-AD: Aging entry for Router, on interface FastEthernet1/0/23

CDP-PA: Packet received from Router on interface FastEthernet1/0/23

在缓存中找不到条目。

CDP-PA:第2版数据包在FastEthernet1/0/23上发送

实例3：其它WRR加权修改 没有配置VLAN 1的接口，但两个接口都未配置native关键字

interface GigabitEthernet0/1.1

end

interface GigabitEthernet0/1.10

encapsulation dot1Q 10 native

ip address 10.111.51.1 255.255.255.224

end

interface GigabitEthernet0/1.21

encapsulation dot1Q 21

ip address 10.111.48.1 255.255.255.128

end

当交换机将数据包发送到路由器时，它会通过本征VLAN发送无标记数据包。路由器通过gi0/1接收数据包。路由器检查它是配置了VLAN 1，还是配置了任何其他本征VLAN。

此处，gi0/1.10接口配置为本地封装，因此路由器通过gi0/1.10发送数据包。

Switch#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Router          Fas 1/0/23        156             R S I  3845      Gig 0/1

Router#sh cdp neigh

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Switch          Gig 0/1.10         0               S I   WS-C3750- Fas 1/0/23

路由器上的日志

CDP-PA: version 2 packet sent out on GigabitEthernet0/1.10

CDP-PA: Packet received from Switch on interface GigabitEthernet0/1

在缓存中找不到条目。

在交换机上登录

CDP-AD: Aging entry for Router, on interface FastEthernet1/0/23

CDP-PA: Packet received from Router on interface FastEthernet1/0/23

在缓存中找不到条目。

CDP-PA: version 2 packet sent out on FastEthernet1/0/23

实例4：修改队列极限缓冲区分配 路由器没有VLAN dot1q封装，并且未指定本征VLAN

interface GigabitEthernet0/1.1

end

interface GigabitEthernet0/1.10

encapsulation dot1Q 10

ip address 10.111.51.1 255.255.255.224

end

interface GigabitEthernet0/1.21

encapsulation dot1Q 21

ip address 10.111.48.1 255.255.255.128

end

当交换机将数据包发送到路由器时，它会发送未标记的CDP数据包，因为通信是通过本征VLAN的。路由器通过gi0/1接收数据包。路由器检查它是配置了VLAN 1，还是配置了任何其他本征VLAN。此处没有这样的接口，因此路由器通过gi0/1（通过主接口）发送数据包。

此输出在此场景中显示：

Switch#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Router          Fas 1/0/23        7               R S I  3845      Gig 0/1

路由器的输出如下所示：

Router#show cdp neighbor

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID

Switch          Gig 0/1           7               S I   WS-C3750- Fas 1/0/23

路由器上的日志

CDP-PA: version 2 packet sent out on GigabitEthernet0/1

CDP-PA: Packet received from Switch on interface GigabitEthernet0/1

在缓存中找不到条目。

在交换机上登录

CDP-AD: Aging entry for Router, on interface FastEthernet1/0/23

CDP-PA: Packet received from Router on interface FastEthernet1/0/23

在缓存中找不到条目。

CDP-PA: version 2 packet sent out on FastEthernet1/0/23

摘要

路由器收到一个标记的CDP数据包:

配置了VLAN1的子接口管理性关闭/关闭。

路由器丢弃CDP数据包。交换机不会列为CDP邻居。

配置了VLAN1的子接口为UP/UP。未指定本征VLAN。

路由器在此子接口上发送和接收数据包。

路由器未配置VLAN1，并且任何子接口都配置了native关键字/不带native关键字。

数据包通过主接口。CDP在两个方向都有效。

路由器收到一个无标记CDP数据包:

配置了VLAN1的子接口管理性关闭/关闭。

路由器丢弃CDP数据包。交换机不会列为CDP邻居。

配置了VLAN1的子接口为UP/UP。未指定本征VLAN。

路由器在此子接口上发送和接收数据包。CDP在两个方向上都工作。

路由器未配置VLAN1，并且没有使用native关键字配置任何子接口。

路由器在主接口上接收CDP数据包，但通过配置了native关键字的子接口发送这些数据包。

路由器未配置VLAN1和native关键字。

CDP数据包通过主接口。CDP在两个方向上都工作。