This is an old revision of the document!
CLI TRICKS & SHORTCUTS - CISCO JEDI CLI
http://etherealmind.com/series/cisco-ios-cli-tricks-tips/
This is to make OR:
show interface | include is up|BW|load
For example, this one will show us both sections
sh run | s policy|class|access
This one is useful to know in which object group the IP 199.242.6.15 is:
sh run | inc object-group | 199.242.6.15
Create vlans (old style (for gns3))
Switch# vlan database Switch(vlan)# vlan vlan_ID Switch(vlan)# vlan vlan_ID state active Switch# show vlan
Truly replace the running configuration with the startup configuration, just as if you had rebooted the router.
configure replace
To show all implicit commands in the configuration:
show run all
To make dangerous changes:
reload in 5 cancel reload
To control vty logging
# terminal monitor # to send log messages to the vty # terminal no monitor # to stop it
COPY FILES FROM AND TO NIX BOX
(IOS)#copy scp://sfuller@192.168.11.100//app/tftpboot/poap.py flash: (IOS)#cd ? ! To show available file systems (IOS)#delete flash:<file> ! To delete a file in flash CP02-N5K-SW01# copy scp://10.50.254.204/var/tmp/n5000-uk9.7.0.3.N1.1.bin bootflash:
(linux)# scp test1 netrobot@10.8.90.21:flash:/test ! be sure router is scp server !!
To see contents of a file in IOS:
#more flash:Myconfig.txt
So from linux to cisco So basically the syntax is simplified, we can put user and password together and we don’t use the colon before the file location:
Configure R1 as an HTTP server, and set R8 to transfer the IOS image from R1, oversubscribing the shaped Ethernet sub-interface. Then, generate a flow of ICMP packets from R6 to R5, simulating the SCAVENGER class traffic. username admin privilege 15 password cisco
ip http authentication local ip http server ip http path bootflash:
TERMINAL SERVER:
Access a line:
telnet <lo> <specific.port> # define in corresponfing 'ip host'
Clear a busy line:
show line clear line <n>
SOFTWARE UPGRADES:
ASA: http://evilrouters.net/2012/02/15/how-to-upgrade-cisco-asa-software-and-asdm/
ASA: Apply lincense:
UK02-ASAVPN01(config)# activation-key b92afe7f 844fcec7 80a19dfc 8a240424 8d101598
FORCE FAILOVER:
failover active Forces a failover when entered on the standby unit in a failover pair. The standby unit becomes the active unit.
no failover active # Forces a failover when entered on the active unit To show just the ipsec config:
show run brief | s crypto|isakmp|access-list
AAA RADIUS TACACS+
To verify AAA authentication:
# test aaa-server authentication MKTX_TACACS username jsantos password 55336802 Server IP Address or name: 10.50.254.200 INFO: Attempting Authentication test to IP address <10.50.254.200> (timeout: 17 seconds) INFO: Authentication Successful
BASIC AAA CONFIGURATION ON IOS
aaa authentication <process> [default|<NAME>] <List of Methods>
http://packetlife.net/blog/2010/sep/27/basic-aaa-configuration-ios/
aaa authentication login ! user login authentication aaa authentication enable ! access the privileged command level aaa authentication http console ! AAA asdm aaa authentication ssh console ! aaa authentication enable serial console ! aaa authentication enable match !
And separatey:
aaa authorization exec VTY group tacacs+ if-authenticated # exec is to determined if the user is authorised to run an exec shell and how many/which commands
CISCO USER MODES
show privilege router(config)# username test password test privilege 3
SMMP On the client (if *nix) we can verify validity of a string with:
snmpwalk -v 2c -c {SNMPCOMMUNITY} 10.50.4.250
snmpwalk -v3 -l authPriv -u snmp-poller -a SHA -A "PASSWORD1" -x AES -X "PASSWORD1" 10.10.60.50
On the router/firewall, we can see the snmp value with:
more system://running-config | in snmp
—-
IOS NAMING CONVENTION
For the ios version: Train (SETM), Throttle (features), Build (fixes) :
http://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-software-release-1513t/200095-Understanding-Cisco-IOS-Naming-Conventio.html
For the ios file name!:Note letters/phrase for feature set and Run location/compression
SHOW CONFIGURATION WITHOUT BREAKS - NO STOP SCROLL
terminal length 0 # For IOS pager 0 # for ASA
—-
MULTI-USE EXPLORING/TROUBLESHOOTING
Approach 1:
Go to the edge device. I know the flow belongs to mpls and also the source of my flow 10.30.143.71 therefore:
DC03-DMZR01#sh ip route vrf mpls-dmz01 10.30.143.71 Routing entry for 10.30.0.0/16
Known via "bgp 65103", distance 200, metric 0, type internal
Last update from 10.255.30.100 7w0d ago
Routing Descriptor Blocks:
* 10.255.30.100, from 10.255.30.100, 7w0d ago
Route metric is 0, traffic share count is 1
AS Hops 0
MPLS label: none
MPLS Flags: NSF
DC03-DMZR01#sh ip cef vrf mpls-dmz01 10.255.30.100 10.255.30.100/32
nexthop 10.30.165.8 Vlan165
!!! OR DC03-DMZR01#sh ip cef vrf mpls-dmz01 10.255.30.100 10.255.30.100/32
nexthop 10.30.165.8 Vlan165
!!!
DC03-DMZR01#sh run int Vlan165 Building configuration... Current configuration : 462 bytes ! interface Vlan165 description MPLS-FWALL-OUT interface <<<<< vrf forwarding mpls-dmz01 mac-address c000.0165.0011 mtu 8500 ip address 10.30.165.11 255.255.255.0 no ip redirects no ip proxy-arp ip flow ingress ip flow egress ip pim dr-priority 5 ip pim sparse-mode ip igmp version 3 glbp 165 ip 10.30.165.1 glbp 165 priority 105 glbp 165 preempt no glbp 165 load-balancing glbp 165 name MPLS-FWALL-OUT-GLBP mls netflow sampling no mop enabled end !! Not just we can check the description but also use cdp. Or: ! show mac address table ! sh arp vrf ! And follow the prefix until the destination ! if the device is behind a transparent firewall it'll show same mac address in two different vlans 1st column
Approach 2:
dc04-nx7k01-mktx-dr01# sh ip arp vrf all | inc 10.40.70.125 dc04-nx7k01-mktx-dr01# sh run int Vlan70 ! To see the description dc04-nx7k01-mktx-dr01# sh ip route vrf sysmgmt 10.8.70.125 ! To see the next hop. NOTE: DESTINATION!! dc04-nx7k01-mktx-dr01# sh ip bgp vrf sysmgmt ! To see the next hop
Now I know this is in the dmz, so I go to :
DC04-DMZR01#sh ip route vrf main-dmz01 10.8.70.125 DC04-DMZR01#sh ip arp vrf main-dmz01 10.40.185.8 DC04-DMZR01#sh mac-address-table | inc 001c.7f34.d54 ! This is telling the physical port i'm going out from
BUILDING SERVICE POLICIES
ciscoasa(config)# access-list icmp_inspect extended permit icmp 10.1.1.0 255.255.255.0 host 1.1.1.1 log ciscoasa(config)# access-list ratelimit_inside extended permit ip 10.1.1.0 255.255.255.0 any log
Now define the Layer 3-4 class map by referencing the above ACLs in it.
ciscoasa(config)# class-map ratelimit_class ciscoasa(config-cmap)# match access-list ratelimit_inside ciscoasa(config-cmap)# class-map icmp_class ciscoasa(config-cmap)# match access-list icmp_inspect
2. Define a Layer 3-4 policy-map
ciscoasa(config)# policy-map company_policy ciscoasa(config-pmap)# class icmp_class ciscoasa(config-pmap-c)# inspect icmp
ciscoasa(config)# policy-map company_policy ciscoasa(config-pmap)# class ratelimit_class ciscoasa(config-pmap-c)# police input 41943000 4194304 ciscoasa(config-pmap-c)# police output 41943000 4194304
3. Apply the policy-map to the appropriate interfaces
ciscoasa(config)# service-policy company_policy interface inside
CISCO 6500-E to 6807-XL
Status of each of the chassis (useful in vss)
sh module switch 1/2
To show basic VSS informations:
#show switch virtual
To identify the role/priority of the two switches:
#show switch virtual role
To find more informations about the VSS status:
#show switch virtual redundancy
http://www.ciscozine.com/cisco-vss-configuration/
Integrated Service Modules
VSS
A useful analogy is: Catalyst VSS is like juniper VC. VSS operates on a unified control plane with a distributed forwarding architecture in which the active supervisor (or switch) is responsible for actively participating with the rest of the network and for managing and maintaining control plane information.
http://networkphil.com/2016/01/18/short-and-sweet-cisco-vss/?utm_content=bufferd7644&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
http://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/117564-technote-issu-00.html
LOG INTO CARDS/SLOTS (we use this for the ASA)
session slot 9 processor 1
CONTEXTS (we use this for the ASA)
To enable multiple mode, enter the following command:
hostname(config):mode multiple
To change to a context, enter the following command (changeto..)
hostname# changeto context name
From the system execution space, view all contexts by entering the following command:
hostname# show context [name | detail| count]
We can Create a context and assign resources (eg interfaces) like this:
context qad-transfwall allocate-interface Port-channel10.2142-Port-channel10.2545 allocate-ips vsDIST config-url disk0:/qad-new.cfg
EtherChannels
Deterministic Hash-based Channel Load-Balancing
Load Sharing is always Per Flow (Not Per Packet).L2, L3 and / or L4 addresses.
vrf/mpls -
MP-BGP by RD. Show only vpn routes for this rd
show bgp vpnv4 unicat rd 10:10
Show all received MP-BGP routes. We can further limit this with the vrf where we consider they should end up
sh bgp vpnv4 neighbors 5.5.5.5 advertised-routes
Similar:
sh bgp vpnv4 unicast vrf ONE
UPGRADING THE 6500
http://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/117564-technote-issu-00.html
UK02-CR01#copy bootdisk:s2t54-advipservicesk9-mz.SPA.151-2.SY7.bin scp: Address or name of remote host []? 10.8.100.204 Destination username [jsantos]? Destination filename [s2t54-advipservicesk9-mz.SPA.151-2.SY7.bin]? Writing s2t54-advipservicesk9-mz.SPA.151-2.SY7.bin Password: ! Sink: C0644 118655448 s2t54-advipservicesk9-mz.SPA.151-2.SY7.bin !!!!!!!!!!!
TROUBLESHOOTING Layer 2 table:
show mac address-table
IPv4 forwarding status:
show platform hardware capacity forwarding show platform hardware cef [IP]
Netflow status:
show platform hardware capacity netflow
CEF:
show cef state show ip cef summary show ip cef detail show ip cef <ip> ! ! To see interface for a route show ip cef <interface> ! To see routes pointing to a certain interface show ip cef exact-route <src> <dst>
http://packetlife.net/blog/2011/may/27/show-ip-cef/
CAPTURE PACKETS PCAPS
monitor capture 1 interface eth1 both monitor capture 1 match any monitor capture 1 start show monitor capture 1 buffer monitor capture 1 export tftp
BGP
show ip bgp <prefix> !! EXPLAINED
x.x.x.x from y.y.y.y (z.z.z.z)
note: With eBGP usually IPs 1 and 2 are identical and IP no.
TERMINAL SERVER\\#
Disconnect session:
control-shift-6 then x
JUNIPER JUNOS JEDI
Copy files between linecards:
file copy fpc2:/var/tmp/xxx.0.tgz fpc0:/var/tmp/xxx.0.tgz # to copy files between members
Connect to a different linecard:
request session <fpc-number>
CLI TRICKS & SHORTCUTS - JUNIPER JEDI CLI
CONFIGURATION MANAGEMENT:
To check Previous Commits. Current and past (50) configs are in /config/juniper.conf.x
show system commit > show system commit 0 2017-07-22 12:15:05 UTC by jaime_santos via cli commit synchronize show system rollback 2 compare 0 # to compare rollback 2 # to jump to the state in 2
show | compare rollback 3 # To see previous states (from the config mode):
Config files location: External Link. Current config in /config . Past configs in /config & /var/db/config
Apply configurations. See this Link for examples:
[edit] user@host# load (factory-default | merge | override | patch | replace | set | update) filename
# load patch terminal # load merge relative terminal # loads in the same hierarchical manner we see it in the config. # load merge ftp://username:password@172.30.36.59/switch_juniper.conf.gz_20080304_141543 # Loads it from a file. note it Requires to be zipped!
To make dangerous changes:
commit confirmed {minutes}
commit # to cancel the rollback
LINUX JEDI
for host in cc0{1..8}; do echo $host $(ssh $host '(ip r get 8.8.8.8; curl -s ipecho.net/plain)'); done
This is to check if a route is installed. If yes, do nothing, if not, install it. This can be set as a one liner in the cron file
(ip route show |grep -q '100.100.100.100 dev eno1') || ip route add 100.100.100.100 dev eno1 # grep -q means 'quiet'
This one liner goes though all servers and modifies the mtu (note use of 'seq' to generate a squence, read this for info about formatting:
for host in $(seq --format='cc%02.0f' 01 17); do ssh $host "/sbin/ip link show|egrep '(em|eth|bond)[0-9]:' | cut -d: -f 2"| xargs -n 1 ssh $host ip link set mtu 9000 dev ; done
TEMPLATE
for host in $(seq --format='sw-e%02.0f' 12 20); do sshh jaime_santos@"$host".dc.grapeshot.co.uk "sh config | match 401"; done
To send a bunch of commands (e.g.: edit, configuration and commit, contained in a file called 'commands'):
for host in $(seq --format='sw-e%02.0f' 12 20); do cat commands | sshh jaime_santos@"$host".dc.grapeshot.co.uk ; done
PIPE NOT AVAILABLE
Have a file with the symbol and do this
echo $(echo "sdh") $(cat /pipe)
Extract current IPs in dns server
ssh root@marrow "egrep "10.8.8" /var/named/db.dc.grapeshot.co.uk | awk '{print $4}' | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | uniq"
ssh root@marrow "egrep "10.8.8" /var/named/db.dc.grapeshot.co.uk | awk '{print $1}' | egrep -v ";" | egrep -v '\$' | egrep -v mgt | sed -e 's/$/.dc.grapeshot.co.uk/'
ping jumbo from linux:
ping -M do -s 8972 [destinationIP]
BGP COMMUNITY:
1.- Set the communitity (node a)
ip bgp-community new-format route-map set_community 10 permit match ip address prefix-list LOOPBACK set community 109 route-map set_community 20 permit neighbor 5.5.5.5 send-community neighbor 5.5.5.5 route-map xxx out !
2.- Match on the other side (node b ):
ip community-list expanded AS100 100:[0-9]+ ! any community coming from asn100 route-map set_weight permit 10 match community AS100 set local-preference 120 route-map set_weight permit 20 neighbor 151.100.1.1 send-community neighbor 151.100.1.1 route-map xxx out ! 'out' is correct, basically the AS100 community is learnt via any (other neighbor)
3.- TO REMOVE/DELETE PART OF A COMMUNITY LIST
ip community-list expanded AS200 permit 200:[0-9]+_ route-map RESET_COMMUNITY permit 10 match as-path 1 set comm-list AS200 delete neighbor 192.168.1.1 route-map RESET_COMMUNITY in
4.- To show community
ISP1#show ip bgp 10.10.10.10
BGP routing table entry for 10.10.10.10/32, version 6
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to update-groups:
1 2
10
192.168.10.10 from 192.168.10.10 (10.10.10.10)
Origin IGP, metric 0, localpref 100, valid, external, best
Community: 4258791424 ! <<<
SERVICE INSERTION: WCCP: web cache control protocol (transparent web cache/old school best standard for service insertion)