Skip to content

Commit

Permalink
fix typo
Browse files Browse the repository at this point in the history
  • Loading branch information
isno committed Feb 5, 2025
1 parent 6a505e1 commit 34797b9
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion network/linux-vritual-net.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

Linux 网络虚拟化的核心技术主要是网络命名空间和各种虚拟网络设备,如稍后介绍的 Veth、Linux Bridge、TUN/TAP 等。这些虚拟设备由代码实现,完全模拟物理设备的功能。

近年来流行颇广的容器技术,正是基于这些虚拟网络设备,模拟物理设备之间协作方式,将各个独立的网络命名空间连接起来,构建出不受物理环境限制的网络架构,实现容器之间、容器与宿主机之间,甚至跨数据中心的动态网络拓扑。
近年来广泛应用的容器技术,正是基于这些虚拟网络设备,模拟物理设备之间协作方式,将各个独立的网络命名空间连接起来,构建出不受物理环境限制的网络架构,实现容器之间、容器与宿主机之间,甚至跨数据中心的动态网络拓扑。
16 changes: 8 additions & 8 deletions network/network-namespace.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
# 3.5.1 网络命名空间

Linux 内核 2.4.19 版本起,逐步集成多种命名空间技术,以实现对各类资源的隔离。网络命名空间(Network Namespace)是其中最关键的一种,它是容器技术的核心
Linux 内核 2.4.19 版本开始,逐步集成了多种命名空间技术,以实现对各类资源的隔离。其中,网络命名空间(Network Namespace)是最为关键的一种,也是容器技术的核心

网络命名空间允许 Linux 系统内创建多个独立的网络环境,每个环境拥有独立的网络资源,如防火墙规则、网络接口、路由表、ARP 邻居表及完整的网络协议栈。当进程运行在一个网络命名空间内,就像独享一台物理主机。
网络命名空间允许 Linux 系统内创建多个独立的网络环境,每个环境拥有独立的网络资源,如防火墙规则、网络接口、路由表、ARP 邻居表及完整的网络协议栈。当进程运行在某个网络命名空间内时,就像独享一台物理主机。

:::center
![](../assets/linux-namespace.svg)<br/>
图 3-12 不同网络命名空间内的网络资源都是隔离的
:::

Linux 系统中,ip 工具的子命令 netns 集成了网络命名空间的增删查改功能。笔者使用 ip 命令演示操作网络命名空间,帮助你加深理解网络命名空间的作用
Linux 系统 中,ip 工具的子命令 netns 集成了网络命名空间的增、删、查、改等功能。接下来,笔者将使用 ip 命令演示如何操作网络命名空间,帮助你加深理解

首先,创建一个名为 ns1 的网络命名空间。命令如下所示:

```bash
$ ip netns add ns1
```

查询该网络命名空间内的网络设备信息。由于没有经过任何配置,因此该网络命名空间内只有一个名为 lo 的本地回环设备,且该设备的状态为 DOWN。
查询 ns1 网络命名空间内的网络设备信息。可以看到,由于没有进行任何配置,该网络命名空间内只有一个名为 lo 的本地回环设备,且设备状态为 DOWN。

```bash
$ ip netns exec ns1 ip link list
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
```

继续查看该网络命名空间下 iptables 规则配置。由于这是一个初始化的网络命名空间,因此它也并没有任何 iptables 规则
查看 ns1 网络命名空间下的 iptables 规则配置。可以看到,由于这是一个初始化的网络命名空间,因此 iptables 规则为空,并没有任何配置

```bash
$ ip netns exec ns1 iptables -L -n
Expand All @@ -39,8 +39,8 @@ Chain OUTPUT (policy ACCEPT)
target prot opt source destination
```

不同的网络命名空间之间是相互隔离的,那它们如果想与外界通信(其他网络命名空间、宿主机),该怎么处理呢
不难看出,不同的网络命名空间默认相互隔离,也无法直接通信。如果它们需要与外界(包括其他网络命名空间或宿主机)建立连接,该如何实现呢

我们先看看物理机是怎么操作的一台物理机如果要想与外界进行通信,那得插入一块网卡,通过网线连接到以太网交换机,加入一个局域网内。被隔离的网络命名空间如果想与外界进行通信,就需要利用到稍后介绍的各类虚拟网络设备。也就是在网络命名空间里面插入“虚拟网卡”,然后把“网线”的另一头桥接到“虚拟交换机”中。
我们先看看物理机是怎么操作的一台物理机如果要想与外界进行通信,那得插入一块网卡,通过网线连接到以太网交换机,加入一个局域网内。被隔离的网络命名空间如果想与外界进行通信,就需要利用到稍后介绍的各类虚拟网络设备。也就是在网络命名空间里面插入“虚拟网卡”,然后把“网线”的另一头桥接到“虚拟交换机”中。

没错,这些操作完全和物理环境中的局域网配置一样,只不过全部是虚拟的用代码实现的而已。
没错,这些操作完全和物理环境中的配置局域网一样,只不过全部是虚拟的用代码实现的而已。

0 comments on commit 34797b9

Please sign in to comment.