Docker网络 (一)

简介: Docker网络 (一)

一、什么是ip地址#


通常我们看到的ip地址会长这样(由点分割的十进制数):192.168.1.1

其实ip地址是一个32位的二进制数,被分割成4部分,每部分8位。也就是说他们其实长成这样


00000000.00000000.00000000.00000000


每一部分都是8位的二进制数,那他能表示的范围其实就是0~255,并且在一个子网中,第一个0为保留位,最后一个255为广播位,这两位不会划分出去。(比如在局域网中找不到一个完全匹配的ip时,可能就会广播数据报文,广播的地址就会使用255)

所以说,一般情况下,局域网中可以使用的ip为1~254


0.0.0.0 回环地址

255.255.255.255 广播地址


二、划分子网#


2.1、为什么要划分子网#


划分子网是为了更好的利用ip地址资源,因为ip地址就是上面提到的4个byte字节组成的,一共就有2的32方个,随着互联网的发展,ip地址已经不够用了

现在的解决方案有两种,一种是将ipv4升级成ipv6,第二种就是现在说的划分子网,通过合理划分子网来缓解ip地址枯竭的问题。


2.2、子网分类#


子网分类说的是人为的将子网分成A、B、C、D类,每个分类都有两部分组成:网络号+主机号


无论怎么划分,网络号和主机号一共32位是不会变的


A类:8位网络号  24位主机号
B类:16位网络号 16位主机号
C类:24位网络号 8位主机号


2.3、子网划分#


子网划分的应用场景:

上面C类子网支持254台主机,B类子网支持6万多台主机。

那假设现在有一个公司,他们公司有几千名员工,如果为他们申请ip的话请问是该申请C类地址还是B类地址呢?


很显然,C类肯定不够用,B类又会浪费掉好几万个ip资源~

这时就得进行子网划分,拿这个例子来说就是我们给该公司申请一个B类地址,然后将B类地址中的部分主机位当作网络ID,这样的话,主机位数就变少了,最新的网络号 = 网络号+从主机位划分出来的网络ID,原来的二级Ip 地址被划分成三级Ip地址,收益就是:实现节省ip地址。


实战子网划分

假设我们对192.168.1.0这个网络号进行子网划分。


然后我们从主机号借用两位当作网络号


# 如果不进行子网分,它是一个C类网络地址,可以承载254台机器
192.168.1.00000000
# 借两位主机位当作网络id来 划分子网,可以得到下面四个子网
192.168.1.00 000000
192.168.1.01 000000
192.168.1.10 000000
192.168.1.11 000000


网络号相同的ip视为在一个局域网中,这样就将原来的一个C类地址划分成四个网络地址,也就能给四个公司使用,而且每个网络中都能分配2的6次方个左右的ip地址。


一个设备有多个ip是正常的,甚至当有它有多个物理网卡,就能有多个公网ip,相应的每个设备也有私网ip,也就是他所在的局域网中的ip(一般是通过DHCP获取的)

想接入互联网就的有公网ip,全球有42亿的ipv4的公网ip,我们的硬件设备默认有一个自己的本地ip,比如192.168..., 当设备连通局域网后,设备的本地ip其实是这个公网ip下的局域网的ip地址之一,这样可以尽最大可能的利用有限的ip网络地址资源(而不用为每一台设备都分配一个独有的公网ip)


2.4、子网掩码#


在上一个例子中我们将这个网络号192.168.1.0,通过子网划分,分成了四个网络,如下


192.168.1.00 000000
192.168.1.01 000000
192.168.1.10 000000
192.168.1.11 000000


问题是怎么让机器区分开这是四个网络地址,而不是一个C类地址呢?


这就引出了子网掩码的概念: 子网掩码和ip地址同为32位,子网掩码为1的区域对应着ip地址的网络号部分,子网掩码为0的区域对应着ip地址的主机号部分。


就这个例子来说,它的子网掩码如下


# 192.168.1.0  ==转二进制==>   11000000.10101000.00000001.00000000
# 本来他是C类网络地址:它的网络号为前24位,后8位为主机号
# 然后我们划分子网,从主机位给网络位借两位,也就是前26位是网络号,后6位是主机号
# 对应的子网掩码位:前26位为1,后6位为0。即11111111.11111111.11111111.11000000
# 11111111.11111111.11111111.11000000 =转十进制=>255.255.255.192


如果通过ip和子网掩码得出网络ID呢?


# 两者的二进制表示做与运算
# 相同为1,不同为0


网络ID相同,说明这两个ip在同一个局域子网中


2.5、无分类-构成超网#


这里说的无分类-构成超网本质上也是一种ip地址的编址方式,并且它消除了传统的ABCD这种划分子网的概念。


它的编制方式为:网络号/主机号

通常使用这种方式编址的ip长这个样子:192.68.1.1/20

在ipv4中,ip地址的总长度为32位这是不会变的,这里的20表示的是在这总长为32位的地址中,前20为网络号,剩下的12位是主机号


三、网络模式#


常见的网络模式有:桥接模式、NAT模式、仅主机模式。比如在vmware中设置虚拟机的网络模式时,可以看到



3.1、桥接#


桥接模式的本质是:使用一个虚拟的交换机,将虚拟机和物理机网卡打通。他们同属于一个网段



在这种模式下:有如下特性:

  • 虚拟机和物理机同属一个网段
  • 虚拟机之间可以相同Ping通
  • 虚拟机和物理机之间可以相互ping通
  • 只要主机能上网,虚拟机就能上网


3.2、NAT#


NAT是一种网络地址转换技术,实现了局域网内的使用自己的本地IP即可联通互联网(NAT会将本地Ip,转换成全球IP)

常见的你家里的wifi,家里按了网线之后会有一个公网ip,但是家里的任何智能设备通过路由器连接上wifi后都能同时上网,因为路由器会分配给设备一个局域网ip,设备使用这个局域网ip上网,其中的转换技术就是NAT技术



有如下特性:

  • 主机能上网,虚拟机就能上网
  • 虚拟机直接可以互通


3.3、Host#


Host,仅主机,即它是存在于主机内部的一个虚拟网络。



这仅主机模式下,有一块虚拟网卡,这块网卡的网段和主机上物理网卡的网段是不相同的。


所有的虚拟机在虚拟网卡的网段下,所以他们彼此直接互通。


默认情况下,虚拟机可以访问到物理机,但是默认情况下虚拟机不能上网的。(也可以通过修改配置让他们上互联网)


3.4、内部网络#


在内部网络下,虚拟机和外部完全隔断,只允许虚拟机之间才能相互访问

相关文章
|
1月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
188 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
1月前
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
52 6
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
187 7
|
2月前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
58 5
|
3月前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
66 5
|
3月前
|
调度 Docker 容器
docker swarm创建覆盖网络
【10月更文挑战第16天】
63 5
|
3月前
|
负载均衡 网络协议 关系型数据库
docker swarm 使用网络启动服务
【10月更文挑战第15天】
49 4
|
2月前
|
Docker 容器
【赵渝强老师】Docker的None网络模式
Docker容器在网络方面实现了逻辑隔离,提供了四种网络模式:bridge、container、host和none。其中,none模式下容器具有独立的网络命名空间,但不包含任何网络配置,仅能通过Local Loopback网卡(localhost或127.0.0.1)进行通信。适用于不希望容器接收任何网络流量或运行无需网络连接的特殊服务。
|
2月前
|
Docker 容器
【赵渝强老师】Docker的Host网络模式
Docker容器在网络环境中是隔离的,可通过配置不同网络模式(如bridge、container、host和none)实现容器间或与宿主机的网络通信。其中,host模式使容器与宿主机共享同一网络命名空间,提高性能但牺牲了网络隔离性。
|
2月前
|
Kubernetes Docker 容器
【赵渝强老师】Docker的Container网络模式
Docker容器在网络环境中彼此隔离,但可通过配置不同网络模式实现容器间通信。其中,container模式使容器共享同一网络命名空间,通过localhost或127.0.0.1互相访问,提高传输效率。本文介绍了container模式的特点及具体示例。

热门文章

最新文章