Archive

‘CCIE SP’ 分类存档

CCIE SP—组播 PIM SM For Join and Reg

PIM:组播协议,路由器与路由器通信,2台路由器通过PIM建立连接后,互相传送join member和register member来建立组播路由表。但是他依靠单播路由表来为它做RPF校验。

RP:源和组的汇合点,共享树和源树的聚合点(有树生成后)

Spare Mode的浓缩结论:
——————————————-
1,接收者通过join加入到RP,组到RP(最后一跳路由器发起)
2,发送者通过与RP register,源到RP(第一跳路由器发起)
3,如果是共享数,RPF Check就要检查如何到RP
4,如果是源树,RPF Check就要检查如何到源
这四点的具体说明,在后面的日志里会说明,这里要记住它。

数据流的方向是顺着共享树走的。

通告RP分静态配置和动态配置(Auto-RP或PIM v2 BSR)
对于一个特定的组,只能有一个RP,因为RP的目的是做汇聚的,如果一个组有2个RP,源和组选了不同的RP,那么就不能汇聚,这样树就不能建立,这样组播流就不能从源到组转发。
完整阅读

CCIE SP — IPV6 基础

IPV6简述

全球Ipv4地址数量越来越少,虽然有众多技术在延长Ipv4的寿命(NAT、CIDR等),但Ipv4总会有用完的一天,Ipv6就必然取代Ipv4。如果感兴趣的朋友,可以登陆公开的全局路由器来观察全球全局路由表的数量,具体登录哪台,可以根据自己喜好从这里选择

下面是v4的增长图,可以从下面link中获得Internet上的v4和v6信息:

http://bgp.potaroo.net/as2.0/bgptable.txt

http://bgp.potaroo.net/v6/as2.0/bgptable.txt

2018-7-26 更新:

IPv6的表达方式

IPv6地址的基本表达方式是X:X:X:X:X:X:X:X,其中X是1个4位16进制整数( 1个16进制等于4个2进制,所以X为16位)。IPv6一共8组,每组16位,共计128位( 4×4×8 = 128 )。由于Ipv6是128位,所以记忆比较复杂,所以有几种可以简化的方法,以下列出常用的几种:

例如如下Ipv6的地址:

2031:0000:130F:0000:0000:09C0:876A:130B

  • 每组的首位为0时,可以忽略”0″:
    • 2031:0:130F:0:0:9c0:876A:130B
  • 连续的组都是0时,可以用”::”来替代,注意,一个ipv6中只能出现一次”::”
    • 2031:0:130F::9C0:876A:130B
    • FF01:0:0:0:0:0:0:1 —>>> FF01::1
    • 0:0:0:0:0:0:0:1 —>>> ::1

地址分类

单播

未指定的地址,环回地址和IPV4兼容地址

未指定地址:0:0:0:0:0:0:0:0 —>>> ::
环回地址:   0:0:0:0:0:0:0:1 —>>> ::1 (与127.0.0.1的作用一致)
IPv4兼容地址:ipv6 = 96bits+32bits,例如:

注:好像::192.168.30.1这种表达方式已经不行了,只能把它转换为16进制才行。

本地链路地址

前10bits(FE80::/10)是固定前缀,例如:


注:后64bits表示端口ID,相当于ipv4中的主机位,会自动分配。

本地链路地址常以EUI-64的方式表示,EUI-64如图所示:

eui-64

X=1 代表唯一性,独一无二的MAC地址
X=0 代表有重复,交换机中可以找到这样的MAC地址
所以当MAC地址为:ca01.0544.0000,EUI-64地址:FE80::c801:05FF:FE44:0 (此时就表示MAC地址有重复,如果不重复则为FE80::ca01:05FF:FE44:0)

本地站点地址

前10bits(FEC0::/10)是固定前缀,在64bits的主机位前又加了16bits的子网id,例如:

可聚合全球单播地址

前3bits(2000::/3)是固定前缀,此时Ipv6被层次化了,如下图所示:

可聚合全球单播地址

13bits TLA:  顶级聚合位,由SP申请。
8bits RES:   区域位,如亚太、东南亚等
24bits NLAs:网络层聚合
16bits SLA:   子网位

组播

前8位全为1(FF)时,就标示ipv6的组播地址,如下图所示:

组播地址

下图标示了常用的组播地址:

组播地址范围

被请求节点(Solicited-Node)的组播地址:FF02::1:FF00:0000,后24bits(单播ipv4/ipv6的后24bits)是可变的,所以被请求节点的组播地址范围是:FF02::1:FFff:ffff/104,这个可以参考RFC3515: Internet Protocol Version 6 (IPv6) Addressing Architecture

实例说明

ipv6 unicast-routing   !---Ipv6进行路由时,必须打上
!
interface FastEthernet0/0
no ip address
duplex full
ipv6 address 2001::1:1/64   !---全球可聚合单播地址
ipv6 enable   !---可以在端口上开启ipv6
no clns route-cache

#sh int f0/0
FastEthernet0/0 is up, line protocol is up
Hardware is DEC21140, address is ca01.0544.0000 (bia ca01.0544.0000)
!---“bia ca01.0544.0000”,bia即“烧录地址”(burned in address),MAC地址即0003.e39b.9220,此处MAC地址可以通过命令改变,不过主要是为了防止MAC攻击,所以意义不大。

#sh ipv6 interface f0/0   !---通过此命令来查看端口下ipv6的参数
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::C801:5FF:FE44:0   !---本地链路地址,EUI-64标示
Global unicast address(es):
2001::1:1, subnet is 2001::/64   !---全球可聚合单播(可以有多个),2001::/64是子网
Joined group address(es):
FF02::1   !---所有节点
FF02::2   !---所有路由器,当打开ipv6 unicast-routing时,才会加入此组
FF02::1:FF01:1   !---被请求节点的组播地址,相当于ARP的广播地址,对应2001::1:1的后32bit,01:0001
FF02::1:FF44:0   !---被请求节点的组播地址,同理对应FE80::C801:5FF:FE44:0的后32bit,44:0000
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND advertised reachable time is 0 milliseconds
ND advertised retransmit interval is 0 milliseconds
ND router advertisements are sent every 200 seconds
ND router advertisements live for 1800 seconds
Hosts use stateless autoconfig for addresses.

2022-11-22更新:IPv6 ND 解析过程

此更新主要记录了整个IPv6解析mac地址的报文分析,方便日后复习。对于IPv6来说,已经用Neighbor Discovery替代了我们熟悉的ARP,在ND协议中,有多种类型的报文,我们在这里只关注NS和NA跟解析MAC地址相关的,对于RS和RA主要用于自动分配地址使用,在BNG v6的场景中使用过。关于这些详细的内容,可以参考RFC4861: Neighbor Discovery for IP version 6 (IPv6)

Message name                            ICMPv6 Type

Router Solicitation                      133
Router Advertisement                     134
Neighbor Solicitation                    135
Neighbor Advertisement                   136
Redirect                                 137

Topology

在交换机上配置一个vlan10,配置2001::1/64,并把gi0/0和gi0/1划入vlan10,linux2的eth4是2001::3/64:

VM Linux1(00:50:02:00:15:04)eth4------gi0/0(5002.0018.0000) VM Switch (5002.0018.0001)gi0/1-----eth4(00:50:02:00:15:04)(2001::3/64)VM Linux2

主机发送NS

在Linux1 up的端口eth4上配置IPv6地址后,可以看到没有任何nd信息:

[root@linux1 ~]# ip addr add dev eth4 2001::2/64
[root@linux1 ~]# ip -6 neigh show
[root@linux1 ~]# 

当IPv6地址激活后,Linux1主动发送NS报文,有点类似Gratuitous ARP,用来进行冲突检测的,可以看到其中33:33是ipv6组播标识,后面的ff900:00:02是IPv6地址的后24bit,如果在网络上有主机收到这个NS发现与自己的IPv6地址重叠,那么就会发送NA,告知自己的地址和mac地址:

组播报文
源Mac : 00:50:02:00:15:04,目的Mac : 33:33:ff:00:00:02
源IPv6: ::,               目的IPv6: ff02::1:ff00:2
ICMPv6 Type 135:
  Target Address: 2001::2
  Option: None

当在Linux1上发起ping后,正式发起ND解析请求,并获得邻居信息,如下:

[root@linux1 ~]# ping -6 2001::3
PING 2001::3(2001::3) 56 data bytes
64 bytes from 2001::3: icmp_seq=1 ttl=64 time=3.62 ms
64 bytes from 2001::3: icmp_seq=2 ttl=64 time=1.72 ms
64 bytes from 2001::3: icmp_seq=3 ttl=64 time=2.07 ms
^C
--- 2001::3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 1.723/2.472/3.622/0.827 ms
[root@linux1 ~]# ip -6 neigh show
fe80::250:2ff:fe00:1704 dev eth4  FAILED
2001::3 dev eth4 lladdr 00:50:02:00:17:04 REACHABLE

来看下对应的解析NS报文:

组播报文
源Mac : 00:50:02:00:15:04,目的Mac : 33:33:ff:00:00:03
源IPv6: 2001::2,          目的IPv6: ff02::1:ff00:3
ICMPv6 Type 135:
  Target Address: 2001::3
  Option(Source Link-layer address): 00:50:02:00:15:04

远端主机回复NA

接下来是Linux2回复的NA报文:

单播报文
源Mac : 00:50:02:00:17:04,目的Mac : 00:50:02:00:15:04
源IPv6: 2001::3,          目的IPv6: 2001::2
ICMPv6 Type 136:
  Target Address: 2001::3
  Option(Target Link-layer address): 00:50:02:00:17:04

参考文章

为了防止上面参考文章失效,所以截屏保存:

以及上面分析的报文:

CCIE SP — 组播 IP 多播路由介绍

Some Well-Known Reserved Multicast Addresses

Address Group
—————————————
224.0.0.1 All systems on this subnet
224.0.0.2 All routers on this subnet
224.0.0.4 DVMRP routers
224.0.0.5 All OSPF routers
224.0.0.6 OSPF designated routers
224.0.0.9 RIP-2 routers
224.0.0.10 EIGRP routers
224.0.0.13 PIM routers
224.0.0.15 CBT routers
224.0.1.39 Cisco-RP-Announce
224.0.1.40 Cisco-RP-Discovery  完整阅读

BGP MPLS-VPN的更新以及数据转发的过程

先来阐述一下BGP MPLS-VPN的更新以及数据转发的过程:

CE(R1)—–PE(R2)——P(R3)——–PE(R4)——-CE(R5)

控制平面:r1———–r5

1. CE和PE之间运行普通的路由协议(RIPV2,OSPF,EBGP,ISIS),将私网的路由发送到PE这个时候,PE(R2)发现路由更新是从某个接口发过来的,所以它就找出与该接口所绑定的VRF,针对VRF来给其打上RD和RT标识以及私网标签。然后更改自己的地址(通常是LOOPBACK地址)为下一跳。

2. 然后把更新发送到对端的PE,当然一定要确保到对端的TCP可达,如果不可达的话,那么这个更新信息将被丢弃。然后按照正常的LSP进行转发到PE(R4);如果没有启用MPLS,那么会按照正常的 完整阅读

前缀列表的讨论 Prefix-list

在BGP路由选择协议中,可以对BGP路由选择更新进行过滤,要完成这个工作要用到前缀列表。

一、前缀列表的特点:
(1)可以增量修改,我们知道对于普通访问控制列表,我们不能删除该列表中的某个条目,如果想删除列表中的某个条目只能将该访问列表全部删除,而前缀列表中,一个条目可以单独地删除或添加。
(2)前缀列表在Cisco IOS 12.0及其以后的版本中可以使用。
(3)在大型列表的加载和路由查找方面比访问控制列表有显著的性能改进。
(4)前缀列表用于BGP路由。

二、前缀列表的命令描述:
(1)ip prefix-list list-name [seq seq-value] {deny|permit} network/len [ge ge-value] [le le-value]
list name 代表被创建的前缀列表名(注意该列表名是区分大小写的)
完整阅读

blonde teen swallows load.xxx videos