Ipv6随笔

一直没有仔细地研究过的ipv6

Posted by Les1ie on September 24, 2017

0x00 序

总是有人问川大的Ipv6是多少,看着这个问题怪别扭,就像问川大的教室是哪个一样,这种问题怎么回答?

不过或许可以直接回答是哪一个CIDR段(数据来源于 这里 )

1
2001:250:2003::/48

也就是

1
2001:250:2003:0000:0000:0000:0000 到 2001:250:200:ffff:ffff:ffff:ffff 

分配给四川大学的一共有2^80ipv6地址,大概是

现在江安望江有ipv6地址的设备还是挺多的,其中江安这个网络荒漠有几十台吧:)

(以上数据是写这篇部落格的时候瞎猜的)

对了,川大教育网ipv4地址如下,数据来源于这里

相对完整的川大的ip分布

江安的宿舍里面据说是有Ipv6的,网速和ipv4一样 :(, 所以我没试过,二基楼部分实验室里面是有Ipv6的。

望江的ipv6普及率要比江安好得多,反正我知道福星老师家网络的瓶颈是硬盘速度(怕是超五类线已经不够用了)。华西校区就不知道了:)

0x01 地址组成

ipv6是由128位二进制地址构成,平时写作16进制地址,上课的时候说过,二进制转16进制,4位一组写成一位16进制,所以128/4=32,平时我们用的是32位的十六进制串来表示ipv6的地址,比如这是在esxi上装的一个kali虚拟机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:c4:2f:eb brd ff:ff:ff:ff:ff:ff
    inet x.x.x.x brd x.x.x.x scope global dynamic eth0
       valid_lft 65954sec preferred_lft 65954sec
    inet6 2001:250:2003:7000:995d:7f4:f54a:6c7b/64 scope global temporary dynamic 
       valid_lft 592097sec preferred_lft 73354sec
    inet6 2001:250:2003:7000:b1b9:1641:989d:5713/64 scope global temporary deprecated dynamic 
       valid_lft 506042sec preferred_lft 0sec
    inet6 2001:250:2003:7000:e910:3cbe:25d8:633a/64 scope global temporary deprecated dynamic 
       valid_lft 419987sec preferred_lft 0sec
    inet6 2001:250:2003:7000:c104:575b:3faa:d0e1/64 scope global temporary deprecated dynamic 
       valid_lft 333932sec preferred_lft 0sec
    inet6 2001:250:2003:7000:3506:91f7:1f3:e139/64 scope global temporary deprecated dynamic 
       valid_lft 247877sec preferred_lft 0sec
    inet6 2001:250:2003:7000:941b:4d8a:153e:7e4f/64 scope global temporary deprecated dynamic 
       valid_lft 161822sec preferred_lft 0sec
    inet6 2001:250:2003:7000:6c96:41a2:7d48:f0fe/64 scope global temporary deprecated dynamic 
       valid_lft 75767sec preferred_lft 0sec
    inet6 2001:250:2003:7000:20c:29ff:fec4:2feb/64 scope global mngtmpaddr noprefixroute dynamic 
       valid_lft 2591901sec preferred_lft 604701sec
    inet6 fe80::20c:29ff:fec4:2feb/64 scope link 
       valid_lft forever preferred_lft forever

学校的ipv6是属于原生双栈接入, 插入网线即可获得ipv6地址,不需要配置isatap, Teredo 之类

另外,ipv6的地址划分是前64 bits表示网路地址,后64 bits表示接口ID

有些时候,可以看到inet6地址后面还有一个/64, 这个是表示第一个64 bits用来表示网络,最后一个64用来表示接口id

1
2001:250:2003:7000:20c:29ff:fe5f:f0e2/64

0x02 地址表示法

当网址中出现连续的0000的时候,可以直接用::缩写,比如Google DNS的地址就是

1
2
2001:4860:4860::8888
2001:4860:4860::8844

实际地址需要在两个冒号之间插入足够的0使得这个能凑成32位长的地址

本地回环地址就是

1
::1

要测试ipv6网络的连通性,需要用另一台拥有ipv6的地址的外网服务器,我没有v6的外网服务器,所以用的这个

1
http://ipv6now.com.au/pingme.php

然后发现了学校的校园网只有ipv4有waf, ipv6是没有waf的,外网可以直接连进来,所以我想xxxxxxx

ipv6表示网段,类似于ipv4的CDIR表示法,用前缀来表示网络地址空间

比如

1
2001:4860:4860::/48

表示前缀是48 bits的地址空间,后面剩下的128-48=80位可以用来表示主机,一共$2^{80}$

1
::/128

表示把128位用来表示地址,也就是无正式获得地址的主机,不能作为目的地址,不能分配给真实的主机接口

1
::1/128

也就是前面提到的本地回环

1
::1

还有

1
fe80::/10

这个是本地链路地址

以及

1
::

表示未指定地址

另外,配置域名解析的时候,不能选择A记录,需要选择AAAA,如果一个域名同时解析了ipv4和ipv6, dns请求的时候是两个都会查询返回的

以上

2017年9月24日20:01:14

0x03 refer:

2018年12月9日22:29:52

我以前写的都是些啥玩意儿 怎么这么zzzzzzzzzzzzzzz.. 没眼看了 orz

:(