Loopback口和Null0接口揭秘

来源:本站原创 网络技术详解 超过888 views围观 0条评论

Loopback口和Null0接口揭秘

Loopback接口
Loopback接口简介
Loopback接口是虚拟接口,大多数平台都支持使用这种接口来模拟真正的接口。这样做的好处是虚拟接口不会像物理接口那样因为各种因素的影响而导致接口被关闭。事实上,将Loopback接口和其他物理接口相比较,可以发现Loopback接口有以下几条优点:
      Loopback接口状态永远是up的,即使没有配置地址。这是它的一个非常重要的特性。
      Loopback接口可以配置地址,而且可以配置全1的掩码–这样做可以节省宝贵的地址空间。
      Loopback接口不能封装任何链路层协议。
   对于目的地址不是loopback口,下一跳接口是loopback口的报文,路由器会将其丢弃。对于CISCO路由器来说,可以配置[no] ip unreachable命令,来设置是[否]发送icmp不可达报文,对于VRP来说,没有这条命令,缺省不发送icmp不可达报文 。
Loopback接口的应用
基于以上所述,决定了Loopback接口可以广泛应用在各个方面。其中最主要的应用就是:路由器使用loopback接口地址作为该路由器产生的所有IP包的源地址,这样使过滤通信量变得非常简单。
在远程访问中的应用
    使用telnet实现远程访问。
    配置telnet,使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
        ip telnet source-interface Loopback0
   使用RCMD实现远程访问。
   配置RCMD,使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
       ip rcmd source-interface Loopback0
在安全方面的应用
    在TACACS+中的应用。
       配置TACACS+,使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
          ip tacacs source-interface Loopback0
          tacacs-server host 215.17.1.1
可以通过过滤来保护TACACS+服务器–只允许从LOOPBACK地址访问TACACS+端口,从而使读/写日志变得简单,TACACS+日志纪录中只有loopback口的地址,而没有出接口的地址。
在RADIUS用户验证中的应用。
配置RADIUS, 使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
ip radius source-interface Loopback0
radius-server host 215.17.1.1
auth-port 1645 acct-port 1646
这样配置是从服务器的安全角度考虑的,可以通过过滤来保护 RADIUS服务器和代理–只允许从LOOPBACK地址访问RADIUS端口,从而使读/写日志变得简单,RADIUS日志纪录中只有loopback口的地址,而没有出接口的地址。
在纪录信息方面的应用
输出网络流量纪录。
配置网络流量输出,使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
ip flow-export source Loopback0
Exporting NetFlow records Exporting NetFlow
这样配置是从服务器的安全角度考虑的,可以通过过滤来保护 网络流量收集–只允许从LOOPBACK地址访问指定的流量端口。
日志信息方面。
发送日志信息到Unix或者Windows SYSLOG 服务器。路由器发出的日志报文源地址是loopback接口,配置命令如下:
logging source-interface loopback0
这样配置是从服务器的安全角度考虑的,可以通过过滤来保护 SYSLOG服务器和代理–只允许从LOOPBACK地址访问syslog端口,从而使读/写日志变得简单,SYSLOG日志纪录中只有loopback口的地址作为源地址,而不是出接口的地址。
在NTP中的应用
用NTP(网络时间协议)使所有设备的时间取得同步,所有源于该路由器的NTP包都把Loopback地址作为源地址。配置如下:
ntp source loopback0
ntp server 169.223.1.1 source loopback 1
这样做是从NTP的安全角度着想,可以通过过滤来保护NTP系统–只允许从loopback地址来访问NTP端口。NTP将Loopback接口地址作为源地址,而不是出口地址。
在SNMP中的应用
如果使用SNMP(简单网络管理协议),发送traps时将loopback地址作为源地址。配置命令:
snmp-server trap-source Loopback0
snmp-server host 169.223.1.1 community
这样做是为了保障服务器的安全,可以通过过滤来保护SNMP的管理系统–只允许从Loopback接口来访问SNMP端口。从而使得读/写trap信息变得简单。SNMP traps将loopback接口地址作为源地址,而不是出口地址。
在Core Dumps中的应用
如果系统崩溃,有Core dump特性的路由器能够将内存的映像上传到指定的FTP服务器。配置Core dumps使用loopback地址作为源地址。配置命令如下:
ip ftp source-interface loopback 0
exception protocol ftp
exception dump 169.223.32.1
这样的做的好处是保证了Core Dump FTP 服务器的安全,通过过滤能够保护用于core dumps的FTP服务器–只允许从loopback地址访问FTP端口。
这个FTP服务器必须是不可见的。
在TFTP中的应用
通过TFTP从TFTP服务器配置路由器,可以将路由器的配置保存在TFTP服务器,配置TFTP,将loopback地址作为源于该路由器的包的源地址。配置命令如下:
ip tftp source-interface Loopback0
这样做对TFTP服务器的安全是很有好处的:通过过滤来保护存储配置和IOS映像的TFTP服务器–只允许从loopback地址来访问TFTP端口,TFTP服务器必须是不可见的。
在IP unnumbered中的应用
应用IP Unnumbered在点到点链路上就不需要再配置地址了。配置举例:
interface loopback 0
ip address 215.17.3.1 255.255.255.255
interface Serial 5/0
ip unnumbered loopback 0
ip route 215.34.10.0 255.255.252.0 Serial 5/0
在Router ID中的应用
如果loopback接口存在、有IP地址,在路由协议中就会将其用作Router ID,这样比较稳定–loopback接口一直都是up的。
如果loopback接口不存在、或者没有IP地址,Router ID就是最高的IP地址,这样就比较危险–只要是物理地址就有可能down掉。
对于CISCO来说,Router ID是不能配置的,对于VRP来说,Router ID可以配置,那麽我们也可以将Loopback接口地址配成Router ID。
配置BGP
在IBGP配置中使用loopback接口,可以使会话一直进行,即使通往外部的接口关闭了也不会停止。配置举例:
interface loopback 0
ip address 215.17.1.34 255.255.255.255
router bgp 200
neighbor 215.17.1.35 remote-as 200
neighbor update-source loopback 0

Null0接口
Null0接口简介
Null0口是个伪接口(pseudo-interface),不能配地址,也不能被封装,它总是up的,但从不转发或接收任何通信量。
Null0的配置命令
为指定空接口,在全局配置模式下使用下面命令:
interface null 0
任何命令,只要有接口类型这个参数的都可以使用null0接口。 对于CISCO路由器来说,Null接口唯一一条配置命令是[no] ip unrechable,该命令的作用是设置是[否]发送icmp不可达报文,对于VRP来说,没有这条命令,缺省不发送icmp不可达报文 。
Null0接口的应用
Null0接口从不转发或接收任何通信量,对于所有发到该接口的通信量都直接丢弃,由于它的这个特征,使它被广泛应用。
防止路由环
null接口最典型的使用是用来防止路由环。例如,EIGRP在聚合一组路由时,总是创建一条到NULL接口的路由。
举例如下:
如图所示,一台CISCO AS5200通过ISDN为多个远端站点路由器提供接入服务。在ISDN连接期间通过RADIUS创建到远端局域网的路由。在CISCO AS5200有一条到网关路由器的静态路由,网关路由器通过CISCO AS5200有静态路由到远端局域网,还有到Internet的连接。

当ISDN连接down掉时,从Internet向远端站点传送的包就会走静态路由到CISCO AS5200,而CISCO AS5200会将流量再返回给网关路由器–因为CISCO AS5200已经没有到远端局域网的路由了。网关路由器再将包发给CISCO AS5200。这个过程会一直重复到TTL计数器超时。由此产生的“包洪水”会使CPU极为繁忙,利用率达到98%以上,从而使远端路由器不能再建连接,直到“风暴”停止。
配置下一跳是null0,目的地址是远端局域网的浮动静态路由命令如下:
ip route 192.168.10.0 255.255.255.0 Null0 200
除非ISDN连接是UP的,否则从网关转发到Cisco AS5200的包会被丢弃。如果连接是UP的,通过RADIUS会创建一条更优的路由,流量也会正常。CPU的负担会骤然降低,路由器能够正常工作。
用于安全方面
null0接口提供了过滤通信量的一个可选的方法,可以通过将不想要的通信量引到空接口,来避免过分涉及访问列表的使用。下面对访问列表和null0做一下比较。
null0和访问列表都可以用于过滤通信量,这两种用法相比,各有裨益。
1、使用null0配置简单,只要将不想要的通信量的下一跳接口配制成null0就可以了,当路由器收到报文时,直接查找转发表,发现下一跳是null0,不做任何处理,直接丢弃。而如果使用访问列表,首先要配置规则,然后将它应用到接口,当路由器收到报文时,要首先查找访问列表的队列,如果是deny的,就直接扔掉,如果是permit的,还要查找转发表。所以对比起来,应用null0效率要高,速度要快。
举例如下:
某路由器不希望收到目的是131.1.0.0/16的通信量。
用null0实现,只要配置ip route 131.1.0.0 255.255.0.0 null 0就可以了。如果用访问列表实现,就要先配置一条acl规则如下:access-list 100 deny any 131.1.0.0 0.0.255.255,然后将这条规则在路由器的所有接口上应用。
2、null0不能细化通信量,它面向的对象是整个路由器,而访问列表是可以面向接口的,如果细致到面向接口的通信量,null0就不能做到了。
举例如下:
某路由器不希望在接口s3/1/0收到目的是131.1.0.0/16的通信量。
用null0是不能实现的,只能通过配置acl规则,然后将其应用到接口s3/1/0。
用于BGP的负载分担

用于防止路由振荡
在IP网络规划的比较好时
在一个AS内部用的是IGP,AS之间用的是BGP,不推荐在BGP中将IGP的路由redistribute,因为IGP的路由不稳定,可能会导致路由振荡,因为Null0接口是永远up的,所以可以通过以下配置来将IGP路由发布出去:
ip route ip_address mask null0
router bgp as_number
network ip_address mask mask
这样可以防止路由振荡!

文章出自:CCIE那点事 http://www.jdccie.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。 禁止全文转载。
本文链接:http://www.jdccie.com/?p=230转载请注明转自CCIE那点事
如果喜欢:点此订阅本站
  • 相关文章
  • 为您推荐
  • 各种观点

暂时还木有人评论,坐等沙发!
发表评论

您必须 [ 登录 ] 才能发表留言!