<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>NCCM — Infoblox Community</title>
        <link>https://community.infoblox.com/</link>
        <pubDate>Fri, 23 Oct 2026 11:44:51 +0000</pubDate>
        <language>en</language>
            <description>NCCM — Infoblox Community</description>
    <atom:link href="https://community.infoblox.com/discussions/tagged/nccm/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>NetMRI - Customized Configuration Collection</title>
        <link>https://community.infoblox.com/discussion/15639/netmri-customized-configuration-collection</link>
        <pubDate>Wed, 13 Feb 2019 17:07:05 +0000</pubDate>
        <category>Community Blog</category>
        <dc:creator>SBaksh</dc:creator>
        <guid isPermaLink="false">15639@/discussions</guid>
        <description><![CDATA[<p><span>Customized Configuration Collection</span></p>
<ul>
<li><span>This is an API enhancement that enables the customer to script their own configuration collection. &nbsp;This means that unsupported devices can have change management and configuration policy audits supported. &nbsp;This went in specifically for a customer that wanted policy checks done on SD-WAN Viptela routers.</span></li>
</ul>
<p>&nbsp;</p>
<p><span>The Script:</span></p>
<pre># BEGIN-SCRIPT-BLOCK
#
# Script-Filter:
#     true
#
# END-SCRIPT-BLOCK

import requests
#
# Stops us from erroring out when making a request call to a Self Signed Cert
#
requests.packages.urllib3.disable_warnings()
#
# "netmri_ipaddress" is a well known variable of your NetMRI
# I broke up the API version and the API call
#
api_v = "/api/3.3"
api_command = "/config_revisions/import_custom_config"
url = "https://"+ netmri_ipaddress + api_v + api_command
#
# Below I statically define the "DeviceID" which is "2" in this example this is my "Home Router" :)
# We are going to add the following to 'RunningConfig': 'Testing 123456','SavedConfig': 'Testing 654321'
#
payload = {'DeviceID': '2', 'RunningConfig': 'Testing 123456','SavedConfig': 'Testing 654321'}

#
# We are going to use the "Username" and "Password" you logged in with for the API call
# http_username and http_password
#
r = requests.get(url, auth=(http_username, http_password), data=payload, verify=False)


</pre>
<p><span>Now for the fun stuff, we run the script</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span><span><img src="https://us.v-cdn.net/6038418/uploads/lithium_attachments/2320iDBBD58E973010AD0.jpg" width="650" height="245" role="button" title="first_run.jpg" alt="first_run.jpg" /></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><span>Now to back up a device that we do not support</span></span></p>
<p><span>Install Process</span></p>
<p>&nbsp;</p>
<ul>
<li><span>SSH into the NetMRI and run “sandbox login”</span></li>
<li><span>Login with </span><strong><i>sbuser/sbuser</i></strong><span> (you might have to change the password)</span></li>
</ul>
<p>&nbsp;</p>
<ul>
<li><span>Installing PIP(PIP is not installed by default)</span></li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<ul>
<li><strong><i>wget <a href="https://bootstrap.pypa.io/get-pip.py" target="_blank" rel="noopener nofollow noreferrer">https://bootstrap.pypa.io/get-pip.py</a></i></strong></li>
</ul>
<ul>
<li><strong><i>python3 get-pip.py</i></strong></li>
</ul>
<p><span><i></i><li-wrapper></li-wrapper></span></p>
<ul>
<li><span>This will run and download the binary of PIP and install it</span></li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<ul>
<li><strong><i>pip install paramiko</i></strong></li>
</ul>
<p><span><i></i><li-wrapper></li-wrapper></span></p>
<ul>
<li><span>Note - </span><a href="http://www.paramiko.org/" target="_blank" rel="noopener nofollow noreferrer"><span>Paramiko</span></a></li>

<li><span>The high-level client API starts with the creation of an SSHClient object. For more direct control, pass a socket (or socket-like object) to a Transport, and use start_server or start_client to negotiate with the remote host as either a server or client.</span></li>
</ul>

<p>&nbsp;</p>
<p><span>This following slide is one script that will “SSH” to a device you have selected and login via the “username” and “password” you supplied.</span></p>
<p><span>For this example, I’m just using a basic show command “show ip int brief”.</span></p>
<p><span>&nbsp;</span></p>
<p><span>You can find on our Infoblox-Open GitHub - </span><a href="https://github.com/infobloxopen/netmri-toolkit/tree/master/NetMRI_GUI_Python" target="_blank" rel="noopener nofollow noreferrer"><span>https://github.com/infobloxopen/netmri-toolkit/tree/master/NetMRI_GUI_Python</span></a></p>
<p>&nbsp;</p>
<pre># BEGIN-SCRIPT-BLOCK
#
# Script-Filter:
#     true
#
# Script-Variables:
#     $cliuser string
#     $clipwd password
#
# END-SCRIPT-BLOCK
from infoblox_netmri.easy import NetMRIEasy
import paramiko
import time
import requests
#
# This will not error when you are not verifing Certs for https
#
requests.packages.urllib3.disable_warnings()
#
# "netmri_ipaddress" is a wellknown variable of your NetMRI
# I broke up the API version and the API call
#
api_v = "/api/3.3"
api_command = "/config_revisions/import_custom_config"
url = "https://"+ netmri_ipaddress + api_v + api_command

def disable_paging(remote_conn):
    '''Disable paging on a Cisco router'''
    remote_conn.send("terminal length 0\n")
    time.sleep(1)
    # Clear the buffer on the screen
    output = remote_conn.recv(1000)
    return output
if __name__ == '__main__':
    # We will prompt you for the username and password
    # "ip" will equal the well known variable "ipaddress"
    ip = ipaddress
    username = cliuser
    password = clipwd
    # Create instance of SSHClient object
    remote_conn_pre = paramiko.SSHClient()
    # Automatically add untrusted hosts (make sure okay for security policy in your environment)
    remote_conn_pre.set_missing_host_key_policy(
         paramiko.AutoAddPolicy())
 # initiate SSH connection
    remote_conn_pre.connect(ip, username=username, password=password, look_for_keys=False, allow_agent=False)
    print ("SSH connection established to %s" % ip)
    # Use invoke_shell to establish an 'interactive session'
    remote_conn = remote_conn_pre.invoke_shell()
    print ("Interactive SSH session established")
    # Strip the initial router prompt
    output = remote_conn.recv(1000)
    # See what we have
    print (output)
    # Turn off paging
    disable_paging(remote_conn)
 # Now let's try to send the router a command
    remote_conn.send("\n")
    remote_conn.send("show ip int brief\n")
    # Wait for the command to complete
    time.sleep(2)

 output = remote_conn.recv(5000)
    print (output)
    #
    # Below I statically define the "DeviceID" which is "2" in this example this is my "Home Router" :)
    # We are going to add the following to 'RunningConfig': 'Testing 123456','SavedConfig': 'Testing 654321'
    #
    payload = {'DeviceID': device_id, 'RunningConfig': output,'SavedConfig': 'Testing 654321'}
    #
    # We are going to use the "Username" and "Password" you logined it with for the API call
    # http_username and http_password
    #
    r = requests.get(url, auth=(http_username, http_password), data=payload, verify=False)
</pre>
<p>&nbsp;</p>
<p><span>This is what the running Config Saved looks like</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span><img src="https://us.v-cdn.net/6038418/uploads/lithium_attachments/2321iE0A1FB1284B79F62.jpg" role="button" title="2ndrun.jpg" alt="2ndrun.jpg" /></span></p>
<p>&nbsp;</p>]]>
        </description>
    </item>
    <item>
        <title>5 CCS Scripts to Jump Start Your NetMRI CCS Training</title>
        <link>https://community.infoblox.com/discussion/11972/5-ccs-scripts-to-jump-start-your-netmri-ccs-training</link>
        <pubDate>Thu, 07 Dec 2017 19:36:44 +0000</pubDate>
        <category>Automation</category>
        <dc:creator>SBaksh</dc:creator>
        <guid isPermaLink="false">11972@/discussions</guid>
        <description><![CDATA[<p>The attached samples scripts are for my first blog that will be posted shortly about NetMRI CCS scripting.&nbsp; Rename the files from "htm" to "ccs".</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        </description>
    </item>
    <item>
        <title>DISA STIG Compliance for the Enterprise Network…Really?</title>
        <link>https://community.infoblox.com/discussion/11990/disa-stig-compliance-for-the-enterprise-network-really</link>
        <pubDate>Mon, 11 Dec 2017 17:54:16 +0000</pubDate>
        <category>Community Blog</category>
        <dc:creator>Matt_Gowarty</dc:creator>
        <guid isPermaLink="false">11990@/discussions</guid>
        <description><![CDATA[<p>When most enterprise network experts hear <a href="https://iase.disa.mil/stigs/Pages/index.aspx" target="_blank" rel="nofollow noopener noreferrer">Defense Investigation Services Agency’s (DISA) Security Technical Implementation Guide (STIG)</a>, the immediate reaction tends to be “I’m not part of the federal government or Department of Defense, so it doesn’t impact me and has no value to me.”&nbsp; While the first part is correct that DISA STIG requirements are generally imposed on government entities, the second part is incorrect because DISA STIG best practices can provide huge value to enterprises.&nbsp;</p>
<p>&nbsp;</p>
<p>While non-government organizations may not be forced to pass a DISA STIG audit, the majority have their own compliance standards or best practices they must follow.&nbsp; In the enterprise world, there are two broad types of requirements – external standards imposed on enterprises and internal best practices that are self-imposed.&nbsp;</p>
<p>&nbsp;</p>
<ul>
<li>External standards imposed on enterprises – These are the most visible compliance standards because regulatory bodies place requirements on an organization based on certain criteria. Examples include standards like <a href="https://www.pcisecuritystandards.org/pci_security/" target="_blank" rel="nofollow noopener noreferrer">PCI DSS</a> for organizations accepting credit cards or industry-specific mandates like HIPAA for the healthcare industry and <a href="http://www.nerc.com/Pages/default.aspx" target="_blank" rel="nofollow noopener noreferrer">NERC</a>/<a href="https://www.ferc.gov/" target="_blank" rel="nofollow noopener noreferrer">FERC</a> for the utility industry.</li>
<li>Internal best practices that are self-imposed – Regardless of mandatory external standards applied to an organization, most successful enterprises have evolved a set of internal best practices that help maintain a safe, secure, and reliable network. Custom rules or policies should be created to ensure that goal.&nbsp;</li>
</ul>
<h2 id="toc-hId--1333307120"><strong><span style="font-size: large;">Compliance – Love or Hate?</span></strong></h2>
<p>&nbsp;</p>
<p>In a playful way, I tend to group compliance mandates with personal healthcare traits.&nbsp; Should I exercise more?&nbsp; Track what I eat better? Schedule preventive doctor appointments?&nbsp; We all say yes, yes, and yes, but many of us don’t do it well because we are too busy with other things and only think about it when we get sick.&nbsp;</p>
<p>&nbsp;</p>
<p>Compliance can be the same thing: we know we should be tracking and monitoring continuously.&nbsp; But do we?&nbsp; Typically it’s something we put off because it’s a tedious, manual process for most IT teams for implementation – and we all are too busy already.&nbsp; As a result, we tend to ignore compliance measures until we can’t – either when something breaks (or is broken into) or when an audit is required.&nbsp;</p>
<p>&nbsp;</p>
<h2 id="toc-hId--445803439"><strong><span style="font-size: large;">There is a Better Way</span></strong></h2>
<p>&nbsp;</p>
<p>While there are many nuances and details, there are three high-level processes that need to be followed for building and adhering to internal best practice policies and/or external mandates:</p>
<p>&nbsp;</p>
<ul>
<li>Build the definition of what policy must be followed by which device.</li>
<li>Implement the policies and ensure the current state of each device is compliant.</li>
<li>Continuously monitor any change over time and ensure the policy isn’t violated.</li>
</ul>
<p>Defining policies can be extremely challenging because organizations need to think about many different requirements and goals across the enterprise.&nbsp; Too often, the IT team is overworked with day-to-day requirements to set aside weeks or months to build detailed best practices and standards because there is often no clear starting point.&nbsp;</p>
<p>&nbsp;</p>
<p>For many standards, policies are not well defined.&nbsp; What does “keep a safe and secure network” mean?&nbsp; How do I take that from a vision to something that can be implemented?&nbsp; Do I have the expertise in-house?&nbsp; Do I have budget to hire a consultant?&nbsp; I don’t have an audit coming up, so should I just ignore it?&nbsp;</p>
<p>&nbsp;</p>
<h2 id="toc-hId-441700242"><strong><span style="font-size: large;">Someone Else Already Did the Hard Work for You</span></strong></h2>
<p>&nbsp;</p>
<p>This is where DISA STIG can help an enterprise or non-government organization – the building of definitions and policies for devices.&nbsp; From a network infrastructure point of view, the DISA STIG standards has hundreds of category 1, 2, and 3 rules/best practices for devices including:</p>
<ul>
<li>Firewall</li>
<li>Infrastructure Layer 2 Switch</li>
<li>Infrastructure Layer 3 Switch</li>
<li>Infrastructure Router</li>
<li>Network Devices</li>
<li>Perimeter Layer 3 Switch</li>
<li>Perimeter Router</li>
</ul>
<p>The DISA STIG standards highlight many things IT and networking teams should be looking for with regard to standards and best practices, so it’s a great starting place for taking the first step of compliance – defining the individual policies for both internal and external mandates. &nbsp;Don’t guess and build from scratch when you have a well-defined blueprint available that can be tweaked for your needs.&nbsp;</p>
<p>&nbsp;</p>
<p>When it comes to an audit, you’ll be much more successful if you can say “we are using the DISA STIG policies and rules as our standards” instead of “we’re good, trust me.”</p>
<p>&nbsp;</p>
<p><span style="font-size: large;"><strong>It’s a Start, but There is More</strong></span></p>
<p>&nbsp;</p>
<p>When it comes to step 2 (initial deployment of policies) and step 3 (continuous monitoring of policies), this is where an automated network change and configuration management solution can come in handy.&nbsp; This type of solution helps automate many of the manual tasks typically associated with compliance monitoring.</p>
<p>&nbsp;</p>
<p>If you’re looking to improve and automate network compliance or best practice monitoring, there are several things you should look for in a solution:</p>
<ul>
<li>Built-in policies and standards for common mandates (i.e. DISA STIG, PCI DSS, NSA, etc.) with automated updates</li>
<li>Ability to easily modify policies and/or create new rules bases on your individual requirements</li>
<li>Discovery of devices, device types, and operating systems because rules likely vary across different attributes</li>
<li>Templates to build policies based on needs (i.e. vendor, device type, application, internal/external facing, etc.)</li>
<li>Immediate comparison of current configuration against the rule</li>
<li>Ongoing tracking of all configuration changes with the ability to compare new configurations to the rule templates</li>
<li>Notification of rule violations with the ability to remediate immediately or on demand</li>
<li>Reporting and documentation for both troubleshooting and auditing</li>
</ul>
<p>While starting and defining an internal best practice or deciphering an external mandate can be overwhelming at first, don’t put your head in the sand and wait until there is a breach or an audit.&nbsp; There are steps you can take to make the process bite-sized and digestible.&nbsp; Leverage existing standards such as DISA STIG as a starting point and modify based on your requirements.&nbsp; Take advantage of automated network change and configuration management tools to eliminate the tedious, manual, repetitive processes.</p>
<p>&nbsp;</p>
<p>Setting up policies for tracking and monitoring best practices or mandates isn’t binary or a flip of a switch.&nbsp; It’s an evolutionary process where you build the standards, start tracking, monitor over time, and make continuous tweaks based on your individual needs.&nbsp; Take advantage of what others have built to make your job easier.&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        </description>
    </item>
   </channel>
</rss>
