Chapter 2 LISP
2.1 基本概念
传统网络和SD-Access的控制层面对比:
2.1.1 角色与职责
LISP Map Server/Resolver
Control Plane
- 实现EID到RLOC之间的映射
- 能够部署到多个LISP设备中
Map Server可以理解为是个服务器(DNS服务器),ETR会将EID-RLOC的对应关系注册到MS,可以理解为MS有存储和响应查询EID-RLOC功能的服务器。
Map Resolver可以理解是个客服,ITR在发送数据包进入中间的云(Fabric)的时候,需要查询EID-RLOC的映射关系,ITR会向MR发送查询消息,MR再向ALT Topology(查询网络,可以不去理解它)中的MS查询查询映射关系。相当于是客服去查Database数据库。在LISP部署中,通常将MS和MR设置为同一台设备,这样这台设备既可以存储EID-RLOC的映射关系,也可以接受查询和响应查询。
LISP Tunnel Router - XTR
Edge & Internal Border
- 连接的是终端设备
有两种
-
ITR(Ingress Tunnel Router):ITR有个ingress,意思是数据包将要从ITR进入中间的云(Fabric)。根据路由传递方向与数据包传递方向相反的原理,数据包要从ITR进入Fabric,所以ITR需要获得目的EID和目的RLOC的对应关系的表项,这样ITR就会去MR/MS上查询,获得结果以后封装数据包,将其发往Fabric。
-
ETR(Egress Tunnel Router):ETR有个egress,意思是数据包将要从中间云(Fabric)出去,去往目的站点的话,ETR是出口。同样根据路由传递方向与数据包传递方向相反的原理,数据包要从ETR离开Fabric,ETR就需要将EID-RLOC的对应关系,告诉(Register)给MR/MS,同时从Fabric收到数据包后,解封装后根据inner数据包的目的EID将数据包发往目的站点。实际情况中ITR/ETR是同一台设备,既有封装的功能也有解封装的功能,还可以向MS/MR查询和注册EID-RLOC的映射关系。
LISP Proxy Tunnel Router - PXTR
External Border
- 为没有映射存在的网络提供一条默认路由
- 包括入方向的PITR和出方向的PETR
- 连接的是外部网络
2.2 控制层面
2.2.1 注册与解析
注册及解析过程
- 可以从ITR开始发起,也可以是从ETR开始发起注册。当连接的用户一上线,存在绑定关系,就可以开始发起注册了
- ITR会通过RLOC(一般是XTR设备的环回地址)向MR发起注册请求,MR收到请求后,会形成一条用户地址和RLOC的映射,注册成功,然后会下发SGT
- 当XTR设备需要访问某个地址时,会向MR发起查询请求。例如Branch设备想要访问10.2.2.2/16这个地址,会向MR发送映射请求,MR收到请求后查表,然后转发请求给2.1.2.1这台XTR设备
- 当2.1.2.1收到请求后,会和Branch设备直接建立隧道。当建立隧道后,就会区分ITR和ETR了,隧道入口为ITR,出口为ETR。回包会重新建立隧道,ITR和ETR会和去包隧道相反
- 隧道建立后数据在转发时,控制层面的MR设备是不参与的,只有当网络发生变化后,MR才会起作用。
LISP MS/MR配置举例
router lisp
site site_sda
description map-server configured from dna-center
authentication-key sda
eid-record instance-id 4097 10.2.2.0/24 accept-more-specifics #定义允许哪些地址注册到4097(VN号VN类似路由交换中的VRF)上来,0.0.0.0/0为允许所有
eid-record instance-id 4098 10.2.3.0/24 accept-more-specifics
eid-record instance-id 4099 10.2.4.0/24 accept-more-specifics
eid-record instance-id 4100 0.0.0.0/0 accept-more-specifics
exit-site
!
ipv4 locator reachability exclude-defaut
!
service ipv4 #定义服务器角色
map-server
map-resolver
exit-service-ipv4
!
service ethernet
map-server
map-resolver
exit-service-ethernet
!
exit-router-lisp
2.2.2 Fabric内部转发
转发过程
- Edge设备需要完成的事情:主机上线后绑定注册,查询
- 用户10.1.0.1想要发起和用户10.2.2.2的访问,由于用户10.1.0.1注册到XTR设备1.1.1.1设备上,因此该XTR会向MR发起解析请求
- MR返回映射条目,用户10.2.2.2注册在XTR 2.1.2.1设备上
- 1.1.1.1向2.1.2.1发送隧道建立请求,并建立单向隧道,打通10.1.0.1访问10.2.2.2的隧道,单向访问成功建立。1.1.1.1为ITR,2.1.2.1为ETR
LISP Edge配置举例
router lisp
locator-table default
locator-set rloc_86efeb00-8b20-4da5-a812-9075c94db71f
IPv4-interface Loopback0 priority 10 weight 10
exit-locator-set
!
# MS/MR设备配置
!
locator default-set rloc_86efeb00-8b20-4da5-a812-9075c94db71f
service ipv4
encapsulation vxlan
itr map-resolver 172.17.0.4
etr map-server 172.17.0.4 key 7 cisco
etr map-server 172.17.0.4 proxy-reply
etr
sgt
no map-cache away-eids send-map-request
use-petr 172.17.0.1
proxy-itr 172.17.0.2
exit-service-ipv4
!
service ethernet
itr map-resolver 172.17.0.4
itr
etr map-server 172.17.0.4 key 7 cisco
etr map-server 172.17.0.4 proxy-reply
etr
exit-service-ethernet
!
# VN网络配置,配置了三个网络可以在该交换机上线
!
instance-id 4099
remote-rloc-probe on-route-change
dynamic-eid 172_19_1_0-Single_Site-IPV4
databace-mapping 172.19.1.0/24 locator-set rloc_86efeb00-8b20-4da5-a812-9075c94db71f
exit-dynamic-eid
!
dynamic-eid 172_19_3_0-Single_Site-IPV4
databace-mapping 172.19.2.0/24 locator-set rloc_86efeb00-8b20-4da5-a812-9075c94db71f
exit-dynamic-eid
!
dynamic-eid 172_19_3_0-Single_Site-IPV4
databace-mapping 172.19.3.0/24 locator-set rloc_86efeb00-8b20-4da5-a812-9075c94db71f
exit-dynamic-eid
!
service ipv4
eid-table vrf Single_Site
map-cache 0.0.0.0/0 map-request #缓存限制,这里是所有,说明查到的所有信息都会缓存
exit-service-ipv4
!
exit-instanc-id
!
# 组播VN网络配置
!
instance-id 4099
remote-rloc-probe on-route-change
service ethernet
eid-table vlan 1026
broadcast-underlay 239.0.17.1
flood unknown-unicast
databace-mapping mac locator-set rloc_86efeb00-8b20-4da5-a812-9075c94db71f
exit-service-ethernet
!
exit-instanc-id
!
ipv4 locator reachability minimum-mask-length 32
ipv4 source-locator Loopback0
账号和策略挂钩,拿着账号可以在不同的Edge设备上注册,注册后获得的IP地址会不同,但不影响策略。因此做到策略随性,和IP地址无关。
源端的Edge设备在发送数据包时,会携带VN和SGT,目的端所在的Edge设备在接收到发送过来的包时,会查看VN是否一致,如果不一致会丢包;再查看SGT是否允许访问,如果允许,则发送给目的主机
2.2.3 动态EID迁移
- 主机10.2.1.10从交换机12.1.1.1迁移到交换机12.1.2.1时
- 交换机12.1.2.1立即向MR发送注册请求
- MR收到请求后,会对条目进行比较,将映射信息刷新
- 交换机12.1.2.1会将缓存的条目进行更新,10.2.1.10从远程条目变成本地条目
- 交换机12.1.1.1也会更新条目,10.2.1.10从本地条目变成LISP学习到的条目
2.3 Data Plane总览
Fabric数据平面提供以下内容
- underlay地址通告和映射、
- 自动建立隧道(VTEP)
- RLOC间的数据帧封装
支持LISP或VXLAN报头格式
- 几乎相同,具有不同的字段和有效载荷
- LISP头部携带IP payload (IP in IP)
- VXLAN头部携带MAC payload(MAC in IP)
由LISP控制平面时间触发
- L3网关上的ARP货NDP学习(anycast gw)
- 在RLOC上map-replay或cache