网桥

计算机网络常见硬件设备

我们两清 提交于 2019-11-28 20:20:31
一、网卡(Network Interface) 使计算连网的网络设备。 二、中继器(RP Repeater) 工作在物理层上的连接设备,OSI模型的物理层设备。 适用于完全相同的两类网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。 中继器是对信号进行再生和还原的网络设备。 即使数据在链路层出现错误,中继器依然转发数据。 不改变传输速度。 不能在传输速度不一致的媒介之间转发。 有些中继器提供多个端口服务,这种中继器被称为中继集线器或集线器。 三、网桥(Bridge) 工作在OSI模型的第二层-数据链路层连接两个网络的设备。 根据数据帧内容转发数据给其他相邻的网络。 基本只用于连接相同类型的网络,有时候也连接传输速率不一致的网络。 网桥是一种对帧进行转发的技术,根据MAC分区块,可隔离碰撞。 具备“自学习”机制,网桥对站点所处网段的了解是靠“自学习”实现的,有透明网桥、转换网桥、封装网桥、源路由选择网桥。 以太网中常用的交换集线器也是网桥的一种。 四、路由器(Router) 工作在OSI的第三层-网络层连接网络与网络的设备。 可以将分组报文发送到另一个目标路由器地址。 基本上可以连接任意两个数据链路。 具有分担网络负荷、网络安全功能。 五、交换机(Switch) 交换机可以说同时是集线器和网桥的升级换代产品,因为交换机具有集线器一样的集中连接功能

docker网络模式

落花浮王杯 提交于 2019-11-28 18:26:11
部分参考,写的很好:https://blog.csdn.net/liukuan73/article/details/51603074 1.1 host 模式 众所周知,Docker 使用了Linux 的Namespaces 技术来进行资源隔离,如PID Namespace 隔离进程,Mount Namespace 隔离文件系统,Network Namespace 隔离网络等。一个Network Namespace 提供了一份独立的网络环境,包括网卡、路由、Iptable 规则等都与其他的Network Namespace 隔离。一个Docker 容器一般会分配一个独立的Network Namespace 。但如果启动容器的时候使用host 模式,那么这个容器将不会获得一个独立的Network Namespace ,而是和宿主机共用一个Network Namespace 。容器将不会虚拟出自己的网卡,配置自己的IP 等,而是使用宿主机的IP 和端口,Docker Container可以和宿主机一样,使用宿主机的eth0,实现和外界的通信。换言之,Docker Container的IP地址即为宿主机eth0的IP地址。 例如,我们在 10.10.101.105/24的机器上用 host模式启动一个含有 web应用的 Docker容器,监听 tcp80端口。当我们在容器中执行任何类似

Linux

早过忘川 提交于 2019-11-28 13:15:11
linux基础 #       Linux   bond 添加bond: 1、创建个 ifcfg-bond0文件 2、DEVICE=bond0 BOOTPROTO=none IPADDR=192.168.38.100 PREFIX=24 GATEWAY=192.168.38.2 DNS=180.76.76.76 BONDING_OPTS="mode=1 miimon=100" 3、添加从属网卡 vim ifcfg-eth0 DEVICE=eth0 MASKER=bond0 SLAVE=yes vim ifcfg-eth1 DEVICE=eth1 MASKER=bond0 SLAVE=yes 4、cat /proc/net/bonding/bond0 可以查看当前用的是哪块网卡 ifconfig -a 查看所有活动和禁用的网卡 删除bond 1、rm -f ifcfg-bond0 2、修改改过的eth0 eth1网卡 3、lsmod | grep bond 查看bond的驱动模块 4、rmmod bonding 删除bond驱动模块 5、启用eth1 eth0 网卡 centos7网卡配置 centos7更改网卡名称,在/etc/default/grub,在倒数第二行的后面加上 net.ifnames=0 改完之后,执行 grub2-mkconfig -o /boot/grub2

云计算底层技术-使用openvswitch

一个人想着一个人 提交于 2019-11-28 07:24:07
https://opengers.github.io/openstack/openstack-base-use-openvswitch/ Posted on January 23, 2017 by opengers in openstack Open vSwitch介绍 OVS架构 ovs-vswitchd ovsdb-server OpenFlow Controller Kernel Datapath OVS概念 Bridge Port Interface Controller datapath OVS中的各种流(flows) OpenFlow flows “hidden” flows datapath flows 管理flows的命令行工具 ovs-*工具的使用及区别 Open vSwitch介绍 在过去,数据中心的服务器是直接连在硬件交换机上,后来VMware实现了服务器虚拟化技术,使虚拟服务器(VMs)能够连接在虚拟交换机上,借助这个虚拟交换机,可以为服务器上运行的VMs或容器提供逻辑的虚拟的以太网接口,这些逻辑接口都连接到虚拟交换机上,有三种比较流行的虚拟交换机: VMware virtual switch, Cisco Nexus 1000V,和Open vSwitch Open vSwitch(OVS)是运行在虚拟化平台上的虚拟交换机,其支持OpenFlow协议

OVS架构

吃可爱长大的小学妹 提交于 2019-11-28 07:23:07
先看下OVS整体架构,用户空间主要组件有数据库服务ovsdb-server和守护进程ovs-vswitchd。kernel中是datapath内核模块。最上面的Controller表示OpenFlow控制器,控制器与OVS是通过OpenFlow协议进行连接,控制器不一定位于OVS主机上,下面分别介绍图中各组件 ovs1 ovs-vswitchd ovs-vswitchd 守护进程是OVS的核心部件,它和 datapath 内核模块一起实现OVS基于流的数据交换。作为核心组件,它使用openflow协议与上层OpenFlow控制器通信,使用OVSDB协议与 ovsdb-server 通信,使用 netlink 和 datapath 内核模块通信。 ovs-vswitchd 在启动时会读取 ovsdb-server 中配置信息,然后配置内核中的 datapaths 和所有OVS switches,当ovsdb中的配置信息改变时(例如使用ovs-vsctl工具), ovs-vswitchd 也会自动更新其配置以保持与数据库同步 # ps -ef |grep ovs-vs root 22176 22175 0 Jan17 ? 00:16:56 ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err

Openvswitch原理与代码分析(2): ovs-vswitchd的启动

旧城冷巷雨未停 提交于 2019-11-28 07:21:51
ovs-vswitchd.c的main函数最终会进入一个while循环,在这个无限循环中,里面最重要的两个函数是bridge_run()和netdev_run()。 Openvswitch主要管理两种类型的设备,一个是创建的虚拟网桥,一个是连接到虚拟网桥上的设备。 其中bridge_run就是初始化数据库中已经创建的虚拟网桥。 一、虚拟网桥的初始化bridge_run bridge_run会调用bridge_run__,bridge_run__中最重要的是对于所有的网桥,都调用ofproto_run static void bridge_run__(void) { …… /* Let each bridge do the work that it needs to do. */ HMAP_FOR_EACH (br, node, &all_bridges) { ofproto_run(br->ofproto); } } Int ofproto_run(struct ofproto *p)会调用error = p->ofproto_class->run(p); ofproto_class的定义在ofproto-provider.h中,它的实现定义在ofproto-dpif.c中,这里面的所有的函数,在这个文件中都有定义。 const struct ofproto_class

openstack中母机重启后网桥设置

耗尽温柔 提交于 2019-11-28 03:25:29
# 需求:迁移环境母机在重启后,需要手动配置网桥 重启后,如下图示: [root@host-10-123-98-218 ~]# ifconfig eth1 Link encap:Ethernet HWaddr 00:E0:81:E6:6C:3B inet addr:10.123.98.218 Bcast:10.123.98.255 Mask:255.255.255.192 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5374 errors:0 dropped:0 overruns:0 frame:0 TX packets:4010 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:584689 (570.9 KiB) TX bytes:575491 (562.0 KiB) Memory:f7900000-f7920000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:163 errors:0 dropped:0

kvm虚拟化网络管理(4)

℡╲_俬逩灬. 提交于 2019-11-28 03:10:45
一、Linux Bridge网桥管理 网络虚拟化是虚拟化技术中最复杂的部分,也是非常重要的资源。 第一节中我们创建了一个名为br0的linux-bridge网桥,如果在此网桥上新建一台vm,如下图: VM2 的虚拟网卡 vnet1 也连接到了 br0 上。 现在 VM1 和 VM2 之间可以通信,同时 VM1 和 VM2 也都可以与外网通信。 查看网络状态: 用brctl show 显示当前网桥连接状态: brctl命令: 二、Vlan介绍 LAN 表示 Local Area Network,本地局域网,通常使用 Hub 和 Switch 来连接 LAN 中的计算机。一般来说,两台计算机连入同一个 Hub 或者 Switch 时,它们就在同一个 LAN 中。 一个 LAN 表示一个广播域。 其含义是:LAN 中的所有成员都会收到任意一个成员发出的广播包。 VLAN 表示 Virtual LAN。一个带有 VLAN 功能的switch 能够将自己的端口划分出多个 LAN。计算机发出的广播包可以被同一个 LAN 中其他计算机收到,但位于其他 LAN 的计算机则无法收到。 简单地说,VLAN 将一个交换机分成了多个交换机,限制了广播的范围,在二层将计算机隔离到不同的 VLAN 中。 比方说,有两组机器,Group A 和 B,我们想配置成 Group A 中的机器可以相互访问,Group

生成树协议

邮差的信 提交于 2019-11-28 02:15:05
为了保证网络的可靠性,我们一般选择冗余拓扑结构,但在冗余拓扑中,会出现环路。 环路带来的问题:1、广播风暴 2、帧的重复复制 3、交换机MAC地址表的不稳定 解决以上环路问题,我们引入了生成树协议。他能够发现并自动消除冗余拓扑中的环路。 1、采用SPA算法使冗余端口置于“阻塞状态” 2、网络中只有一条链路生效 3、当生效的链路出现故障时,将处于“阻塞状态”的端口重新打开,从而确保网络的可靠性 STP相关概念:桥ID 端口ID 根桥 非根桥 根端口 指定端口 阻塞端口 根路径开销 Foreoding Blocking BPDU 桥ID :网桥ID的交换机将成为根网桥。 分为两类 网桥优先级【2字节】网桥MAC地址【6字节】 网桥优先级:0到65535 默认值32768(0x8000) 首先判断网桥优先级,优先级最低的网桥将成为根网桥;如果网桥优先级相同,则比较网桥MAC地址,具有最低MAC地址的的交换机或网桥将成为根网桥。 端口ID:参与选举跟端口。 分为两类 端口优先级【1字节】端口编号【1字节】 端口优先级:0到255 默认值128(0x80) 端口优先级数值越小,则优先级越高;如果端口优先级相同,则编号越小,优先级越高。 STP规则:每个网络有且只有一个根桥;每个非根桥有只有一个跟端口;每条链路有且只有一个指定端口;根桥的所有端口均为指定端口

网桥的实现方法

人走茶凉 提交于 2019-11-28 00:46:55
在不同的网段的主机要进行通信时,必须要经过路由器,例如下图1所示 但是有时在缺少路由器的情况之下,可以借助一台linux系统的机器来实现搭桥功能,这就是桥接。 方法一 在linux上实现网桥的功能需要模块的支持,安装工具包 yum -y install bridge-utils 1.创建网桥 brctl addbr name 2.启用生成数协议 brctl stp name on 3.添加接口到网桥 brctl addif name port1 brctl addif name port2 4.开启网桥的接口 方法二 1.创建软件网桥 nmcli connect add con-name ** type bridge ifname *** nmcli connect add con-name ++ type bridge-slave ifname prot1 master *** nmcli connect add con-name -- type bridge-slave ifname port2 master *** 2.启用此连接 来源: https://blog.51cto.com/14240018/2431037