bridge

Linux虚拟网络设备之bridge(桥)

为君一笑 提交于 2020-08-09 18:06:50
继前两篇介绍了 tun/tap 和 veth 之后,本篇将介绍Linux下常用的一种虚拟网络设备,那就是bridge(桥)。 本篇将通过实际的例子来一步一步解释bridge是如何工作的。 什么是bridge? 首先,bridge是一个虚拟网络设备,所以具有网络设备的特征,可以配置IP、MAC地址等;其次,bridge是一个虚拟交换机,和物理交换机有类似的功能。 对于普通的网络设备来说,只有两端,从一端进来的数据会从另一端出去,如物理网卡从外面网络中收到的数据会转发给内核协议栈,而从协议栈过来的数据会转发到外面的物理网络中。 而bridge不同,bridge有多个端口,数据可以从任何端口进来,进来之后从哪个口出去和物理交换机的原理差不多,要看mac地址。 创建bridge 我们先用iproute2创建一个bridge: dev@debian:~$ sudo ip link add name br0 type bridge dev@debian:~$ sudo ip link set br0 up 当刚创建一个bridge时,它是一个独立的网络设备,只有一个端口连着协议栈,其它的端口啥都没连,这样的bridge没有任何实际功能,如下图所示: +----------------------------------------------------------------+ | | |

Carla for Windows以及和虚拟机里ROS Bridge的交互

大憨熊 提交于 2020-08-08 18:43:14
Carla是一个开源的自动驾驶测试框架,类似于Airsim。如果你搜索到了这篇文章,你应该已经大概知道carla是做什么的了。 Carla有pre built binary,Linux和Windows平台的都有,也有官方的build tutorial,我自己尝试了下在Windows下的编译。结果第一步就出现了compiler error,因为懒所以我干脆用了他的官方二进制。 https://github.com/carla-simulator/carla/releases 在0.9.5有Windows的二进制下载 解压后打开root directory的可执行文件,会产生一个类似下图的可交互界面。 这时候产生的是一个Server,是一个world。你可以用wasd和鼠标控制Ego的视角,到处飞行。 在PythonAPI文件夹下有一个叫example的文件夹,里面有一些python实列文件可以展示设置client和server进行交互。 当然,我们今天说的是要和ROS bridge交互。0.9.5的ROS bridge可以在下边的链接下载 https://github.com/carla-simulator/ros-bridge/releases 下载解压以后,具体如何编译和使用都在一下可以找到 https://github.com/carla-simulator/ros

斯坦福Machine Learning with Graphs 学习笔记(第一讲)

百般思念 提交于 2020-08-08 15:42:06
作者: 林夕 本文长度为 2900字 ,建议阅读 9分钟 本文为大家介绍图网络的基本概念、网络的应用以及图的结构。 目录 一、Why Networks 二、网络的应用 2.1 应用领域 三、图的结构 3.1 网络表示的选择 3.2 点的度(Degree) 3.3 图的表示方式 邻接矩阵(Adjacency Matrix) 边列表(Edge list) 邻接列表(Adjacency list) 3.4 图的连通性 参考资料 最近我们小组开始整理CS224W机器学习图网络的一些笔记,这是第一课对应的PPT。 课程相关PPT链接: http://web.stanford.edu/class/cs224w/slides/01-intro.pdf 一、Why Networks 第一部分简单介绍下关于图网络的一些基本定义,应用和意义。 网络的定义: 网络是描述一系列交互实体的复杂系统的一种通用语言。 网络(Network)和图(Graph)的一些区别: 网络 通常指真实的系统,eg.互联网、社交网络、信息网络、代谢网络、常用的表达有网络、节点、关系等; 图是网络的数学表达方式 ,比如互联网图谱、社交图谱、知识图谱、场景图、分子图(分子预测模型)。常用表达有图、顶点、边等词; 网络的概念比图的概念总体来看会大一点 ,但是总的来说network和graph区别也是比较模糊的,在实际中

使用kubeadm安装k8s系统

一个人想着一个人 提交于 2020-08-07 19:03:32
各节点必须能上网,cpu个数要大于等于2 master 192.168.1.63 node1 192.168.1.62 node2 192.168.1.64 配置master 配置主机名互相解析 [root@master ~]#vim /etc/hosts 192.168.1.63 master.example.com master 192.168.1.62 node1.example.com node1 192.168.1.64 node2.example.com node2 关闭selinux [root@master ~]#vim /etc/selinux/config SELINUX=disabled [root@master ~]#setenforce 0 关闭防火墙 [root@master ~]#systemctl stop firewalld [root@master ~]#systemctl disable firewalld 准备yum源 [root@master ~]#cd /etc/yum.repos.d/ [root@master yum.repos.d]#wget http://mirrors.aliyun.com/repo/Centos-7.repo [root@master yum.repos.d]#wget https://mirrors

Docker学习笔记 第六篇 网络

余生长醉 提交于 2020-08-07 07:52:58
Dokcer通过使用 Linux 桥接提供容器之间的通信,docker0 桥接接口的目的就是方便 Docker 管理。当 Docker daemon 启动时需要做以下操作 1 Docker网络 1.1 简介 Dokcer通过使用 Linux 桥接提供容器之间的通信,docker0 桥接接口的目的就是方便 Docker 管理。当 Docker daemon 启动时需要做以下操作: 如果 docker0 不存在则创建 搜索一个与当前路由不冲突的 ip 段 在确定的范围中选择 ip 绑定 ip 到 docker0 1.2 Docker的四种网络模式 docker run 创建 Docker 容器时,可以用 --net 选项指定容器的网络模式,Docker 有以下 4 种网络模式: host 模式:使用 --net=host 指定 container 模式:使用 --net=container:NAMEorID 指定 none 模式:使用 --net=none 指定 bridge 模式:使用 --net=bridge 指定,默认设置 1.2.1 host 模式 如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等

使用 kubeadm 安装 kubernetes 1.8.2 最新完整教程

青春壹個敷衍的年華 提交于 2020-08-07 07:29:36
本文讲述了如何在centos 8系统上,使用 kubeadm 安装 kubernetes 1.8.2 的方法,文章为作者一步一步实践后写的,综合了很多的文章,解决了很多安装中的问题。 安装前说明 作者在安装kubernetes的过程中历尽艰辛,综合了官方文档和网上各种资料,踏过了安装中的各种坑,终于在不断尝试的过程中总结出了安装过程中的尽可能多可能出现的错误,并在本教程中一一解决问题。 目标: 在centos 8 机器上通过kubeadm安装kubernetes 1.8.2 使用机器: centos 8 (本地虚拟机和华为云均测试通过),一台 安装说明 如果您只有一台centos8 机器,可以安装单机版kubeadm,单机版和集群版的最大区别在于work节点是否和master节点在同一台机子上 不管是否使用单机版还是集群版,他们都有同一个kubernetes安装流程,区别在于集群初始化以后。本文最后会讲解如何做单机版和集群版 您完全可以按照本文进行完整的安装过程 开始安装 基本配置 设置主机名 hostnamectl set-hostname guopf-master #guopf-master为你想要设置的主机名,你可以修改 编辑hosts文件 vi /etc/hosts 在最后追加以下内容 192.168.75.128 guopf-master 注意,上面的Ip为你的实际ip

k8s 1.8.2部署实践

☆樱花仙子☆ 提交于 2020-08-06 13:21:41
由于业务需要,近期在研究k8s,故就需要先部署一套。我通过官方文档来部署发现还是有一些坑,故整理了部署中遇到的问题做个记录。本文章主要介绍了在centos7环境下k8s 1.8.2+dashboard+metrics server+ingress的部署。 系统环境 1,k8s的版本为1.8.2 2,docker ce的版本为19.03.8-3 3,五台主机操作系统版本为centos7,kernel版本3.10.0-957 4,使用五台主机部署,机器列表 172.18.2.175 master1 172.18.2.180 master2 172.18.2.181 master3 172.18.2.186 work1 172.18.2.187 work2 172.18.2.182 apiserver-lb 部署HA架构 1,etcd是使用Go语言开发的一个开源的、高可用的强一致性分布式key-value存储系统,可以用于配置共享和服务的注册和发现集群,每个节点都可以提供服务。 2,kubernetes系统组件间只能通过API服务器通信,它们之间不会直接通信,API服务器是和etcd通信的唯一组件。 其他组件不会直接和etcd通信,需要通过API服务器来修改集群状态。 3,controller-manager和scheduler监听API服务器变化,如果API服务器有更新则进行对应的操作

1.docker学习笔记之入门,redis主从前的准备 docker安装

≡放荡痞女 提交于 2020-08-06 06:53:54
1、更新update到最新的版本 yum update 2、卸载老版本docker yum remove docker docker-common docker-selinux docker-engine 3、安装需要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2 4、设置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 5、查看docker版本 yum list docker-ce --showduplicates|sort -r 6、安装docker yum install docker-ce-18.03.1.ce -y 7、启动docker systemctl start docker 8、加入开机自启 systemctl enable docker 9、配置国内镜像 vi /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com"] } Docker 包括三个基本概念: 镜像(Image) 容器(Container) 仓库(Repository) 1.启动 docker

STP协议

浪尽此生 提交于 2020-08-05 16:00:29
1.STP的作用,协议收敛后交换网络中任意两台设备之间有且只有一条可行路径,即可以避免单点故障,又可以解决广播风暴。 2.生成树收敛过程:选举根交换机,根端口,指定端口。 3.SPT选举过程需要使用的参数 Bridge-ID(桥ID):运行STP的设备会有一个全网唯一的设备标识符号,叫做BID。BID(64bit)=priority(16bit)+mac(48bit) cop(路径开销):stp协议将不同的链路带宽对应到一个固定的数值上,这个数值就是cost,而从一台交换机的一个接口到达根交换机的路径开销之和,就是cop值。 cop在计算的时候,接口在发送报文的时候cop值不增加,接口在接受报文的时候cop才增加。 port-id(端口ID):运行STP的设备上的每个端口都会有一个PID。PID(16bit)=priority(8bit)+接口编号(8bit) 4.根交换机的选举 STP刚开始运行,所有交换机都认为自己是网络中的根交换机,然后交换机通过所有端口向外发送BPDU报文,BPDU报文中包含交换机的BID信息,交换机得到彼此的BPDU后,通过比较邻居交换机和自己的BID大小,谁的BID小,谁就是根交换机。 5.根端口的选举 根端口是非根交换机上距离根交换机最近的端口,每个非根交换机只有一个根端口。 比较接口入cop值的大小,越小越优 比较接口对的设备的BID大小,越小越优

KVM--磁盘+快照+克隆+网络管理

半世苍凉 提交于 2020-08-05 12:57:25
一、磁盘与快照管理 这个段落主要介绍磁盘与快照的管理! 在KVM虚拟机中有两种磁盘格式,**分别是:** * RAW:裸格式。占用空间较大,性能比较好,但不支持快照功能; * qcow2:占用空间较小,性能相比较RAW稍差,,但它支持快照功能; (1)虚拟磁盘管理 举例说明: [root@localhost ~]# qemu-img create 1234.raw 5G //创建虚拟磁盘,名称为1234.raw,大小为5G,创建磁盘默认格式为raw [root@localhost ~]# qemu-img create -f qcow2 123.qcow2 5G //创建虚拟磁盘,名称为123.qcow2,大小为5G,创建时指定磁盘格式为qcow2 [root@localhost ~]# qemu-img info 1234.raw //查看1234.raw磁盘的详细信息 [root@localhost ~]# qemu-img info 123.qcow2 //查看123.qcow2磁盘的详细信息 //以上操作建议在一个创建的测试目录中 以下操作将本地磁盘格式转换为qcow2 [root@localhost ~]# cd /kvm/disk/ //KVM虚拟磁盘存放路径 [root@localhost disk]# qemu-img info web01.raw /