百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

linux网络命名空间简介

gudong366 2025-07-01 17:29 5 浏览

此篇会以例子的方式介绍下linux 网络命名空间。

此例中会创建两个network namespace: nsa、 nsb, 一个网桥bridge0,nsa、 nsb中 添加网络设备veth,网络设备间通过网桥通信。简单介绍下网桥和veth概念。

网桥: 是一种使用软件实现的虚拟设备,可以将linux内部各个网络接口连接起来,将网络接口连接起来的作用是,一个网络接口接收到数据后,会复制到其他网络接口

veth: 是linux的一种虚拟网络设备,它有点类似于中间用一条网线连着的两张网卡,veth总是成对出现,通常用来连接不同网络命名空间(下面用简称ns), 一端连着ns1的网络协议栈,一端连着ns2的网络协议栈,一端发送的数据另一端会立刻收到。

具体实践

  • 创建network namespace nsa、nsb
  • 创建网桥bridge0,并设置其ip
  • 添加veth 对 vetha1,vetha2


  • 将vetha1添加到bridge0
  • 添加vetha2到nsa,并设置其ip172.16.1.1
  • 添加veth 对 vethb1,vethb2, 将vethb1添加到bridge0,vethb2添加到nsb,
    设置vethb2 ip172.16.1.2
sudo ip link add vethb1 type veth peer name vethb2
sudo brctl addif bridge0 vethb1
sudo ip link set vethb1 up
sudo ip link set vethb2 netns nsb
sudo ip netns exec nsb ip link set vethb2 name veth0
sudo ip netns exec nsb ip link set veth0 up
sudo ip netns exec nsb ip addr add 172.16.1.2/16 dev veth0

测试nsa、nsb是否联通

这样执行完毕后在我的机器上从nsa ping nsb,没有反应

通过ip route get 查看数据包路由是正常的

经排查ping 不通原因是我主机上安装了 docker,FORWARD 链默认策略被 docker 设置成 drop
iptables -S | less检查规则:

解决方法是修改 FORWARD 的默认策略为 ACCEPT 放行:


参考:
https://tonybai.com/2017/01/11/understanding-linux-network-namespace-for-docker-network/


https://gobomb.github.io/post/learning-linux-veth-and-bridge/

相关推荐

linux sed系列 第四篇:sed工业实战——日志处理与数据清洗

“掌握了sed的编程能力后,我们如同装备精良的工匠,终于可以踏入真实的工业战场。本篇将聚焦sed在日志分析、数据合规化、多文件批处理等场景中的应用,看它如何在海量数据中游刃有余,展现文本处理的...

Linux下sed的简单使用(linux中sed是什么意思)

1、sed简介stremeditor流编辑器,它是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大,sed编辑器是一行一...

linux基础命令之date命令(linux中的date)

date命令主要用于显示或者设置系统时间语法格式:date参数对象使用date命令时,最好先使用date--help命令查看支持哪些参数,有些小型Linux系统下的date命令,只支持一些基本参...

Ubuntu linux 常用命令(ubuntu常用的50个命令)

使用dpkg命令来安装.deb包。sudodpkg-i~/example.deb如果在安装过程中遇到依赖问题,可以使用以下命令来修复:sudoapt-getinstall-f将flut...

Linux基础命令-sed命令(linux教程:sed命令的用法)

Sed全名streameditor流编辑器,它是一个强大的文本处理工具,它可以从文件中接受输入,也可以接受来自标准输入流的输入,它擅长取行。Sed的用途非常广泛,包括:1)文本替换2)选择性的输...

linux sed系列 第二篇:sed进阶技巧——地址定位与正则表达式

“上一篇我们掌握了sed的基础替换,如同获得了第一把钥匙。现在,让我们更进一步,学习如何精准锁定目标行,如同拥有了导航地图,让每一次操作都直击要害!”地址定位的四种维度sed的强大,很大程度上源...

火狐Firefox浏览器140发布:手动Unload标签页、优化翻译体验等

IT之家6月24日消息,Mozilla在发布版本139不到一个月后,推出了最新的开源网页浏览器Firefox140。新版本增加了手动Unload标签页的功能,优化了垂直标签页的调...

Linux 基本正则表达式及扩展正则表达式功能举例

在Linux中,正则表达式(RegularExpression)是一种强大的模式匹配工具,用于在文本中查找、匹配和处理特定模式的字符串。Linux支持两种类型的正则表达式:基本正则表达式(Basic...

linux下find命令的经典26个使用示例

简介find命令是基于unix的操作系统中常用的工具之一。顾名思义,它在目录层次结构中查找文件和目录。用户可以传递不同的参数,并根据文件的名称、扩展名、类型、大小、权限、修改时间、所有者、组等搜索文件...

linux运维中特殊符号的应用与实践

路径位置类的特殊符号(1)、波浪线(~)在linux系统的命令行中,~表示用户的家目录,超级用户为/root,普通用户为/home。假设我当前目录在usr/local下[root@xrylocal]...

开源框架log4cpp实战(开源gui框架)

1.Log4cpp使用Log4cpp中主要包含Category(种类),Appender(附加器),Layout(布局),Priorty(优先级),NDC(嵌套的诊断上下文)。Category、App...

Linux find命令详解(linux find -l)

一、命令介绍Linuxfind命令是类unix操作系统中最重要和最常用的命令行实用程序之一。find命令用于根据指定的条件搜索和定位与参数匹配的文件和目录列表。find命令提供了广泛的选项,允许用户...

Linux运维:单引号与双引号的使用(linux 单引号和双引号)

1、单引号的使用单引号可以将它中间的所有任意字符还原为字面意义,实现屏蔽Shell元字符的功能。注意不可以在两个单引号中间单独插入一个单引号,单引号必须成对出现。示例1:定义一个变量,并输出变量的...

Linux技巧:find 命令用法详细说明,看完会有收获

在Linux命令中,find是比较复杂难用的命令。使用该命令搜索文件时,常常发现自己找了一些例子能用,但稍微改一下条件,就搜不到想要的结果。下面会以一些实例来说明使用find命令的关键要点和...

Linux Shell中单引号、双引号、反引号的解释

1、单引号('')单引号所见即所得,直接显示单引号里的内容。即单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的。比如下面的例子,单引号所见即所得。2、双引号("...