一般路由器执行show running命令查看配置时,会发现配置中有各种类型的接口,如以太网、ATM、串口、POS等。所有这些都与实际的物理接口一一对应(如果有子接口,多个接口名可能对应同一个物理接口)。
1.虚拟接口概述
一般路由器执行show running命令查看配置时,会发现配置中有各种类型的接口,如以太网、ATM、串口、POS等。所有这些都与实际的物理接口一一对应(如果有子接口,多个接口名可能对应同一个物理接口)。然而,路由器中还有另一种完全不同的接口类型,如环回、空、隧道、虚拟模板等。这些接口有以下共同点:
1.没有与该接口对应的真实物理接口;虽然有时候有一定的‘映射’关系;
2.由于第一个原因,这类接口不会根据物理接口自动生成,必须根据实际需要手工创建。
3.接口的状态总是UP(包括物理状态UP和协议状态UP),不会下去,隧道接口除外,它的物理状态总是UP,但协议状态要看实际运行情况。
因为以上的共性,这类接口统称为‘虚拟接口’,不同的虚拟接口有不同的用法,下面会介绍。
2.环回接口的使用
这种接口是应用最广泛的虚拟接口,几乎每个路由器都使用这种接口。通常用于以下应用。
作为路由器的管理地址。
系统管理员完成网络规划后,为了管理方便,会为每台路由器创建一个环回接口,并指定一个IP地址作为该接口上的管理地址。管理员将使用此地址远程登录到路由器,实际上它的功能就像一个设备名称。
但是通常每台路由器上都有很多接口和地址,为什么不随便选一个呢?原因如下:由于telnet命令使用TCP报文,会出现以下情况:路由器的一个接口因故障而宕机,但其他接口仍能telnet,即与该路由器的TCP连接仍然存在。所以选择的telnet地址一定不能宕机,虚拟接口正好满足这样的要求。由于这种接口对与对等体的互连没有要求,为了节省地址资源,环回接口的地址通常被指定为32位掩码。
使用此接口地址作为动态路由协议OSPF和BGP的路由器id。
在动态路由协议OSPF和BGP运行过程中,需要为该协议指定一个路由器id作为该路由器的唯一标识,并且要求在整个自治系统中是唯一的。路由器id是32位无符号整数,与IP地址非常相似。此外,IP地址不会重复,因此路由器的路由器id通常被指定为与设备上的接口地址相同。由于环回接口的IP地址通常被视为路由器的标识符,因此它成为路由器id的最佳选择。
3.空接口的使用
通常,任何接口都会被分配一个IP地址,但空接口是个例外。不能在空接口上配置IP地址,路由器会提示配置非法。没有IP地址的接口能做什么?单独使用这种接口是没有意义的,但是如果配置的静态路由的下一跳指向空接口,就会非常有用。
用来讨好BGP
BGP发布路由的一种方法是使用以下命令:
网络ip地址[掩码掩码]
但是,要使该命令正确生效,有一个先决条件:路由表中必须有一条与ip地址掩码相同的路由。因为BGP在聚合后发布路由,所以此类路由不在路由表中,所以使用以下命令:
ip路由ip地址掩码null0
配置这样的伪静态路由来“讨好”BGP。
相关配置命令:
接口NULL0 /*创建NULL0接口*/
路由器bgp 100
网络118.1.0.0 255.255.0.0/* BGP将释放118.1.0.0/16的路由*/
Ip路由118.1.0.0 255.255.0.0 null 0/*配置伪静态路由以取悦BGP*/
执行命令show ip route查看路由表信息,
Quidway(配置)#显示ip路由
路由表:
目标/掩码协议预度量下一跳接口
118.1.0.0/16静态60 0 0 0 . 0 . 0 0 null 0
因为这样的路由只是为了讨好BGP,并没有引导真正的报文发送,也不需要一个IP地址作为路由的下一跳(可以节省一个IP地址),所以这里使用NULL0接口。
用于配置黑洞路由。
上述联网在正常情况下可以正常工作,但如果出现以下情况:
由于故障,RTC和RTD之间的链路中断,因此在RTD上将没有到RTC 10 . 1 . 3 . 0/24的路由。此时,如果RTA下的用户发送目的地址为10.1.3.1的消息,RTA会将该消息发送到RTD。由于RTD上没有到10.1.3.0/24的路由,因此选择默认路由并将消息发送到RTE。RTE查询路由表后,发现该路由匹配10.1.0.0/。同样,RTD会再次向RTE发送报文,此时,RTD和RTE上会产生路由自环。
上述问题的最佳解决方案是在RTD上配置一条黑洞路线:
ip路由10.1.0.0 255.255.0.0空0,
这样,如果再次出现上述情况,RTD就会查找路由表,将报文发送到NULL0接口(实际上是丢弃报文),从而避免环路。
4.隧道接口的使用
隧道接口的用法比较简单,这类接口实际上是GRE协议专用的。GRE(通用路由封装)是一种三层隧道协议。最常见的方式是用IP报文承载GRE报文,GRE报文的有效载荷仍然是IP报文。
接口隧道0 /*创建隧道接口*/
地址10.33.255.2 255.255.255.252/*自己隧道端口的地址*/
隧道源211.138.94.199/*隧道建立后,实际用于发送消息的源地址*/
隧道目的地211.138.94.197/*隧道建立后,实际用于发送消息的目的地址*/
对于隧道源和隧道目的地,通常仍然选择本地环回接口和相对环回接口的地址(原因见2.1)。
5.虚拟模板界面的使用
类似于隧道接口,虚拟模板接口专用于MP协议。MP协议将多个使用PPP协议的物理接口绑定在一起,表现为一个接口,以增加带宽和节省IP地址。
userservice-type PPP password 0hh/*为PAP身份验证配置用户名和密码*/
multilink-user hhbind Virtual-template 3/*指定绑定的虚拟模板接口名称*/
/*以下两个接口捆绑在一起*/
接口串行5/1/4:0
封装ppp
ppp身份验证文件
ppp多重链接
Pap已发送-用户名hh密码0hh/*使用MP,用户名为hh*/
!
接口串行5/1/5:0
封装ppp
ppp身份验证文件
ppp多重链接
Pap已发送-用户名hh密码0hh/*使用MP,用户名为hh*/
Interface-template3/*创建虚拟模板接口*/
地址61.236.88.134 255 . 255 . 255 . 252/*在虚拟模板接口上统一分配IP地址*/