【星海随笔】SDN neutron (三) Service-plugin

Neutron L3

L3的实现只负责路由的功能,传统路由器中的其他功能(如Firewalls、LB、VPN)都被独立出来实现了,因此ML3的实际需求比较少。

neutron-server 接到请求 –> 将请求发送到MQ –> neotron-plugins 得到请求 –> 发送请求到MQ –> neotron-agent 建立网络设备。
在这里插入图片描述

neutron-plugin : 处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络的状态, 并调用 Agent 处理请求。每个厂商基于Openstack开发了模拟自己硬件的软件,这个软件就是plugin。 在早期,每个厂商开发各自的plugin,功能也是各自实现,有大量的代码是重复的;另外,不同的厂商有不同的开发标准,导致程序的兼容性很差。针对这种情况neutron-plugin 被分为了两部分:Core-plugin 和 Service-plugin 。

Service-plugin : 即为除core-plugin以外其它的plugin,包括l3 router、firewall、loadbalancer、VPN、metering等等,主要实现L3-L7的网络服务。这些plugin要操作的资源比较丰富,对这些资源进行操作的REST API被neutron-server看作Extension API,需要厂家自行进行扩展。

Router

提供虚拟三层服务,包括租户网络(Tenant Network)之间、租户网络与外部网络(External Network)之间的路由和网络地址转换,原生模式下路由器管理功能以Service Plugin的形式集成在Neutron Server中,路由器实体以Linux网络命名空间的形式存在,由Neutron L3 Agent管理。

在这里插入图片描述
由上图可以看出,Neutron L3模块的功能主要由Server端的L3RouterPlugin和Agent端的L3NATAgentWithStateReport配合实现:

Client通过HTTP向Server发起L3资源Router、Floating IP的管理命令,Server负责处理资源在数据库的增删改查,并通过RPC将资源的更新事件通知到Agent,Agent最终通过Linux下的网络工具栈来实现具体的L3功能。

L3的核心资源是Router,大部分L3 API都是围绕着Router的基础属性、扩展属性或附属资源的增删改查,Router也是L3 Plugin与L3 Agent进行同步的数据单元。

neutron-agent : 处理 Plugin 的请求,负责在 network provider 上真正实现各种网络功能。和 plugin 是一一对应的关系。

iproute2

如何查看网络接口、地址、路由
iproute2 工具包最基础的功能就是管理本机的网络接口。

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 54:be:f7:08:c2:1b brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.126/24 brd 192.168.56.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::56be:f7ff:fe08:c21b/64 scope link 
       valid_lft forever preferred_lft forever
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 54:be:f7:08:c2:1b brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.126/24 brd 192.168.56.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::56be:f7ff:fe08:c21b/64 scope link 
       valid_lft forever preferred_lft forever

你也可以输入如下的命令来修改 MTU 和分组队列的长度:

ip link set eth1 mtu 1500
ip link set eth1 txqueuelen 1000

一般来说,本机的网络接口通常会被命名成像是eth0,eth1,lo这样的名称。在过去,常常使用net-tools包提供的ifconfig命令来配置网络接口。而使用iproute2时,通常可以使用子命令ip addr和ip link来完成相同的功能。

IP 路由规则(rule)

ip rule show
0:  from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default

这三条路由规则是内核配置的默认规则。第一行可以匹配任何流量,用于路由高优先级的流量。第二行是处理常规路由的主要规则。最后一行是空规则,如果上面的规则与数据包不匹配,则使用该行进行后处理(post-processing)。

OpenStack FWaaS功能
在架构设计上, Neutron沿用了OpenStack完全分布式的思想,各组件之间通过消息机制进行通信,使得Neutron中各个组件甚至各个进程都可以运行在任意的节点上。

SWaas

Neutron是OpenStack网络即服务项目,包括一个防火墙即服务(FWaaS)插件,该插件在OpenStack对象(如项目、路由器端口和路由器)上实施防火墙。

防火墙规则:指定当流量与一组属性(如端口范围、协议或IP地址)匹配时,防火墙应采取的操作(允许或拒绝)。
防火墙策略:一组有序的规则。你可以发布策略以在项目间共享。

防火墙可以根据你使用的驱动程序以各种方式实现。
例如:
——iptables驱动程序使用iptable规则来实现防火墙;
——OpenVSwitch驱动程序使用流表中的流条目来实现防火墙规则;
——Cisco防火墙驱动程序可用于NSX设备。

FWaaS v2的新增功能如下:

FWaaS v1已被弃用,取而代之的是v2。在v2中,防火墙的概念已被防火墙组所取代,这表明防火墙需要两个策略:出口策略和入口策略。防火墙组应用于端口级别,而不是路由器级别,你可以指定要保护的路由器端口。

FWaaS 2中的新功能概括如下:

——默认情况下不支持路由器的3级防火墙,但你可以通过将防火墙组应用于某个路由器中的所有端口来启用它。
——支持路由器端口的3级防火墙。
——支持2级防火墙(即VM端口)。
——提供命令行界面(CLI)。
——支持OpenStack Horizon仪表板。

启用FWaaS v2
要在OpenStack中启用FWaaS v2插件,需要执行以下步骤:

——安装必要的软件依赖关系。你需要安装neutron-fwaas和neutron-fwaas-dashboard包以及特定OpenStack部署所需的任何其他依赖关系。
——在OpenStack配置文件中启用FWaaS v2插件。这通常涉及将以下行添加到neutron.conf文件中:
[fwaas]
driver = neutron_fwaas.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver
——重新启动OpenStack Neutron服务。你需要重新启动Neutron服务才能使更改生效。

iptables和firewalld都不是真正的防火墙,他们都是用来定义防火墙策略的防火墙管理工具而已,他们只是一种服务,iptables服务会把配置好的防火墙策略交给内核层面的netfilter网络过滤器来处理。而firewalld服务则是把配置好的防火墙策略交给内核层面的nftables包过滤框架来处理。

VPN

在这里插入图片描述

sudo apt-get install neutron-vpnaas-agent
sudo service neutron-vpn-agent restart

编辑/etc/neutron/neutron.conf文件并添加以下行:

service_plugins = router,vpnaas

sudo service neutron-server restart
sudo neutron-db-manage --subproject neutron-vpnaas upgrade head

创建VPNaaS服务提供者:

neutron vpn-service-provider-create --name <provider-name> \
--vpn-service-provider <vpn-service-provider>

此命令将创建一个名为<provider-name>的VPNaaS服务提供者,并将其配置为<vpn-service-provider>

neutron vpn-service-list

创建VPN连接:

neutron ipsec-site-connection-create --name <ipsec-connection-name> \
--vpnservice-id <vpn-service-id> \
--ikepolicy-id <ikepolicy-id> \
--ipsecpolicy-id <ipsecpolicy-id> \
--peer-address <peer-address> \
--peer-cidr <peer-cidr> \
--peer-id <peer-id> --psk <psk> \
--mtu <mtu> --dpd <dpd> --initiator <initiator>

此命令将创建一个名为<ipsec-connection-name>的VPN连接,并配置其所属的VPN服务、IKE策略、IPsec策略、对等地址、对等CIDR、对等ID、预共享密钥、MTU、DPD和发起方。

neutron ipsec-site-connection-list

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

编程艺术之源:深入了解设计模式和设计原则

深入了解设计模式和设计原则 一、认识设计模式1.1、设计模式是什么&#xff1f;1.2、设计模式是怎么来的&#xff1f;1.3、设计模式解决了什么问题&#xff1f; 二、设计模式的基础2.1、面向对象思想2.2、设计原则 三、如何学习设计模式3.1、明确目的3.2、学习步骤 总结 一、认…

HTML跳转锚点

跳转锚点适用于本页面和其他页面的任意标签的跳转以及JavaScript的运行 使用方法即给标签加上独一无二的id属性&#xff0c;再使用a标签跳转 如果是其他页面的标签只需加上其他页面的路径&#xff0c;eg.href"其他页面的路径#zp1" id属性的最好不要使用数字开头 <…

Vert.x学习笔记-什么是Verticle

什么是Verticle Verticle是Vert.x应用中的基本编程单元&#xff0c;类似于Java中的Servlet、Pojo Bean或Akka中的Actor。它可以使用不同的编程语言实现&#xff0c;并且这些由不同编程语言实现的Verticle可以封装到一个模块中&#xff0c;进而部署到一个Vert.x应用中。Verticl…

关系型数据库Redis安装与写入数据

文章目录 安装和初步选择数据库创建键值对数据类型 安装和初步 安装 Redis是开源的跨平台非关系型数据库&#xff0c;特点是占用资源低、查询速度快。 首先&#xff0c;在Github上下载最新发布的Redis-xxxx.zip压缩文件&#xff0c;下载之后解压&#xff0c;并将解压后的路径…

要找事做,我真怕被闲死

要找事做&#xff0c;我真怕被闲死 | 昨晚睡足了5个多小时&#xff0c;元气开始恢复&#xff0c;今晨6点钟醒来&#xff0c;如厕后无睡意&#xff0c;便窝在被子里闭目养神&#xff0c;同时想心事。 7点钟翻身起床穿衣洗刷后&#xff0c;烧瓶开水泡杯浓茶&#xff0c;打开电脑…

如何关闭Windows Defender(亲测可行!!非常简单)

一、背景 Windows Defender&#xff08;简称WD&#xff09;真的太讨厌了&#xff0c;经常给你报你下载的文件是病毒&#xff0c;且不说真的是不是病毒&#xff0c;它都不询问直接删。 另外聚资料显示WD还会不合时宜地执行扫描导致系统变慢&#xff08;不会在合适的、空闲的时…

Linux shell编程学习笔记24:函数定义和使用

为了实现模块化设计和代码重用&#xff0c;很多编程语言支持函数或过程&#xff0c;Linux shell也支持函数定义和调用。 Linux shell中的函数与其它编程语言很多有相似之处&#xff0c;也有自己独特之处。 1 函数的定义 1.1 标准格式 function 函数名(){语句或命令1……语句…

一步一步详细介绍如何使用 OpenCV 制作低成本立体相机

在这篇文章中,我们将学习如何创建定制的低成本立体相机(使用一对网络摄像头)并使用 OpenCV 捕获 3D 视频。我们提供 Python 和 C++ 代码。文末并附完整的免费代码下载链接 我们都喜欢观看上面所示的 3D 电影和视频。您需要如图 1 所示的红青色 3D 眼镜才能体验 3D 效果。它是…

操作系统 | proc文件系统

&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《操作系统实验室》&#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 目录结构 1. 操作系统实验之proc文件系统 1.1 实验目的 1.2 实验内容 1.3 实验步骤 1.4 实验…

Azure 机器学习 - 机器学习中的企业安全和治理

目录 限制对资源和操作的访问网络安全性和隔离数据加密数据渗透防护漏洞扫描审核和管理合规性 在本文中&#xff0c;你将了解可用于 Azure 机器学习的安全和治理功能。 如果管理员、DevOps 和 MLOps 想要创建符合公司策略的安全配置&#xff0c;那么这些功能对其十分有用。 通过…

HTML使用lable将文字与控件进行关联以获取焦点

先养养眼再往下看 注释很详细&#xff0c;直接上代码 <form action""><!-- 第一种方法:用id的方式绑定账户(文字)和输入框 --><label for"zhanghu">账户</label><input "text" id"zhanghu" name"ac…

Milvus Cloud ——Agent 的展望

Agent 的展望 目前,LLM Agent 大多是处于实验和概念验证的阶段,持续提升 Agent 的能力才能让它真正从科幻走向现实。当然,我们也可以看到,围绕 LLM Agent 的生态也已经开始逐渐丰富,大部分工作都可以归类到以下三个方面进行探索: Agent模型 AgentBench[4] 指出了不同的 L…

Azure 机器学习 - 使用受保护工作区时的网络流量流

目录 环境准备入站和出站要求方案&#xff1a;从工作室访问工作区方案&#xff1a;从工作室使用 AutoML、设计器、数据集和数据存储方案&#xff1a;使用计算实例和计算群集方案&#xff1a;使用联机终结点入站通信出站通信 方案&#xff1a;使用 Azure Kubernetes 服务方案&am…

ROS 学习应用篇(三)服务Server学习之Server

话题Topic是订阅器与发布器节点之间的&#xff0c;而服务则是客户端&#xff08;Client&#xff09;和服务器&#xff08;Server&#xff09;间的&#xff0c;前者是异步的&#xff0c;后者是同步的。而且话题是单项的不需要服务器上线&#xff0c;而服务是双向的。在开启服务之…

使用米联客FPGA开发板进行光口开发时遇到的问题总结

使用的开发板型号&#xff1a;米联客MA703FA&#xff0c; 实物图如下 FPGA型号为a35t 米联客提供的开发板资料中的FPGA型号为a100&#xff0c;所以要想使用开发板例程必须进行FPGA的重新选择。如下图 通过对开发板原理图的分析&#xff0c;例程代码不用做任何修改就可使用&am…

Linux常用命令——bzless命令

在线Linux命令查询工具 bzless 增强.bz2压缩包查看器 补充说明 bzless命令是增强“.bz2”压缩包查看器&#xff0c;bzless比bzmore命令功能更加强大。 语法 bzless(参数)参数 文件&#xff1a;指定要分屏显示的.bz2压缩包。 在线Linux命令查询工具

Pathways

信号通路signaling pathway-武汉华美生物 (cusabio.cn) 神经信号通路(Neuronal Signaling)--selleck.cn PI3K/Akt/mTOR信号通路 表观遗传 甲基化 免疫&炎症 酪氨酸蛋白激酶 血管生成 凋亡 自噬 内质网应激&UPR响应 JAK/STAT信号通路 MAPK信号通路 细胞骨架…

网络运维Day11

文章目录 if语句if单分支应用案例 if双分支应用案例 if多分支应用案例 for循环while循环案例 正则表达式基本正则Perl兼容的正则 综合练习总结 if语句 if单分支 if单分支的语法组成&#xff1a; if 条件测试;then 命令序列 fiif 条件测试then 命令序列 fi应用案例 判断用…

Linux学习教程(第二章 Linux系统安装)2

第二章 Linux系统安装 四、使用U盘安装Linux系统 前面章节介绍了如何通过虚拟机 VMware 安装 Linux 系统&#xff0c;而实际开发中&#xff0c;我们更多的是要将 Linux 系统直接安装到电脑上。 直接在电脑上安装 Linux 系统的常用方法有 2 种&#xff0c;分别是用光盘安装和用…

软件自动化测试平台

软件测试分类黑盒、白盒、功能、API、接口、压力测试和性能测试&#xff0c; 自动化测试平台是一种用于自动化执行软件测试过程的工具。 一、自动化测试平台-功能性 1. 接口自动化&#xff1a;对接软件的接口进行测试&#xff0c;验证接口的功能和性能。 2. Web 自动化&…