首页 > 系统相关 >[Linux]veth是什么?

[Linux]veth是什么?

时间:2023-04-13 16:01:04浏览次数:41  
标签:什么 网络 空间 veth 命名 veth1 Linux pair

veth pair 是什么?

  • veth pair(Virtual Ethernet Pair)是一种 Linux 内核技术,可用于将两个虚拟网络接口连接在一起,从而可以在两个不同的命名空间之间进行通信。它常常被用于容器的实现,比如 Docker 中的容器网络,以提供网络隔离和互联。
  • veth pair 包括两个虚拟网络接口,这两个网络接口是成对出现的,一个在一个命名空间中,另一个在另一个命名空间中。其中一个接口的主机和路由信息将用于在这个命名空间和其它网络之间进行通信,而另一个接口则被限制在本地网络命名空间中。

例如,当创建一个 Docker 容器时,内部将会创建一个独立的网络命名空间。此时,将会创建两个 veth pair 接口,一个接口将附加到容器内的网络命名空间中,另一个接口将附加到主机的网络命名空间中。这些 veth pair 接口之间的通信将被用来进行容器中的应用程序访问主机网络的操作,以及主机网络中的应用程序访问容器中的应用程序的操作。

veth pair 常被用于创建网络隔离,实现多个应用程序之间的网络隔离。它提供了一种简单而密集的方式来实现不同网络命名空间之间的通信,同时保持了适当的隔离性,最终实现了更好的网络性能和更好的安全性。
总体而言,veth pair 是 Linux 内核技术的一个基本组成部分,它广泛用于容器化环境中以提供网络隔离和互联。

veth pair 的操作示例?

好的,下面是使用 veth pair 进行相互通信的一个示例:

  1. 首先在终端中输入以下命令,创建一个新的 veth pair:
sudo ip link add veth0 type veth peer name veth1

veth0 和 veth1 是两个创建的新接口,veth0 将连接到主机的命名空间中,veth1 将连接到新创建的网络命名空间中。veth pair 中任何一侧的数据流都可以通过 veth pair 中的另一侧进行传输。

  1. 接下来,将另一端 veth1 分配到新的网络命名空间:
sudo ip netns add test-ns
sudo ip link set veth1 netns test-ns

这将创建名为 test-ns 的新网络命名空间,并将 veth1 置于该命名空间中。

  1. 在新的命名空间中,使用以下命令配置 veth1 接口:
sudo ip netns exec test-ns ifconfig veth1 192.168.1.2/24 up

这将使用 ifconfig 命令为 veth1 接口设置 IP 地址。这里我们设置的是 192.168.1.2/24。

  1. 在主机的命名空间中,使用以下命令配置 veth0 接口:
sudo ifconfig veth0 192.168.1.1/24 up

这将使用 ifconfig 命令为 veth0 接口设置 IP 地址。这里我们设置的是 192.168.1.1/24。

  1. 最后,我们可以尝试在两个不同的命名空间中相互连通。在 test-ns 命名空间中打开一个终端窗口,在该窗口中使用以下命令与主机的命名空间中的 veth0 接口进行通信:
ping 192.168.1.1

如果一切正常,你应该能够看到网络连接正常,并能在主机的命名空间中通过 logs 或其他适当的工具查看对数据包的响应。

这是使用 veth pair 进行相互通信的一个示例,它可以在 Linux 系统上启用不同命名空间之间的网络隔离,为应用程序提供额外的安全和性能优势。

标签:什么,网络,空间,veth,命名,veth1,Linux,pair
From: https://www.cnblogs.com/Skybiubiu/p/17315134.html

相关文章

  • linux操作系统和linux内核
    linux内核并非操作系统,是操作系统的基本,负责对计算机硬件进行管理,并且提供了使用这些硬件资源的通用接口。主要管理如下几个方面:1. 内存管理:追踪记录有多少内存存储了什么以及存储在哪里2. 进程管理:其实就是对cpu的管理,即确定哪些进程可以使用中央处理器......
  • [Linux]有哪些常见的System Call?
    Linux中有许多Systemcall,以下是其中的一些常见的Systemcall:open:打开一个文件close:关闭一个文件read:从文件中读取数据write:将数据写入文件lseek:控制文件位置指针fcntl:操作文件描述符标识socket:创建一个套接字connect:建立一个连接bind:将一个套接字绑定到一个地址lis......
  • tinymix使用 嵌入式linux tinyplay控制音频
    tinymix控制声音大小使用方法使用字符方式保险  tinymix"LINEOUTvolume""2"有的是输入int但是此处输入输入int时,不行,使用字符串输入可以正常修改 输入tinymix查看选项和使用方法 root@/test_utils/alsa#tinymixMixername:'audiocodec'Numberofcontrols:......
  • linux的一些命令(入门)
       1.查看linux内核的版本[root@blueendingnova~]#cat/etc/centos-releaseCentOSLinuxrelease7.9.2009(Core)   2.查看linux系统的版本[root@blueendingnova~]#uname-r3.10.0-1160.el7.x86_64   3.查询passwd命令存放的路径[root@blueendingnov......
  • linux服务器CPU占用100%,宝塔负载100%情况问题排查处理记录(CentOS 8.1系统)
    问题描述:linux服务器cpu占比达到100%,站点无法正常访问,宝塔面板进入后卡顿,负载显示也是持续100%(下方测试系统为CentOS8.1)排查可能:1.使用netstat命令查看目前的链接IP数,看是否有异常IP大量链接:netstat-ntu|awk'{print$5}'|cut-d:-f1|sort|uniq-c|sort-n(查看显示......
  • CAD绘图次序快捷键是什么?怎么用?
    在CAD绘图过程中,当图纸中某一图形被其他图形遮挡时,如果想要将其显示出来可以通过调整其绘图次序来实现。那么,你知道CAD绘图次序快捷键是什么吗?今天小编来给大家简单介绍一下浩辰CAD软件中CAD绘图次序快捷键是什么以及使用技巧,一起来看看吧!CAD绘图次序快捷键是什么?CAD绘图次序命......
  • 【转】检查Linux系统下是否安装了gcc、pcre、zlib、openssl环境
    1.查看gcc环境gcc-v如果Linux系统没有安装gcc编译器,会提示“Commandnotfound”。如果系统上安装了gcc编译器,这条命令就会显示出当前安装的gcc编译器是哪个版本。下图展示为已安装的信息。 2. 查看pcre环境rpm-qapcre看到pcre的版本,说明已安装,否则未安装。......
  • 搭建一个安全的Linux服务器教程
    要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置。在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通......
  • Linux安装MySQL
    1、下载MySQLMySQL官网:https://downloads.mysql.com/archives/community/。下载Linux版本的MySQL安装包,这里我选择的是64位、8.0.31版本,下载的压缩包名称:mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz。  2、Linux安装MySQL1、将下载的压缩包,上传到Linux的指定目录并解压......
  • how to use crontab to send an email on Linux All In One
    howtousecrontabtosendanemailonLinuxAllInOneemail/mailpi@raspberrypi:~/Desktop$mail--help-bash:mail:未找到命令pi@raspberrypi:~/Desktop$manmail没有mail的手册页条目installmail#❓$sudoapt-getmaildemos$crontab-e#每星......