上一节我们在 ML2 配置中 enable 了 vlan network,今天将创建 vlan100 并讨论底层网络变化. 打开菜单 Admin -> Networks,点击 “Create Network” 按钮. 显示创建页面. Provider Network Type 选择 “VLAN”. Physical Network 填写 “default”,必须与 ml2_conf.ini network_vlan_ranges 保持一致. Segmentation ID 即 VLAN ID,设…
前面我们创建了 vlan100,并部署了 instance,今天将继续创建第二个 vlan network "vlan101". subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron 自动创建了 vlan101 对应的网桥 brq1d7040b8-01,vlan interface eth1.101,以及 dhcp 的 tap 设备 tap5b1a2247-32. eth1.101 和 tap5b1a2247-32 已经连接到 brq1d…
前面我们陆续学习了 Neutron local network,flat network 和 DHCP 服务,从本节将开始讨论 vlan network. vlan network 是带 tag 的网络,是实际应用最广泛的网络类型.下图是 vlan100 网络的示例. 1. 三个 instance 通过 TAP 设备连接到名为 “brqXXXX” linux bridge. 2. 在物理网卡 eth1 上创建了 eth1.100 的 vlan interface,eth1.100 连接到 brq…
上一节创建了 OVS vlan network vlan100,今天部署 instance 到该网络.launch 新的 instance “cirros-vm1”,网络选择 vlan100. cirros-vm1 分配到的 IP 为 172.16.100.3. cirros-vm1 被 schedule 到控制节点,其虚拟网卡也连接到 br-int. 虚拟网卡与 br-int 的连接方式与 local 和 flat 网络没有任何区别,不再赘述. 当前 vlan100 的结构如下: 继续用同样的…
Neutron 的架构是非常开放的,可以支持多种 network provider,只要遵循一定的设计原则和规范.本节我们将开始讨论这个主题. 先讨论一个简单的场景:在 Neutorn 中使用 linux bridge 这一种 network provider. 根据我们上一节讨论的 Neutron Server 的分层模型,我们需要实现两个东西:linux bridge core plugin 和 linux bridge agent. linux bridge core plugin 与 n…
本节演示如何使用 virt-manager 启动 KVM 虚机. 首先通过命令 virt-manager 启动图形界面 # virt-manager 点上面的图标创建虚机 给虚机命名为 kvm1,这里选择从哪里启动虚机.如果是安装新的 OS,可以选择第一项.如果已经有安装好的镜像文件,选最后一项(如上图) 接下来需要告诉 virt-manager 镜像的位置. 点击 “Browser” 在我的系统中存放了一个 cirros-0.3.3-x86_64-disk.img 镜像文件 .cirros 是…
前面我们创建了 OVS vlan100 并部署了 instance,今天继续创建 vlan101. subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron 自动在 br-int 网桥上创建了 vlan100 dhcp 的接口 "tap1820558c-0a". 现在,网络结构如下: 将 instance 连接到 vlan101 launch 新的 instance "cirros-vm3",网络选择 vlan101. c…
上一节我们学习了 Neutron Vlan Network 的原理,今天讨论如何在 ML2 配置中 enable 它. 首先在 /etc/neutron/plugins/ml2/ml2_conf.ini 中设置 vlan network 相关参数. tenant_network_types = vlan 指定普通用户创建的网络类型为 vlan. 然后指定 vlan 的范围: 上面配置定义了 label 为 “default” 的 vlan network,vlan id 的范围是 3001 -…
在 ML2 配置文件中 enable local network 后,本节将开始创建第一个 local network. 我们将通过 Web GUI 创建第一个 local network. 首先确保各个节点上的 neutorn agent 状态正常.GUI 菜单 为 Admin -> System -> System Infomation -> Neutron Agents GUI 中有两个地方可以创建 network: 1. Project -> Network -> N…
上一节我们完成了 OVS 的准备工作,本节从最基础的 local network 开始学习.local network 不会与宿主机的任何物理网卡连接,流量只被限制在宿主机内,同时也不关联任何的 VLAN ID. 创建第一个 local network 下面我们通过 Web GUI 创建 local network. 进入菜单 Admin -> Networks,点击 "Create Network" 按钮. 显示创建页面. "Provider Network Type…
前面完成了一系列准备工作,本节开始将创建各种 Neutorn 网络,我们首先讨论 local network. local network 的特点是不会与宿主机的任何物理网卡相连,也不关联任何的 VLAN ID. 对于每个 local netwrok,ML2 linux-bridge 会创建一个 bridge,instance 的 tap 设备会连接到 bridge.位于同一个 local network 的 instance 会连接到相同的 bridge,这样 instance 之间就可以通信…
为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml 为: httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务.部署应用: 当前没有定义任何 Network Policy,验证应用可以被访问: 启动一个 busybox Pod,可以访问 Service,也可以 Ping 到副本 Pod. 集群节点可以访问 Service, 也可以 Ping 到副本 Pod. 集群外(192.168.56.1)可以访问 Ser…
命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建,比如: kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2 在命令行中通过参数指定资源的属性. 2. 通过配置文件和 kubectl apply 创建,要完成前面同样的工作,可执行命令: kubectl apply -f nginx.yml nginx.yml 的内容为: 资源的属性写在配置文件中,文件格式为 YAML…
Network Policy 是 Kubernetes 的一种资源.Network Policy 通过 Label 选择 Pod,并指定其他 Pod 或外界如何与这些 Pod 通信. 默认情况下,所有 Pod 是非隔离的,即任何来源的网络流量都能够访问 Pod,没有任何限制.当为 Pod 定义了 Network Policy,只有 Policy 允许的流量才能访问 Pod. 不过,不是所有的 Kubernetes 网络方案都支持 Network Policy.比如 Flannel 就不支持,Ca…
上一节通过 Web GUI 创建了 “first_local_net”,本节我们需要搞清楚底层网络结构有了哪些变化? 点击 “first_local_net” 链接,显示 network 的 subnet 和 port 信息. 在 Ports 列表中已经创建了一个 port,名称为 “(a5bd3746-3f89)”,IP 为 172.16.1.2, Attached Device 是 network:dhcp. 这里我们只需要知道该 port 对应的是 dhcp 的 interface,至于…
前面我们已经学习了 OVS 的 local 网络 和 falt 网络,今天开始讨论 vlan 网络. vlan network 是带 tag 的网络. 在 Open vSwitch 实现方式下,不同 vlan instance 的虚拟网卡都接到 br-int 上. 这一点与 linux bridge 非常不同,linux bridge 是不同 vlan 接到不同的网桥上. 在我们的实验环境中,收发 vlan 数据的物理网卡为 eth1,上面可以走多个 vlan,所以物理交换机上与 eth1 相连…
上一节完成了 OVS vlan network 的配置准备工作,今天我们创建 vlan100.打开菜单 Admin -> Networks,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "VLAN". Physical Network 填写 "default",与 ml2_conf.ini 中 network_vlan_ranges 参数值保持一致. Segmentatio…
上一节部署了 cirros-vm1 到 first_local_net,今天我们将再部署 cirros-vm2 到同一网络,并创建 second_local_net. 连接第二个 instance 到 first_local_net 以同样的方式 launch instance "cirros-vm2",分配的 IP 为 172.16.1.4. cirros-vm2 也被 schedule 到控制节点,ovs-vsctl show 的输出如下: cirros-vm2 对于的 tap 设…
上一节完成了 flat 的配置工作,今天创建 OVS flat network.Admin -> Networks,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "Flat". Physical Network 填写 "default",与 ml2_conf.ini 中 flat_networks 参数值保持一致. 点击 "Create Network"…
上一节我们讨论了 flat network 的原理,今天就来创建 "flat_net" 并分析底层网络的实现. 打开菜单 Admin -> Networks,点击 “Create Network” 按钮. 显示创建页面. Provider Network Type 选择 “Flat”. Physical Network 填写 “default”,与 ml2_conf.ini 中 flat_networks 参数保持一致. 点击 “Create Network”,flat_net…
LAN 表示 Local Area Network,本地局域网,通常使用 Hub 和 Switch 来连接 LAN 中的计算机.一般来说,两台计算机连入同一个 Hub 或者 Switch 时,它们就在同一个 LAN 中. 一个 LAN 表示一个广播域. 其含义是:LAN 中的所有成员都会收到任意一个成员发出的广播包. VLAN 表示 Virtual LAN.一个带有 VLAN 功能的switch 能够将自己的端口划分出多个 LAN.计算机发出的广播包可以被同一个 LAN 中其他计算机收到,但位于…
本节我们来看如何在实验环境中实施和配置如下 VLAN 网络 配置 VLAN 编辑 /etc/network/interfaces,配置 eth0.10.brvlan10.eth0.20 和 brvlan20. 下面用 vmdiff 展示了对 /etc/network/interfaces 的修改 重启宿主机,ifconfig 各个网络接口 用 brctl show 查看当前 Linux Bridge 的配置. eth0.10 和 eth0.20 分别挂在 brvlan10 和 brvlan20上…
虽然外部网络是已经存在的网络,但我们还是需要在 Neutron 中定义外部网络的对象,这样 router 才知道如何将租户网络和外部网络连接起来. 上一节我们已经为创建外部网络配置了ML2,本节将通过 UI 创建 ext_net. 进入 Admin -> Networks 菜单,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "Flat" Physical Network 填写 "ex…
flat network 是不带 tag 的网络,要求宿主机的物理网卡直接与 linux bridge 连接,这意味着: 每个 flat network 都会独占一个物理网卡. 上图中 eth1 桥接到 brqXXX,为 instance 提供 flat 网络. 如果需要创建多个 flat network,就得准备多个物理网卡,如下图所示. 接下来讨论如何配置 flat 网络. 在 ML2 配置中 enable flat network 在 /etc/neutron/plugins/ml2/ml…
上一节创建了 OVS flat network,今天我们部署 instance 并验证 flat 网络的连通性. launch 新的 instance "cirros-vm1",网络选择 falt_net. cirros-vm1 分配到的 IP 为 172.16.1.3. cirros-vm1 被 schedule 到控制节点,其虚拟网卡也连接到 br-int. 虚拟网卡与 br-int 的连接方式与 local 网络是一样的,不再赘述. 当前 flat_net 的结构如下: 继续用同…
前面我们讨论了 VXLAN 的理论知识,并且在 ML2 中完成了相关配置.今天将通过 Web UI 创建 vxlan100_net 并观察节点网络结构的变化. 打开菜单 Admin -> Networks,点击 "Create Network" 按钮 显示创建页面. Provider Network Type 选择 "VXLAN" Segmentation ID 即 VNI,设置为 100 点击 "Create Network",vxlan…
上一节完成连接外网的配置准备工作,今天就来创建 OVS 外部网络 ext_net. 进入 Admin -> Networks 菜单,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "Flat". Network 填写 "external",与 ml2_conf.ini 中 flat_networks 的参数值保持一致. 勾选 External Network 选择框. 点击…
上一节我们完成了 OVS VxLAN 的配置工作,今天创建 vxlan100_net 并部署 instance. 创建 vxlan100_net 打开菜单 Admin -> Networks,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "VXLAN". Segmentation ID 即 VNI,设置为 100. 点击 "Create Network",vxlan100…
GUI 中有两个地方可以创建 network: 1. Project -> Network -> Networks 这是普通用户在自己的 tenant 中创建 network 的地方. 2. Admin -> Networks 这是 admin 创建 network 的地方. 前面我们已经用第一种方式创建了 "first_local_net",本节将以第二种方式创建 local network "second_local_net". 菜单路径为 A…
前面已经创建了两个 OVS local network,今天详细分析它们之间的连通性. launch 新的 instance "cirros-vm3",网络选择 second_local_net cirros-vm3 分配到的 IP 为 172.16.1.102 cirros-vm3 被 schedule 到控制节点,其虚拟网卡也连接到 br-int. 当前的控制节点上的网络结构如下: 下面我们讨论一个有趣的问题:cirros-vm3 能否 Ping 到 cirros-vm1 呢? 根…