bridge-multicast-igmpsnooping

 # 1.topo


 # 2.创建命名空间
 ip netns add ns0
 ip netns add ns1
 ip netns add ns2
 ip netns add ns3

 # 3.创建veth设备
 ip link add ns0-veth0 type veth peer name hn0-veth0
 ip link add ns1-veth0 type veth peer name hn1-veth0
 ip link add ns2-veth0 type veth peer name hn2-veth0
 ip link add ns3-veth0 type veth peer name hn3-veth0

 # 4.veth设备放入命名空间,启动接口
 ip link set ns0-veth0 netns ns0
 ip link set ns1-veth0 netns ns1
 ip link set ns2-veth0 netns ns2
 ip link set ns3-veth0 netns ns3
 ip -netns ns0 link set ns0-veth0 up
 ip -netns ns1 link set ns1-veth0 up
 ip -netns ns2 link set ns2-veth0 up
 ip -netns ns3 link set ns3-veth0 up

 # 5.创建br0,添加接口到br0
 brctl addbr br0
 ip link set br0 up
 brctl addif br0 hn0-veth0
 brctl addif br0 hn1-veth0
 brctl addif br0 hn2-veth0
 brctl addif br0 hn3-veth0

 ip link set dev hn0-veth0 up
 ip link set dev hn1-veth0 up
 ip link set dev hn2-veth0 up
 ip link set dev hn3-veth0 up

 # 7.配置地址
 ip -netns ns0 addr add 1.1.1.10/24 dev ns0-veth0
 ip -netns ns1 addr add 1.1.1.11/24 dev ns1-veth0
 ip -netns ns2 addr add 1.1.1.12/24 dev ns2-veth0
 ip -netns ns3 addr add 1.1.1.13/24 dev ns3-veth0

 # 8.测试
 # 8.1测试iperf
 ip netns exec ns0 iperf -s -u -B 239.1.1.1 -p 5001   //server
 ip netns exec ns1 iperf -c 239.1.1.1 -p 5001 -u -b 0.1m -B 1.1.1.11
 ip netns exec ns2 iperf -c 239.1.1.1 -p 5001 -u -b 0.1m -B 1.1.1.12
 ip netns exec ns3 iperf -c 239.1.1.1 -p 5001 -u -b 0.1m -B 1.1.1.13
 tcpdump -i br0 -e


 # 8.2测试 igmp snooping

 ## bridge开启igmp snooping
 echo 1 > /sys/devices/virtual/net/br0/bridge/multicast_querier //启用 IGMP 查询器功能
 echo 1 > /sys/devices/virtual/net/br0/bridge/multicast_snooping // IGMP Snooping 功能^S
 echo 100 > /sys/devices/virtual/net/br0/bridge/multicast_query_interval //IGMP 查询消息的发送间隔
 echo 4 > /sys/devices/virtual/net/br0/bridge/multicast_query_response_interval

 echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 //关闭ipv6协议栈

 ## 添加组播组
 smcroute -d
 ip netns exec ns1 smcroute -d
 ip netns exec ns1 smcroutectl join ns1-veth0 239.0.0.99  //加入组播组
 ip netns exec ns2 smcroute -d
 ip netns exec ns2 smcroutectl join ns2-veth0 239.0.0.99  //加入组播组

 bridge mdb show br0

 ## 发送组播报文
 //发送组播
 ip netns exec ns0 ip route add 239.0.0.0/8 dev ns0-veth0  添加路由,sendip才发送处理组播报文
 ip netns exec ns0  sendip -p ipv4 -is 1.1.1.10  -id 239.0.0.99 -p udp -us 5000 -ud 5001 -d "Hello, Multicast!" 239.0.0.99

 ## 抓包
 ip netns exec ns1 tcpdump -i ns1-veth0 -e
 ip netns exec ns2 tcpdump -i ns2-veth0 -e
 ip netns exec ns3 tcpdump -i ns3-veth0 -e

 ns1、ns2能收到,ns3收不到。

 # 9.删除
 ip netns del ns0
 ip netns del ns1
 ip netns del ns2
 ip netns del ns3
 ip link set br0 down
 brctl delbr br0

ip link del hn0-veth0
ip link del hn1-veth0
ip link del hn2-veth0
ip link del hn3-veth0


 # 组播
 cat /sys/devices/virtual/net/br0/bridge/multicast_snooping
 cat /proc/net/igmp
 ip maddr show dev br0

 # smcroute
 ip netns exec ns0 smcroute -d  //命名空间开启进程
 smcroute -d  //开启进程
 smcroutectl join br0 224.0.0.99  //加入组播组
 smcroutectl leave br0 224.0.0.99  //离开组播组

 cat /proc/net/igmp
 cat /proc/sys/net/ipv4/conf/all/mc_forwarding

 发送单播报文
 ip netns exec ns0  sendip -p ipv4 -is 1.1.1.10  -id 1.1.12 -p udp -us 5000 -ud 5001 -d "Hello, Multicast!" 1.1.1.12

 # 11.参考
Ubuntu Manpage: smcroute — SMCRoute, a static multicast router

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

麒麟部署一套NFS服务器,用于创建网络文件系统

一、服务端共享目录 在本例中,kyserver01(172.16.200.10)作为客户端,创建一个目录/testdir并挂载共享目录;kyserver02(172.16.200.11)作为服务端,创建一个共享目录/test,设置为读写权限,要求客户端使用root登录时映射为nobody用户、非root登录时保持不变。 服务端启…

《线性代数的本质》

之前收藏的一门课,刚好期末复习,顺便看一看哈哈 课程链接:【线性代数的本质】合集-转载于3Blue1Brown官方双语】 向量究竟是什么 线性代数中最基础、最根源的组成部分就是向量,需要先明白什么是向量 不同专业对向量的看法 物理专…

Scala—Collections集合概述

Scala Scala-集合概述 ScalaScala集合概述1 不可变集合(Immutable Collections)2 可变集合(Mutable Collections)3 Scala 集合类的层次结构 Scala集合概述 在 Scala 中,集合主要分为两大类:可变集合&#…

LLC与反激电路设计【学习笔记】

LLC电路: LLC电路是由2个电感和1个电容构成的谐振电路,故称之为LLC: LLC电路通过谐振能够实现MOS管的软开(soft switching),减少开关损耗。另外MOS管的通态损耗也很低,换言之产生的焦耳热也少,这样就可以不…

java基础概念36:正则表达式1

一、正则表达式的作用 作用一:校验字符串是否满足规则;作用二:在一段文本中查找满足要求的内容。——爬虫 二、正则表达式 2-1、字符类 示例: public static void main(String[] args) {System.out.println("a".matc…

误删了照片,甚至对存储卡进行了格式化 都可以找到丢失的图片,并让您恢复它们 支持一键恢复或永久删除丢失的照片、视频、音乐、文档等-供大家学习研究参考

误删了照片,甚至对存储卡进行了格式化 都可以找到丢失的图片,并让您恢复它们 支持一键恢复或永久删除丢失的照片、视频、音乐、文档等。 建议及早恢复,覆盖就不能找回了~ 下载: https://download.csdn.net/download/weixin_43097…

candence: 常用的一些命令: Move / Mirror / Rotate / Spain / Fix / unFix / Flipdesign

常用的一些命令 一、 Move 移动 一个可移动一个,也可多个 移动器件 二、 Mirror 镜像 Mirror 就是top 和 bottom 层的器件进行相互转换 三、 Rotate 旋转 移动过程中旋转 四、旋转 Spain 不能在移动中旋转 可以一次旋转一个,也可多个 一次旋转…

(三)手势识别——动作识别应用【代码+数据集+python环境(免安装)+GUI系统】

(三)手势识别——动作识别应用【代码数据集python环境(免安装)GUI系统】 (三)手势识别——动作识别【代码数据集python环境GUI系统】 背景意义 随着互联网的普及和机器学习技术的进一步发展,手…

滑动窗口篇——如行云流水般的高效解法与智能之道(2)

前言: 上篇我们介绍了滑动窗口的含义并结合基础题型加以练习,本篇将以进阶难度的题目为索引,深化对于滑动窗口的运用与理解。 一. 将x减到0的最小操作数 题目链接:1658. 将 x 减到 0 的最小操作数 - 力扣(LeetCode&am…

微信小程序加载商品首页数据时,页码没有更新,老是page=1。

微信小程序加载商品首页数据时,页码没有更新,老是page1。 源代码 const { baseUrl } require(../../config/config); const config require(../../config/config) import { calcViewHeight, iPhone } from ~/utils/device const { getToken } requi…

优化Docker镜像:提升部署效率与降低资源消耗

目录 1. 最小化镜像层 2. 使用轻量级基础镜像 3. 多阶段构建 4. 清理不必要的文件和依赖 5. 使用.dockerignore文件 6. 压缩和优化文件系统 7. 外部化配置和数据 8. 限制容器资源 9. 定期清理未使用的镜像和容器 结论 在云计算和微服务架构的浪潮中,Docke…

自研芯片逾十年,亚马逊云科技Graviton系列芯片全面成熟

在云厂商自研芯片的浪潮中,亚马逊云科技无疑是最早践行这一趋势的先驱。自其迈出自研芯片的第一步起,便如同一颗石子投入平静的湖面,激起了层层涟漪,引领着云服务和云上算力向着更高性能、更低成本的方向演进。 早在2012年&#x…

ApiChain 从迭代到项目 接口调试到文档生成单元测试一体化工具

项目地址:ApiChain 项目主页 ApiChain 简介 ApiChain 是一款类似 PostMan 的接口网络请求与文档生成软件,与 PostMan 不同的是,它基于 项目和迭代两个视角管理我们的接口文档,前端和测试更关注版本迭代中发生变更的接口编写代码…

游戏引擎学习第22天

移除 DllMain() 并成功重新编译 以下是对内容的详细复述与总结: 问题和解决方案: 在编译过程中遇到了一些问题,特别是如何告知编译器不要退出程序,而是继续处理。问题的根源在于编译过程中传递给链接器的参数设置不正确。原本尝试…

“软件定义汽车”时代 | 产线海量数据刷写解决方案

一 背景 从起初汽车概念问世时期的“机械定义汽车”,到电力出现后的“电器定义汽车”,再到电子科技迅猛发展后的“电子定义汽车”,再到如今的“软件定义汽车”,可以看出,软件在车辆中扮演着越来越重要的角色。与此同时…

基于预测反馈的情感分析情境学习

🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月25日20点02分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…

自制Windows系统(十)

上图 (真的不是Windows破解版) 开源地址:仿Windows

CTF-RE 从0到 N: 高版本 APK 调试 + APK逻辑修改再打包 + os层调试[2024 强网杯青少年专项赛 Flip_over] writeup

非常好的题,很适合新手入门!!! how tu use JEB 通过百度网盘分享的文件:app-debug.apk 链接:https://pan.baidu.com/s/11oPBq7LTnzasuefGeU6mXA?pwd1111 提取码:1111 --来自百度网盘超级会员V2的分享step1 反编译查看Manifest android:…

Taro React小程序开发框架 总结

目录 一、安装 二、目录结构 三、创建一个自定义页面 四、路由 1、API 2、传参 3、获取路由参数 4、设置TabBar 五、组件 六、API Taro非常好用的小程序框架,React开发者无缝衔接上。 一、安装 官方文档:Taro 文档 注意,项目创建…

qt添加模块

以QtNetwork模块为例 方式一 扩展-qt vs tools-qt project settings 方式二 右键选中项目-属性-qt project settings 方法三 在此界面选择select modules,即可进行相应模块添加