首页 > 系统相关 >Linux Bridge与veth

Linux Bridge与veth

时间:2023-10-08 23:32:00浏览次数:48  
标签:Bridge ip 192.168 veth link veth1 veth2 Linux netns

创建一对 veth(Virtual Ethernet)接口,并将它们连接到不同的网络命名空间,然后通过 Linux Bridge 相连

# 创建第一个veth对
ip netns add ns1                  # 创建命名空间 ns1
ip netns exec ns1 ip link set lo up # 在 ns1 中启用 loopback 接口

ip link add veth1 type veth peer name veth2 # 创建 veth1 和 veth2 接口
ip link set veth1 netns ns1       # 将 veth1 接口移动到命名空间 ns1

# 创建第二个veth对
ip netns add ns2                  # 创建命名空间 ns2
ip netns exec ns2 ip link set lo up # 在 ns2 中启用 loopback 接口

ip link set veth2 netns ns2       # 将 veth2 接口移动到命名空间 ns2

# 创建 Linux Bridge
ip link add name br0 type bridge  # 创建一个名为 br0 的 Linux Bridge
ip link set dev br0 up            # 启用 Linux Bridge

# 连接 veth 接口到 Linux Bridge
ip link set veth1 master br0      # 将 veth1 接口连接到 br0
ip link set veth2 master br0      # 将 veth2 接口连接到 br0
ip netns exec ns1 ip addr add 192.168.1.1/24 dev veth1   # 配置 veth1 的IP地址为 192.168.1.1/24
ip netns exec ns1 ip link set veth1 up                   # 启用 veth1 接口

ip netns exec ns2 ip addr add 192.168.1.2/24 dev veth2   # 配置 veth2 的IP地址为 192.168.1.2/24
ip netns exec ns2 ip link set veth2 up                   # 启用 veth2 接口

check

root@Copy-of-VM-U2204:~# ip netns exec ns2 ip r
192.168.1.0/24 dev veth2 proto kernel scope link src 192.168.1.2
root@Copy-of-VM-U2204:~# ip netns exec ns1 ip r
192.168.1.0/24 dev veth1 proto kernel scope link src 192.168.1.1
root@Copy-of-VM-U2204:~# 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.011 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.009 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.010 ms
^C
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2029ms
rtt min/avg/max/mdev = 0.009/0.010/0.011/0.000 ms
root@Copy-of-VM-U2204:~# ip netns exec ns2 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.007 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.010 ms

借别人一个图

Linux Bridge与veth_IP

标签:Bridge,ip,192.168,veth,link,veth1,veth2,Linux,netns
From: https://blog.51cto.com/first01/7763217

相关文章

  • Linux------微内核和宏内核以及混合型内核
    宏内核(MonolithicKernel)单一内核,宏内核将大多数操作系统功能集成在一个单一的内核中。性能:由于所有的功能都在内核空间运行,所以宏内核通常具有较高的性能,因为它可以直接访问内核数据结构和函数复杂性:宏内核的复杂性较高,容易导致内核变的庞大和难以维护。Linux......
  • Linux Centos7 安装Docker环境
    一、Docker介绍Docker是一个开源的容器引擎,基于Go语言开发,同时基于Apache2.0协议开发。对Docker简单的理解就是使用Docker可以把一台服务器隔离成一个个独立的容器,我们可以把这地方描述的容器理解成一个沙盒。在每个容器中运行一个程序,不同的容器之间相互隔离,容器的创建,停止,以及......
  • 【愚公系列】2023年10月 二十三种设计模式(七)-桥接模式(Bridge Pattern)
    ......
  • linux学习记录 10.9
    知识点:git-版本管理工具,一个树的结构来维护所有历史版本,可持久化,支持多人合作工作区:仓库的目录。工作区是独立于各个分支的。 =》暂存区:工作区写入版本库前的缓存区=》 版本库:将所有版本用一棵树的形式存下来每次head只会处于一个结点,要将当前暂存区存到版本库里的时候,就......
  • linux学习记录 10.8
    acterminal分配了如下信息:(1)user用户名  (2)hostnameip地址(3)password密码homework4getinfo查看上述信息 知识点:1、ssh登录到某个自己的服务器sshuser@hostname=登录服务器 exit/logout/ctrl+d=退出退出后进入.ssh看到一个known_hosts就会记录刚......
  • Arm Linux内存管理(一)
    ArmLinux内存管理(一)大文  2人赞同了该文章一、Armlinux的基本概念1.ArmLinux物理内存Arm平台内存大小的定义在DTS设备树中定义arch/arm/boot/dts/vexpress-v2p-ca9.dts中内核在启动过程中,需要解析dts文件。代码的调用关系为:start_kernel()->setu......
  • 学习笔记421—Win7下使用U盘安装linux Ubuntu16.04双系统图文教程
    Win7下使用U盘安装linuxUbuntu16.04双系统图文教程安装步骤:1、下载Ubuntu16.04镜像软件;2、使用ultraISO软件制作U盘启动盘;3、利用U盘启动盘来安装Ubuntu系统;4、使用EasyBCD创建启动系统启动引导;5、重启系统即可。Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的开源G......
  • Linux入门知识教程
    网络连接概念IP地址时一种逻辑地址,用来标识网络中一个个主机IP地址=网络地址+主机地址IP地址是一个4*8bit(1字节)由0/1组成的数字串(IP协议)子网掩码NETMASK子网掩码只有一个功能,就是将IP地址划分为网络地址+主机地址子网掩码与IP地址进行与运算(都为1的......
  • Linux file system All In One
    LinuxfilesystemAllInOne图解Linux文件系统filetype-fileddirectorybblocklsymbollink(softlink/hardlink)filepermissions3个字组,共三组;userpermission用户权限grouppermission组权限otherpermission其他权限每组符号表示的含义......
  • Linux系列---【shell脚本-模拟手动跑每天的定时任务】
    问题背景上线的时候经常会遇到这样的问题,上线一个每天跑的定时任务,一般跑最近一年的数据,上线的时候需要手动跑过去最近一年的数据,手动肯定不方便,于是这里写了一个好用的shell脚本,来降本增效。shell脚本#!/bin/bash#设置循环的日期范围start_date="20230801"end_date="20......