IP相关知识总结

时间:2022-12-18 20:52:49

主要参考*。
因个人水平所限,以下内容如有错误,欢迎评论指正^v^

IP简介

IP地址,又译为互联网协议地址,全称Internet Protocol Address。是网络协议中的一串数字,用于标识设备或网络寻址。

ICANN (Internet Corporation for Assigned Names and Numbers, 互联网名字与数字地址分配机构) 是一家美国非营利组织,下属的IANA (Internet Assigned Numbers Authority) ,主管IP地址分配。

IP的格式

常见的IP地址分为IPv4与IPv6两大类,IP地址由一串数字组成。
IPv4为32位长,通常书写时以四组十进制数字组成,并以点分隔,如:172.16.254.1
IPv6为128位长,通常书写时以8组每组最多4个16进制数字组成,以冒号分割,如:2001:db8:0:1234:0:567:8:1

IP的分类

IPv4地址分类(旧方式)

A类IPv4地址 B类IPv4地址 C类IPv4地址 D类IPv4地址 E类IPv4地址
标志位 0 10 110 1110 11110
IP范围 0.0.0.0~127.255.255.255 128.0.0.0~191.255.255.255 192.0.0.0~223.255.255.255 224.0.0.0~239.255.255.255 240.0.0.0~247.255.255.255
可用IP 1.0.0.1~127.255.255.254 128.0.0.1~191.255.255.254 192.0.0.1~223.255.255.254
可分配?
网络号位数 7 14 21
网数 27-2 214 221
每网主机 224-2 216-2 28-2

D类用于多播,E类保留。

特殊IP地址

网络号 主机号 是否可以作为源地址 是否可以作为目的地址 备注/描述
全为0 全为0 允许 禁止 表示本网主机
全为0 Host ID 允许 禁止 表示特定主机
全为1 全为1 禁止 允许 受限广播地址
127 任意合法的值 允许 允许 迂回地址,用于本地测试
Network ID 全为1 禁止 允许 直接广播地址

子网掩码形式上是网络号(二进制)所有位全为1,主机号(二进制)所有位全为0的IP地址。用于与IP地址按位与得到网络地址。
默认网关是网络号(二进制)所有位全为1,主机号为1。网关是充当另一个网络的访问点的网络节点,通常不仅涉及地址的更改,而且还涉及不同的网络技术。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。
受限广播,也叫有限广播、本地广播,它不被路由发送,但会被送到相同物理网络段上的所有主机。直接广播会被路由,并会发送到专门网络上的每台主机。

比如对于IPv4地址103.152.34.238,二进制为0110 0111 . 1001 1000 . 0010 0010 . 1110 1110
若按以上分类方式,标志位(从高位开始的二进制位)是0,这是一个A类IPv4地址。
子网掩码是255.0.0.0,网络地址是103.0.0.0,网络号是103,主机号是152.34.238,默认网关是103.0.0.1,直接广播地址是103.255.255.255,受限广播地址是255.255.255.255

比如一个服务绑定到0.0.0.0,意味着外部机器访问该机器上所有 IP 都可以访问该服务。如果服务绑定到的是特定的 ip,则只有访问该 ip 才能访问到服务。路由器0.0.0.0表示没有匹配时的默认路由(待确认)。

127.0.0.1表示回环地址,用于测试时在本地运行并从本地访问服务。

localhost往往在hosts中有以下定义(ubuntu系统有特殊问题,待补充),指向IPv4的127.0.0.1和IPv6的::1

127.0.0.1    localhost
::1          localhost

公网IP、局域网IP

可以通过公网IP直接接受来自国际互联网的请求,局域网IP不能。

RFC 1918 为私人地址空间分配以下IP地址段:10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

延缓IPv4耗尽的策略

随着互联网的发展,网络位置(IPv4)渐渐被消耗殆尽,虽然当前的网络地址转换无类别域间路由等技术可延缓网络位置(IPv4)匮乏之现象,但为求解决根本问题。

网络地址转换NAT

网络地址转换(英语:Network Address Translation,缩写:NAT)在计算机网络中是一种在IP数据包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问互联网的私有网络中。

基本网络地址转换(Basic NAT)

地址中只转换IP,不转换端口。

网络地址端口转换(NAPT)

地址的IP和端口都转换。

  • 圆锥型NAT:一旦内部地址(iAddr:iPort)映射到外部地址(eAddr:ePort),所有发自 iAddr:iPort 的数据包都经由 eAddr:ePort 向外发送。
    • 完全圆锥型NAT(Full cone NAT):任意外部主机都能经由发送数据包给 eAddr:ePort 到达 iAddr:iPort。
    • 受限圆锥型NAT((Address-)Restricted cone NAT):唯 iAddr:iPort 曾经发送数据包到外部主机(nAddr:any),外部主机才能经由发送数据包给 eAddr:ePort 到达 iAddr:iPort。(注:any 指外部主机源端口不受限制。)
    • 端口受限圆锥型NAT(Port-Restricted cone NAT):在受限圆锥型NAT基础上增加了外部主机源端口必须是固定的。
  • 对称NAT(Symmetric NAT):每一个来自相同内部 IP 与端口,到一个特定目的地 IP 和端口的请求,都映射到一个独特的外部 IP 和端口。同一内部 IP 与端口发到不同的目的地和端口的信息包,都使用不同的映射只有曾经收到过内部主机数据的外部主机,才能够把数据包发回。

无类别域间路由CIDR

无类别域间路由(英语:Classless Inter-Domain Routing,简称CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。
因为C类地址允许的主机数太少,B类地址有太多,导致不能充分使用IP地址和在路由上的不便。
无类别域间路由是基于可变长子网掩码(VLSM)来进行任意长度的前缀的分配的。

比如对于IPv4地址103.152.34.238,二进制为0110 0111 . 1001 1000 . 0010 0010 . 1110 1110
若是一个/8,则子网掩码是255.0.0.0,网络地址是103.0.0.0,网络号是103,主机号是152.34.238,默认网关是103.0.0.1,直接广播地址是103.255.255.255,受限广播地址是255.255.255.255

若是一个/11,则:
子网掩码是1111 1111 . 1110 0000 . 0000 000 . 0000 0000也就是255.224.0.0
网络地址是0110 0111 . 1000 0000 . 0000 000 . 0000 0000也就是103.128.0.0
网络号是0110 0111 100,主机号是1 1000 0010 0010 1110 1110,默认网关是103.128.0.1
直接广播地址是0110 0111 . 1001 1111 . 1111 1111 . 1111 1111也就是103.159.255.255
受限广播地址是255.255.255.255

IP的设置

静态IP地址

通过主机硬件或软件的配置,将固定IP地址持续分配给主机。

动态IP地址和DHCP

DHCP (Dynamic Host Configuration Protocol) 动态主机配置协议,又称动态主机组态协定,是一个用于IP网络的网络协议,位于OSI模型的应用层,使用UDP协议工作,主要有两个用途:

  1. 用于内部网或网络服务供应商自动分配IP地址给用户
  2. 用于内部网管理员对所有电脑作*管理

根据实现情况,DHCP服务器可能具有三种分配IP地址的方法:

  1. 动态分配:网络管理员为DHCP保留一系列IP地址,并且局域网中每个DHCP客户端,配置为在网络初始化期间从DHCP服务器请求IP地址。请求和授予过程使用具有可控时间段的租赁概念,允许DHCP服务器重新声明,然后重新分配未更新的IP地址。
  2. 自动分配:DHCP服务器从管理员定义的范围内将IP地址永久分配给请求客户端。这就像动态分配,但是DHCP服务器保留过去IP地址分配的表,这样它就可以优先为客户端分配与客户端以前相同的IP地址。
  3. 手动分配:此方法也各不相同(静态DHCP分配,固定地址分配,保留和 MAC / IP地址绑定)。管理员映射每个客户端的唯一标识符(客户端编号或MAC地址)到IP地址,该IP地址提供给请求的客户端。如果失败,可以将DHCP服务器配置为退回到其他方法。