网络攻防——ip地址

这边先预设几个问题

  • 一个组织分配ip地址的过程(涉及到ISP等概念)
  • a,b,c,d,e类的ip地址
  • 如何知道一个主机的子网掩码,它第一跳的路由地址,dns服务器的地址
  • DHCP动态分配地址
  • 什么是网络地址转换(NAT)
  • ipv4和ipv6的区别

基本概念

ip地址目前有ipv4和ipv6两种,这里以ipv4举例。ip地址在整个网络中相当于地址的存在,只有知晓了地址,才能知道向哪里送信,信件又使从哪里发出来的。ipv4地址编码长度为32,即32个比特位,即4个字节,每个比特位只有1或者0,所以ipv4总共有2^32个可能的ip地址。(但是很遗憾,尽管看起来很多,ipv4方式的编码ip已经消耗殆尽,所以ipv6孕育而生)

读者可以使用ipconfig(linux系统使ifconfig)来查看自己的ip地址。读者会发现,显示的ip信息并不是以二进制形式显示,而是十进制。那是为了方便人们阅读,一般使用点分十进制记法书写,然而计算机在交流时仍然只认识二进制记法。

1
2
3
4
如:
193.32.216.9 的二进制记法是:
11000001 00100000 11011000 00001001
可以看出以8个比特,即一个字节作为一个分隔

在全球因特网中的每台主机和路由器上的每个接口,必须有一个全球唯一的ip地址(在NAT后面的接口除外,NAT即网络地址转换,之后会提及这个概念)。然而,这些地址不能随意地自由选择,一个接口ip地址的一部分需要由其连接的子网来决定。

标准类别的ip地址

ip地址由网络地址和主机地址组成。根据网络地址的比特位数,将ip地址分为A,B或C类网络,网络地址的比特位数分别被限制为8,16或24位,这是一种被称为分类编址的编址方案。

在计算机网络中,读者可能看到形如:233.1.1.0/24的ip地址记法,这是子网地址的写法,其中/24记法有时称为子网掩码,表示32位比特中的最左侧24比特定义了子网地址,即该子网中所有主机分配到的ip地址的前24位都是相同的,即网络地址相同。比如:

1
2
一个子网的ip地址为:233.1.1.0/24
那么这个子网下的主机的ip地址可能是:233.1.1.1,233.1.1.4 233.1.1.128 ...

在分配子网的时候,不一定使用标准的网络地址。比如一个组织,分类到了一个C类(/24)子网,其仅能容下2^8 - 2 = 254台主机(2^8 = 256,其中的两个地址预留用于特殊的用途),这对于许多组织来说太小了。然而一个B类(/16)子网可支持多达65534台主机,又太大了。

组织内主机分配ip地址的过程

为了获取一块ip地址用于一个组织的子网,网络管理员也许首先会与他的ISP参考百度百科联系,该ISP可能会从已分配给它的更大的地址块中提供一些地址。这里假设ISP自己已被分配了地址块200.23.16.0/20:

1
2
3
4
ISP的地址块    200.23.16.0/20    (11001000 00010111 0001)0000 00000000
组织0 200.23.16.0/23 (11001000 00010111 000100)0 00000000
组织1 200.23.18.0/23 (11001000 00010111 0001001)0 00000000
...

加入组织0已经得到了子网地址:200.23.16.0/23,这就表示该组织下的所有主机ip地址都是以11001000 00010111 000100开头的。系统管理员一般手动配置路由器ip地址,主机地址也能手动配置,但是想象一下:如果一个组织下有数以万计的主机,那么系统管理员已哭晕在厕所。所以这里引出另一个概念DHCP(动态主机配置协议,又称即插即用协议),主机可以自动获取一个临时的ip地址。这也解释了为什么在公司中,主机重启之后主机的ip地址会改变,因为是临时随机分配的。

DHCP

笔者认为这个概念可以重新开一个章节,读者可以跳转参考计算机网络——DHCP

NAT

读者可以跳转参考计算机网络——NAT

如何生动形象解释

这里主要解释了ip地址,子网掩码,网关等概念。

读者可以参考这篇知乎文章

显示 Gitment 评论