linux容器基础-namespace-2(net)

news2024/11/24 8:55:35

net namespace

network namespace用来隔离网络环境,在network namespace中,网络设备、端口、套接字、网络协议栈、路由表、防火墙规则等都是独立的。
因为network namespace中具有独立的网络协议栈,因此每个network namespace中都有一个lo接口,但lo接口默认未启动,需要手动启动起来。

让某个network namespace和root network namespace或其他network namespace之间保持通信是一个非常常见的需求, 这一般通过veth虚拟设备实现。

veth类型的虚拟设备由一对虚拟的eth网卡设备组成,像管道一样,一端写入的数据总会从另一端流出, 从一端读取的数据一定来自另一端。
用户可以将veth的其中一端放在某个network namespace中,另一端保留在root network namespace中。 这样就可以让用户创建的network namespace和宿主机通信。

我们来尝试一下如何让2个net namespace进行连接。如下图:

在这里插入图片描述

创建2个net namespace

root@ubuntu-server:#ip netns add ns1
root@ubuntu-server:#ip netns add ns2
root@ubuntu-server:~# ip netns ls
ns2
ns1

创建veth pair

root@ubuntu-server:#ip link add veth-ns1 type veth peer name veth-ns2
root@ubuntu-server:# ip link show
......
18: veth-ns2@veth-ns1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether ea:df:70:39:f8:84 brd ff:ff:ff:ff:ff:ff
19: veth-ns1@veth-ns2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 96:8f:fb:a7:29:e0 brd ff:ff:ff:ff:ff:ff

将veth pair一端的虚拟网卡放入ns1,另一端放入ns2,这样就相当于采用网线将两个network namespace连接起来了。

root@ubuntu-server:#ip link set veth-ns1 netns ns1
root@ubuntu-server:#ip link set veth-ns2 netns ns2

可以看到2个net namespace里面分别有一个lo还有veth的网卡

root@ubuntu-server:# ip netns exec ns1 ip a
1: 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
19: veth-ns1@if18: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 96:8f:fb:a7:29:e0 brd ff:ff:ff:ff:ff:ff link-netns ns2

root@ubuntu-server:# ip netns exec ns2 ip a
1: 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
18: veth-ns2@if19: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether ea:df:70:39:f8:84 brd ff:ff:ff:ff:ff:ff link-netns ns1

为两个网卡分别设置IP地址,这两个网卡的地址位于同一个子网192.168.1.0/24中。

root@ubuntu-server:# ip -n ns1 addr add 192.168.1.1/24 dev veth-ns1
root@ubuntu-server:# ip -n ns2 addr add 192.168.1.2/24 dev veth-ns2

使用ip link命令设置两张虚拟网卡状态为up。

root@ubuntu-server:#ip -n ns1 link set veth-ns1 up
root@ubuntu-server:#ip -n ns2 link set veth-ns2 up

从ns1,ns2两个net namespace中互相ping,互通了

root@ubuntu-server:~# ip netns exec ns1 ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.029 ms
^C
--- 192.168.1.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1014ms
rtt min/avg/max/mdev = 0.029/0.034/0.039/0.005 ms

root@ubuntu-server:~# ip netns exec ns2 ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.011 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.011/0.018/0.025/0.007 ms

我们在这里通过一个简单的例子来熟悉了一下net namespace是如何通信的,在后面章节中,
我们在具体聊聊docker和k8s中是如何处理网络的,这里先有个大概的认知即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2063912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

向量数据库中的PQ(Procduct Quantization)

为了加快向量之间距离计算和比较速度&#xff0c;有人发明的Product Quantization方法&#xff0c;这个方法并不是一种索引&#xff0c;所以它并不能减少目标向量&#xff08;要查找的向量&#xff09;&#xff0c;与数据库中向量的比较次数&#xff0c;但是它可以加快与每个数…

黑神话孙悟空:自媒体小白的流量密码!

当下&#xff0c;黑神话孙悟空的热度如熊熊烈火&#xff0c;席卷了整个游戏世界。 只要与这个话题沾边&#xff0c;似乎就能轻松吸引大量关注。 那么&#xff0c;对于不怎么懂自媒体运营的小伙伴来说&#xff0c;该如何抓住这个机遇呢&#xff1f; 别担心&#xff0c;我们用以…

IO进程线程8月22日

1&#xff0c;思维导图 2&#xff0c;使用read和write实现文件拷贝 #include<myhead.h> int main(int argc, const char *argv[]) {int fp1,fp2;char a[1];fp1open("./1.txt",O_RDONLY);fp2open("./2.txt",O_CREAT|O_TRUNC|O_WRONLY,0664);if(fp1-…

简过网:博士考公务员有什么优势?还需要笔试吗?

博士生考公务员需要面试吗&#xff1f;这要看具体情况&#xff0c;一般来讲&#xff0c;公务员考试分为国考、省考和单招&#xff01; 很多公务员单招的一般可以免笔试&#xff0c;但是需要面试&#xff0c;但是对于国考和省考和统考来讲&#xff0c;博士是不能免笔试的&#…

hive4.0.0部署以及与MySQL8.4连接

在开始之前&#xff0c;需要在主机上准备好MySQL数据库&#xff0c;并且已经完成了hdfs和yarn的部署 步骤1&#xff1a;MySQL的配置 以root用户登录mysql后执行以下命令&#xff1a; grant all privileges on *.* to root% with grant option; flush privileges; 这样我们就…

解码极氪汽车的短期成效与长期定力

近日&#xff0c;极氪汽车&#xff08;NYSE&#xff1a;ZK&#xff0c;下同“极氪”&#xff09;公布了截止2024年第二季度的业绩公告。 不难发现&#xff0c;极氪汽车实现了交付数量与经营业绩的双螺旋增长&#xff0c;稳居新能源自主品牌第一梯队。不仅如此&#xff0c;极氪…

JavaEE从入门到起飞(九) ~Activiti 工作流

工作流 当一道流程逻辑需要用到多个表单的提交和多个角色的审核共同完成的时候&#xff0c;就可以使用工作流。 工作流一般使用的是第三方技术&#xff0c;也就是说别人帮你创建数据库表和service层、mapper层&#xff0c;你只需要注入工具接口即可使用。 原理&#xff1a;一…

深度优先搜索-放苹果

放苹果 http://noi.openjudge.cn/ch0205/666/ #include<bits/stdc.h> using namespace std;int dfs(int,int); //第一个赋值为1 其余为0 int a[11]{1},ans,n,m;int main(){ int k; cin>>k; for(int i1;i<k;i){ ans0; cin>>m>>n; dfs(m,1);//m个…

滴答拍摄影项目

TOC springboot0796滴答拍摄影项目 第1章 绪论 1.1背景及意义 随着社会的快速发展&#xff0c;计算机的影响是全面且深入的。人们生活水平的不断提高&#xff0c;日常生活中人们对拍摄影方面的要求也在不断提高&#xff0c;旅游的人数更是不断增加&#xff0c;使得拍摄影项…

FPGA开发——IIC协议介绍

简介 其实关于IIC通信协议的相关原理的相关理论我在最开始的文章当中进行过讲解&#xff0c;但是没有详细的去进行过说明&#xff0c;在今天的这篇文章中我们就来详细说明一下IIC协议的相关理论。 一、IIC 总线组成 1、定义介绍 采用串行总线可以简化系统硬件结构、减小系统…

科技在环境保护中的作用

面对日益严峻的环境问题&#xff0c;‌科技在环境保护中发挥着越来越重要的作用。‌从清洁能源的开发和应用&#xff0c;‌到环保技术的不断进步&#xff0c;‌再到智能环保监测系统的建立&#xff0c;‌科技正以前所未有的力量推动着环境保护事业的发展。‌ 清洁能源技术的开…

揭秘!移动安全管理系统是什么?有什么功能?(从小白到精通一文揭晓!)

在2024年&#xff0c;移动终端管控软件在企业和组织中的应用日益广泛。 移动安全管理系统不仅提高了管理效率&#xff0c;还增强了数据安全性和移动办公的便捷性。 以下是六款值得推荐的移动终端管控软件&#xff1a; 1. 安企神 特点&#xff1a;作为行业领头羊&#xff0c;…

【PHP入门教程】PHPStudy环境搭建+HelloWorld运行

文章目录 PHP 的历史PHP 的用途PHP 的特点和优势PHP 环境搭建环境准备安装window 安装CentOS / Ubuntu / Debian 安装 第一个Hello World使用Apache服务运行命令行运行代码 PHP 的历史 PHP&#xff08;Hypertext Preprocessor&#xff09;超文本预处理器是一种开源的通用脚本语…

m3u8转mp4,3款软件让你快速转换!

在这个数字化时代&#xff0c;视频已成为我们生活中不可或缺的一部分。无论是学习资料、娱乐影片还是工作演示&#xff0c;视频文件总是以不同的格式存在。其中&#xff0c;M3U8和MP4作为两种常见的视频格式&#xff0c;各有其应用场景。然而&#xff0c;有时我们需要将M3U8格式…

如何在算家云搭建模型Linly-Talker(数字人文本配音)

一、模型介绍 Linly-Talker 是一款集成了多种人工智能技术的数字人对话系统&#xff0c;集成了各种技术,例如 Whisper、Linly、微软语音服务和 SadTalker 会说话的生成系统。该系统部署在 Gradio 上&#xff0c;用户可通过上传图像与 AI 助手进行互动&#xff0c;可以根据自己…

UDP+TCP

一、UDP协议 1.recvfrom:recvform(int sockfd,void *buf,size_t len,int flags,struct sockaddr *src_addr,socklen_t *addrlen); 参数&#xff1a;socket的fd; 保存数据的空间地址 &#xff1b; 空间大小&#xff1b; 默认接收方式&#xff08;默认阻塞&#xf…

【蓝桥杯集训100题】scratch游泳时长 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第27题

目录 scratch游泳时长 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 scratc…

5 分钟 Stable Diffusion 本地安装指南

一、Stable Diffusion 简介 Stable Diffusion 是一款非常强大的基于深度学习的 AI 图像生成技术。它由众多研究团队和开发者共同努力而成&#xff0c;其中包括德国慕尼黑大学和总部位于纽约的 RunwayML 公司的国际研究团队。 Stable Diffusion 的工作原理基于扩散模型。简单来…

TCP和UDP编程的学习

UDP编程特点&#xff1a;c/s模型 不可靠 &#xff1b; 无链接 &#xff1b;数据报形式&#xff08;效率高&#xff09;&#xff1b; TCP编程特点&#xff1a; 面向链接&#xff1b; 可靠传输&#xff1b;&#xff08;保证数据准确可靠&#xff09;&#xff1b; 面向字节流&a…

ES6解构赋值详解;全面掌握:JavaScript解构赋值的终极指南

目录 全面掌握&#xff1a;JavaScript解构赋值的终极指南 一、数组解构赋值 1、基本用法 2、跳过元素 3、剩余元素 4、默认值 二、对象解构赋值 1、基本用法 2、变量重命名 3、默认值 4、嵌套解构 三、复杂的嵌套结构解构 四、函数参数解构赋值 1、对象解构作为函…