网络基础知识

"IP地址,子网掩码,网关,DNS"

Posted by wangtiegang on June 9, 2019

最近要接手nginx代理服务器的运维工作,考虑到稳定性,网管在两台服务器上安装了两台代理服务器,使用frr基于BGP协议配置了等价路由,当其中一台nginx故障时,路由会自动切换,将所有请求转向备用服务器,从而达到服务不中断。网管这一套还挺高级的样子,需要一定的网络基础才能弄清其中的来龙去脉,但是我连子网掩码是什么都忘了,一脸懵逼,只能从头开始了解。

IP地址

IP是指互联网协议(Internet Protocol),IP地址是IP协议提供的一种统一地址格式,计算机要连接到网络跟其他设备通信,就必须有一个IP地址。现在常用的IP地址分IPv4和IPv6,IPv4是一个32位的二进制数,通常划分为4个8位二进制(10101100.00010000.10000101.10001001),转换成“点分十进制”表示,就成了172.16.133.137样子。IPv6是128位二进制数,采用“冒分十六进制”表示,总共8组4个十六进制数字,原理类比IPv4。

子网掩码

子网掩码(netmask)与IP地址是组合使用的,子网掩码将一个IP地址划分为网络地址和主机地址两个部分。网络地址相同的主机处于同一网段,可以直接通信,不同网段的主机需要通过网关进行通信。

子网掩码也是32位的二进制数,由连续的1和0组成,例如:11111111.11111111.11111111 .11111100,前面所有的1代表网络地址,后面所有的0代表主机地址。转成十进制就是:255.255.255.252 。

假设IP 172.16.133.137 的子网掩码是 255.255.255.252 (转成二进制左边总共30个1,所以该网络也可以表示为172.16.133.137/30),右边总共两个0,则该子网的容量为4(2的平方),172.16.133.0 - 172.16.133.255总共可划分为64个子网,每个子网4个IP,从0开始划分,172.16.133.137属于172.16.133.136-139网段,每个网段的第一个地址是网络号,最后一个地址是广播,这两个地址特殊不能使用,所以实际该网段可分配的ip地址只有两个137,138.

子网掩码就是用来计算子网的,知道IP和子网掩码就能计算出同网段的IP,在架设网络时,也能根据需要,使用0-32的子网掩码将网络划分为不同大小的子网,例如将不同部门的服务器划分到不同的网段,根据部门需要的IP数去计算子网掩码

网关

网关(Gateway)又称网间连接器、协议转换器。我理解就是两个网络之间进行通信的桥梁,比如子网掩码划分的两个网段之间不能直接通信,即使两个网段在接入同一个交换机,TCP/IP协议也会根据子网掩码判断两个子网中的计算机不在同一个网络。要实现通信,必须经过网关。

网关实际上是一个IP地址,是具有路由功能的设备的IP地址,比如路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。A网络中到服务器要访问B网络服务器,需要先发送到A网络的A网关,A网关发送到B网关,B网关再发送到B网络的服务器。

DNS

域名系统(Domain Name System)是DNS服务器提供的一项服务。计算机之间要通信,需要知道对方的IP地址,但是IP地址难于记忆,有些场景下很不方便,于是就有了DNS,将方便记忆的域名跟IP对应起来。比如访问我的博客的时候,没人会在浏览器中输入IP地址,而是直接在浏览器中输入wangtiegang.github.io,浏览器会去DNS服务器查询这个地址对应的IP是185.199.110.153,于是就去访问这个IP地址了。

使用DNS还有其他优点,一个域名可以对应一台服务器或一组服务器,对用户来说,域名是不变的,但是后面提供服务器的IP是可以调整的,这样在服务器IP发生变化的时候,不需要对域名进行调整。