PC端建议访问
或点击底部原文阅读
目录
Introducing Python and Guest Shell on IOS-XE 16.5
Introducing Guest Shell
IOx概述
IOXMAN结构
Managing the Guest Shell 原理介绍
进入Guest Shell (2)
进入Guest Shell (3)
Introducing Python and Guest Shell on IOS-XE 16.5
IOS-XE 16.5用于ISR ,ASR 和CSR路由平台(依旧是Catalyst Switching生产线)
软件可以在https://cisco.com/go/software进行下载
此版本有的一些亮点
Introducing Guest Shell
直接在终端设备上执行Python代码的能力是GuestShell提供的应用程序托管功能的一部分。 现在我们来开始了解关于GuestShell一些基础知识。GuestShell是一个容器化的Linux,可以在IOS-XE设备上启用。 在ISR 4000平台上,Guest Shell提供了一个CentOS 7环境,你可以在其中安装和运行应用程序,例如Python脚本。从Guest Shell中,你的应用程序可以访问host platform,bootflash和IOS CLI的网络。Guest Shell与底层主机软件隔离,以防止设备的核心网络功能受到干扰。
Guest Shell与主机(Cisco交换机和路由器)系统共享内核。用户可以访问Guest Shell的Linux shell并更新容器rootfs中的脚本和软件包。但是,Guest Shell中的用户无法修改主机文件系统和进程。
Guest Shell容器使用IOx进行管理。IOx是思科针对Cisco IOS XE设备的应用托管基础架构。IOx支持托管思科,合作伙伴和第三方开发人员在网络边缘设备中开发的应用程序和服务,无缝地跨越各种不同的硬件平台。
此表提供有关各种Guest Shell功能和支持的平台的信息。
Guest Shell容器允许用户在系统上运行脚本和应用程序。Intel x86平台上的Guest Shell容器将是一个带有CentOS 7.0最小rootfs的Linux容器(LXC)。您可以在运行时使用CentOS 7.0中的Yum实用程序安装其他Python库,例如Python Version 3.0。您还可以使用PIP安装或更新python包。
IOx概述
IOx是思科开发的端到端应用程序框架,可为思科网络平台上的不同应用程序类型提供应用程序托管功能。Cisco Guest Shell是一种特殊的容器部署,是一种此类应用程序,在系统部署/使用中非常有用。
IOx通过提供一组服务来帮助开发人员打包预先构建的应用程序并将其托管在目标设备上,从而促进应用程序和数据交换的生命周期管理。IOx生命周期管理包括应用程序和数据的分发,部署,托管,启动,停止(管理)和监视。IOx服务还包括应用程序分发和管理工具,可帮助用户发现应用程序并将其部署到IOx框架。
应用托管提供以下功能:
IOXMAN结构
下面让我们进入一些配置和代码! 对于这篇博文,我使用的是运行16.6.6的CSR 1000v,并且上面几乎没有其他配置。 在我们开始使用Python做一些有趣的事情之前,我们需要启动并运行Guest Shell。
Managing the Guest Shell 原理介绍
如果你学习过Docker,看这个图就很容易,因为内容重点原因。这里我只做一下简单的介绍。
G1是真实网卡,VPG相当于安装Docker后默认生成的br0网段为172.16.0.1的网卡,eth0相当于在Docker内部运行的一个网卡,自动生成为172.16.0.2的网卡。
进入Guest Shell (2)
CSR16.6(config)# interface GigabitEthernet1
CSR16.6(config-if)# ip nat outside
CSR16.6(config-if)# exit
CSR16.6(config-if)# interface VirtualPortGroup0
CSR16.6(config-if)# ip address 10.1.1.254 255.255.255.0
CSR16.6(config-if)# ip nat inside
CSR16.6(config-if)# exit
CSR16.6(config)# ip route 0.0.0.0 0.0.0.0 192.168.80.1
CSR16.6(config)# ip access-list extended PAT_ACL
CSR16.6(config-ext-nacl)# permit ip 10.0.0.0 0.0.0.255 any
CSR16.6(config)# ip nat inside source list PAT_ACL interface GigabitEthernet1 overload
CSR16.6# guestshell enable VirtualPortGroup 0 guest-ip 10.1.1.1 name-server 114.114.114.114
进入Guest Shell (3)
等待片刻,会出现下图现象:
进行结果验证:
上传文件到 Guest Shell
进入Guest Shell 运行Python脚本
添加接口下描述的脚本代码:
运行脚本之前查看接口下状态:
运行脚本:
运行脚本之后: