ASR1k ERSPAN

ASR1k 支持ERSPAN,所谓ERSPAN,就是通过GRE来封装抓包。例如下面topology:
R1—–ISP——R2

在R1上设置SPAN的源,目的地址为R2,之间建立Tunnel,并把抓到的这些数据包发给R2,在R2中接收这些数据包,去掉包头,然后输出到server对其分析。在ASR1k上可以用ERSPAN的方式抓本地的包,如以下配置:

monitor session 10 type erspan-source
!---GRE的源session,如在R1配置
 source interface POS0/2/0
!---span pos0/2/0的流量,在3.5或更新的版本才支持POS口
 destination
!---在源的session下配置GRE的目的信息,如R2的相关信息
  erspan-id 10
!---源和目的保持一致,这样才能正常建立tunnel
  ip address 12.12.12.12
!---相当于GRE的desti address
  origin ip address 12.12.12.12
!---相当于GRE的soure address
!
monitor session 20 type erspan-destination
!---GRE的目的session,如在R2配置
 destination interface Gi0/0/2
!---span的流量发送到Gi0/0/2
 source
!---在目的session下配置GSR源的信息,如R1的相关信息
  erspan-id 10
!---同上
  ip address 12.12.12.12
!---与源session中的origin ip是同样的,这里没有origin,因为span是单向tunnel 
!---在设置本地SPAN时,都是同样的地址,并且是active的地址,可以用环回口

完整阅读

NHT feature for BGP

关于BGP Feature:NHT(Next-Hop Tracking)。之前没接触过这个Feature,正好可以测试下。这个feature主要是当用户通过多个neighbor学来同样的前缀时,优选的下一跳地址在RIB里找不到了,那么他会自动切换到另一个下一跳,不用等待bgp neighbor 超时,这样可以加快收敛,这个Feature主要与IGP联动。另外为了防止默认路由使NHT失效,需要用route-map过滤非明晰路由。

测试Topology:
ASR1k——————CRS
完整阅读

L2TP – Radius 认证

在之前的总结中整理过L2TP的两种模式,一个是有LAC,另一个无LAC,详细看《L2TP两种部署方法简述》。在这里,将对L2TP认证这块做详细总结,不过此文只总结LNS的认证(LAC认证类似),而且是通过AAA服务器。

AAA服务器

常见的AAA协议主要分两种,一种是思科专有的TACACS;另一种就是Radius。思科通过ACS服务器支持两种AAA协议,而Radius,根据不同厂商而不同,常见的有freeradius和daloradius。RAdius使用了两套UDP端口:
http://en.wikipedia.org/wiki/RADIUS
1. 1812 for Authentication and 1813 for Accounting that provide by IANA
2. ports 1645 and 1646 (authentication and accounting) were used unofficially in past
传统的1645和1646仍然有客户端在用,所以为了向后兼容,Radius会监控这两套端口。

Daloradius

这个是集成了mysql和php的web客户端,很方便。有两种安装方式,一种是OVA文件,直接用vmware导入既可以用,里面是bundle好的;另一种就是在linux里单独安装daloradius,php和mysql。第二种方法太麻烦,没有使用过,第一种试过,但是遇到了一些问题,不知道为什么不能使用admin账户,为了这个还特意在网上发了帖子,但是暂时没人理:
https://sourceforge.net/p/daloradius/discussion/684102/thread/487fe3b8/

不过在使用中,发现了一些比较有价值的关于VMware的一些技巧:

完整阅读

《BGP设计与实现》读后感及总结之4

第10章:多协议BGP和MPLS VPN

本章对MPLS VPN进行了整体的概括,包括基础概念,跨域互联,在此仅仅概述,详细内容可以看我以前总结的关于MPLS的相关文章:
https://www.zhaocs.info/tag/mpls

基础知识

1. RD是用来区分具有相同ipv4前缀的多条VPN路由,8byte,如下图:

2. RT是用来控制VPVN4的路由,即使与RD一样的值,意义也是不一样的
3. 4字节可堆栈的label结构,包含20 bits的label,3 bits的EXP,1 bits堆栈位,8 bits的TTL
4. TDP和LDP的端口分别为711和646
5. 标签0-15为保留,4-15暂时没有用到;在LDP中,初始路由器会发送“imp-null”
完整阅读

How to decode TCP, UDP and RAW for IOS-XR

做为工程师,常常遇到一些协议交互的问题,需要确认数据包的具体信息,这时常常会用到几种方法:
1. SPAN抓包
对于这种方法,结果分析起来最方便,但操作过程最麻烦
2. debug
这种方法最直观,但是debug数据如果非常多,会影响设备的正常运行

下面就是采用其他方法来达成这种需求,虽然用的是udp来说明,但是同样适用于TCP和RAW:

RP/0/RP1/CPU0:CRS2(config)#udp directory /tmp/udp
RP/0/RP1/CPU0:CRS2(config)#commit
RP/0/RP1/CPU0:CRS2(config)#ipv4 access-list hsrp-packet
RP/0/RP1/CPU0:CRS2(config-ipv4-acl)#20 permit udp any eq 1985 any eq 1985
RP/0/RP1/CPU0:CRS2(config-ipv4-acl)#30 deny ipv4 any any
RP/0/RP1/CPU0:CRS2(config-ipv4-acl)#exit
RP/0/RP1/CPU0:CRS2(config)#ipv6 access-list v6-filter
RP/0/RP1/CPU0:CRS2(config-ipv6-acl)#10 deny ipv6 any any
RP/0/RP1/CPU0:CRS2(config-ipv6-acl)#exit
RP/0/RP1/CPU0:CRS2(config)#commit
RP/0/RP1/CPU0:CRS2(config)#exit
RP/0/RP1/CPU0:CRS2#debug udp packet v4-access-list hsrp-packet v6-access-list v6-filter hex control-block location x/x/cpu0

You can check the capture by follow patch:
RP/0/RP1/CPU0:CRS2#run
# cd /tmp/udp
#ls
#more xxxx

blonde teen swallows load.xxx videos