linux虚拟网卡技术原理,浅谈Linux虚拟网络技术

在Linux虚拟化技术中,网络级别上最重要的三项技术是网络名称空间、线对和Veth桥接器或虚拟交换机技术。

今天,我们将指导您学习Linux网络虚拟化技术。

我们首先了解下Network

Namespace,它是由Linux内核提供,是实现网络虚拟化的重要功能。通过创建多个隔离的网络空间,实现网络资源的隔离。

不同的Network Namespace的资源互相不可见,彼此之间无法通信。如下图所示:

linux虚拟网卡技术原理,浅谈Linux虚拟网络技术_第1张图片

Network Namespace

ip netns命令

Network

Namespace是Linux内核提供的功能,本文借助ip命令来完成各种操作。ip命令来自于iproute2安装包,一般系统默认安装,如果没有的话,读者可自行安装。

ip命令管理的功能很多,和Network Namespace有关的操作都在其子命令ip netns下进行的,可以通过ip netns

help查询命令帮助信息

[root@qll253 ~]# ip netns helpUsage: ip netns list

ip netns add NAME

ip netns set NAME NETNSID

ip [-all] netns delete [NAME]

ip netns identify [PID]

ip netns pids NAME

ip [-all] netns exec [NAME] cmd ...

ip netns monitor

ip netns list-id

创建Network Namespace

1、通过 ip netns add 命令创建一个名为ns0的网络命名空间:

[root@1ll253 ~]# ip netns add ns02、查询命名空间

[root@1ll253 ~]# ip netns listns0

3、命名空间所在目录

[root@1ll253 ~]# ls /var/run/netns/ns0

注意:新创建的 Network Namespace 会出现在/var/run/netns/目录下。如果需要管理其他不是 ip netns 创建的

network namespace,只要在这个目录下创建一个指向对应 network namespace 文件的链接即可。

操作Network Namespace

对于每个 Network Namespace 来说,它会有自己独立的网卡、路由表、ARP 表、iptables 等和网络相关的资源。ip命令提供了ip

netns exec命令可以在对应的 Network Namespace 中执行命令。

1、查看网络命名空间 ns0 的网卡信息

[root@1ll253 ~]# ip netns exec ns0 ip addr1: lo:mtu 65536 qdisc

noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd

00:00:00:00:00:00

每个 namespace

在创建时会自动创建一个回环接口lo,默认不启用。它的作用和Linux系统中默认看到的lo一样,都是为了实现loopback通信

你可能感兴趣的:(linux虚拟网卡技术原理)