bridge

Linux Namespace : Network

[亡魂溺海] 提交于 2020-05-05 10:06:59
Network namespace 在逻辑上是网络堆栈的一个副本,它有自己的路由、防火墙规则和网络设备。 默认情况下,子进程继承其父进程的 network namespace。也就是说,如果不显式创建新的 network namespace,所有进程都从 init 进程继承相同的默认 network namespace。 每个新创建的 network namespace 默认有一个本地环回接口 lo,除此之外,所有的其他网络设备(物理/虚拟网络接口,网桥等)只能属于一个 network namespace。每个 socket 也只能属于一个 network namespace。 说明:本文的演示环境为 ubuntu 16.04。 ip netns 命令 ip netns 命令用来管理 network namespace。本文将使用 ip netns 命令来创建和操作 network namespace。有关 ip netns 命令的详细介绍请参考笔者的博文《 Linux ip netns 命令 》。 创建 network namespace 我们先查一下看默认的 network namespace 的 ID: $ readlink /proc/$$/ns/net 然后通过 ip netns add 命令创建名为 mynet 的 network namespace: $ sudo

史上代码最简单,讲解最清晰的双连通分量

给你一囗甜甜゛ 提交于 2020-05-05 08:15:47
史上代码最简单,讲解最清晰的双连通分量 (需提前学习强连通分量) 双连通分量的主要内容包括割点、桥(割边)、点双和边双,分别对应 4 个 Tarjan 算法。 所有算法的时间复杂度均为 O(n + m)。 双连通分量用到 DFS 树的性质,所有的边分别树边和返祖边两类,大大简化了代码。 双连通分量具有大量的性质,要能熟练掌握。 一些定义:树枝边:DFS时经过的边(由上至下); 返祖边:与DFS方向相反,从某个节点指向某个祖先的边; 注意:在无向图中,不能用dfn[fa]更新low[u];所以我们需要标记fa; 但如果有重边,就可以;所以我们可以记录它的上一条边;利用成对储存的思想记录上一条边来判重; 求割点: 割点性质: (1)根结点如果是割点当且仅当其子节点数大于等于 2; (2)非根节点 u 如果是割点,当且仅当存在 u 的一个子树,子树中没有连向 u 的祖先的边(返祖边)。 代码: void tarjan( int u, int fa) // 当fa=0时,说明该节点是根节点; { int num= 0 ; // 用来计量子节点数; low[u]=dfn[u]=++ cur; for ( int i=head[u];i;i=star[i].to){ // 链式前向星存图; int v= star[i].to; if (! dfn[v]){ tarjan(v,u); low[u

centos8平台用NetworkManager/nmcli管理网络

∥☆過路亽.° 提交于 2020-05-04 23:43:13
一,centos8上,网络服务的管理需要NetworkManager服务 1,NetworkManager的服务操作 启动 [root@localhost network-scripts]# systemctl start NetworkManager 停止 [root@localhost network-scripts]# systemctl stop NetworkManager 查看状态 [root@localhost network-scripts]# systemctl status NetworkManager 2,NetworkManager和nmcli所属的包: [root@localhost network-scripts]# whereis nmcli nmcli: /usr/bin/nmcli /usr/share/ man /man1/nmcli. 1 .gz [root@localhost network -scripts]# rpm -qf /usr/bin/ nmcli NetworkManager - 1.20 . 0 - 5 .el8_1.x86_64 centos8系统默认已安装了这个rpm包,无需手动安装, 如果误删除了可以用yum命令安装 [root@localhost yum .repos.d]# yum install

Hive 窗口函数之 lead() over(partition by ) 和 lag() over(partition by )

那年仲夏 提交于 2020-05-04 08:39:40
lead函数用于提取当前行前某行的数据 lag函数用于提取当前行后某行的数据 语法如下: lead(expression,offset,default) over(partition by ... order by ...) lag(expression,offset,default) over(partition by ... order by ... ) 例如提取前一周和后一周的数据,如下: select   year,week,sale,   lead(sale,1,NULL) over(--前一周sale partition by product,country,region order by year,week) lead_week_sale,   lag(sale,1,NULL) over(--后一周sale partition by product,country,region order by year,week) lag_week_sale from sales_fact a where a.country='country1' and a.product='product1' and region='region1' order by product,country,year,week 实例2: SELECT     created_at create_time

kubeadm安装Kubernetes 1.14最佳实践

我们两清 提交于 2020-05-02 11:05:51
前言 Kubernetes作为容器编排工具,简化容器管理,提升工作效率而颇受青睐。很多新手部署Kubernetes由于“上网”问题举步维艰,本文以实战经验详解kubeadm不用“翻墙”部署Kubernetes的最简方法。 一、Kubernetes简介 Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性。 K8S集群中有管理节点与工作节点两种类型。管理节点主要负责K8S集群管理,集群中各节点间的信息交互、任务调度,还负责容器、Pod、NameSpaces、PV等生命周期的管理。工作节点主要为容器和Pod提供计算资源,Pod及容器全部运行在工作节点上,工作节点通过kubelet服务与管理节点通信以管理容器的生命周期,并与集群其他节点进行通信。 二、环境准备 Kubernetes支持在物理服务器或虚拟机中运行,本次使用虚拟机准备测试环境,硬件配置信息如表所示: IP地址 节点角色 CPU Memory Hostname 磁盘 10.10.10.10 master >=2c >=2G master sda、sdb 10.10.10.11

使用kubeadm安装kubernetes

♀尐吖头ヾ 提交于 2020-05-02 10:30:27
安装kubenetes的方法有多种,本文将介绍如何用kubeadm安装kubernetes。 一 node准备 1 /etc/hosts文件 192.168.235.133 kube01 192.168.235.134 kube02 192.168.235.135 kube03 2 关闭swap swapoff -a 注释/etc/fstab中的swap挂载 #/dev/mapper/centos-swap swap swap defaults 0 0 3 修改内核参数 cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system 4 安装docker yum install docker -y systemctl enable docker systemctl start docker 二 安装kubeadm 1 增加yum的repo cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum

KVM + LinuxBridge 的网络虚拟化解决方案实践

人盡茶涼 提交于 2020-05-02 10:18:35
目录 文章目录 目录 前言 Linux bridge 的基本操作 创建 Bridge 将 veth pair 连上 Bridge 为 Bridge 配置 IP 地址 将物理网卡接口设备挂靠 Bridge Linux Bridge 与虚拟机 Linux Bridge 与容器 Linux Bridge 的 MAC 地址行为 Linux Bridge 常用指令 KVM 虚拟机应用 Linux Bridge + VLAN 实现网络隔离 TSG KVM 虚拟机应用 Linux Bridge + VLAN 实现网络隔离与跨主机互通 使用 tcpdump 抓包,分析网络包传输路劲 KVM 虚拟机应用 Linux Bridge + VLAN 实现网络隔离、跨主机互通并且与外网互通 总结:KVM + LinuxBridge 的网络虚拟化方案 参考文章 前言 本文相关的网络术语、基本概念与实现原理均有在 在 《Networking 基本术语/概念》 一文中提及,本文不再赘述。本篇主要以实践的角度来学习、记录和体会 KVM+LinuxBridge 虚拟化解决方案的实现细节。 Linux bridge 的基本操作 创建 Bridge brctl addbr br0 ip link set br0 up 刚新建的 bridge 是一个独立的虚拟网络设备,现阶段只有一个端口连着网络协议栈(TCP/IP

kubenetes 入门系列安装之kubeadm安装

亡梦爱人 提交于 2020-05-02 08:36:08
kubenetes 入门系列安装之kubeadm安装 k8s的安装有多种方式,如yum安装,kubeadm安装,kubemini安装,二进制安装(生产环境多采用此方式精确控制安装)等。本文是入门系列验证,之前进行过yum安装,可以查看文章《 k8s入门系列之集群yum安装篇 》 。这里进行kubeadm安装一次了解安装过程,真正的学习、测试环境和生产环境都不建议此方法,都建议yum安装或者二进制安装,这样才可以详细了解到k8s的工作原理和工作过程 1,关闭防火墙服务,避免与docker容器的防火墙规则冲突。 systemctl stop firewalld systemctl disable firewalld 2,关闭selinux: 修改/etc/selinux/config为SELINUX=disabled 重启后配置生效。不建议临时关闭(setenfore 0),防止机器重启失效。 3,关闭swap: 临时关闭: swapoff -a 永久关闭: sed -i 's/.*swap.*/#&/' /etc/fstab 4,host定向,将机器内部主机名通信打通: vi /etc/hosts 192.168.92.139 master 192.168.92.132 node1 5,master机器设置免密钥登陆其他两个node ssh-keygen # 生成密钥对 cd

图论学习七之Cut & Bridge

折月煮酒 提交于 2020-05-01 23:13:27
      需要解决的问题 • 无向图的割点、割点集合与点连通度 • 无向图的桥、 割边集合与边连通度 • 无向图的割点与点双连通分量的求法 • 无向图的桥与边双连通分量的求法、边双连通分量的构造 • 相关例题讨论       割点 • 在无向连通图 G 上进行如下定义: • 割点:若删掉某点 P 后, G 分裂为两个或两个以上的子图,则称 P 为 G 的割点。 • 割点集合: 在无向连通图 G 中,如果有一个顶点集合,删除这个 顶点集合以及与该点集中的顶点相关联的边以后, 原图分成多于 一个连通块,则称这个点集为 G 的割点集合。 • 点连通度:最小割点集合的大小称为无向图 G 的点连通度。       割边 • 类似地,在无向连通图 G 上进行如下定义: • 桥 ( 割边 ) :若删掉某条边 b 后, G 分裂为两个或两个以上的子图, 则称 B 为 G 的桥 ( 割边 ) 。 • 割边集合:如果有一个边集合,删除这个边集以后, 原图分成多 于一个连通块, 则称这个边集为割边集合。 • 边连通度:最小割边集合的大小称为无向图 G 的边连通度。       双连通分量 • 点双连通图:点连通度大于 1 的图称为点双连通图(没有割点)。 • 边双连通图:边连通度大于 1 的图称为边双连通图(没有割边)。 • 无向图 G=<V,E> 的极大 ( 点 / 边 ) 双连通子图称为 ( 点

BZOJ1023: [SHOI2008]cactus仙人掌图(仙人掌dp)

天大地大妈咪最大 提交于 2020-05-01 22:02:20
Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3467 Solved: 1438 [ Submit ][ Status ][ Discuss ] Description   如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人掌 图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。   举例来说,上面的第一个例子是一张仙人图,而第二个不是——注意到它有三条简单回路:(4,3,2,1,6 ,5,4)、(7,8,9,10,2,3,7)以及(4,3,7,8,9,10,2,1,6,5,4),而(2,3)同时出现在前两 个的简单回路里。另外,第三张图也不是仙人图,因为它并不是连通图。显然,仙人图上的每条边,或者是这张仙 人图的桥(bridge),或者在且仅在一个简单回路里,两者必居其一。定义在图上两点之间的距离为这两点之间最 短路径的距离。定义一个图的直径为这张图相距最远的两个点的距离。现在我们假定仙人图的每条边的权值都是1 ,你的任务是求出给定的仙人图的直径。 Input   输入的第一行包括两个整数n和m(1≤n≤50000以及0≤m≤10000)。其中n代表顶点个数,我们约定图中的顶 点将从1到n编号。接下来一共有m行。代表m条路径。每行的开始有一个整数k(2≤k