标签 IPv4 下的文章

计划释放数以亿计的 IPv4 地址

上世纪 80 年代做出的将几个 IPv4 地址范围作为特殊保留的决定,导致了大量的地址资源被浪费。在亚太地区互联网运营技术会议上,Let's Encrypt 的联合创始人 Seth 提议,如果将 240/4、0/8、127/8、225/8-232/8 等范围作为普通的单播号码资源供网络使用,将增加约 4.19 亿个 IPv4 地址。

消息来源:itnews
老王点评:虽然很多地方都在往 IPv6 迁移了,但是谁会嫌 IPv4 地址多呢?另外,我觉得当年美国那些大学、机构动辄几个 A、B 类地址,是不是也该回收一下?

Safari 浏览器成为唯二用户数突破 10 亿的浏览器之一

根据一份新的报告,Safari 的市场份额为 19%,用户数首次超过 10 亿,成为第二个用户数超过 10 亿的浏览器。第一当然是 Chrome,它的用户数远多于其它浏览器,达到了 33 亿之多。而第三名则是 Edge 浏览器,用户数 2 亿。Firefox 则没有机会名列三甲。

顺便说一句,Chrome 和 Edge 都刚刚推出了 102 版,在一周后 Firefox 推出了 101 版。版本号都跑的挺快。

消息来源:arstechnica
老王点评:虽然 Safari 也备受批评,但作为唯一一个没有在世界上最流行的移动操作系统安卓上使用、也没有在最流行的桌面操作系统 Windows 上使用的主要浏览器,这还是非常令人印象深刻的。

微软 Office 软件被发现一个已在野利用的零日漏洞

这个已经流传了一段时间的漏洞被称为 “Follina”,它使用 Office 来检索一个 HTML 文件,而该文件反过来利用微软支持诊断工具(MSDT)来运行一些代码。更糟糕的是,即使在禁用宏的情况下,它也能工作。虽然最初的攻击只在打开恶意文件的用户账户级别上运行代码,但这种访问为更多提升权限的攻击打开了大门。

消息来源:theregister
老王点评:即使打开一个本身没有什么恶意代码的 Word 文档都有可能被利用,因为恶意代码在远程的一个页面上。所以,只要是打开来路不明的 Word 文档就处于风险之中了。

神秘实体 BGP 宣告了大量五角大楼未用 IPv4 空间

互联网是源自于美国国防部的项目,五角大楼因而控制了大量的 IPv4 地址段。至今五角大楼只使用了很少一部分它控制的地址空间,以至于众多云服务商在其内部网络使用了未用的美国国防部 IPv4 地址段。但在 1 月 20 日,一个神秘实体 AS8003 开始发布 BGP 广播宣告原五角大楼的未用 IPv4 地址段。到 4 月 20 日,它宣布的 IP 地址数量已经达到了 1.75 亿,超过中国电信的 6100 万,超过美国最大 ISP Comcast 的 1 亿。它宣告的 IPv4 空间占到了 IPv4 全球路由表的 5.7%。AS8003 究竟是谁?本周五,美国国防部的发表声明这是它授权进行的一个试点项目,旨在评估和防止未经授权使用国防部的 IP 地址空间,以及发现潜在的漏洞。

虽然心里很不平衡,但是毕竟互联网原来就是人家发明的,还好这些年我们都往 IPv6 转了。

Passwordstate 密码管理器遭黑客入侵

报道,黑客攻破了 Passwordstate 密码管理器应用程序的更新机制,并在其用户设备(大多数为企业客户)上部署了恶意软件,可能影响到了 2.9 万名企业客户。丹麦安全公司 CSIS 今日发布了针对该供应链恶意软件攻击的分析,指出攻击者迫使 Passwordstate 应用程序下载了另一个恶意的压缩包。在受害者机器上安装后,将会尝试 ping 通远程的命令与控制服务器,而后服务器端会给出特定的响应,比如检索其它有效负载。

使用密码管理器是好,但是密码管理器就成为了关键点,如果密码管理器软件被攻击,那带来的打击可能是毁灭性的。

微软发布 Rust for Windows 预览版

有了 Rust for Windows,开发人员现在不仅可以在 Windows 上使用 Rust 进行开发,还可以使用 Rust 为 Windows 编写应用程序。Rust for Windows 可以“让你通过 Windows crate 直接和无缝地使用任何 Windows API,你可以像调用另一个 Rust 模块一样调用它们。”

微软寄希望于 Rust 能解决其使用 C++ 带来的大量内存漏洞,可能事情没那么简单。

如果你花过很多时间在互联网上,那么你应该已经听说过计算机每天使用的 IPv4 和 IPv6 协议。

你可能会问的一个问题是:为什么没有 IPv5?为什么 IPv6 在 IPv4 之后而不是 IPv5 之后出现?是否有 IPv5,如果是,那么 IPv5 发生了什么?

答案是肯定的,曾经有一个 IPv5。让我解释一下这里发生的事。

互联网的早期历史

ARPA Logical Map in 1977 | Image courtesy: Wikipedia

在 1960 年代后期,美国国防部的高级研究计划局(DARPA)发起了一个项目来连接全国的计算机。最初的目标是创建一个由全国 ARPA 资助的所有计算机组成的网络系统。

由于这是第一次将如此规模的网络整合在一起,因此他们也在不断发展自己的技术和硬件。他们首先做的工作之一就是开发名为 传输控制协议 Transmission Control Protocol (TCP)的 互联网协议 Internet Protocol (IP)。该协议“可靠、有序,并会对运行于通过 IP 网络传输的主机上的应用的八进制(字节)流通讯进行错误检测”。简单来说,它可以确保数据安全到达。

最初,TCP 被设计为“主机级别的端到端协议以及封装和路由协议”。但是,他们意识到他们需要拆分协议以使其更易于管理。于是决定由 IP 协议处理封装和路由。

那时,TCP 已经经历了三个版本,因此新协议被称为 IPv4。

IPv5 的诞生

IPv5 开始时有个不同的名字: 互联网流协议 Internet Stream Protocol (ST)。它是由 Apple、NeXT 和 Sun Microsystems 为试验流式语音和视频而创建的。

该新协议能够“在保持通信的同时,以特定频率传输数据包”。

那么 IPv5 发生了什么?

IPv5 从未被接受为正式的互联网协议。这主要是由于 32 位限制。

IPV5 使用与 IPv4 相同的寻址系统。每个地址由 0 到 255 之间的四组数字组成。这将可能的地址数量限制为 43 亿个。

在 1970 年代初,这似乎比全世界所需要的还要多。但是,互联网的爆炸性增长证明了这一想法是错误的。2011 年,世界上的IPv4地址正式用完了。

在 1990 年代,一个新项目开始致力于研究下一代互联网协议(IPng)。这形成了 128 位的 IPv6。IPv6 地址包含 “8 组 4 字符的十六进制数字”,它可以包含从 0 到 9 的数字和从 A 到 F 的字母。与 IPv4 不同,IPv6 拥有数万亿个可能的地址,因此我们应该能安全一阵子。

同时,IPv5 奠定了 VoIP 的基础,而该技术已被我们用于当今世界范围内的通信。因此,我想在某种程度上,你可以说 IPv5 仍然可以保留到了今天

希望你喜欢有关互联网历史的轶事。你可以阅读其他关于 Linux 和技术的琐事文章

如果你觉得这篇文章有趣,请花一点时间在社交媒体、Hacker News 或 Reddit 上分享它。


via: https://itsfoss.com/what-happened-to-ipv5/

作者:John Paul 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

APT, 是 Advanced Package Tool 的缩写,是基于 Debian 的系统的默认包管理器。我们可以使用 APT 安装、更新、升级和删除应用程序。最近,我一直遇到一个奇怪的错误。每当我尝试更新我的 Ubuntu 16.04 时,我都会收到此错误 - “0% [Connecting to in.archive.ubuntu.com (2001:67c:1560:8001::14)]” ,同时更新流程会卡住很长时间。我的网络连接没问题,我可以 ping 通所有网站,包括 Ubuntu 官方网站。在搜索了一番谷歌后,我意识到 Ubuntu 镜像站点有时无法通过 IPv6 访问。在我强制将 APT 包管理器在更新系统时使用 IPv4 代替 IPv6 访问 Ubuntu 镜像站点后,此问题得以解决。如果你遇到过此错误,可以按照以下说明解决。

强制 APT 包管理器在 Ubuntu 16.04 中使用 IPv4

要在更新和升级 Ubuntu 16.04 LTS 系统时强制 APT 使用 IPv4 代替 IPv6,只需使用以下命令:

$ sudo apt-get -o Acquire::ForceIPv4=true update
$ sudo apt-get -o Acquire::ForceIPv4=true upgrade

瞧!这次更新很快就完成了。

你还可以使用以下命令在 /etc/apt/apt.conf.d/99force-ipv4 中添加以下行,以便将来对所有 apt-get 事务保持持久性:

$ echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

免责声明:

我不知道最近是否有人遇到这个问题,但我今天在我的 Ubuntu 16.04 LTS 虚拟机中遇到了至少四、五次这样的错误,我按照上面的说法解决了这个问题。我不确定这是推荐的解决方案。请浏览 Ubuntu 论坛来确保此方法合法。由于我只是一个 VM,我只将它用于测试和学习目的,我不介意这种方法的真实性。请自行承担使用风险。

希望这有帮助。还有更多的好东西。敬请关注!

干杯!


via: https://www.ostechnix.com/how-to-force-apt-package-manager-to-use-ipv4-in-ubuntu-16-04/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

上周 我们学习了 IPv4 地址 和如何使用管理员不可或缺的工具 —— ipcalc,今天我们继续学习更精彩的内容:局域网路由器。

VirtualBox 和 KVM 是测试路由的好工具,在本文中的所有示例都是在 KVM 中执行的。如果你喜欢使用物理硬件去做测试,那么你需要三台计算机:一台用作路由器,另外两台用于表示两个不同的网络。你也需要两台以太网交换机和相应的线缆。

我们假设这个示例是一个有线以太局域网,为了更符合真实使用场景,我们将假设有一些桥接的无线接入点,当然我并不会使用这些无线接入点做任何事情。(我也不会去尝试所有的无线路由器,以及使用一个移动宽带设备连接到以太网的局域网口进行混合组网,因为它们需要进一步的安装和设置)

网段

最简单的网段是两台计算机连接在同一个交换机上的相同地址空间中。这样两台计算机不需要路由器就可以相互通讯。这就是我们常说的术语 —— “广播域”,它表示所有在相同的网络中的一组主机。它们可能连接到一台单个的以太网交换机上,也可能是连接到多台交换机上。一个广播域可以包括通过以太网桥连接的两个不同的网络,通过网桥可以让两个网络像一个单个网络一样运转。无线访问点一般是桥接到有线以太网上。

一个广播域仅当在它们通过一台网络路由器连接的情况下,才可以与不同的广播域进行通讯。

简单的网络

以下示例的命令并不是永久生效的,重启之后你所做的改变将会消失。

一个广播域需要一台路由器才可以与其它广播域通讯。我们使用两台计算机和 ip 命令来解释这些。我们的两台计算机是 192.168.110.125 和 192.168.110.126,它们都插入到同一台以太网交换机上。在 VirtualBox 或 KVM 中,当你配置一个新网络的时候会自动创建一个虚拟交换机,因此,当你分配一个网络到虚拟虚拟机上时,就像是插入一个交换机一样。使用 ip addr show 去查看你的地址和网络接口名字。现在,这两台主机可以互 ping 成功。

现在,给其中一台主机添加一个不同网络的地址:

# ip addr add 192.168.120.125/24 dev ens3

你可以指定一个网络接口名字,在示例中它的名字是 ens3。这不需要去添加一个网络前缀,在本案例中,它是 /24,但是显式地添加它并没有什么坏处。你可以使用 ip 命令去检查你的配置。下面的示例输出为了清晰其见进行了删减:

$ ip addr show
ens3:
 inet 192.168.110.125/24 brd 192.168.110.255 scope global dynamic ens3
 valid_lft 875sec preferred_lft 875sec
 inet 192.168.120.125/24 scope global ens3
 valid_lft forever preferred_lft forever

主机在 192.168.120.125 上可以 ping 它自己(ping 192.168.120.125),这是对你的配置是否正确的一个基本校验,这个时候第二台计算机就已经不能 ping 通那个地址了。

现在我们需要做一些网络变更。添加第三台主机作为路由器。它需要两个虚拟网络接口并添加第二个虚拟网络。在现实中,你的路由器必须使用一个静态 IP 地址,但是现在,我们可以让 KVM 的 DHCP 服务器去为它分配地址,所以,你仅需要两个虚拟网络:

  • 第一个网络:192.168.110.0/24
  • 第二个网络:192.168.120.0/24

接下来你的路由器必须配置去转发数据包。数据包转发默认是禁用的,你可以使用 sysctl 命令去检查它的配置:

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

0 意味着禁用,使用如下的命令去启用它:

# echo 1 > /proc/sys/net/ipv4/ip_forward

接下来配置你的另一台主机做为第二个网络的一部分,你可以通过将原来在 192.168.110.0/24 的网络中的一台主机分配到 192.168.120.0/24 虚拟网络中,然后重新启动两个 “连网的” 主机,注意不是路由器。(或者重启动主机上的网络服务;我年龄大了还有点懒,我记不住那些重启服务的奇怪命令,还不如重启主机来得干脆。)重启后各台机器的地址应该如下所示:

  • 主机 1: 192.168.110.125
  • 主机 2: 192.168.120.135
  • 路由器: 192.168.110.126 和 192.168.120.136

现在可以去随意 ping 它们,可以从任何一台计算机上 ping 到任何一台其它计算机上。使用虚拟机和各种 Linux 发行版做这些事时,可能会产生一些意想不到的问题,因此,有时候 ping 的通,有时候 ping 不通。不成功也是一件好事,这意味着你需要动手去创建一条静态路由。首先,查看已经存在的路由表。主机 1 和主机 2 的路由表如下所示:

$ ip route show
default via 192.168.110.1 dev ens3 proto static metric 100
192.168.110.0/24 dev ens3 proto kernel scope link src 192.168.110.164 metric 100

$ ip route show
default via 192.168.110.1 dev ens3 proto static metric 100
default via 192.168.120.1 dev ens3 proto static metric 101
169.254.0.0/16 dev ens3 scope link metric 1000
192.168.110.0/24 dev ens3 proto kernel scope link
 src 192.168.110.126 metric 100
192.168.120.0/24 dev ens9 proto kernel scope link
 src 192.168.120.136 metric 100

这显示了我们使用的由 KVM 分配的缺省路由。169.* 地址是自动链接的本地地址,我们不去管它。接下来我们看两条路由,这两条路由指向到我们的路由器。你可以有多条路由,在这个示例中我们将展示如何在主机 1 上添加一个非默认路由:

# ip route add 192.168.120.0/24 via 192.168.110.126 dev ens3

这意味着主机 1 可以通过路由器接口 192.168.110.126 去访问 192.168.110.0/24 网络。看一下它们是如何工作的?主机 1 和路由器需要连接到相同的地址空间,然后路由器转发到其它的网络。

以下的命令去删除一条路由:

# ip route del 192.168.120.0/24

在真实的案例中,你不需要像这样手动配置一台路由器,而是使用一个路由器守护程序,并通过 DHCP 做路由器通告,但是理解基本原理很重要。接下来我们将学习如何去配置一个易于使用的路由器守护程序来为你做这些事情。

通过来自 Linux 基金会和 edX 的免费课程 “Linux 入门” 来学习更多 Linux 的知识。


via: https://www.linux.com/learn/intro-to-linux/2018/3/linux-lan-routing-beginners-part-2

作者:CARLA SCHRODER 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

前面我们学习了 IPv6 路由。现在我们继续深入学习 Linux 中的 IPv4 路由的基础知识。我们从硬件概述、操作系统和 IPv4 地址的基础知识开始,下周我们将继续学习它们如何配置,以及测试路由。

局域网路由器硬件

Linux 实际上是一个网络操作系统,一直都是,从一开始它就有内置的网络功能。要将你的局域网连入因特网,构建一个局域网路由器比起构建网关路由器要简单的多。你不要太过于执念安全或者防火墙规则,对于处理网络地址转换(NAT)它还是比较复杂的,NAT是 IPv4 的一个痛点。我们为什么不放弃 IPv4 去转到 IPv6 呢?这样将使网络管理员的工作更加简单。

有点跑题了。从理论上讲,你的 Linux 路由器是一个至少有两个网络接口的小型机器。Linux Gizmos 有一个很大的单板机名单:98 个开放规格、适于黑客的 SBC 的目录。你能够使用一个很老的笔记本电脑或者台式计算机。你也可以使用一个紧凑型计算机,像 ZaReason Zini 或者 System76 Meerkat 一样,虽然这些有点贵,差不多要 $600。但是它们又结实又可靠,并且你不用在 Windows 许可证上浪费钱。

如果对路由器的要求不高,使用树莓派 3 Model B 作为路由器是一个非常好的选择。它有一个 10/100 以太网端口,板载 2.4GHz 的 802.11n 无线网卡,并且它还有四个 USB 端口,因此你可以插入多个 USB 网卡。USB 2.0 和低速板载网卡可能会让树莓派变成你的网络上的瓶颈,但是,你不能对它期望太高(毕竟它只有 $35,既没有存储也没有电源)。它支持很多种风格的 Linux,因此你可以选择使用你喜欢的版本。基于 Debian 的树莓派是我的最爱。

操作系统

你可以在你选择的硬件上安装将你喜欢的 Linux 的简化版,因为定制的路由器操作系统,比如 OpenWRT、 Tomato、DD-WRT、Smoothwall、Pfsense 等等,都有它们自己的非标准界面。我的观点是,没有必要这么麻烦,它们对你并没有什么帮助。尽量使用标准的 Linux 工具,因为你只需要学习它们一次就够了。

Debian 的网络安装镜像大约有 300MB 大小,并且支持多种架构,包括 ARM、i386、amd64 和 armhf。Ubuntu 的服务器网络安装镜像也小于 50MB,这样你就可以控制你要安装哪些包。Fedora、Mageia、和 openSUSE 都提供精简的网络安装镜像。如果你需要创意,你可以浏览 Distrowatch

路由器能做什么

我们需要网络路由器做什么?一个路由器连接不同的网络。如果没有路由,那么每个网络都是相互隔离的,所有的悲伤和孤独都没有人与你分享,所有节点只能孤独终老。假设你有一个 192.168.1.0/24 和一个 192.168.2.0/24 网络。如果没有路由器,你的两个网络之间不能相互沟通。这些都是 C 类的私有地址,它们每个都有 254 个可用网络地址。使用 ipcalc 可以非常容易地得到它们的这些信息:

$ ipcalc 192.168.1.0/24
Address:   192.168.1.0          11000000.10101000.00000001. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.1.0/24       11000000.10101000.00000001. 00000000
HostMin:   192.168.1.1          11000000.10101000.00000001. 00000001
HostMax:   192.168.1.254        11000000.10101000.00000001. 11111110
Broadcast: 192.168.1.255        11000000.10101000.00000001. 11111111
Hosts/Net: 254                   Class C, Private Internet

我喜欢 ipcalc 的二进制输出信息,它更加可视地表示了掩码是如何工作的。前三个八位组表示了网络地址,第四个八位组是主机地址,因此,当你分配主机地址时,你将 “掩盖” 掉网络地址部分,只使用剩余的主机部分。你的两个网络有不同的网络地址,而这就是如果两个网络之间没有路由器它们就不能互相通讯的原因。

每个八位组一共有 256 字节,但是它们并不能提供 256 个主机地址,因为第一个和最后一个值 ,也就是 0 和 255,是被保留的。0 是网络标识,而 255 是广播地址,因此,只有 254 个主机地址。ipcalc 可以帮助你很容易地计算出这些。

当然,这并不意味着你不能有一个结尾是 0 或者 255 的主机地址。假设你有一个 16 位的前缀:

$ ipcalc 192.168.0.0/16
Address:   192.168.0.0          11000000.10101000. 00000000.00000000
Netmask:   255.255.0.0 = 16     11111111.11111111. 00000000.00000000
Wildcard:  0.0.255.255          00000000.00000000. 11111111.11111111
=>
Network:   192.168.0.0/16       11000000.10101000. 00000000.00000000
HostMin:   192.168.0.1          11000000.10101000. 00000000.00000001
HostMax:   192.168.255.254      11000000.10101000. 11111111.11111110
Broadcast: 192.168.255.255      11000000.10101000. 11111111.11111111
Hosts/Net: 65534                 Class C, Private Internet

ipcalc 列出了你的第一个和最后一个主机地址,它们是 192.168.0.1 和 192.168.255.254。你是可以有以 0 或者 255 结尾的主机地址的,例如,192.168.1.0 和 192.168.0.255,因为它们都在最小主机地址和最大主机地址之间。

不论你的地址块是私有的还是公共的,这个原则同样都是适用的。不要羞于使用 ipcalc 来帮你计算地址。

CIDR

CIDR(无类域间路由)就是通过可变长度的子网掩码来扩展 IPv4 的。CIDR 允许对网络空间进行更精细地分割。我们使用 ipcalc 来演示一下:

$ ipcalc 192.168.1.0/22
Address:   192.168.1.0          11000000.10101000.000000 01.00000000
Netmask:   255.255.252.0 = 22   11111111.11111111.111111 00.00000000
Wildcard:  0.0.3.255            00000000.00000000.000000 11.11111111
=>
Network:   192.168.0.0/22       11000000.10101000.000000 00.00000000
HostMin:   192.168.0.1          11000000.10101000.000000 00.00000001
HostMax:   192.168.3.254        11000000.10101000.000000 11.11111110
Broadcast: 192.168.3.255        11000000.10101000.000000 11.11111111
Hosts/Net: 1022                  Class C, Private Internet

网络掩码并不局限于整个八位组,它可以跨越第三和第四个八位组,并且子网部分的范围可以是从 0 到 3,而不是非得从 0 到 255。可用主机地址的数量并不一定是 8 的倍数,因为它是由整个八位组定义的。

给你留一个家庭作业,复习 CIDR 和 IPv4 地址空间是如何在公共、私有和保留块之间分配的,这个作业有助你更好地理解路由。一旦你掌握了地址的相关知识,配置路由器将不再是件复杂的事情了。

理解 IP 地址和 CIDR 图表IPv4 私有地址空间和过滤、以及 IANA IPv4 地址空间注册 开始。接下来的我们将学习如何创建和管理路由器。

通过来自 Linux 基金会和 edX 的免费课程 “Linux 入门”学习更多 Linux 知识。


via: https://www.linux.com/learn/intro-to-linux/2018/2/linux-lan-routing-beginners-part-1

作者:Carla Schroder 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出