yes, we can connect a transceiver XFP-10G-MM-SR in one side and SFP-10G-SR in other side.
I am a network professional with over 18 years of experience in enterprise and data‑center networking. I am a CCIE Data Center certified engineer with strong hands‑on expertise in Cisco Nexus and Cisco ACI design, deployment, troubleshooting, and operations. I work on production ACI fabrics and am available for Cisco ACI and Nexus freelancing or consulting work. Contact: rockingoa@gmail.com
Friday, 11 December 2020
Throughput license installation in ASR 1002-x
Sunday, 25 October 2020
Steps to establish a physical connection in ACI
To implement a physical connection in ACI, first define the following:
Friday, 25 September 2020
Host a SSL (https) website on Ubuntu
Below are the steps to host a website on port 80. In the below example 172.16.1.11 is the IP adddress on the Ubuntu server which will receive the customer traffic.
sudo a2enmod ssl
STEP 2: Create a directory which contatin the certifcate and key.
Sudo Su
mkdir /etc/apache2/ssl
STEP 3: Generate self sign certificate and key
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
nano /var/www/html/172.16.1.12_all/index.html
<html>
<title>172.16.1.12_8080</title>
<h1>Welcome to 172.16.1.12_8080 Website</h1>
<p>Website on port 8080</p>
</html>
ctrl + X then press Y
Press Enter
STEP 4: Add below ServerName in apache2.conf file
/etc/apache2/apache2.conf file:
ServerName localhost
STEP 5: Add the website to the "SITES-AVAILABLE" FOLDER.
nano /etc/apache2/sites-available/172.16.1.12_all_ssl.conf
<VirtualHost 172.16.1.12:443>
ServerAdmin admin@localhost
ServerName 172.16.1.12
DocumentRoot /var/www/html/172.16.1.12_all
DirectoryIndex index.html
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
Press Enter
STEP 6: Publish the website on Ubuntu
sudo a2ensite 172.16.1.12_all_ssl
STEP 7: Restart Apache service
sudo service apache2 restart
STEP 8: Check the website syntax
apachectl configtest
Tuesday, 22 September 2020
Host a website on Ubuntu on multiple ports
Below are the steps to host a website on multiple ports. In the below example 172.16.1.11 is the IP adddress on the Ubuntu server which will receive the customer traffic.
STEP 1: Create a directory which will contain the HTML page of the website.
Sudo Su
mkdir /var/www/html/172.16.1.10_all
STEP 2: Create the index html file and add the HTML code in it
nano /var/www/html/172.16.1.10_all/index.html
<html>
<title>172.16.1.10</title>
<h1>Welcome to 172.16.1.10 Website</h1>
<body style="background-color:orange;">
</body>
<p>Website on port 80</p>
</html>
ctrl + X then press Y
Press Enter
STEP 4: Give Sufficient permission to the folder
chown -R www-data:www-data /var/www/html/172.16.1.10_all
STEP 5: Add the website to the "SITES-AVAILABLE" FOLDER.
nano /etc/apache2/sites-available/172.16.1.10_all.conf
<VirtualHost 172.16.1.10:*>
ServerAdmin admin@localhost
ServerName 172.16.1.10
DocumentRoot /var/www/html/172.16.1.10_all
DirectoryIndex index.html
ErrorLog ${APACHE_LOG_DIR}/80_error.log
CustomLog ${APACHE_LOG_DIR}/80_access.log combined
</VirtualHost>
ctrl + X then press Y
Press Enter
STEP 6: Publish the website on Ubuntu
a2ensite 172.16.1.10_all
STEP 7: Restart Apache service
systemctl restart apache2
Host a website on Ubuntu on port 80
Below are the steps to host a website on port 80. In the below example 172.16.1.11 is the IP adddress on the Ubuntu server which will receive the customer traffic.
STEP 1: Create a directory which will contain the HTML page of the website.
Sudo Su
mkdir /var/www/html/172.16.1.11_80
STEP 2: Create the index html file and add the HTML code in it
nano /var/www/html/172.16.1.11_80/index.html
<html>
<title>172.16.1.11_80</title>
<h1>Welcome to 172.16.1.11_80 Website</h1>
<p>Website on port 80</p>
</html>
ctrl + X then press Y
Press Enter
STEP 4: Give Sufficient permission to the folder
chown -R www-data:www-data /var/www/html/172.16.1.11_80
STEP 5: Add the website to the "SITES-AVAILABLE" FOLDER.
nano /etc/apache2/sites-available/172.16.1.11_80.conf
<VirtualHost 172.16.1.11:80>
ServerAdmin admin@localhost
ServerName 172.16.1.11
DocumentRoot /var/www/html/172.16.1.11_80
DirectoryIndex index.html
ErrorLog ${APACHE_LOG_DIR}/80_error.log
CustomLog ${APACHE_LOG_DIR}/80_access.log combined
</VirtualHost>
ctrl + X then press Y
Press Enter
STEP 6: Publish the website on Ubuntu
a2ensite 172.16.1.11_80
STEP 7: Restart Apache service
systemctl restart apache2
Monday, 21 September 2020
Host Multiple Websites on a Single Server with Apache on Ubuntu
Below config is to host multiple website which runs on different port on same server:-
Step1: Make two directories one for each port
mkdir /var/www/html/172.16.1.12_8080
mkdir /var/www/html/172.16.1.12_8081
Step2: Create index file for site on port 8080
nano /var/www/html/172.16.1.12_8080/index.html
<html>
<title>172.16.1.12_8080</title>
<h1>Welcome to 172.16.1.12_8080 Website</h1>
<p>Website on port 8080</p>
</html>
CTRL X then press Y
press Enter
Step3: Create index file for site on port 8081
nano /var/www/html/172.16.1.12_8081/index.html
<html>
<title>8081</title>
<h1>Welcome to 172.16.1.12_8081 Website</h1>
<p>Website on port 8081</p>
</html>
CTRL X then press Y
press Enter
Step4: Assign priviledge to sites
chown -R www-data:www-data /var/www/html/172.16.1.12_8080
chown -R www-data:www-data /var/www/html/172.16.1.12_8081
Step5: Add 8080 site
nano /etc/apache2/sites-available/172.16.1.12_8080.conf
<VirtualHost 172.16.1.12:8080>
ServerAdmin admin@localhost
ServerName 172.16.1.12
DocumentRoot /var/www/html/172.16.1.12_8080
DirectoryIndex index.html
ErrorLog ${APACHE_LOG_DIR}/8080_error.log
CustomLog ${APACHE_LOG_DIR}/8080_access.log combined
</VirtualHost>
CTRL X then press Y
press Enter
Step6: Add 8081 site
nano /etc/apache2/sites-available/172.16.1.12_8081.conf
<VirtualHost 172.16.1.12:8081>
ServerAdmin admin@localhost
ServerName 172.16.1.12
DocumentRoot /var/www/html/172.16.1.12_8081
DirectoryIndex index.html
ErrorLog ${APACHE_LOG_DIR}/8081_error.log
CustomLog ${APACHE_LOG_DIR}/8081_access.log combined
</VirtualHost>
CTRL X then press Y
press Enter
Step7: Enable sites
a2ensite 172.16.1.12_8080
a2ensite 172.16.1.12_8081
Step7: Restart Apache
systemctl restart apache2
Sunday, 20 September 2020
Stuck in Configuration Utility restarting - Big IP
1. Log in to BIG-IP .
2. Make a backup using below command :
/config/httpd/conf.d/proxy_ajp.conf cp /config/httpd/conf.d/proxy_ajp.conf /config/httpd/conf.d/proxy_ajp.conf.bk
3.Edit /config/httpd/conf.d/proxy_ajp.conf
Below is the command to make the changes. After the command press "i" (insert) to enable the editing and once the changes are done, enter esc and type :wq!(write and quite).
vi /config/httpd/conf.d/proxy_ajp.conf
Locate the following two "#ProxyPass" lines and the below command .
#ProxyPass /tomcat/ ajp://localhost:8009/
#ProxyPass /examples/ ajp://localhost:8009/jsp-examples/
ProxyTimeout 10 #<----- Add this line
4.Save and close the file.
5.Restart httpd and tomcat.
bigstart restart httpd tomcat
Wednesday, 16 September 2020
F5 default credentials and some interesting Facts.
Below are the default credentials for F5. you can change the credentials during initial setup wizard.
Cli
Username: root
Password: default
GUI
Username:admin
Password:admin
Interesting Fact:-
- Root and admin username cannot be deleted from F5.
- BY default, username admin doesnot have access to the CLI but we can assign either advance shell or TMOS access to the "admin" user.
- No GUI access can be given to user "root"
Global NTP servers
NTP is a UDP based service which works on port number 123.It is recommended to use pool.ntp.org to find an NTP server.
All zones in All Pool Servers.
- Africa — africa.pool.ntp.org
- Antarctica — antarctica.pool.ntp.org
- Asia — asia.pool.ntp.org
- Europe — europe.pool.ntp.org
- North America — north-america.pool.ntp.org
- Oceania — oceania.pool.ntp.org
- South America — south-america.pool.ntp.org
Below is the command to check the ntp status on respective platforms.
A. Windows
w32tm /query /peers
B. Ubuntu
/etc/ntp.conf
Wednesday, 9 September 2020
DNS root server list - A-M
Wednesday, 5 August 2020
SNMPv3 config on Cisco routers/Switches
Monday, 3 August 2020
Enable Password vs Enable Secret command on cisco routers/switches
Thursday, 18 June 2020
uRPF and its modes : Strict vs Loose
Unicast RPF works in one of below modes:
1. Strict mode: Router will perform two checks:.
A. Router checks the routing entry for the source address of the packet and will drop the packet in case no route is present on the routing table for the source address.
B. Router will ensure that the source of incoming packet is reachable via same interface. Router will drop the packet in case source address is learned via different interface than from the one, packet in ingress ed.
Command:-
Int eth1/1
ip verify unicast reverse-path --<<< Old command but still available on some platforms
or
IP verify unicast source reachable-via rx
ip verify unicast reverse-path (Unicast RPF)
2. Loose mode(default mode): Only make sure that route for the source address is present in the routing table.
Int eth1/1
IP verify unicast source reachable-via Any
Note:- Above matching criteria is not applicable for default route and will not allow traffic where source is only matching the default route. the " Allow-default" keyword is used to change this behaviour and traffic will be allowed where source address is matching only the default route.
Wednesday, 17 June 2020
BGP: x.x.x.x Active open failed - no route to peer, open active delayed 9216ms (35000ms max, 60% jitter)
I was working on an issue and got above logs while doing the debug of BGP on the cisco router.
Below are the two thing which we need to test to resolve such issues.
1. Specific route for the BGP neighbor IP address. BGP neighborship is dependent on it and default route won't work.
2. Ebgp multihop. Make sure to configure the eBGP multihop command while making the ebgp neighborship on the indirectly connected routers.
Monday, 2 March 2020
Cisco Traditional Vs Smart Licensing
|
Traditional (node locked) licencing
|
Smart (dynamic) licencing
|
|
Manual individual license procurement and installation
|
Device initiates a call home and requests the licenses it needs.
|
|
Node-locked licences - license is associated
with a specific device.
|
Pooled
licences - licences are company account-specific, and can be used with any
compatible device in your company. You can activate or deactivate different
types of licenses on the device without actually installing a license file on
the device.
|
|
No common install base location to view
licenses purchased or software usage trends
|
Licenses are stored securely on Cisco servers accessible all the time.
|
|
No easy means to transfer licenses from one
device to another.
|
Licenses
can be moved between product instances without a license transfer. This
greatly simplifies the reassignment of a software license as part of the
Return Material Authorization (RMA) process.
|
|
Limited visibility into all software
licenses being used in the network. Licenses are tracked only on per node
basis.
|
Complete view of all Smart Software Licenses used in the network using
a consolidated usage report of software licenses and devices in one
easy-to-use portal.
|
Tuesday, 18 February 2020
IP NAT inside source vs IP NAT outside source
IP NAT inside source vs IP NAT outside source
For more information please refer to below cisco link
https://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/13773-2.html
Friday, 14 February 2020
ISR 4331/4531 features in Evaluation mode
Below are the features available in Evaluation mode.
#sh license feature
Feature name Enforcement Evaluation Subscription Enabled RightToUse
appxk9 yes yes no no yes
uck9 yes yes no no yes
securityk9 yes yes no yes yes
ipbasek9 no no no yes no
cme-srst yes yes no no yes
hseck9 yes no no yes no
throughput yes yes no no yes
internal_service yes no no no no
How to enable RTU package on ISR 4331/4531
config t
license accept end user agreement
yes
exit
license right-to-use move appxk9
config t
license boot level appxk9
end
wr mem
How to enable evaluation license
license feature appxk9
Friday, 7 February 2020
Catalyst 9000 License
|
License Level
|
Network Stack offer (Perpetual and embedded)
|
Cisco DNA Software Subscription offer (Term
based)
|
|
-E
|
Network Essentials
|
Cisco DNA Essentials (3, 5, or 7 years)
|
|
-A
|
Network Advantage
|
Cisco DNA Advantage (3, 5, or 7 years)
|
Monday, 3 February 2020
Install python and Paramiko on windows machine
Thursday, 30 January 2020
3850 stack requirement
Whereas License(LAN base, IP base or IP services( and IOS XE version must be same on all stack switches. for example, Catalyst 3850 switches with LAN Base feature can only be stack with other 3850 LAB switches.
Maximum 8 switches can be part of single stack.
Cisco ACI Multi-Pod IPN Configuration Explained (Design, Requirements & Best Practices)
Introduction
In Cisco ACI Multi-Pod architecture, the Inter-Pod Network (IPN) is a critical component that connects spine switches across different pods. A properly designed IPN ensures stable control plane communication, efficient traffic forwarding, and overall data center reliability.
This guide explains IPN configuration requirements, supported hardware, and key design considerations for real-world deployments.
Why IPN Is Important in ACI Multi-Pod
The IPN enables communication between multiple ACI pods and is responsible for:
- MP-BGP control plane communication
- Endpoint information exchange
- Forwarding BUM traffic (Broadcast, Unknown Unicast, Multicast)
- Maintaining inter-pod connectivity
Incorrect IPN design can lead to MP-BGP instability, endpoint learning issues, and network outages.
Mandatory IPN Configuration Requirements
Routed Sub-Interface with VLAN 4
IPN interfaces must be configured as routed sub-interfaces using VLAN 4. Other configurations like routed physical ports or SVIs are not supported.
Jumbo MTU Requirement
IPN devices must support an MTU of 9150 bytes. All devices in the path must support jumbo frames.
If MTU is not consistent:
- MP-BGP adjacency may flap
- VXLAN traffic may fail
PIM BiDir Support
IPN must support PIM Bidirectional mode.
This is required to handle:
- Broadcast traffic
- Unknown unicast traffic
- Multicast traffic
OSPF Routing Protocol
- Only OSPF is supported between IPN devices and ACI spine switches.
- Other routing protocols like BGP and EIGRP cannot be used in this scenario.
DHCP Relay Requirement
If you plan to deploy additional pods using Zero Touch Provisioning (ZTP), DHCP relay must be configured on the IPN network.
QoS Policy Recommendation
QoS is not mandatory but recommended.
It helps prioritize:
- Control plane traffic
- MP-BGP updates
- Critical ACI communication
Design Best Practices
For a stable Multi-Pod deployment, ensure:
- End-to-end MTU consistency
- Redundant IPN paths
- Correct multicast design
- Stable OSPF neighbor relationships
These factors directly impact performance and scalability.
Supported IPN Hardware
IPN devices must support all required features such as MTU, PIM BiDir, and OSPF.
Commonly used hardware includes:
- Cisco Nexus 7000
- Cisco ASR 1000 Series
- Nexus N3K-C3548P-10GX
Unsupported hardware:
- Nexus N3K-C3172PQ-10GE
Always validate hardware capability before deployment.
Real-World Deployment Tips
- Verify MTU end-to-end before deployment
- Validate multicast configuration carefully
- Monitor MP-BGP sessions between pods
- Use QoS to protect control plane traffic
- Avoid unsupported hardware
Important Cisco ACI IPN Questions (Multi-Pod Interview Guide)
1. What are the Cisco ACI IPN configuration requirements?
Answer:
Key requirements for IPN in ACI Multi-Pod include:
- Routed sub-interface using VLAN 4
- MTU size of 9150 across the entire path
- Support for PIM Bidirectional (BiDir)
- OSPF as the routing protocol
- DHCP relay for zero-touch deployment (optional but recommended)
- QoS for prioritizing control-plane traffic
Explanation:
These requirements ensure stable communication between pods. Any mismatch (especially MTU or VLAN) can cause MP-BGP instability and traffic drops.
2. Why is VLAN 4 used in Cisco ACI IPN?
Answer:
VLAN 4 is a mandatory VLAN used for IPN connectivity between ACI spine switches across different pods.
Explanation:
Cisco ACI is designed to use VLAN 4 internally for IPN communication. It cannot be changed or replaced. This ensures standardized communication and compatibility in Multi-Pod deployments.
3. Why is MTU 9150 required in Cisco ACI?
Answer:
MTU 9150 is required to support VXLAN encapsulated traffic in ACI Multi-Pod environments.
Explanation:
VXLAN adds additional headers to packets. If MTU is less than 9150:
- Packets may get fragmented
- MP-BGP sessions may flap
- Traffic forwarding may fail
Ensuring jumbo frame support across all devices is critical.
4. What is the role of PIM BiDir in ACI Multi-Pod?
Answer:
PIM Bidirectional (BiDir) is used to carry BUM traffic (Broadcast, Unknown Unicast, Multicast) across pods.
Explanation:
In ACI Multi-Pod:
- BUM traffic must reach all endpoints
- PIM BiDir provides efficient multicast forwarding
- Reduces unnecessary flooding
This ensures optimized and scalable communication between pods.
5. How does IPN work in Cisco ACI Multi-Pod?
Answer:
IPN acts as a Layer 3 interconnect between spine switches of different pods.
Explanation:
It enables:
- MP-BGP exchange between spines
- Endpoint learning across pods
- VXLAN traffic forwarding
Traffic flow:
- Leaf → Local Spine → IPN → Remote Spine → Remote Leaf
This ensures seamless communication across geographically separated data centers.
6. What are the best practices for ACI Multi-Pod IPN design?
Answer:
Best practices include:
- Ensure MTU 9150 end-to-end
- Use redundant IPN paths
- Enable PIM BiDir correctly
- Maintain stable OSPF adjacency
- Implement QoS for control traffic
- Avoid unsupported hardware
Explanation:
Following these practices prevents:
- Traffic loss
- Control plane instability
- Fabric outages
A properly designed IPN ensures scalability and high availability.
Saturday, 25 January 2020
SSH accessibility check of multiple cisco router and save the output in a file
import time
import sys
import logging
import socket
remote_conn_pre = paramiko.SSHClient()
remote_conn_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy())
f= open("output.txt","w+")
ips = [i.strip() for i in open("ip.txt")]
import logging
logging.getLogger('paramiko.transport').setLevel(logging.DEBUG)
paramiko.util.log_to_file("logs")
for ip in ips:
try:
remote_conn_pre.connect(ip, username='test', password='test', timeout=4, look_for_keys=False, allow_agent=False)
remote_conn = remote_conn_pre.invoke_shell()
print (ip + ' === Device Reachable')
f.write(ip + ' === Device Reachable'"\n")
time.sleep(2)
except paramiko.AuthenticationException:
print ip + ' === Bad credentials'
f.write(ip + ' === Bad credentials'"\n")
time.sleep(2)
except paramiko.SSHException:
print ip + ' === Issues with ssh service'
f.write(ip + ' === Issues with ssh service'"\n")
time.sleep(2)
except socket.error:
print ip + ' === Device unreachable'
f.write(ip + ' === Device unreachable'"\n")
time.sleep(2)
f.close()
SSH accessibility check on mulitple routers
Make a notepad contain IP address of the routers where we need to check the SSH accessibility.
import paramiko
import time
import sys
import logging
import socket
remote_conn_pre = paramiko.SSHClient()
remote_conn_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ips = [i.strip() for i in open("ip.txt")]
for ip in ips:
try:
remote_conn_pre.connect(ip, username='test', password='test', timeout=4, look_for_keys=False, allow_agent=False)
remote_conn = remote_conn_pre.invoke_shell()
print (ip + ' === Device Reachable')
remote_conn.send("\n")
time.sleep(2)
except paramiko.AuthenticationException:
print ip + ' === Bad credentials'
except paramiko.SSHException:
print ip + ' === Issues with ssh service'
except socket.error:
print ip + ' === Device unreachable'
Friday, 24 January 2020
Jumbo frame configuration on Nexus
mtu 9216
no switchport
mtu 9216
class type network-qos class-default
mtu 9216
system qos
service-policy type network-qos jumbo
Nexus(config-if)#mtu 9216
Wednesday, 15 January 2020
How to create BD in Cisco ACI
2. Name BD and map the VRF to this BD. Press NEXT to proceed.
5. You can see subnet details will be displayed in L3 configuration section. Click NEXT to Proceed.
6. Click Finish to create the BD
Tuesday, 14 January 2020
How to create VRF in Cisco ACI
2. Enter the VRF name and keep the other settings on default. In this step you also get an option to create the BD. It is by default checked. Press Next to create the VRF.
How to Create Tenant on Cisco ACI
Adding a tenant to the fabric is a non-impacting change and can be done at any moment.














