CCNA入门基础之 IP地址
IP(Internet Protocol),意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址是指互联网协议地址(Internet Protocol Address,又译为网际协议地址)。IP地址是IP协议提供的一种统一主机编址的方式的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。每台联网的电脑上都需要有IP地址,才能正常通信。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。常见的IP地址,分为IPv4与IPv6两大类。IPV4有4段数字,每一段最大不超过255。由于互联网的蓬勃发展,IP位址的需求量愈来愈大,使得IP位址的发放愈趋严格,各项资料显示全球IPv4位址可能在2005至2010年间全部发完(实际情况是在2011年2月3日IPv4位地址分配完毕)。址空间的不足必将妨碍互联网的进一步发展。为了扩大地址空间,拟通过IPv6重新定义地址空间。IPv6采用128位地址长度。在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外,还考虑了在IPv4中解决不好的其它问题。
IPv4地址编址方案将IP地址空间划分为A、B、C、D、E五类,其中A、B、C是基本类,D、E类作为多播和保留使用。
类别 | 最大网络数 | IP地址范围 | 最大主机数 | 私有IP地址范围 |
A | 126(2^7-2) | 0.0.0.0-127.255.255.255 | 16777214 | 10.0.0.0-10.255.255.255 |
B | 16384(2^14) | 128.0.0.0-191.255.255.255 | 65534 | 172.16.0.0-172.31.255.255 |
C | 2097152(2^21) | 192.0.0.0-223.255.255.255 | 254 | 192.168.0.0-192.168.255.255 |
D(组播) | D类地址也不分网络地址 | 224.0.0.1—239.255.255.254 | D类地址也不分主机地址 | 239.0.0.0—239.255.255.255 |
E(实验) | E类地址也不分网络地址 | 240.0.0.1—255.255.255.254 | E类地址也不分主机地址 |
|
全网广播地址 |
| 255.255.255.255 |
|
|
注意以上地址不是随便可以使用的。在现在的网络中,IP地址分为公网IP地址和私有IP地址。公网IP是在Internet使用的IP地址,也就是公网可路由地址,而私有IP地址则是在局域网中使用的IP地址。私有IP地址是一段保留的IP地址。只使用在局域网中,无法在Internet上使用。这就是为什么我们要上网,要找运营商,申请宽频,专线。只有通过运营商才能获得Internet上合法的IP与其他公网上的主机进行通信。IP地址现由因特网名字与号码指派公司ICANN(InternetCorporation for Assigned Names and Numbers)分配。
InterNIC:负责美国及其他地区;负责北美B类IP地址分配
ENIC:负责欧洲地区;负责A类IP地址分配
APNIC(Asia Pacific Network Information Center):负责亚太B类IP地址分配,我国用户可向APNIC申请(要缴费),
A类地址简介:
(1)A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达256的3次方-2=16777214多台
⑵ A类地址范围:1.0.0.0到126.255.255.255。Internet上公有IP
(3)A类地址中的保留地址:127.0.0.0到127.255.255.255是私有地址,用做循环测试用的。
(4)A类地址中的私有地址:10.0.0.0到10.255.255.255 在局域网使用
(5) A类IP地址的子网掩码为255.0.0.0
B类地址简介:
(1)一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为256的2次方-2=65534台。
⑵ B类地址范围:128.0.0.0到191.255.255.255。Internet公有IP
⑶ B类地址中的保留地址:169.254.0.0到169.254.255.255。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器,这时你将会从169.254.0.1到169.254.255.254中临时获得一个IP地址。
(4)B类地址的私有地址:172.16.0.0到172.31.255.255 在局域网使用
C类地址简介:
(1)一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网络地址数量较多,有209万余个网络。适用于小规模的局域网络,每个网络最多只能包含256的一次方-2=254台计算机
⑵C类地址范围:192.0.0.0到223.255.255.255。
(3)在C类地址中的私有地址192.168.0.0到192.168.255.255 在局域网使用
D类地址
⑴ D类IP地址在被叫做多播地址(multicastaddress),即组播地址。D类地址不分网络地址和主机地址,在以太网中,多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。多播地址的最高位必须是“1110”
⑵ D类地址范围:224.0.0.1—239.255.255.254
(3)D类的私有地址:239.0.0.0—239.255.255.255
(4)D类保留地址:224.0.0.0—244.0.0.255只能用于局域网中路由器是不会转发的,224.0.0.1是所有主机的地址,224.0.0.2所有路由器的地址,224.0.0.5所有ospf路由器的地址,224.0.13事PIMv2路由器的地址
E类地址
(1)E类地址也不分网络地址和主机地址,它的第1个字节的前五位固定为11110。
(2)E类地址范围:240.0.0.1—255.255.255.254
IP广播地址(广播数据包不经过路由器)
受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据包的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。ARP和UDP的广播地址为255.255.255.255
指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。
指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。例如,如果路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。
指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。例如,如果目的子网掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,这就是一个指向网络的广播。
子网掩码:
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码是一个32位地址,子网掩码不能单独存在,它必须结合IP地址一起使用。它的主要作用有两个,一是子网掩码可以将某个IP地址划分成网络地址和主机地址两部分,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络,划分子网可以减少IPv4地址的浪费。子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。对于A类地址来说,默认的子网掩码是255.0.0.0或用”/8“表示;对于B类地址来说默认的子网掩码是255.255.0.0或用“/16”;对于C类地址来说默认的子网掩码是255.255.255.0或用“/24”。子网掩码可以用来判断任意两台计算机的IP地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND((运算法则:1 与1 = 1 ,1 与0 = 0 ,0 与1 = 0 ,0 与0 = 0 ,即当对应位均为1时结果为1,其余为0)运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。如果不是,就需要网关(路由器)进行路由转发。
子网划分与可变长子网掩码(VLSM)
子网划分:子网划分是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的。通过IP子网划分,网络管理员可以在已经得到的整块IP地址空间中创建子网络,以满足分配给不同部门自行管理使用的需求。子网与网络地址相结合,不仅可以把位于不同物理位置的主机组合在一起,还可以通过分离关键设备或者优化数据传送等措施提高网络安全性能。子网划分的好处 :
1 减少网络流量
2 优化网络性能
3 简化管理
4 可以更灵活方便的形成大覆盖范围的网络
VLSM:称为变长子网掩码,是指在一个层次结构的网络中,可以使用多个不同的掩码,也即可以对一个经过子网划分的网络再次划分。变长子网掩码的引入,有效解决了地址分配的浪费问题。变长子网掩码(Variablelength subnet masks)它的出现打破了传统的以A,B,C,D,E为标准的IP地址划分的方法,这么做也是为了缓解IP地址不足。目的还是为了节约IP地址空间,减少路由表大小,只是采用的路由协议必须能够支持它如:RIPV2,OSPF,EIGRP和BGP。实现方法也很简单:就是通过主机数量来决定前缀位数
划分一个子网时一定要明确以下问题:
1 你所设置的新的子网掩码将产生多少个子网?应该是2的X次方,其中X表示掩码的二进制位数
2 每个子网能有多少主机?应该是2的x次方-2,其中x表示主机的二进制位数,-2是去掉即主机部分全部为0和为1的IP
3 有效子网间隔是什么?应该是=256-10进制的子网掩码
4 每个子网的广播地址,应该是下一个子网号-1
5 每个子网的有效主机分别是减去去除全0和全1剩下的就是有效主机地址。
6 最后有效1个主机地址=下一个子网号-2(即广播地址-1)
现有C类IP:192.168.20.0,请问如果分为2个子网,请问新的子网掩码是多少?表示的子网数是什么?每个子网的主数是多少?有效子网号是多?广播地址是什么?每个子网的主机范围是多少?
1 新的子网掩码:因为要划分2个子网,所以我们从原来的主机数中取出2位作为新的子网部分,那么就是10000000,转换为十进制就是128,所以新的子网掩码是255.255.255.128
2 子网数:因为你取出两位作为子网,所以新的子网数就是 2的1次方-=2个
3 主机数 因为原来的主机有八位数现在已经有一位是网络位了,所以还剩下7位作为主机数,那以主机数就是2的7次方-2=126.也就是说每个网段的主机数量。
4 有效子网间隔:等于256-子网的十进制数也就是256-128=126 这个数指的是第一个子网应该是192.168.20.0/25开始,第二个是192.168.20.128/25,我们没有划分子网之前这是一个IP地址,但现在不是了,现在是一个网络号
5 广播地址:下一个子网号-1,所以第一个子网的广播地址就是192.168.20.128-1=127,那么第二个子网的广播地址就是192.168.20.128+126+1=192.168.20.255
6 有效主机范围:也就是在一个子网内有效的IP地址的取值范围 如第一个子网的主机地址就是192.168.20.1到192.168.20.126第二个范围就是192.168.20.129到192.168.20.254
CIDR:称为无类域间路由。CIDR 对原来用于分配A类、B类和C类地址的有类别路由选择进程进行了重新构建。CIDR用 13-27位长的前缀取代了原来地址结构对地址网络部分的限制(3类地址的网络部分分别被限制为8位、16位和24位)。在管理员能分配的地址块中,主机数量范围是32-500,000,从而能更好地满足机构对地址的特殊需求CIDR 地址中包含标准的32位IP地址和有关网络前缀位数的信息。以CIDR地址222.80.18.18/25为例,其中“/25”表示其前面地址中的前25位代表网络部分,其余位代表主机部分。CIDR建立于“超级组网”的基础上,“超级组网”是“子网划分”的派生词,可看作子网划分的逆过程。子网划分时,从地址主机部分借位,将其合并进网络部分;而在超级组网中,则是将网络部分的某些位合并进主机部分。这种无类别超级组网技术通过将一组较小的无类别网络汇聚为一个较大的单一路由表项,减少了Internet路由域中路由表条目的数量。好处是:
1 缩小了路由表
2 网络流量,CPU和内存的开销更低
3 对网络进行编址时,灵活性更大
环回地址(127.x.x.x)
一般用来测试使用。环回地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。传给环回地址的(127.x.x.x)任何数据均作为IP输入,传给广播地址和多播地址的数据一般复制一份传给环回接口,然后送到以太网上,这是因为广播和多播包含本机.任何传给该主机IP地址的数据均送到环回口。
IPv6
IPv6是互联网协议的最新版本,用于数据包交换互联网络的网络层协议,旨在解决IPv4地址枯竭问题。在Internet上, 数据以分组的形式传输。IPv6定义了一种新的分组格式,目的是为了最小化路由器处理的报文首部。由于IPv4报文和IPv6 报文首部有很大不同,因此这两种协议无法互操作。但是在大多数情况下,IPv6仅仅是对IPv4的一种保守扩展。除了嵌入了互联网地址的那些应用协议(如FTP和NTPv3,新地址格式可能会与当前协议的语法冲突)以外,大多数传输层和应用层协议几乎不怎么需要修改就可以工作在IPv6上。IPv6无状态地址自动配置(SLAAC)当连接到IPv6网络上时,IPv6主机可以使用邻居发现协议对自身进行自动配置。当第一次连接到网络上时,主机发送一个链路本地路由器请求(solicitation)多播请求来获取配置参数。路由器使用包含Internet层配置参数的路由器声明(advertisement)报文进行回应[7]。在不适合使用IPv6无状态地址自动配置的场景下,网络可以使用有状态配置,如DHCPv6,或者使用静态方法手动配置。
IPv6采用了128位的地址,而IPv4使用的是32位。因此新增的地址空间支持2128(约3.4 ×1038)个地址,也可以说成1632个,因为32位地址每位可以取16个不同的值.IPv6地址由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)IPv6二进位制下为128位长度,以16位为一组,每组以冒号":"隔开,可以分为8组,每组以4位十六进制方式表示。例如:
2001:0db8:85a3:08d3:1319:8a2e:0370:7344
IPv6在某些条件下可以省略,
规则1:每项数字前导的0可以省略,省略后前导数字仍是0则继续,例如下组IPv6是相等的。
规则2:可以用双冒号"::"表示一组0或多组连续的0,但只能出现一次。
IPv4位址可以很容易的转化为IPv6格式。举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:0000:0000:0000:0000:ffff:874B:2B34或者::ffff:874B:2B34。同时,还可以使用混合符号(IPv4-compatible address),则地址可以为::ffff:135.75.43.52。
单播(unicast)地址标示一个网络接口。协议会把送往地址的数据包投送给其接口。IPv6的单播地址可以有一个代表特殊地址名字的范畴,如link-local地址和唯一区域地址(ULA,uniquelocal address)。单播地址包括可聚类的全球单播地址、链路本地地址等。
任播(anycast)地址 是 IPv6 特有的数据发送方式,它像是IPv4的Unicast(单点传播)与Broadcast(多点广播)的综合。IPv4 支持单点传播和多点广播,单点广播在来源和目的地间直接进行通信;多点广播存在于单一来源和多个目的地进行通信。而Anycast则在以上两者之间,它像多点广播(Broadcast)一样,会有一组接收节点的地址栏表,但指定为 Anycast 的数据包,只会发送给距离最近或发送成本最低(根据路由表来判断)的其中一个接收地址,当该接收地址收到数据包并进行回应,且加入后续的传输。该接收列表的其他节点,会知道某个节点地址已经回应了,它们就不再加入后续的传输作业。以目前的应用为例,Anycast 地址只能分配给路由器,不能分配给电脑使用,而且不能作为发送端的地址。
多播(multicast)地址也称组播地址。多播地址也被指定到一群不同的接口,送到多播地址的数据包会被发送到所有的地址。多播地址由皆为一的字节起始,亦即:它们的前置为FF00::/8。其第二个字节的最后四个比特用以标明"范畴"。一般有node-local(0x1)、link-local(0x2)、site-local(0x5)、organization-local(0x8)和global(0xE)。多播地址中的最低112位会组成多播组群识别码,不过因为传统方法是从MAC地址产生,故只有组群识别码中的最低32位有使用。定义过的组群识别码有用于所有节点的多播地址0x1和用于所有路由器的0x2。另一个多播组群的地址为"solicited-node多播地址",是由前置FF02::1:FF00:0/104和剩余的组群识别码(最低24位)所组成。这些地址允许经由邻居发现协议(NDP,Neighbor Discovery Protocol)来解译链接层地址,因而不用干扰到在区网内的所有节点。
IPv6中有些地址是有特殊含义的:
-
未指定地址 ::/128 - 所有比特皆为零的地址称作未指定地址。这个地址不可指定给某个网络接口,并且只有在主机尚未知道其来源 IP 时,才会用于软件中。路由器不可转送包含未指定地址的数据包。
-
链路本地地址 ::1/128 - 是一种单播绕回地址。如果一个应用程序将数据包送到此地址, IPv6 堆栈会转送这些数据包绕回到同样的虚拟接口(相当于 IPv4 中的 127.0.0.0/8 )。
-
fe80::/10 - 这些链路本地地址指明,这些地址只在区域连接中是合法的,这有点类似于 IPv4 中的 169.254.0.0/16 。
-
唯一区域位域 fc00::/7 -唯一区域地址( ULA , unique local address )只可在一群网站中绕送。这定义在 RFC 4193 中,是用来取代站点本地位域。这地址包含一个 40 比特的伪随机数,以减少当网站合并或数据包误传到网络时碰撞的风险。这些地址除了只能用于区域外,还具备全域性的范畴,这点违反了唯一区域位域所取代的站点本地地址的定义。
-
多播地址 ff00::/8 -这个前置表明定义在 "IP Version 6 Addressing Architecture" ( RFC 4291 )中的多播地址 [10] 。其中,有些地址已用于指定特殊协议,如 ff0X::101 对应所有区域的 NTP 服务器( RFC 2375 )。
-
请求节点多播地址 (Solicited-node multicast address)ff02::1:FFXX:XXXX - XX:XXXX 为相对应的单播或任播地址中的三个最低的字节。
-
2001::/32 - 用于 Teredo tunneling 。
-
2002::/16 - 用于 6to4 。
-
ORCHID2001:10::/28 - ORCHID (Overlay Routable Cryptographic Hash Identifiers) (RFC 4843) 。这些是不可绕送的 IPv6 地址,用于加密散列识别。
-
文件 2001:db8::/32 - 这前置用于文件( RFC 3849 )。这些地址应用于 IPV6 地址的示例中,或描述网络架构。
IPv6数据包由两个主要部分组成:头部和负载。
Version 和ipv4包头中的一样,4个bit区域表示ip的版本。 当然,在这里使用二进制0110表示版本6。
Traffic Class是一个8位bit的区域,同ipv4中的tos区域一样。 但是在这些年中随着TOS区域的进化,这个区域也可以用来被Differentiated Class of Service (DiffServ)使用。 但是尽管这里这样的标识仍然符合老的Tos的格式,只不过Traffic Class这个名字更符合当前的应用。
Flow Label流量标签是在ipv6中独有的区域。 这个20个bit的区域设计的目的在于可以给一些特殊的数据做标记。也就是说尽管数据包并非是从原来的源发到目的,但是仍然包含原有的源和目的的应用。 区分数据流有很多好处,可以确保不同类别服务的处理方式得以区分,在数据流经多个路径的负载均衡时,在同一个数据流的数据包将使用经由同一个路径转发,从而避免了数据包可能继续查找路径的现象。 典型的flow(更加精确一点的说法是微流)就是在源地址和目的地址上加一个团体的源地址和目的地址。
负载长度PayloadLength 定义了负载的长度,数据包封装的字节数。 等同与单元一“TCP/IP 回顾”,在ipv4包头中的头长度,因为这是一个可选和填充字段,所以大小是可变的。 但是,查找ipv4中的负载长度字段,这个值必须从总长度中减少。(也就是ipv4中计算的是除去负载长度字段后的大小)。 在ipv6头长度中,从另一方面说,这个长度固定为40byte,这个长度足以从负载的开始查找到结尾。注意ipv4的头长度字段是16bit,但是ipv6的负载长度字段是20bit。 这里隐含的意思在于因为ipv6具有一个很长的负载(有1,048,575 字节, 相对与 Ipv4是65,535)在这个区域定义,ipv6数据包本身理论上就会携带一个很大的负载。MTU至少1280字节长. 分段(Fragmentation)只在IPv6的主机中被处理
Next Header下一个包头,定义的是ipv6数据包的包头之后是哪一个头。 这个区域非常类似与ipv4包头中的协议字段,实际上使用的目的就是标识在下一头是一个上层协议的头(就是标识上层协议)。 同ipv4这个区域类似,这个区域也是8个bit。 但是在ipv6中,在紧随在数据包头的不一定是上层协议的头(ipv4里面的数据包头后面跟的就是上层协议的头),有可能是扩展包头。
Hop limit跳数限制,在长度(8bit)和功能上都和ipv4的Time to Live(TTL)生存时间区域类似。 定义TTL的起初意图在与路由器转发排队的数据包的时候减少他们的时间(防止环路),但是这个功能始终没有实现。 取而代之的是路由器将TTL值减一不考虑排队的数据包的长度(在现代网络中,很少见一个任何一个数据包会排队等待大于一秒。) 所以,TTL现在经常表示的是数据包从他的路径到达目的网络的最大路由器跳数。 如果TTL值减少到0,数据包被丢弃。
源和目的地址等同与ipv4的源地址和目的地址区域,但是注意这两个区域都是128bit长,为了符合ipv6的地址长度。
注意ipv6包头中取消了原来ipv4包头中的校验和区域。 现在的网络传输介质都增加了传输的可靠性(无线可能是一个特例),并且事实上上层协议常常使用自己的错误检测和修复机制,Ipv6包头中加入校验意义不打,所以就被将它剔除了。在IPv6中,可选项都被从标准头部中移出并在协议字段中指定,类似于IPv4的协议字段功能