最近搭建了一套思科fabric,又有了一些新收获,多踩了两个坑,在此记录一下也可以帮新手朋友当个模板参考。
设备拓扑
这是基本的fabric架构,两个spine,三对leaf,spine既做spine又做leaf
还是border,拓扑不多讲。
IP地址设计
IP地址设计,环回口的设计是有几个点要注意的,loopback0是vPC两边配置不一致全局唯一的IP地址主要用来OSPF宣告后用于BGP路由更新EBGP路由更新,,pim也会用到。loopback1主地址也是配不一致的全局唯一的。然后loopback1下还需要配置一个secondaryIP地址,这个IP地址将会作为vtep的原地址并且PIM组播泛洪学习建隧道也是通过这个地址,这个地址要求vPC内两个地址要一样,但是vPC外全局唯一,vPC内要相同。spine的话还有个loopback2要配置一下,也是vPC内一致vPC外全局唯一,这个主要是 用来做anycast-rp来使用。思科的vxlan的建立和其他厂家有点不一样其他厂家是通过EVPN的三类路由来学习vtep地址并建立隧道,思科是要通过组播来建立vxlan隧道,所以pim一定要配好不然隧道起不来。最后是leaf和spine接口互联这个没啥设计的用30位的链路IP地址对规划一下就行
underlay配置
我只贴spine01和leaf01的配置其他配置应该是可以自行补的
先使能相关功能
feature tacacs+
cfs eth distribute
nv overlay evpn
feature ospf
feature bgp
feature pim
feature pbr
feature interface-vlan
feature vn-segment-vlan-based
feature hsrp
feature lacp
feature vpc
feature lldp
feature nv overlay
fabric forwarding anycast-gateway-mac 2023.0000.00bb
这些使能命令全设备一样都敲一遍包括这个 anycast-gateway-mac也是全局一致
PIM配置:spine
ip pim rp-address 3.1.1.254 group-list 239.0.0.0/25
ip pim ssm range 232.0.0.0/8
ip pim anycast-rp 3.1.1.254 3.1.1.1
ip pim anycast-rp 3.1.1.254 3.1.1.3
spine01和spine02的pim配置是一样的直接粘就行
leaf
ip pim rp-address 3.1.1.254 group-list 239.0.0.0/25
ip pim ssm range 232.0.0.0/8
所有leaf的pim配置一样,直接粘
vPC配置,vPC就是跨设备链路聚合华为叫m-lag锐捷叫VAP华三后面也叫m-lag了
vpc domain 13
peer-switch
peer-keepalive destination 10.100.100.1
peer-gateway
ip arp synchronize
所有设备配置基本一致改一下domain id然后peer-keepalivve对端地址我这边写的是对端设备的带外管理接口地址,
interface port-channel256
switchport mode trunk
spanning-tree port type network
vpc peer-link
interface Ethernet1/47
switchport mode trunk
channel-group 256 mode active
这个是将两设备互联的链路捆绑成一个链路后用来做vpc的peer-link
接口IP配置:spine01
环回口
interface loopback0
ip address 3.1.1.1/32
ip router ospf 11 area 0.0.0.0
ip pim sparse-mode
interface loopback1
ip address 3.1.1.2/32
ip address 3.1.1.5/32 secondary
ip router ospf 11 area 0.0.0.0
ip pim sparse-mode
interface loopback2
ip address 3.1.1.254/32
ip router ospf 11 area 0.0.0.0
ip pim sparse-mode
互联接口
interface Ethernet2/1
no switchport
mtu 9216
ip address 92.0.0.1/30
ip ospf network point-to-point
ip router ospf 11 area 0.0.0.0
ip pim sparse-mode
no shutdown
ip pim sparse-mode这个命令每个互联口 和环回口都要敲,不要漏了
nve接口
interface nve1
no shutdown
host-reachability protocol bgp
source-interface loopback1
将隧道接口原指定为loopback1,因为我们在1上配置了secondaryIP地址他会用这个去建立隧道要是不配的话可能隧道也建不起来
leaf接口配置
interface loopback0
ip address 3.1.1.18/32
ip router ospf 11 area 0.0.0.0
ip pim sparse-mode
interface loopback1
ip address 3.1.1.19/32
ip address 3.1.1.20/32 secondary
ip router ospf 11 area 0.0.0.0
ip pim sparse-mode
interface Ethernet1/45
no switchport
mtu 9216
ip address 92.0.0.22/30
ip ospf network point-to-point
ip router ospf 11 area 0.0.0.0
ip pim sparse-mode
no shutdown
interface nve1
no shutdown
host-reachability protocol bgp
source-interface loopback1
OSPF配置
router ospf 11
router-id 3.1.1.18
OSPF配置所有设备都差不多因为接口宣告了这边就不用宣告了,然后id和loopback0地址一致就行
BGP配置:spine
router bgp 65005
router-id 3.1.1.1
address-family l2vpn evpn
retain route-target all
template peer leaf
remote-as 65005
update-source loopback0
address-family l2vpn evpn
send-community
send-community extended
route-reflector-client
neighbor 3.1.1.6
inherit peer leaf
neighbor 3.1.1.8
inherit peer leaf
neighbor 3.1.1.11
inherit peer leaf
neighbor 3.1.1.13
inherit peer leaf
neighbor 3.1.1.16
inherit peer leaf
neighbor 3.1.1.18
inherit peer leaf
spine01和02基本一样把id改一下就能直接粘,这里采用的是邻居组的配置,配置会简洁一点
leaf
router bgp 65005
router-id 3.1.1.13
address-family l2vpn evpn
retain route-target all
neighbor 3.1.1.1
remote-as 65005
update-source loopback0
address-family l2vpn evpn
send-community
send-community extended
neighbor 3.1.1.3
remote-as 65005
update-source loopback0
address-family l2vpn evpn
send-community
send-community extended
underlay配置相关检查命令
show ip ospf neighbors 查看OSPF邻居是否建立
show bgp l2vpn evpn summary 查看BGPevpn邻居是否建立
show ip pim rp 查看rp是不是我们配置的Anycast-RP地址
show vpc 查看vpc状态
这个状态是很重要的要保证这个状态是正常的后面才不会出各种问题
overlay配置,这里先说明一下我这个网里面是没有overlay网关的因为网关不在这个fabric里面。是通过leaf封装接收到的arp发给spine然后spine解封装后通过trunk将对应vlan的arp发出,等另一个fabric的overlay网关回复后再将其封装发回给leaf,leaf解封装后再发回给主机或者服务器。但是我这边也会将带overlay网关实现三层转发的配置也发一下可以做个参考
vlan和vxlan的vni绑定
vlan 101
vn-segment 10101
vlan 102
vn-segment 10102
vlan 103
vn-segment 10103
vlan 104
vn-segment 10104
interface nve1
member vni 10101
mcast-group 239.0.0.4
member vni 10102
mcast-group 239.0.0.4
member vni 10103
mcast-group 239.0.0.4
member vni 10104
mcast-group 239.0.0.4
查看nve邻居
show nve peers
nve的邻居也一定要有,不然可能控制层面没问题网关上有arp表项但是实际上无法通信的问题
overlay配置不多,这个配置需要在每个设备上敲,配置到这里已经可以实现大二层互访了,就是没网关以下再将需要三层转发的配置展示一下供参考
vrf context server
vni 90001
rd 65002:90001
address-family ipv4 unicast
route-target both auto
route-target both auto evpn
这里的vni是三层vni和二层vni需要区分一下不要规划在一个区间内。
ip prefix-list static seq 10 permit 0.0.0.0/0
route-map static permit 10
match ip address prefix-list static
router bgp 64525
vrf server
address-family ipv4 unicast
advertise l2vpn evpn
redistribute static route-map static
default-information originate
bgp下也要开启vrf实例
interface Vlan101
no shutdown
mtu 9216
vrf member server
ip address 192.168.10.254/24
fabric forwarding mode anycast-gateway
这个接口就是overlay 的网关接口不需要单独再起一种类型的接口地址直接用vlanif就行锐捷是overlay-route接口,华为的是叫VBDIF,华三的叫Vsi-interface接口都是要单独起一种类型的。
interface nve1
member vni 90001 associate-vrf
在nve接口下将三层vni90001设定为和vrf绑定的三层vni
这里面可以看出一个相互之间的一个绑定关系,网关绑定vrf,vrf绑定一个三层vni,三层vni又会在nve1的接口下被绑定到vrf
配置到这里的话可以将多个vlanif绑定在这个vrf下就可以直接直连路由通信了。如果是想要跨vrf通信的话可能就需要通过
address-family ipv4 unicast
route-target import 65002:33310
route-target import 65002:33310 evpn
route-target export 65002:33310
route-target export 65002:33310 evpn
在这里调整导入导出才能完成,或者写静态路由也行,没试过
以上就是整个思科fabric的配置,可能有一些配置不完善的地方还请多多指正,有用就扩散欢迎一键三连