0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux 基础知识中的网络命名空间

汽车电子技术 来源:码农与软件时代 作者:码农与软件时代 2023-02-15 11:03 次阅读

为什么要引入命名空间?有哪些?

Linux系统是一个多用户操作系统,通常是服务器的操作系统。

服务器通常会运行很多服务,在其有限的资源下,必然会造成资源的争抢,可能导致整个服务器宕机。

需要找到一种方法来解决上面的问题,Linux便引入了命名空间机制(NameSpace)。

Linux包含PID(进程)、Network(网络)、Mount(挂载)、User(用户)、UTS(主机名)、IPC(进程间通信)等命名空间。

网络命名空间是什么?

Linux网络命名空间可以看成网络协议栈的副本,每个网络命名空间拥有独立的网络环境(回环设备、IPv4等)。

默认情况下,Linux提供init_net网络命名空间,网络协议栈和网络设备属于此命名空间。Linux也可支持用户自定义网络命名空间。

网络设备通过在其结构体中定义网络命名空间,来标识其属于某个网络命名空间。

用户如何自定义网络命名空间?

用户可以使用iproute2工具来自定义网络命名空间。

基础命令:

root@linux:/var/run# ip netns help
Usage: ip netns list # 列出网络命名空间
      ip netns add NAME  # 创建 NAME 命名空间
      ip netns set NAME NETNSID # 分配网络命名空间id
      ip [-all] netns delete [NAME] # 删除 NAME 命名空间
      ip netns identify [PID] # 查看进程的网络命名空间
      ip netns pids NAME  # 查找使用 NAME 网络命名空间的进程
      ip [-all] netns exec [NAME] cmd ... # 在 NAME 网络命名空间中执行命令CMD
      ip netns monitor # 监控对网络命名空间的操作
      ip netns list-id #

创建命名空间:

root@linux:/var/run# ip netns add netns0
root@linux:/var/run# ip netns list
netns0

命名空间文件在/var/run/netns/目录下

root@linux:/var/run# ls /var/run/netns/
netns0

查看netns0的网卡信息,并设置为UP状态

root@linux:/var/run# ip netns exec netns0 ip addr
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

测试回环口

root@linux:/var/run# ip netns exec netns0 ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.039 ms
^C
--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3074ms
rtt min/avg/max/mdev = 0.039/0.047/0.069/0.012 ms
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    9342

    浏览量

    86206
  • 操作系统
    +关注

    关注

    37

    文章

    6905

    浏览量

    123871
  • Linux系统
    +关注

    关注

    4

    文章

    596

    浏览量

    27542
收藏 人收藏

    评论

    相关推荐

    Linux应用程序开发_基础知识

    Linux应用程序开发_基础知识
    发表于 08-16 16:32

    华为网络基础知识教程

    华为网络基础知识教程
    发表于 08-18 15:16

    linux_,Android基础知识总结

    linux_,Android基础知识总结
    发表于 08-20 13:32

    Linux下C语言编程基础知识

    Linux下C语言编程基础知识
    发表于 08-20 17:21

    Linux命名空间机制

    Linux命名空间概述
    发表于 03-18 14:40

    Linux基础知识和命令

    Linux基础知识和命令
    发表于 06-14 06:39

    Linux基础知识

    Linux基础知识 硬盘 硬盘是可以存储大量信息资源的媒介。我们平时看到的硬盘是方方正正的一块挺沉的铁匣子,但是其实硬盘是圆的,加上一些控制电路以后,为了便于
    发表于 01-18 09:57 496次阅读

    linux+Android基础知识总结

    linux+Android基础知识总结
    发表于 03-19 11:23 0次下载

    linux /Android 基础知识总结大全

    本文档介绍了linux /Android 基础知识总结大全,包含了源代码以及详解,供网友参考。
    发表于 09-11 17:46 7次下载

    linux Android基础知识总结

    linux Android基础知识总结
    发表于 10-24 09:00 6次下载
    <b class='flag-5'>linux</b> Android<b class='flag-5'>基础知识</b>总结

    Linux驱动编程基础知识讲解

    由于Linux驱动编程的本质属于Linux内核编程,因此我们非常有必要熟悉Linux内核以及Linux内核的特点。 这篇文章将会帮助读者打下Linu
    的头像 发表于 03-01 08:27 3909次阅读

    神经网络基础知识

    神经网络基础知识课件免费下载。
    发表于 04-21 09:36 6次下载

    linux操作系统基础知识

    本文主要阐述了linux操作系统基础知识
    发表于 06-04 15:07 5905次阅读

    Linux用户态开发驱动教程及基础知识

    Linux用户态开发驱动教程及基础知识
    发表于 07-14 10:06 7次下载

    通讯网络天线基础知识

    通讯网络天线基础知识
    发表于 02-15 13:54 16次下载