12.4 配置逻辑接口
逻辑接口是相对物理接口而言的,它是指能够实现数据交换功能但在物理上不存在、需要通过配置来建立的接口。路由器通常提供 5 类逻辑接口: Loopback(回环)接口, NULL(空)接口, Tunnel(隧道)接口, Dialer(拨号)接口,以及子接口。
12.4.1 Loopback 接口配置
Lookback(回环)是一个完全以软件指定的逻辑上的一个端口,它最大的特点就是可以支持所有的平台,并且状态始终 UP(有点类似于计算机的 127.0.0.1)。 Lookback 接口的应用
大致包括以下几点。
作为路由设备的 ID 标识。在 OSPF 等协议中,协议规定根据 RouterID 来选择指派路由器和备份指派路由器,因为 Loopback 端口始终有效,因此我们通常创建一个Loopback 端口并封装 IP 地址作为路由器的 ID,协议会首先比较 Loopback 端口的 IP
地址大小进行指派路由器的选择,从而实现路由制订。
作为路由设备的非直连网段。在 Loopback 端口配置路由器与别的设备的直连网段之外的网段地址,可以在设备之间测试路由,这也是非常有效和方便的一种做法,以检查设备连通性。
作为终端访问的地址。由于 Loopback 端口永远不会宕掉,因此用它的端口地址作为别的终端和设备进行 TELNET 访问的地址是比较常用的一种方式。
作为“黑洞”处理。因为路由到 Loopback 的包,会被重新路由回路由器的 Loopback口,并不会被真正地转发,因此也可以被作为一个路由的“黑洞”,现在也有用 Null端口来实现,可视为回收站。Loopback 接口配置类似于以太网接口,可以把它看作一个虚拟的以太网接口。
配置 loopback 接口。先创建指定接口号的 loopback,如 loopback 0。Router(config)#interface loopback loopback-interface-number然后,就可以像配置以太网接口一样配置 loopback 接口的 IP 地址信息了。Router(config-if)#ip address ip-address subnet_mask
删除 loopback 接口。由于 loopback 是虚拟的接口,它只在逻辑意义上存在,可以在需要的时候使用 no 命令删除指定的 loopback 接口。Router(config)#no interface loopback loopback-interface-number
显示 loopback 接口状态。
Router#show interfaces loopback loopback-interface-number
12.4.2 NULL 接口配置
路由器还提供 NULL(空)的虚拟接口。该虚拟接口仅仅相当于一个可用的系统设备。
NULL(空)永远都处于 UP 状态,并且永远不会主动发送或者接受网络数据,任何发往 NULL接口的数据包都会被丢弃。既不能在 NULL 接口上配置 IP 地址,也不能在 NULL 接口上封装
任何链路层协议。 NULL 主要用于防止路由环路,或用于过滤数据包。进入 NULL 接口配置。
Router(config)#interface null 0
允许 NULL 接口发送 ICMP 的 unreachable 消息。
Router(config-if)#ip unreachables
禁止 NULL 接口发送 ICMP 的 unreachable 消息。
Router(config-if)#no ip unreachables
NULL 接口更多地被用于网络数据流的过滤。如果使用 NULL 接口,可以通过将不希望处理的网络数据流路由给 NULL 接口,而不必使用访问列表,例如:
Router(config)#ip route 127.0.0.0 255.0.0.0 null 0
由于 NULL 接口在功能上是一个“空”的系统设备,它不会像以太网或者其他接口一样可显示(例如,使用命令 show running-config 是无法看见它的)。同时,作为系统设备是无法使用 no interface null 命令来删除 NULL 接口的。
12.4.3 Tunnel 接口配置
路由器借助 Tunnel(隧道)接口实现隧道功能,允许利用传输协议(如 IP)来传送任意协议的网络数据包。同其他逻辑接口一样, Tunnel 接口也是系统虚拟的接口。 Tunnel 接口并不特别指定传输协议或者负载协议,它提供的是一个用来实现标准的点对点的传输模式。由于Tunnel 实现的是点对点的传输链路, 所以, 对于每一个单独的链路都必须设置一个 Tunnel 接口。
Tunnel 传输适用于以下情况。
允许运行非 IP 协议的本地网络之间通过一个单一网络( IP 网络)通信,因为 Tunnel接口支持多种不同的负载协议。
允许通过单一的网络( IP 网络)连接间断子网。
允许在广域网上提供 VPN( virtual private network)功能。
Tunnel 接口配置操作过程如下。
① 创建 Tunnel 接口并接入该接口的配置模式。与其他逻辑接口一样,第一次进入指定的Tunnel 接口时,就创建了一个 Tunnel 接口。
Router(config)#interface tunnel tunnel-number
或者,删除已创建的 Tunnel 接口。
Router(config)#no interface tunnel tunnel-number
② 设置 Tunnel 接口的源地址。一个 Tunnel 接口需要明确配置隧道的源地址和目的地址,为了保证 Tunnel 接口的稳定性,一般将 Loopback 地址作为隧道的源地址和目的地址。在 Tunnel接口正常工作之前,需要确认源地址和目的地址的连通性。
Router(config-if)#tunnel source {ip-address | interface-name interface-number}
或者,取消 Tunnel 接口源地址设置。
Router(config-if)#no tunnel source
③ 设置 Tunnel 接口目的地址。
Router(config-if)#tunnel destination { ip-address | host-name }
或者,取消 Tunnel 接口目的地址设置。
Router(config-if)#no tunnel destination
在同一台路由上,不能使用相同的源地址与目的地址创建两个相同封装模式的 Tunnel 接口。
④ 设置 Tunnel 接口封装格式。 Tunnel 接口的封装格式就是 Tunnel 接口的载体协议。 Tunnel接口的默认封装格式是 GRE。当然,用户也可以根据实际使用情况来决定 Tunnel 接口的封装格式。
Router(config-if)#tunnel mode { dvmrp | gre | ipip | nos}
或者取消 Tunnel 接口封装格式设置,恢复默认值。
Router(config-if)#no tunnel mode
⑤ 设置 Tunnel 接口校验。有些情况下,需要使用 Tunnel 接口校验来提供数据完整性的保证。默认值情况下, Tunnel 接口不进行校验。
Router(config-if)#tunnel checksum
或者,取消 Tunnel 接口校验。
Router(config-if)#no tunnel checksum
⑥ 设置 Tunnel 接口的 Key。设置 Tunnel 接口的 Key 在一定程度上可以确保 Tunnel 接口两端的安全性,同时也可以防范来自外部的恶意探测与攻击。只有在 Tunnel 接口封装格式为GRE 的情况下, Tunnel 接口的 Key 设置才起作用,因为此时在每一个 GRE 数据包中都会包含设置的 Tunnel 接口 Key。
Router(config-if)#tunnel key key-value
或者,取消 Tunnel 接口的 Key 设置。
Router(config-if)#no tunnel key key-value
Tunnel 的两端必须使用相同的 Key 设置才能正常通信。虽然封装格式为GRE 的时候,每一个 GRE 数据包都包含这个 Key,但是依赖这个 Key 来获得安全保证的企图是欠考虑的。如果设置了 Tunnel 接口 key,那么必须在所在 Tunnel接口上设置 no ip mroute-cache 才能支持 ip multicast。
⑦ 设置 Tunnel 接口接收规则。
如果负载协议在维护数据包有序方面的功能不足(比如基于 LLC2 的协议),路由器允许设置 Tunnel 接收规则来丢弃接收到的无序数据包。这项设置将有助于实现网络数据包有序传输。
Router(config-if)#tunnel sequence-datagrams
或者, Tunnel 按序接收设置。
Router(config-if)#no tunnel sequence-datagrams
只有在 Tunnel 的封装格式为 GRE 的情况下,该项设置才有效。
⑧ 监控 Tunnel 接口。
显示 Tunnel 接口状态。
Router#show interfaces tunnel tunnel-number
打开 Tunnel 接口调试开关。
Router#debug tunnel
关闭 Tunnel 接口调试开关。
Router#no debug tunnel
12.4.4 Dialer 接口配置
Dialer 接口即拨号接口。路由器支持拨号的物理接口有同步串口与异步串口。路由器中通
过逻辑接口 Dialer 实现了 DDR(按需拨号路由)功能。
进入 Dialer 接口配置模式。与其他逻辑接口一样,在第一次进入 Dialer 接口配置模式时
即创建一个 Dialer 接口。
Router(config)#interface dialer dialer-number
删除已创建的 Dialer 接口。
Router(config)#no interface dialer dialer-number
Dialer 接口的监控与维护,如果在 Dialer 接口上封装了链路层协议,还可以使用对应协议
的 Debug 命令来考察通信情况。
Router#show interfaces dialer dialer-number
12.4.5 子接口配置
所谓子接口,是指从单个物理接口上衍生出来并依附于该物理接口的逻辑接口,允许在
单个物理接口上配置多个子接口,并为应用提供了高度灵活性。子接口是在一个物理接口上衍
生出来的多个逻辑接口,即将多个逻辑接口与一个物理接口建立关联关系,同属于一个物理接
口的若干个逻辑接口在工作时共用物理接口的物理配置参数,但又有各自的链路层与网络层配
置参数。
路由器支持子接口的物理接口包括:
非交换式以太网接口。
封装帧中继的广域网接口。
封装 X.25 的广域网接口。
1. 配置以太网口的子接口
路由器提供命令 interface fastethernet 进入以太网子接口配置模式。同其他逻辑接口一样,
在第一次进入以太网子接口配置模式时即创建一个以太网子接口,可以使用命令 no interface
fastethernet 来删除已创建的以太网子接口。以太网子接口的参数设置参见以太网接口配置,以
及 IP 协议配置部分。
进入以太网子接口配置模式。其中, interface-number 为物理接口序号, subinterface-number
为子接口在该物理接口上的序号,两者之间由标号“ .”连接。
Router(config)#interface fastethernet interface-number.subinterface-number
删除已创建的以太网子接口。
Router(config)#no interface fastethernet interface-number.subinterface-number
2. 配置封装帧中继的广域网接口的子接口
广域网接口在封装了帧中继后,路由器提供命令 interface serial 进入广域网子接口配置模
式。同其他逻辑接口一样,在第一次进入广域网子接口配置模式时即创建一个广域网子接口,
可以使用命令 no interface serial 来删除已创建的广域网子接口。
进入广域网子接口配置模式。其中, interface-number 为物理接口序号, subinterface-number
为子接口在该物理接口上的序号,两者之间由标号“ .”连接,另外, subinterface-number 必须
大于 0。
Router(config)#interface serial interface-number. subinterface-number [pointto-point | multipoint]
删除已创建的广域网子接口。
Router(config)#no interface serial interface-number. subinterface-number
[point-to-point | multipoint]
在封装帧中继的广域网的子接口创建后,可以在子接口上配置自己的 IP 地址、自己的虚
电路,以及自己的帧中继地址映射,在子接口上可以配置帧中继协议,以及其他一些在所属物理接口上的相关参数。
3. 子接口的监控
同其他接口一样,路由器提供命令“ show interfaces”查看子接口状态,只不过需要使用子接口所属的物理接口名称与子接口的序号。对于广域网子接口可以使用其封装协议的 debug命令监控,对于以太网口的子接口对照以太网实施监控。