最近几日沉迷于暗黑2复制版,所以没怎么更新和学习,今天续上。这一次的CCNA课程又是一个合集,主要是讲IPv6的。
首先回忆一下,之前我们讲了IPv4,现在讲的是IPv6,为什么没有IPv5?实际上曾经研发过该协议,叫做internet stream protocol。但是没有正式应用,也没有命名为IPv5,只是IP header是5而已。
那么回到IPv6,首先IPv6使用十六进制来表示,还是回忆一下几个进制的区别
二进制:Binary 只用 0,1,也称为Base 2,常见的表示方法是前面加0b, 比如0b10
十进制:Decimal,使用0,1,2,3,4,5,6,7,8,9,也称为Base10,常见的表示方法是前面加0d,比如0d10
十六进制:Hexadecimal,使用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,也称为Base16,常见的表示方法是前面加0x,比如0x10。
如果只用10,大家无法直到到底是哪一个进制,而加上前缀就比较清楚。下列图示是一些常见的转换,可以看出1位十六进制需要用四位二进制来表示。
接下来我们要练习一下几个禁止的转换方法,
首先是从低转高:
我们得到二进制0b11011011,那么首先把这八位二进制一劈为二,变成0b1101 和0b1011,然后可以转为十进制,变成0d13和0d11,最后再转为十六进制0xD和0xB,合起来就是0xDB
反过来,从高到低也是一样的:
比如十六进制0xEC,首先是一劈为二,变成0xE和0xC,然后可以转为十进制,变成0d14和0d12,最后再转为二进制0b1110和0b1100,合起来就是0b11101100
好啦,回忆结束,回到我们的IPv6,首先有一个概念,为什么说需要IPv6,其实最根本的原因就是IPv4不够用了,因为一共就只有2的32次方个IP地址,最初的设计者也没有考虑过未来网络会如此蓬勃发展,尽管又VLSM啊,私有地址啊,NAT啊等等,这些只能减缓地址的减少,不能解决根本问题。
IPv4地址是由IANA(internet assigned number authority)组织分配的,分配给不同的地区,有些地区在几年前就已经把地址用光了,有些地区还有一些,但是也快用光了。
所以呢,我们必须要使用新的IPv6.
IPv6使用128个bits,也就是IPv4的32倍,也就是有2的128次方个地址。由于是用16进制表示,分为8个group,如下图所示
接下来,讲一下IPv6的简化写法,
其实就是两点,第一点就是每个group的前置位0可以省略,第二点就是如果一组或者连续的几个组全是0那么可以省略,并且用两个冒号代表。
这里注意,假如是非连续的几个组全是0,那么只可以省略一次。
举例来说:
2001:0DB8:000A:001B;20A1:0020:0080:34BD 可以缩写为2001:DB8:A:1B:20A1:20:80:34BD
2001:0DB8:0000:0000:0000:0000:0080:34BD 可以缩写为2001;DB8::80:34BD
2001:0000:0000:0000:20A1:0000:0000:34BD只能缩写为2001::20A1:0:0:34BD或者把后面的改成::前面的改成0
反过来说,如果是缩写的IPv6地址,也可以扩展为完整状态,第一步找那个省略了前置位0的,把它补齐,然后看看有没有::,如果有的话说明省略了连续0组,把它补齐,保证完整地址是8个组即正确。
那么我们在和ISP索取购买地址时,一般来说会收到一个/48的IPv6地址,而一般IPv6子网都是用/64,所以有16个bits可以用来划分子网,2的16次方已经足够使用了。而剩余的64个bits用来给主机终端使用。如下图所示:
和IPv4一样,我们如何查找前缀,网段?即给了一个地址后,知道哪一部分是network portion,哪一部分是host portion?
比如 2001:0DB8:8B00:0001:0000:0000:0000:0001/64,这个就很简单,直接从前数四个组即可,前面就是network portion,后面是host portion,然后网段就是 2001:0DB8:8B00:0001: :/64
另外一个例子 300D:00F2:0B34:2100:0000:0000:1200:0001/56,每一个16进制代表4个bits,所以数14个即可,即300D:F2:B34:2100::/56
再来一个特殊例子 2001:0DB8:8B00:0001:FB89:017B:0020:0011/93,这一次先数23个16进制代表92个bits,然后把倒数第三组中017B中的B变成2进制0b1011,然后只数一位就得到了93,剩余部分都是host portion,变成0即可,所以这个网段是2001:DB8:8B00:1:FB89:178::/93
关于IPv6的写法来说没有特别的强制性要求,但是如果根据RFC标准来说,必须是去掉前置位0和缩写连续一组的0,如果有多组非连续0,那么缩写左边的,还有就是十六进制字幕必须大写,不过思科并没有遵循这一标准。
接下来就是IPv6的基本配置,首先是在路由器中进入配置模式config t
这条命令必须配置,不然路由器不会转发IPv6的包
ipv6 unicast-routing
然后是进入到需要配置的接口 int g0/0
最后可以配置地址.配置简写和全写都可以,
ipv6 address 2001:db8:0:0::1/64
no shutdown
查看状态可以使用
show ipv6 interface brief
之后可以看到各个端口的IPv6情况,这里的地址都是简写,
除了手动配置以外,还可以使用EUI-64方法来配置IPv6,
EUI-64就是把MAC地址转换为一个64 bits的方法,然后这个64 bits可以作为IPv6的host portion。
具体方法分三步,首先把MAC地址一劈为二,然后中间添加FFFFE,然后从左数第七位,把这个bit反转即可(1变成0,0变成1)
比如 MAC地址:0x1234567890AB先变成0x123456和0x7890AB,然后添加0xFFFE成为0x123456FFFFE7890AB,然后左边每一个十六进制都代表四个bits。所以第七位bit就是把十六进制的2修改。0x2是0b0010,反转后是0b0000,变回十六进制是0x0,最终得到0x103456FFFE7890AB
配置命令和上面的类似,进入到端口后int g0/0
ipv6 address 2001:db8::/64 eui-64
之后查看可以发现ipv6地址已经自动形成
接下来的部分比较多也复杂,和IPv4一样,IPv6也有不同类型
首先就是Global unicast address,这个地址是可以被用作互联网的,必须去ISP注册才能使用,并且是全球唯一。地址的范围最早被定义为2000::/3,这个地址范围很大从2000::到3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF。现在的定义就是只要不被保留为其他用途的地址都是global unicast address
另外几个叫法也不太一样,如下图所示,蓝色48 bits部分是global routing prefix,类似于IPv4里的network portion
接下来16 bits是subnet identifier,这部分IPv4没有单独分出来,用来划分子网的
最后64 bits橙色部分是interface identifier,类似于IPv4的host portion
接下来是Unique local address,这个属于私有地址,无法在互联网上使用,ISP看到这种会直接丢弃不会转发。这一类地址不需要注册,直接就可以使用,一般都用在内网里。地址范围最早是FC00::/7,从FC00:: 到FDFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF。到了后来把第八位改成了1,因此前两位变成了FD。
这种地址不需要global routing前缀,因此组成部分又有点不一样,如图所示,首先FD开头表明是unique local address,然后40 bits是 global ID,这个主要是用于不同的组织或者公司合并时候使用,必须是独一的,不然合并后假如两个公司刚好有同样的子网就会出现问题。后面的两部分和之前的一样。
然后就是Link local address,首先该地址是自动生成的,不需要手动配置,只有在端口打开 ipv6 enable就会得到该地址,生成的机制仍然是EUI-64。这类地址的范围FE80::/10,即FE80::到FEBF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF.但是实际上在FD80/10后的54个bits都是0,所以只有FE80开头。这类地址也是一样不会被路由器转发,只能在单一子网内起作用。一般被用作OSPF 的邻居adjacency或者next hop静态路由(当做静态路由必须声明端口,不然会报错)。
IPv6和IPv4一样,也有单播,组播,其中组播地址使用FF00::/8,从FF00::到FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF。但是IPv6是没有广播地址的。
下列图是一些常见的组播地址
FF01:interface-local,包不会被转发出local device,因此只能是同设备内发送
FF02:link-local,只能在同一个子网内被转发
FF05:Site-local,可以再不同子网内被转发,但是被限制在同一个物理地址内,不能在广域网上被转发
FF08:organization-local,比上一个范围大一些,比如一个组织或者大型公司
FF0E:global,没有限制,可以再互联网上被转发
后三种不是CCNA考试范围,了解一下名字即可。
如下图所示:
除了单播,组播和广播,IPv6还有任播 anycast,顾名思义就是可以从一个点发送至一堆中的任意一个,把几个路由配置成一样的地址,然后根据路由器协议和算法,包会被最近的一个路由转发,如下图所示
配置方法还是进入到该端口 int g/0
ipv6 address 2001:db8:1:1::99/128 anycast
最后有两个特殊地址
::代表未指明地址,类似于IPv4的0.0.0.0
::1则是loopback address,用来测试本地设备,不能发出去,类似于IPv4的127.0.0.0/8
接下来看看header的不同之处,回忆一下IPv4
下图是IPv6的header,可以看出来,简化了很多,
首先version还是4个bits 因为是IPv6,所以是0b0110
Traffice class是8个bits,用来表明权限级别,被用在QoS上
Flow Label一共20个bits,用来声明特殊的流,给特定的source和server用的,比如下载
payload一共16个bits,用来表明负载长度
next header有8个bits,用来声明next header的类型,比如TCP UDP
hop limit 一共有8个bits,类似于IPv4的TTL
最后就是128bits的source 和128bits的destination
上面了解即可,CCNA考试一般不会考这个
最后一个大话题就是IPv6的路由,首先我们要了解一个新的概念,叫做请求节点多播地址, solicited-node multicast address,该地址是由两部分组成
FF02:0000:0000:0000:0000:0001:FF 再加上unicast address的后六位
如下图所示
基本上在路由器端口上打开了IPv6,必须加入这三个组,前两个之前说过,all nodes和all routers,最后一个就是节点请求多播地址
了解了这个之后,我们回到IPv6的路由协议,
NDP: neighbor discovery protocol,这个协议用在IPv6上,它有很多种功能,其中之一就是代理IPv6上没有的ARP。该协议使用上面我们说到的节点多播地址和ICMPv6去学习其他节点或终端的MAC地址。
有两个信息累死
NS: neighbor solicitation = ICMPv6 Type 135
NA:neighbor advertisement = ICMPv6 Type 136
注意:IPv4才使用ARP,使用广播
我们看下图即可知道流程,在IPv4中,我想ping一个主机,实际上mac地址是全F的,广播的到处都是。而看IPv6中,source的IP和MAC自然是自己的,但是destination的IP地址使用的节点多播地址,因为我Ping另外一个主机,通过unicast address可以计算出节点多播地址。而destination的mac地址实际上也是计算出的,不过不在CCNA考试范围内,所以可以忽略。
R2收到Ping请求后会回复,如下图所示
NDP的另外一个功能是自动发现local network中其他路由器
同样需要两个信息:
RS:router solicitation = ICMP V6 Type 133
只要端口上线就会发消息给全部路由器, 多播地址 FF02::2
然后要求其他路由器声明自己
RA:router advertisement = ICMPv6 Type 134
不管有没有收到RS信息,都会周期性的发出去给全部节点,多播地址FF02::1
内容包括自己的状态啊,地址啊之类的,当收到RS信息后会回复
下一个NDP的作用叫做SLAAC
SLAAC:stateless address auto-configuration,终端通过该协议去发送RS/RA信息然后学到IPv6的前缀比如 2001:DB8::/64,然后再自动生成IPv6地址
之前我们知道手动设置EUI-64,还是要手动输入前缀,命令是
ipv6 address prefix/prefix-length eui-64
而使用SLAAC就不需要这么复杂,命令是
ipv6 address autoconfig
然后设备会通过NDP学到prefix,然后再通过EUI-64生成地址
最后一个NDP的功能叫做DAD
DAD: duplicate address detection,允许设备区检测有没有其他设备使用了同样的IPv6地址,只要端口up,no shutdown, 手动配置IPv6等等都会启动DAD,DAD会使用NA和NA来声明地址,如果没回复那么就可以用,如果有回复,说明有地址重复,系统会报错。如下图所示,
最后说一下静态路由,IPv6和IPv4一样也有静态路由,但是两者有点区别,比如IPv6不是默认开启,必须使用命令
ipv6 unicast-routing
不打开该命令的画,路由器会发送和接收,但是不会转发IPv6的包,
下图则是IPv6静态路由命令
和IPv4一样,加不加出的端口都可以,但是个人建议全写,因为在以太网端口只声明出口会出现问题,还有就是假如使用link-local address,只声明下一跳地址也会出问题
destination可以使用::/0表示全部通过
这就是IPv6的内容,比较杂乱,而且还有一些知识是需要CCNP才学到的。
-------------------------------------------------------分隔符-------------------------------------------------------------------
-------------------------------------------------------分隔符-------------------------------------------------------------------
-------------------------------------------------------分隔符-------------------------------------------------------------------
-------------------------------------------------------分隔符-------------------------------------------------------------------
-------------------------------------------------------分隔符-------------------------------------------------------------------
-------------------------------------------------------分隔符-------------------------------------------------------------------
-------------------------------------------------------分隔符-------------------------------------------------------------------
-------------------------------------------------------分隔符-------------------------------------------------------------------
-------------------------------------------------------分隔符-------------------------------------------------------------------
-------------------------------------------------------分隔符-------------------------------------------------------------------
Day 31 Anki Flashcard下载:https://drive.google.com/file/d/1TcdcChVsY4p2OwD2l4-5mwkJ4UQFX40q/view?usp=sharing
Day 32 Anki Flashcard下载: https://drive.google.com/file/d/1hCadq-rBgMYhLBbVOPxlKI0JgdjEXi6a/view?usp=sharing
Day 33 Anki Flashcard下载:https://drive.google.com/file/d/1KqsOL8T2nYEr6ETrRCt6KfNkn2ZN_ZJM/view?usp=sharing
Day 31 Cisco Packet Tracer 练习题下载:https://drive.google.com/file/d/1Rst2Vvs8tXfdweJb8Yhie9zaqQhS4arq/view?usp=sharing
Day 32 Cisco Packet Tracer 练习题下载: https://drive.google.com/file/d/1RohtAJYWk3FH28X4gLtVZeVFh93iBVD9/view?usp=sharing
Day 33 Cisco Packet Tracer 练习题下载: https://drive.google.com/file/d/1nrygzhxVdngKt2MVIX8umpjUoL6M6OhX/view?usp=sharing
Day 31 Cisco Packet Tracer 练习题完成下载:https://drive.google.com/file/d/1ss2TavYEFhdzH7LaYjD8rPOr7BZTnaUC/view?usp=sharing
Day 32 Cisco Packet Tracer 练习题完成下载: https://drive.google.com/file/d/1LY1W-OB4Q28s4yC8cu_RFkh6J6UdKDtT/view?usp=sharing
Day 33 Cisco Packet Tracer 练习题完成下载: https://drive.google.com/file/d/17h9tDDqQzypJ7SJsi8MpoEF-Pwei7G0Q/view?usp=sharing
0 条评论