特别注意:仅供参考,紫色表示配置,蓝色表示show命令,红色表示特别注意
MPLS V**
1、配置LDP协议
①先保证LDP的transport-address可达(即保证MPLS域的通信,启用一个路由协议)
②LDP协议基本配置命令
ip cef开启cef功能
mpls ip 开启mpls功能(思科路由器默认开启)
mpls label protocol ldp设置标签分配协议为ldp(大多数路由器默认为ldp,思科也是)
mpls ldp router-id loopback 0 指定ldp协议的router-id为loopback 0(只能指定一个接口,不能指定地址)
interface e0/0进入某个接口
mpls ip给该接口启用mpls功能
show mpls interfaces
show mpls ldp neighbor
show mpls ldp bindings
show mpls forwarding-table查看mpls转发表
show ip bgp V**v4 all labels 查看所有vrf的标签
2、配置VRF
①规划VRF RD RT值
②基本配置命令
ip vrf vrf-name创建一个名字为vrf-name的VRF
rd nn:mm设置该VRF的RD值为nn:mm(即有RD值为nn:mm的路由来自同一个VRF)
route-target export aa:bb设置该VRF的 出RT值 为aa:bb(即该VRF发出的路由的RT为aa:bb)
route-target import cc:dd设置该VRF的 入RT值 为cc:dd(即只接受带有RT为cc:dd的路由)
interface e0/0进入要关联VRF的接口(如果MPLS域运行的协议为OSPF,则可以在OSPF进程中使用
ip vrf forwarding vrf-name将名字为vrf-name的VRF关联到接口e0/0
mpls ldp autoconfig在ospf配置模式下配置,使得所有ospf接口都开启mpls功能)
show ip vrf查看VRF信息
3、配置PE到CE的路由协议
说明:只要到了VRF配置模式里面,配置内容和常规配置几乎一模一样
① 态路由的配置
PE设备:
ip route vrf vrf-name 192.168.1.0 255.255.255.0 12.1.1.1 给名字为vrf-name的VRF配置一条静态路由
CE设备:
ip route 0.0.0.0 0.0.0.0 12.1.1.2 给CE设备配置一条静态路由(按照常规配置即可)
show ip vrf vrf-name route 查看名字为vrf-name的VRF的路由
ping vrf vrf-name destination-address ping某个VRF中的地址
②RIP的VRF
PE设备
router rip进入RIP协议
address-family ipv4 vrf A1进入名字为A1的VRF(配置内容和常规配置几乎一模一样)
network 12.0.0.0
no auto-summary
version 2
exit-address-family
CE设备
按照常规配置即可
③EIGRP的VRF
PE设备
router eigrp 12345进入到AS为12345的EIGRP
address-family ipv4 vrf A2 autonomous-system 56进入到名字为A2的VRF,其vrf的EIGRP的AS为56
network 56.1.1.5 0.0.0.0(配置内容和常规配置几乎一模一样)
exit-address-family
(补充:autonomous-system 56)该进程号也可以在地址簇中指定,该AS好为CE设备的AS号。
CE设备
按照常规配置即可
④OSPF的VRF
补充:当MPLS域两边的PE和CE设备使用OSPF路由协议,并且来两边都宣告为area 0时,路由表中的路由标识有一下两种
O IA两边PE使用进程号相同,即domain id相同时,为O IA
O E2两边PE使用进程号不同,即domain id 不同时,为O E2
原因:使用show ip ospf的条目中有一个domain id,默认domain id等于进程号,修改命令:domain-id X.X.X.X(在相关进程中修改)
PE设备:
router ospf 27 vrf B1进入到名字为B1的VRF的OSPF中,其AS号为27
router-id 2.2.2.22(配置内容和常规配置几乎一模一样)
network 27.1.1.2 0.0.0.0 area 0
CE设备
按照常规配置即可
⑤BGP的VRF
补充:如果MPLS域来两边的CE设备使用的BGP AS号相同,则可能不会接收相关路由(BGP不接收拥有自己AS-path的路由)
解决办法:
①as-override 把AS-path含有的和CE AS相同的AS号全部替换成自己的AS号(在PE设备上配置)
命令:neighbor CE-address as-overrride (在相关地址簇的相关VRF中配置)
②allowas-in 表示允许接收BGP条目中含有几次自己的AS-path(在CE设备上配置)
命令:neighbor PE-address allowas-in number(在相关BGP中配置,number表示次数)
PE设备
router bgp 25进入AS号为25的BGP
bgp router-id 5.5.5.5
address-family ipv4 vrf B2进入ipv4名字为B2的VRF(默认为unicast,所以可以不用加unicast)
neighbor 58.1.1.8 remote-as 8(配置内容和常规配置几乎一模一样)
neighbor 58.1.1.8 activate
exit-address-family
4、配置MP-BGP协议
补充:no bgp default ipv4-unicast (关闭IPv4地址簇自动激活能力)
router bgp 100开启一个AS为100的bgp
no bgp default ipv4-unicast关闭IPv4地址簇自动激活能力
bgp router-id 2.2.2.2指定bgp的router-id
neighbor 4.4.4.4 remote-as 100指定邻居关系(默认为ipv4单播,但关闭了自动激活,则根据激活地方决定)
neighbor 4.4.4.4 update-source loopback 0指定更新源(一般为traceroute-address)
address-family V**v4进入V**v4地址簇
neighbor 4.4.4.4 activate激活指定的邻居(使其成为V**v4邻居)
neighbor 4.4.4.4 send-community extended用于发送扩展的community(此处的RT值即为扩展commuity,自动生成,不用配置)
show ip bgp V**v4 all summary查看V**v4的邻居
5、配置重分布
在相应的地址簇中按照常规重分布即可
如果PE和CE之间运行的都是BGP或者都是相同的路由协议则不用重分布
查看命令
show ip vrf vrf-name route 查看名字为vrf-name的VRF的路由
ping vrf vrf-name destination-address ping某个VRF中的地址
show ip vrf查看VRF信息
show ip bgp V**v4 all查看V**v4路由
show ip bgp V**v4 all labels查看私有标签
show ip bgp V**v4 all summary查看V**v4的邻居
show mpls interfaces
show mpls ldp neighbor
show mpls ldp bindings
show mpls forwarding-table查看mpls转发表
show ip bgp V**v4 all labels 查看所有vrf的标签
排错
1、先查路由——分段式的检查
2、在检查标签
私网标签——只要V**v4路由有,基本都没有问题
公网标签——标签不连续:注意检查路由是否汇总,如果mpls域使用的IGP是OSPF,注意查看loopback接口是否是通告的实际掩码。
3、mpls中LDP的邻居关系——注意检查应该配置的接口是否开启mpls ip
DMV**
1、配置tunnel 接口,保证tunnel source互相通信以及设置MGRE,即GRE隧道
HUB+SPOKE
interface s1/0进入公网接口
ip address 123.1.1.1 255.255.255.0给公网接口配置IP地址
ip route 0.0.0.0 0.0.0.0 123.1.1.2保证公网接口(tunnel source)能够通信(其他方式也可)
interface tunnel 0 进入隧道(随便哪个tunnel接口都可以,一般使用tunnel 0)
ip address 172.16.1.1 255.255.255.0给隧道配置一个IP地址(所有的HUB SPOKE的地址要在同一个网段)
tunnel source s1/0关联tunnel source接口(可以用IP地址)
tunnel mode gre multipoint设置tunnel接口的模式为MGRE模式(虽有隧道模式都为MGRE)
tunnel key 10设置一个tunnel的key(所有tunnel接口的key必须相同)
2、配置NHRP
HUB设备
interface tunnel 0
ip address 172.16.1.1 255.255.255.0配置隧道IP地址(上一步做了,可以不用做)
ip nhrp network-id 11network-id每一个设备都必须相同
ip nhrp authentication cisco启用NHRP认证(可选,可以不用配置)
ip nhrp map multicast dynamic 使得HUB设备动态接受组播映射
SPOKE设备
interface tunnel 0
ip address 172.16.1.2 255.255.255.0配置隧道IP地址(上一步做了,可以不用做)
ip nhrp network-id 11network-id每一个设备都必须相同
ip nhrp authentication cisco启用NHRP认证(可选,可以不用配置)
ip nhrp map 172.16.1.1 123.1.1.1所有spoke设备都需要静态配置hub地址映射(前面的是HUB设备的tunnel地址 后面的是tunnel source地址)
ip nhrp map multicast 123.1.1.1所有spoke设备都需要手动映射组播到HUB设备(该地址为HUB的tunnel source地址,作用是:后续的spoke和hub之间建立动态路由协议邻居)
ip nhrp nhs 172.16.1.1 配置server地址(spoke启动以后会到服务器注册自己虚拟隧道地址到公网地址的映射)
3、配置动态路由协议(以EIGRP举例)
HUB SPOKE设备
router eigrp 20 按照常规配置即可
network 172.16.1.0 0.0.0.255宣告tunnel接口的地址(建立动态路由协议的邻居)
network 10.1.1.0 0.0.0.255其他内网地址的宣告
no auto-summary
重要补充:动态协议使用EIGRP,则需要在tunnel 接口关闭水平分割,否则只有HUB和SPOKE之间有EIGRP邻居,SPOKE之间不会有EIGRP邻居。
动态协议使用OSPF,则需要在tunnel接口将OSPF网络类型改为,点对多点(因为tunnel接口的默认网络类型为点对点),也可以改为广播类型(但是HUB必须为DR)
4、IPSec V**
HUB SPOKE设备
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco address 0.0.0.0 虽有的IPSec部分都是常规配置,只有此处地址使用0.0.0.0(因为邻居地址不知道或者邻居动态过去地址)
crypto ipsec transform-set cisco esp-des esp-md5-hmac
mode transport由于有GRE隧道,所以不用tunnel模式
crypto ipsec profile ipsecprof
set transform-set cisco
interface Tunnel 0
ip mtu 1400 调整MTU,防止分片
tunnel protection ipsec profile ipsecprof GRE over IPSec配置
5、优化
HUB设备
interface tunnel 0
ip nhrp redirect关闭HUB设备的NHRP重定向
SPOKE设备
interface tunnel 0
ip nhrp shortcut 使得SPOKE设备走最短的路劲
补充:如果不优化,则SPOKE之间通信会经过HUB设备
IPSec V**
IPSec V**
1、IKE第一阶段(定义策略)
crypto isakmp policy 10启用策略,其优先级为10
encryption aes配置加密算法
hash md5配置hash算法,默认为SHA
authentication pre-share配置认证方式(pre-share为预共享密钥,用于建立IPSec的设备之间做身份认证的,判断是否为合法用户,这里只是指定认证方式,具体密钥在下面的配置)
group 5配置DH组的长度
lifetime 3600配置生存时间(默认为86400秒)
crypto isakmp key 6 CCIE67 address 13.1.1.3配置相关认证的密码 ,此处的地址为邻居地址,密码为CCIE67(0表示明文密码,6表示密文密码,不写默认为0,该密钥用来判定建立IPSec的设备是否为合法用户,即上面所需)
2、IKE第二阶段(设置IPSec)
crypto ipsec transform-set MYSET esp-aes esp-md5-hmac定义传输级的名字为MYSET+封装协议+封装算法(hash)(规定封装协议和封装算法,主要是ah和esp)
mode tunnel定义传输模式(tunnel可以直接传输,不需要另外的隧道)
access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 抓取需要通过IPSec隧道的流量(匹配感兴趣流,该流量不能经过NAT)
3、关联感兴趣流(创建ccrypto map)
crypto map MYMAP 10 ipsec-isakmp 调用IPSec,设置一个名字为MYMAP的map,10为序列号,范围1~65535
set peer 13.1.1.3设置一个IPSec对等体(关联第一阶段)
set transform-set MYSET关联transform-set(名字需要匹配上一个步骤中的transform-set的名字,关联第二阶段)
match address 101 关联感兴趣流
4、调用IPSec
int e0/1该接口为出口接口
crypto map MYMAP在接口下调用crypto map,即调用IPSec
5、排错
阶段一 :show crypto isakmp sa
state为QM-IDLE
阶段二 :show crypto ipsec sa
基于GRE的IPSec
首先保证GRE隧道能正常通信
1、IKE第一阶段(定义策略)
crypto isakmp policy 10启用策略,其优先级为10
encryption aes配置加密算法
hash md5配置hash算法,默认为SHA
authentication pre-share配置认证方式(pre-share为预共享密钥,用于建立IPSec的设备之间做身份认证的,判断是否为合法用户,这里只是指定认证方式,具体密钥在下面的配置)
group 5配置DH组的长度
lifetime 3600配置生存时间(默认为86400秒)
crypto isakmp key 6 CCIE67 address 13.1.1.3配置相关认证的密码 ,此处的地址为邻居地址,密码为CCIE67(0表示明文密码,6表示密文密码,不写默认为0,该密钥用来判定建立IPSec的设备是否为合法用户,即上面所需)
2、IKE第二阶段(设置IPSec)
crypto ipsec transform-set MYSET esp-aes esp-md5-hmac定义传输级的名字为MYSET+封装协议+封装算法(hash)(规定封装协议和封装算法,主要是ah和esp)
mode tunnel定义传输模式(tunnel可以直接传输,不需要另外的隧道)
3、创建PROFILE
crypto ipsec profile MYPROFILE 调用IPSec,使用profile,可以不用设置感兴趣流,只要走隧道的流量都会被加密
set transform-set MYSET 关联transform-set
4、调用IPSec
int tunnel 0
tunnel protection ipsec profile MYPROFILE关联IPSec,tunnel的保护适用IPSec来保护