Cisco Programming

1 view
Skip to first unread message

Laurence Jabali

unread,
Aug 3, 2024, 2:35:44 PM8/3/24
to gunlightermcont

Network programming is the act of using computer code to write programs or processes that can communicate with other programs or processes across a network. Programmers use various programming languages, code libraries, and protocols to do the work.

A modern network is more than just routers and switches. It's a collection of interconnected systems that include applications and other software, virtual machines, cloud instances, containers, and more.

Network programmability, combined with task automation, helps businesses deploy new apps and services faster, even at the network edge. Services also can be orchestrated centrally instead of provisioned separately.

Another use case for network programmability is mitigating security threats. Using APIs, a network can be programmed to block malware or other malicious traffic without disrupting users as network security engineers diagnose and remediate the issue.

The programmable network is taking center stage in today's application-centric organizations, which are embracing software-defined networking, 5G connectivity, Internet of Things (IoT) applications, and more.

Network programming is a rapidly evolving discipline. However, engineers programming networks still need traditional skills and other knowledge. That knowledge includes understanding the main types of networks that many of today's businesses use, such as the following:

A LAN is a collection of devices connected in one location, such as a building, an office, or a home. A LAN can be small or large, ranging from a home network with one user to an enterprise network with thousands of users and devices.

A WLAN implements a flexible data communication system, frequently augmenting rather than replacing a wired LAN within a building or campus. WLANs use radio frequency to transmit and receive data over the air, reducing the need for wired connections.

A VPN is an encrypted internet connection between a user device and a network. The encrypted connection helps to ensure that sensitive data is transmitted safely. It prevents unauthorized people from accessing the traffic.

A SAN is a dedicated high-speed network that makes storage devices accessible to servers by attaching storage directly to an operating system. It centralizes storage devices, so they are easier to manage and communicate faster over media.

The Open Systems Interconnection (OSI) model serves as a guide for network engineers, developers, and others involved with network programming to understand how products and software programs can communicate and interoperate.

This conceptual framework outlines the functions of a networking system. OSI includes seven layers that show how data flows across and within networks. The layers are: physical, data link, network, transport, session, presentation, and application.

Because of the accelerating trend in business toward using programmable networks, network professionals who want to gain network programmability expertise may also consider building skills and knowledge in the following areas:

Other valuable skills for network programmability initiatives include container networking, cloud networking, IoT networking, experience with DevOps practices, and knowledge of network controllers, which are used to orchestrate network functions.

The Programming for Network Engineers (PRNE) v2.0 training is designed to equip you with fundamental skills in Python programming. Through a combination of lectures and lab experience in simulated network environments, you will learn to use Python basics to create useful and practical scripts with Netmiko to retrieve data and configure network devices. Upon completion of this training, you should have a basic understanding of Python, including the knowledge to create, apply, and troubleshoot simple network automation scripts.

I'd like to program my SideCar to only be a location for Speed Dial numbers. What's the programming language that I need to be putting into my interface to be able to dial outside of my small business location.

A vulnerability in the access control list (ACL) programming for port channel subinterfaces of Cisco Nexus 3000 and 9000 Series Switches in standalone NX-OS mode could allow an unauthenticated, remote attacker to send traffic that should be blocked through an affected device.

This vulnerability is due to incorrect hardware programming that occurs when configuration changes are made to port channel member ports. An attacker could exploit this vulnerability by attempting to send traffic through an affected device. A successful exploit could allow the attacker to access network resources that should be protected by an ACL that was applied on port channel subinterfaces.

This advisory is part of the February 2024 Cisco FXOS and NX-OS Software Security Advisory Bundled Publication. For a complete list of the advisories and links to them, see Cisco Event Response: February 2024 Semiannual Cisco FXOS and NX-OS Software Security Advisory Bundled Publication.

To determine whether the ACL programming is affected, use the show system internal access-list interface port-channel subinterface input entries detail command at the device CLI. In a regular ACL programming situation, the command is expected to return ACL entries that are associated to the subinterface in question, as seen in the following example:

After performing configuration changes to port channel member ports, verify whether the ACL programming is affected on any port channel subinterface, as shown in the Vulnerable Products section of this advisory. Proper ACL programming can be restored on any affected port channel subinterface by removing and reapplying the associated ip access-group configuration command. Reloading an affected device would also fix the ACL programming for all affected subinterfaces.

While these workarounds have been deployed and were proven successful in a test environment, customers should determine the applicability and effectiveness in their own environment and under their own use conditions. Customers should be aware that any workaround or mitigation that is implemented may negatively impact the functionality or performance of their network based on intrinsic customer deployment scenarios and limitations. Customers should not deploy any workarounds or mitigations before first evaluating the applicability to their own environment and any impact to such environment.

When considering software upgrades, customers are advised to regularly consult the advisories for Cisco products, which are available from the Cisco Security Advisories page, to determine exposure and a complete upgrade solution.

In all cases, customers should ensure that the devices to be upgraded contain sufficient memory and confirm that current hardware and software configurations will continue to be supported properly by the new release. If the information is not clear, customers are advised to contact the Cisco Technical Assistance Center (TAC) or their contracted maintenance providers.

To use the tool, go to the Cisco Software Checker page and follow the instructions. Alternatively, use the following form to search for vulnerabilities that affect a specific software release. To use the form, follow these steps:

For details about downloading and installing SMUs in Cisco NX-OS Software for Cisco Nexus 3000 and 9000 Series Switches, see the Performing Software Maintenance Upgrades section of the Cisco NX-OS system management configuration guide for Cisco Nexus 3000 Series Switches and Cisco Nexus 9000 Series Switches.

For help determining the best Cisco NX-OS Software release for a Cisco Nexus Switch, see the following Recommended Releases documents. If a security advisory recommends a later release, Cisco recommends following the advisory guidance.

Cisco MDS Series Switches
Cisco Nexus 1000V for VMware Switch
Cisco Nexus 3000 Series Switches
Cisco Nexus 5500 Platform Switches
Cisco Nexus 5600 Platform Switches
Cisco Nexus 6000 Series Switches
Cisco Nexus 7000 Series Switches
Cisco Nexus 9000 Series Switches
Cisco Nexus 9000 Series ACI-Mode Switches

To learn about Cisco security vulnerability disclosure policies and publications, see the Security Vulnerability Policy. This document also contains instructions for obtaining fixed software and receiving security vulnerability information from Cisco.

THIS DOCUMENT IS PROVIDED ON AN "AS IS" BASIS AND DOES NOT IMPLY ANY KIND OF GUARANTEE OR WARRANTY, INCLUDING THE WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. YOUR USE OF THE INFORMATION ON THE DOCUMENT OR MATERIALS LINKED FROM THE DOCUMENT IS AT YOUR OWN RISK. CISCO RESERVES THE RIGHT TO CHANGE OR UPDATE THIS DOCUMENT AT ANY TIME.

A standalone copy or paraphrase of the text of this document that omits the distribution URL is an uncontrolled copy and may lack important information or contain factual errors. The information in this document is intended for end users of Cisco products.

In my case, I was able to achieve the desired results and goals in Python, but I wanted to learn something new, and see if I could apply what I learnt when learning Python into learning Golang. There is great advice out there for why Python and Golang are similar, the pros and cons, and which one you should learn if you are new to programming/coding.

The Cisco SD-WAN software provides a REST API, which is a programmatic interface for controlling, configuring, and monitoring the Cisco SD-WAN devices in an overlay network. You access the REST API through the vManage web server.

REST is a simpler alternative to mechanisms such as remote procedure calls (RPCs) and web services such as Simple Object Access Protocol (SOAP) and Web Service Definition Language (WSDL). The REST architecture has not been formally defined by any standards bodies.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages