Showing posts with label lab. Show all posts
Showing posts with label lab. Show all posts

CCIE:Sec practice lab - Day 1

I have been mulling over how to best go about this new CCIE Security lab. I have covered pretty much everything I think I need to cover in a whole bunch of other posts, so doing posts about this is probably needlessly repetitive.

So... what to do? Well, I like blogging, it helps me remember things, it helps me try and formulate ideas in a coherent manner, so it's beneficial to me as the timer keeps ticking down. At the same time, though, I don't want you lovely people to sit there thinking "he wrote that last week..", so the posts leading up to my lab will pretty much just be me working through the labs I am going to create and seeing how my speed increases and how my need to google the answers decreases. The posts will be pretty much lacking in explanation.

The labs will be posted on the forum, and the first one is there already. I think what I will do (IF I pass the lab!) is create some workbook PDFs, which will include the explanations (in depth) and make them available for purchase through the website (probably for about £4.99 or something small like that). I don't want to write a full book for the CCIE Security (I already have people wanting a book on Multicast and QoS, so want to do that after the lab), but they will include the thought process, the gotchas that I faced, and the desired results.

Let me know if you like this idea in the comments section below. If you guys think it's a good idea then I'll do it, if not then I'll save myself the time!

Day 1: 76 days to go

Anyway, I started off the new lab today. Not a bad day, especially as Virgin Media decided to dig u the cable in my street and I was without Internet access from 8:45am till 6pm. At least it meant that I could not Google the answers. It was not a proper lab scenario, as I still had work to do (not easy without Internet access), so is not representative of the 8-hour lab exam. At the moment it's all about building the speed up, so I expect to get quicker with subsequent labs.

Today I covered DMVPN, Transparent ASA, Failover ASA, and set up the network ready to implement GETVPN.

Most of the core of this bit is now set up:


I got caught out a couple of times, but am, generally, pretty pleased with the progress. It's certainly nice to put a line through some of the objectives.

So here is the work today.

Lon-2 is the best place to start, it connects the 10.2.0.0/16 network, and the 10.1.0.0/16 network, so really, we only need to add two routes:
Switch(config)#int gi0/0
Switch(config-if)#swi mo acc
Switch(config-if)#swi acc vl 21
Switch(config-if)#

LON-2(config)#ip route 10.2.0.0 255.255.0.0 10.1.21.200
LON-2(config)#ip route 10.1.0.0 255.255.0.0 10.1.22.254
Similarly, LON-1 is an easy configuration:
LON-1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.254
LON-1(config)#
LON-1(config)#do ping 10.1.22.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.22.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/6/8 ms
LON-1(config)#
Because LON-1 does not need to know about the devices behind the GETVPN-Client, we don't need to add any routes for them.

Let's set up DM-Hub1 and DM-Hub2:
DM-Hub1(config)#ip route 10.1.22.0 255.255.255.0 10.1.24.254
DM-Hub1(config)#ip route 10.1.1.0 255.255.255.0 10.1.24.254 
DM-Hub1(config)#

DM-Hub2(config)#ip route 10.1.22.0 255.255.255.0 10.1.5.254
DM-Hub2(config)#ip route 10.1.1.0 255.255.255.0 10.1.5.254 
DM-Hub2(config)#

DM-Hub1(config)#do ping 10.1.22.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.22.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 7/8/10 ms
DM-Hub1(config)#do ping 10.1.1.1 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/6/8 ms
DM-Hub1(config)#

DM-Hub2(config)#do ping 10.1.22.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.22.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/8/10 ms
DM-Hub2(config)#do ping 10.1.1.1 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/7/10 ms
DM-Hub2(config)#
Let's set up DMVPN!

I am trying to do as much of this from memory as possible, so let's see how far I can get it without looking anything up. This is the configuration I came up with:
LON-2(config-if)#do sh run int tun 0
Building configuration...

Current configuration : 355 bytes
!
interface Tunnel0
 ip address 192.168.1.22 255.255.255.0
 no ip redirects
 ip nhrp authentication CCIE
 ip nhrp map 192.168.1.1 10.1.24.1
 ip nhrp map 192.168.1.2 10.1.5.1
 ip nhrp map multicast 10.1.24.1
 ip nhrp map multicast 10.1.5.1
 ip nhrp network-id 101
 ip nhrp nhs 192.168.1.1
 ip nhrp nhs 192.168.1.2
 tunnel source GigabitEthernet0/1
 tunnel mode gre multipoint
end

LON-2(config-if)#
Now for Lon-1
LON-1(config)#interface Tunnel0
LON-1(config-if)# ip address 192.168.1.11 255.255.255.0
LON-1(config-if)# no ip redirects
LON-1(config-if)# ip nhrp authentication CCIE
LON-1(config-if)# ip nhrp map 192.168.1.1 10.1.24.1
LON-1(config-if)# ip nhrp map 192.168.1.2 10.1.5.1
LON-1(config-if)# ip nhrp map multicast 10.1.24.1
LON-1(config-if)# ip nhrp map multicast 10.1.5.1
LON-1(config-if)# ip nhrp network-id 101
LON-1(config-if)# ip nhrp nhs 192.168.1.1
LON-1(config-if)# ip nhrp nhs 192.168.1.2
LON-1(config-if)# tunnel source GigabitEthernet0/0
LON-1(config-if)# tunnel mode gre multipoint
LON-1(config-if)#
Our first hub:
DM-Hub1(config)#int tun 0
DM-Hub1(config-if)#ip nhrp map multicast dynamic 
DM-Hub1(config-if)#ip nhrp network-id 101
DM-Hub1(config-if)#ip add 192.168.1.1 255.255.255.0
DM-Hub1(config-if)#ip nhrp authentication CCIE
DM-Hub1(config-if)#tun so gi0/0
DM-Hub1(config-if)#tun mo gre multi
DM-Hub1(config-if)#
DM-Hub1(config-if)#ip nhrp ?
  attribute       NHRP attribute set
  authentication  Authentication string
  cache           NHRP Cache related commands.
  connect         NHRP resolution request connect
  holdtime        Advertised holdtime
  interest        Specify an access list
  map             Map dest IP addresses to NBMA addresses
  max-send        Rate limit NHRP traffic
  network-id      NBMA network identifier
  nhs             Specify a next hop server
  path            NHRP path specific configuration
  record          Allow NHRP record option
  redirect        Enable NHRP redirect traffic indication
  registration    Settings for registration packets.
  reject          NHRP resolution reject request
  responder       Responder interface
  server-only     Disable NHRP requests
  shortcut        Enable shortcut switching
  trigger-svc     Create NHRP cut-through based on traffic load
  use             Specify usage count for sending requests

DM-Hub1(config-if)#ip nhrp shortcut
DM-Hub1(config-if)#ip nhrp redirect
DM-Hub1(config-if)#
DM-Hub1(config-if)#do sh ip nhrp
192.168.1.11/32 via 192.168.1.11
   Tunnel0 created 00:00:16, expire 01:59:43
   Type: dynamic, Flags: unique registered used nhop 
   NBMA address: 10.1.1.1 
192.168.1.22/32 via 192.168.1.22
   Tunnel0 created 00:00:20, expire 01:59:39
   Type: dynamic, Flags: unique registered used nhop 
   NBMA address: 10.1.22.1 
DM-Hub1(config-if)#
We have two clients connected to DMHub-1. Let's add the second hub:
DM-Hub2(config)#int tun 0
DM-Hub2(config-if)# ip address 192.168.1.2 255.255.255.0
DM-Hub2(config-if)# no ip redirects
DM-Hub2(config-if)# ip nhrp authentication CCIE
DM-Hub2(config-if)# ip nhrp map multicast dynamic
DM-Hub2(config-if)# ip nhrp network-id 101
DM-Hub2(config-if)# ip nhrp shortcut
DM-Hub2(config-if)# ip nhrp redirect
DM-Hub2(config-if)# tunnel source GigabitEthernet0/0
DM-Hub2(config-if)# tunnel mode gre multipoint
DM-Hub2(config-if)#
DM-Hub2(config-if)#do sh ip nhrp
192.168.1.11/32 via 192.168.1.11
   Tunnel0 created 00:00:19, expire 01:59:40
   Type: dynamic, Flags: unique registered used nhop 
   NBMA address: 10.1.1.1 
192.168.1.22/32 via 192.168.1.22
   Tunnel0 created 00:00:00, expire 01:59:59
   Type: dynamic, Flags: unique registered used nhop 
   NBMA address: 10.1.22.1 
DM-Hub2(config-if)#
Not bad. I used the context sensitive help, but remembered most of the important commands.
LON-2(config-if)#do sh dmvpn
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
        N - NATed, L - Local, X - No Socket
        T1 - Route Installed, T2 - Nexthop-override
        C - CTS Capable
        # Ent --> Number of NHRP entries with same NBMA peer
        NHS Status: E --> Expecting Replies, R --> Responding, W --> Waiting
        UpDn Time --> Up or Down Time for a Tunnel
==========================================================================

Interface: Tunnel0, IPv4 NHRP Details 
Type:Spoke, NHRP Peers:2, 

 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1 10.1.24.1           192.168.1.1    UP 00:03:23     S
     1 10.1.5.1            192.168.1.2  NHRP 00:05:34     S

LON-2(config-if)#

LON-1(config-if)#do sh dmvpn
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
        N - NATed, L - Local, X - No Socket
        T1 - Route Installed, T2 - Nexthop-override
        C - CTS Capable
        # Ent --> Number of NHRP entries with same NBMA peer
        NHS Status: E --> Expecting Replies, R --> Responding, W --> Waiting
        UpDn Time --> Up or Down Time for a Tunnel
==========================================================================

Interface: Tunnel0, IPv4 NHRP Details 
Type:Spoke, NHRP Peers:2, 

 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1 10.1.24.1           192.168.1.1    UP 00:03:35     S
     1 10.1.5.1            192.168.1.2    UP 00:01:38     S

LON-1(config-if)#
Let's set up the transparent ASA:
ASAv6(config)# firewall transparent
Creating trustpoint "_SmartCallHome_ServerCA" and installing certificate...

Trustpoint '_SmartCallHome_ServerCA' is a subordinate CA and holds a non self-signed certificate.

Trustpoint CA certificate accepted.
ciscoasa(config)# firewall transparent
WARNING: Context already in transparent mode
ciscoasa(config)# 
ciscoasa(config)# hostname ASAv6
ASAv6(config)# 
ASAv6(config)# sh firewall
Firewall mode: Transparent
ASAv6(config)#
ASAv6(config)# int bvI 1
ASAv6(config-if)# ip a
ASAv6(config-if)# ip add
ASAv6(config-if)# ip address 10.1.2.200 255.255.255.0
ASAv6(config-if)# int gi0/0
ASAv6(config-if)# nameif outside
INFO: Security level for "outside" set to 0 by default.
ASAv6(config-if)# bridge-group 1
ASAv6(config-if)# no shut
ASAv6(config-if)# int gi0/1
ASAv6(config-if)# nameif inside
INFO: Security level for "inside" set to 100 by default.
ASAv6(config-if)# bridge-group 1
ASAv6(config-if)# no shut

LON-1#ping 10.1.2.200
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.200, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/2/3 ms
LON-1#

GETVPN-Client#ping 10.1.2.200
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.200, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 2/2/3 ms
GETVPN-Client#
Now we need to permit ping from LON-1 to GETVPN-Client, to test connectivity:
LON-1#ping 10.1.2.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.254, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
LON-1#

ASAv6(config)# terminal width 255
ASAv6(config)# access-list Outside->Inside extended permit icmp host 10.1.2.1 host 10.1.2.254
ASAv6(config)# int gi 0/0
ASAv6(config)# access-group Outside->Inside in interface outside
ASAv6(config)# 

LON-1#ping 10.1.2.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.254, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/6 ms
LON-1#

ASAv6(config)# sh access-list
access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096)
            alert-interval 300
access-list Outside->Inside; 1 elements; name hash: 0x4388e391
access-list Outside->Inside line 1 extended permit icmp host 10.1.2.1 host 10.1.2.254 (hitcnt=1) 0xcbbf5d57 
ASAv6(config)#
Now let's give the DM-Hubs access to the 10.1.2.0/24 network, we'll do this through EIGRP across the DMVPN network:
LON-1(config)#router eigrp 1
LON-1(config-router)#eigrp router-id 10.1.1.1          
LON-1(config-router)#network 10.1.2.0 0.0.0.255
LON-1(config-router)#network 192.168.1.0 0.0.0.255
LON-1(config-router)#

DM-Hub1(config)#router eigrp 1
DM-Hub1(config-router)#eigrp router-id 192.168.1.1
DM-Hub1(config-router)#network 192.168.1.0 0.0.0.255
DM-Hub1(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.1.11 (Tunnel0) is up: new adjacency
DM-Hub1(config-router)#

DM-Hub2(config)#router eigrp 1
DM-Hub2(config-router)#eigrp router-id 192.168.1.2
DM-Hub2(config-router)#network 192.168.1.0 0.0.0.255
DM-Hub2(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.1.11 (Tunnel0) is up: new adjacency
DM-Hub2(config-router)#

LON-2(config)#router eigrp 1
LON-2(config-router)#eigrp router-id 10.1.22.1
LON-2(config-router)#network 192.168.1.0 0.0.0.255
LON-2(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.1.2 (Tunnel0) is up: new adjacency
%DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.1.1 (Tunnel0) is up: new adjacency
LON-2(config-router)#

LON-2(config)#router eigrp 1
LON-2(config-router)#eigrp router-id 10.1.22.1
LON-2(config-router)#network 192.168.1.0 0.0.0.255
LON-2(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.1.2 (Tunnel0) is up: new adjacency
%DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.1.1 (Tunnel0) is up: new adjacency
LON-2(config-router)#
We'l add ISP-2 to EIGRP AS 101:
ISP-2(config)#router eigrp 1
ISP-2(config-router)#eigrp router-id 10.1.9.1
ISP-2(config-router)#network 10.1.25.0 0.0.0.255
ISP-2(config-router)#network 10.1.8.0 0.0.0.255 
ISP-2(config-router)#network 10.1.9.0 0.0.0.255
ISP-2(config-router)#

DM-Hub1(config-router)#network 10.1.25.0 0.0.0.255
DM-Hub1(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 10.1.25.254 (GigabitEthernet0/2) is up: new adjacency
DM-Hub1(config-router)#

DM-Hub2(config-router)#network 10.1.8.0 0.0.0.255
DM-Hub2(config-router)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 10.1.8.254 (GigabitEthernet0/2) is up: new adjacency
DM-Hub2(config-router)#
We can add a static route on GETVPN-Client:
GETVPN-Client(config)#ip route 0.0.0.0 0.0.0.0 10.1.2.1
GETVPN-Client(config)#
Now let's set up ASA failover, and here I did miss a command, which cost me some time:
ASA9(config)# sh run | i failover
failover
failover lan unit primary
failover lan interface FOVER Ethernet3
failover key *****
failover replication http
failover link FOVER Ethernet3
failover interface ip FOVER 10.1.250.254 255.255.255.0 standby 10.1.250.252
ASA9(config)# 

ciscoasa(config)# sh run | i failover
failover
failover lan unit secondary
failover lan interface FOVER Ethernet3
failover key *****
failover link FOVER Ethernet3
failover interface ip FOVER 10.1.250.254 255.255.255.0 standby 10.1.250.252
ciscoasa(config)# 
ciscoasa(config)# .

        Detected an Active mate
sh failover | i This
        This host: Secondary - Cold Standby 
ciscoasa(config)# Beginning configuration replication from mate.
sh failover | i This
        This host: Secondary - Sync Config 
ciscoasa(config)# ERROR: Password recovery was not changed, unable to access 
the configuration register.
Crashinfo is NOT enabled on Full Distribution Environment
End configuration replication from mate.

ASA9(config)# 

ASA9(config)# copy run start

Source filename [running-config]? 
Cryptochecksum: 7ccb4109 4818a9f7 e94e5e6e 4f52e6ef 

3500 bytes copied in 0.240 secs
ASA9(config)# sh failover   
Failover On 
Failover unit Primary
Failover LAN Interface: FOVER Ethernet3 (up)
Unit Poll frequency 1 seconds, holdtime 15 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 2 of 60 maximum
failover replication http
Version: Ours 9.1(5)16, Mate 9.1(5)16
Last Failover at: 12:23:20 UTC Jul 15 2016
        This host: Primary - Active 
                Active time: 27 (sec)
                  Interface Outside (10.1.9.254): Unknown (Waiting)
                  Interface Inside (10.1.10.254): Unknown (Waiting)
        Other host: Secondary - Standby Ready 
                Active time: 0 (sec)
                  Interface Outside (10.1.9.252): Unknown (Waiting)
                  Interface Inside (10.1.10.252): Unknown (Waiting)
ASA9(config)# 
Here I did have to look up to see why failover was showing as disabled, this is because I missed the command "failover lan interface FOVER Ethernet3". Here is the error, and the fix:
ciscoasa(config)# sh run | i failover
failover
failover lan unit secondary
failover key *****
failover link FOVER Ethernet3
failover interface ip FOVER 10.1.250.254 255.255.255.0 standby 10.1.250.252
ciscoasa(config)# sh failover | i This
        This host: Secondary - Disabled 
ciscoasa(config)# failover lan interface FOVER Ethernet3
ciscoasa(config)# sh failover | i This                  
        This host: Secondary - Disabled 
ciscoasa(config)# sh failover | i This
        This host: Secondary - Negotiation 
ciscoasa(config)# sh failover | i This
        This host: Secondary - Negotiation 
ciscoasa(config)# sh failover | i This
        This host: Secondary - Negotiation 
ciscoasa(config)# .sh failover | i This
        This host: Secondary - Negotiation 
ciscoasa(config)# .

        Detected an Active mate
sh failover | i This
        This host: Secondary - Cold Standby 
ciscoasa(config)# Beginning configuration replication from mate.
sh failover | i This
        This host: Secondary - Sync Config 
ciscoasa(config)# ERROR: Password recovery was not changed, unable to access 
the configuration register.
Crashinfo is NOT enabled on Full Distribution Environment
End configuration replication from mate.

ASA9(config)# Cryptochecksum: 4d2a6fd8 a81dbdb8 959d578a 998d945d 

3501 bytes copied in 0.250 secs
Cryptochecksum: 981790ac 765a5b87 086b2a40 368f7100 

4169 bytes copied in 0.250 secs
Cryptochecksum: ade50ecf 467dea53 2332768c 88035396 

4248 bytes copied in 0.250 secs

ASA9(config)# 
Still, not bad so far. The goal today is to get ready to implement everything we need in order to set up GETVPN (which will be in the next post).

Let's set up NAT:
ASA9(config)# object network 10-1-10
ASA9(config-network-object)# subnet 10.1.10.0 255.255.255.0
ASA9(config-network-object)# exi
ASA9(config)# object network 10-1-26
ASA9(config-network-object)# subnet 10.1.26.0 255.255.255.0 
ASA9(config-network-object)# exit
ASA9(config)# object network 10-1-11
ASA9(config-network-object)# subnet 10.1.11.0 255.255.255.0
ASA9(config-network-object)# exit
ASA9(config)# object network 10-1-14        
ASA9(config-network-object)# subnet 10.1.14.0 255.255.255.0
ASA9(config-network-object)# exit
ASA9(config)# object network 10-1-12        
ASA9(config-network-object)# subnet 10.1.12.0 255.255.255.0
ASA9(config-network-object)# exit
ASA9(config)# object network 10-1-13        
ASA9(config-network-object)# subnet 10.1.13.0 255.255.255.0
ASA9(config-network-object)# exit
ASA9(config)# 
ASA9(config)# object-group network INSIDE-SUBNETS
ASA9(config-network-object-group)# network-object object 10-1-10
ASA9(config-network-object-group)# network-object object 10-1-26
ASA9(config-network-object-group)# network-object object 10-1-11
ASA9(config-network-object-group)# network-object object 10-1-14
ASA9(config-network-object-group)# network-object object 10-1-12
ASA9(config-network-object-group)# network-object object 10-1-13
ASA9(config-network-object-group)# exit
ASA9(config)# nat (Inside,Outside) after-auto source dynamic INSIDE-SUBNETS interface 
ASA9(config)# 
ASA9(config)# route outside 0 0 10.1.9.1
ASA9(config)# copy run start

Source filename [running-config]? 
Cryptochecksum: f3bf1259 b6b8509c 2a34bd26 c2cba2b7 

4168 bytes copied in 0.230 secs
ASA9(config)# 
Let's test (using packet tracer), and here I am only showing the relevant NAT part of the output:
ASA9(config)# packet-tracer input inside icmp 10.1.11.1 8 0 10.1.25.1

Phase: 3
Type: NAT
Subtype: 
Result: ALLOW
Config:
nat (Inside,Outside) after-auto source dynamic INSIDE-SUBNETS interface
Additional Information:
Dynamic translate 10.1.11.1/0 to 10.1.9.254/51830
Looks good so far. Let's add some more routing:
ASA9(config)# router eigrp 1
ASA9(config-router)# eigrp router-id 10.1.9.254
ASA9(config-router)# network 10.1.9.0 255.255.255.0 
ASA9(config-router)#
Now we need to set up the switch interfaces, and add some more static routing:
Switch(config)#int gi0/0
Switch(config-if)#swi mo acc
Switch(config-if)#swi acc vl 26
Switch(config-if)#int gi0/1
Switch(config-if)#swi mo acc
Switch(config-if)#swi ac vl 11
Switch(config-if)#int rang gi0/2 - 3
Switch(config-if-range)#swi mo acc
Switch(config-if-range)#swi acc vl 10
Switch(config-if-range)#exit
Switch(config)#ip route 0.0.0.0 0.0.0.0 10.1.10.254

GETVPN-S1(config)#ip route 0.0.0.0 0.0.0.0 10.1.26.200
GETVPN-S1(config)#

GETVPN-S2(config)#ip route 0.0.0.0 0.0.0.0 10.1.11.200
GETVPN-S2(config)#
We need some access-lists for pings to work:
ASA9(config)# sh run | i access-list
access-list Inside->Outside extended permit icmp host 10.1.26.1 host 10.1.1.1 
access-list Inside->Outside extended permit icmp host 10.1.26.1 host 10.1.2.1 
access-list Inside->Outside extended permit icmp host 10.1.26.1 host 192.168.1.11 
access-list Inside->Outside extended permit icmp host 10.1.26.1 host 192.168.1.22 
access-list Outside->Inside extended permit icmp host 10.1.1.1 host 10.1.26.1 
access-list Outside->Inside extended permit icmp host 10.1.2.1 host 10.1.26.1 
access-list Outside->Inside extended permit icmp host 192.168.1.11 host 10.1.26.1 
access-list Outside->Inside extended permit icmp host 192.168.1.22 host 10.1.26.1 
threat-detection statistics access-list
ASA9(config)# sh run | i access-group
access-group Outside->Inside in interface Outside
access-group Inside->Outside in interface Inside
ASA9(config)# 
At this stage I did scratch my head as to why the pings were failing, but (after some time), remebered that there is no IGP to advertise the routes we need, so I fixed that:
ASA9(config)# route inside 10.1.26.0 255.255.255.0 10.1.10.200   
ASA9(config)# route inside 10.1.11.0 255.255.255.0 10.1.10.200
ASA9(config)# route inside 10.1.14.0 255.255.255.0 10.1.10.200
ASA9(config)# route inside 10.1.12.0 255.255.255.0 10.1.10.200
ASA9(config)# route inside 10.1.13.0 255.255.255.0 10.1.10.200
ASA9(config)# 

GETVPN-S1(config)#do ping 192.168.1.22
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.22, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/18/27 ms
GETVPN-S1(config)#do ping 192.168.1.11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/18/21 ms
GETVPN-S1(config)#do ping 10.1.2.1    
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 13/16/20 ms
GETVPN-S1(config)#
That's pretty far but not far enough, I still need to be able to get from the GETVPN server to the GETVPN client:
GETVPN-S1(config)#do ping 10.1.2.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.254, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
GETVPN-S1(config)#

ASAv6(config)# access-list Outside->Inside extended permit icmp host 10.1.9.254 host 10.1.2.254                            
ASAv6(config)# 

ASA9(config)# access-list Inside->Outside extended permit icmp host 10.1.26.1 host 10.1.2.254
ASA9(config)# access-list Outside->Inside extended permit icmp host 10.1.2.254 host 10.1.26.1
ASA9(config)# 

GETVPN-S1(config)#do ping 10.1.2.254
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.254, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 15/21/31 ms
GETVPN-S1(config)#
Now we have a very basic form of reachability between one of the GETVPN servers and the client. But we have two servers behind one firewall, so can't do any port forwarding, instead, we'll have to have individual NATs for the two GETVPN-Servers.

I'll save that for another day, though.

Let me know if you like the idea about the workbooks in the comments below. Till next time.

New CCIE Security lab

It is time to create a new CCIE Security lab. I have 78 days left before the real thing, so can do at least 2 "large" labs in that time.

So, let's start a new one. I start by throwing a bunch of stuff into the lab and make a list of things to achieve. I need to focus on VRF-aware VPNs more this time and basically, get faster with the different VPNs, I seem to be OK with most of the other topics. So, this new lab will be very VPN-centric, as such, the Telnet servers should only be reachable through the different VPNs.

Topology

After a short while, this is what I ended up with:

Now, I need to work out some IP addressing. There should be different ranges for the VPNs and the basic connectivity, so I will use 10.1.X.0/24 for the interlinks, 10.2.X.0/24 for the devices at the top right and 192.168.X.0/24 for the VPNs. Routers will all use .1 or .2 (or sometimes .254) as the last octet, firewalls will use .254, end devices (the Windows box, WWW server, WSA etc etc), will all have their last octet as .10).  Switches (where they are providing a VLAN interface will use .200 (and .201 if required). Loopbacks will all be /32 and denoted on the topology.

But, where to start?

Let's go for the middle and go (relatively) clockwise. This gives us something like this:


Now for the rules of the game!

Instructions

System Hardening and Availability:
•Every routing protocol must be secured with a password of CCIE
•Unused switch ports must be shut down and placed in VLAN 999
•ISP-1 should be set as an authoritative NTP server (Stratum 2). All devices (apart from the WSA should peer to this)
Threat Identification and Mitigation
•All ASAs should protect against IP spoofing attacks
•Switches should protect against MAC spoofing
•Win should receive it’s IP address through DHCP from ASAv7 and DHCP should be inspected by the switch
•The network should be protected against VLAN hopping attacks
•NetFlow should be enabled to track the top 5 talkers for ICMP traffic on ASAv7 (might change this later on)
Intrusion Prevention and Content Security
•Initialize the IPS and create a VLAN pair for VLANs 10.2.1.0 and 10.1.21.0
•Create a custom signature to alert high on ICMP traffic between the Win box and Lon-1
•Implement WCCP on the WSA and make sure all traffic to WWW goes through this and ASAv7.
•Block access to www.bad.com using a custom category
Identity Management
•Access to ASA v7 should be controlled through the ACS using TACACS+
•Access to the DMZ server (using Telnet) should be controlled through ACS
•Set ISE for the AP, creating CCIE-Sec and CCIE-Guest WLANs on the WLC
Perimeter Security and Services
•Set up ASAv7 in routed mode with VLAN 12 for the DMZ, VLAN 20 for the Inside
•Addresses should be NATted.
•Setup ASAv6 in transparent mode
•Setup ASA8 and ASA9 in failover mode
•Set up LON-2 as a ZBFW
•Map Telnet-3’s Telnet port to 23000
•May DMZ’s HTTP port to 8080
•Permit access to Telnet-3’s telnet port to just the VPN traffic
Confidentiality and Secure Access
•Create an IKEv1 tunnel between NYC and IKEv1 advertising the route to Telnet-2
•Create an IKEv2 tunnel between NYC and Easy-Server. Easy-Server should know about Telnet-2’s network only through this VPN
•Create a LAN-to-LAN IPSec tunnel between ASAv7 & NYC – ASAv7 should know about Telnet-2 through IPSec
•Set up the DMVPN network as a dual-hub network
•Set up Flex VPN between Telnet-1 and Telnet-2
•Set up Remote Access between Win & Easy-Server. Win should only know about Telnet-1 through VPN
•Set up AnyConnect between Win and ASA8/9
•Set up Easy VPN between Easy-Server & ASA9 and also between Easy-Server and Win
•The GETVPN should be VRF aware
•Set up ISP-1 as the CA for certificates. Use certificates for Easy VPN

I have tried and made it a little difficult for myself, in as much as I cannot go from top to bottom, some of the tasks require other tasks to be completed first (i.e. most of the VPNs need to be in place first. Let's do the intial IP addressing. I'll work out the routing afterwards.

IP addressing

Because there is a lot of config, I have put it behind a clicky-button, so click if you want to see the configs, or not!
Switch(config)#vlan 20,2,3,21,4 
Switch(config-vlan)#int vlan 1
Switch(config-if)#ip add 10.2.1.200 255.255.255.0
Switch(config-if)#no sh
Switch(config-if)#
Switch(config-if)#int vlan 20
Switch(config-if)#ip add 10.1.20.200 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#

Switch(config)#vlan 20,2,3,21,4
Switch(config-vlan)#
Switch(config-vlan)#int vlan 2
Switch(config-if)#ip add 10.2.2.200 255.255.255.0 
Switch(config-if)#no shut
Switch(config-if)#int vlan 3
Switch(config-if)#ip add 10.2.3.200 255.255.255.0
Switch(config-if)#no shut
Switch(config)#int vlan 4
Switch(config-if)#ip add 10.2.4.200 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#int vlan 21
Switch(config-if)#ip add 10.1.21.200 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#

ASAv7(config)# int gi0/0
ASAv7(config-if)# exit
ASAv7(config)# int gi0/0.20
ASAv7(config-subif)# vlan 20
ASAv7(config-subif)# ip add 10.1.20.254 255.255.255.0
ASAv7(config-subif)# no shut
ASAv7(config-subif)# exit
ASAv7(config)# int gi0/2.19
ASAv7(config-subif)# no shut
ASAv7(config-subif)# vlan 19
ASAv7(config-subif)# ip add 10.1.19.254 255.255.255.0
ASAv7(config-subif)# exit
ASAv7(config)# int gi0/1 
ASAv7(config-if)# ip add 10.1.18.254 255.255.255.0
ASAv7(config-if)# no shut
ASAv7(config-if)# int gi0/2
ASAv7(config-if)# no shut
ASAv7(config-if)# sh int ip bri
Interface                  IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0         unassigned      YES unset  up                    up  
GigabitEthernet0/0.20      10.1.20.254     YES manual up                    up  
GigabitEthernet0/1         10.1.18.254     YES manual up                    up  
GigabitEthernet0/2         unassigned      YES unset  up                    up  
GigabitEthernet0/2.19      10.1.19.254     YES manual up                    up  
ASAv7(config-if)# 

DMZ(config)#int gi0/0 
DMZ(config-if)#ip add 10.1.19.1 255.255.255.0
DMZ(config-if)#no shut
DMZ(config-if)#

IKEv1(config)#int gi0/0
IKEv1(config-if)#ip add 10.1.18.1 255.255.255.0
IKEv1(config-if)#no shut
IKEv1(config-if)#int gi0/1
IKEv1(config-if)#ip add 10.1.17.1 255.255.255.0
IKEv1(config-if)#no shut
IKEv1(config-if)#

Chicago(config)#int gi0/0
Chicago(config-if)#ip add 10.1.17.2 255.255.255.0
Chicago(config-if)#no shut
Chicago(config-if)#int gi0/2
Chicago(config-if)#ip add 10.1.16.2 255.255.255.0
Chicago(config-if)#no shut
Chicago(config-if)#int gi0/1
Chicago(config-if)#ip add 10.1.15.2 255.255.255.0
Chicago(config-if)#no shut
Chicago(config-if)#

Telnet-3(config)#int gi0/0
Telnet-3(config-if)#ip add 10.1.16.1 255.255.255.0
Telnet-3(config-if)#no shut
Telnet-3(config-if)#int lo0
Telnet-3(config-if)#ip add 3.3.3.3 255.255.255.255
Telnet-3(config-if)#

LON-2(config)#int gi0/0
LON-2(config-if)#no shut
LON-2(config-if)#ip add 10.1.21.1 255.255.255.0
LON-2(config-if)#int gi0/1
LON-2(config-if)#ip add 10.1.22.1 255.255.255.0
LON-2(config-if)#no shut
LON-2(config-if)#

ISP-1(config)#int gi0/2
ISP-1(config-if)#ip add 10.1.22.254 255.255.255.0
ISP-1(config-if)#no shut
ISP-1(config-if)#int gi0/3
ISP-1(config-if)#ip add 10.1.1.254 255.255.255.0
ISP-1(config-if)#no shut
ISP-1(config-if)#int gi0/0
ISP-1(config-if)#ip add 10.1.24.254 255.255.255.0
ISP-1(config-if)#no shut
ISP-1(config-if)#int gi0/1
ISP-1(config-if)#ip add 10.1.5.254 255.255.255.0
ISP-1(config-if)#no shut
ISP-1(config-if)#

LON-1(config)#int gi0/0
LON-1(config-if)#ip add 10.1.1.1 255.255.255.0
LON-1(config-if)#no shut
LON-1(config-if)#int gi0/1
LON-1(config-if)#ip add 10.1.2.1 255.255.255.0
LON-1(config-if)#no shut
LON-1(config-if)#

GETVPN-Client(config)#int gi0/0
GETVPN-Client(config-if)#ip add 10.1.2.254 255.255.255.0
GETVPN-Client(config-if)#no shut
GETVPN-Client(config-if)#int gi0/1.3
GETVPN-Client(config-subif)#encapsulation dot1Q 3
GETVPN-Client(config-subif)#ip add 10.1.3.254 255.255.255.0
GETVPN-Client(config-subif)#no shut
GETVPN-Client(config-subif)#int gi0/1
GETVPN-Client(config-if)#no shut
GETVPN-Client(config-if)#int gi0/1.4
GETVPN-Client(config-subif)#encapsulation dot1Q 4          
GETVPN-Client(config-subif)#ip add 10.1.4.254 255.255.255.0
GETVPN-Client(config-subif)#no shut
GETVPN-Client(config-subif)#

DM-Hub1(config)#int gi0/0
DM-Hub1(config-if)#ip add 10.1.24.1 255.255.255.0
DM-Hub1(config-if)#no shut
DM-Hub1(config-if)#int gi0/2
DM-Hub1(config-if)#ip add 10.1.25.1 255.255.255.0
DM-Hub1(config-if)#no shut
DM-Hub2(config)#int gi0/0
DM-Hub2(config-if)#ip add 10.1.5.1 255.255.255.0
DM-Hub2(config-if)#no shut
DM-Hub2(config-if)#int gi0/1
DM-Hub2(config-if)#ip add 10.1.6.1 255.255.255.0
DM-Hub2(config-if)#no shut
DM-Hub2(config-if)#int gi0/2
DM-Hub2(config-if)#ip add 10.1.8.1 255.255.255.0
DM-Hub2(config-if)#no shut
DM-Hub2(config-if)#

Easy-Server(config)#int gi0/0
Easy-Server(config-if)#ip add 10.1.6.254 255.255.255.0
Easy-Server(config-if)#no shut
Easy-Server(config)#int gi0/1
Easy-Server(config-if)#ip add 10.1.7.254 255.255.255.0
Easy-Server(config-if)#no shut
Easy-Server(config-if)#

Telnet-1(config)#int gi0/0
Telnet-1(config-if)#ip add 10.1.7.1 255.255.255.0
Telnet-1(config-if)#no shut
Telnet-1(config-if)#int lo0
Telnet-1(config-if)#ip add 1.1.1.1 255.255.255.255
Telnet-1(config-if)#

ISP-2(config)#int gi0/0
ISP-2(config-if)#ip add 10.1.25.254 255.255.255.0
ISP-2(config-if)#no shut
ISP-2(config-if)#int gi0/1
ISP-2(config-if)#ip add 10.1.8.254 255.255.255.0
ISP-2(config-if)#no shut
ISP-2(config-if)#int gi0/3
ISP-2(config-if)#ip add 10.1.9.1 255.255.255.0
ISP-2(config-if)#no shut
ISP-2(config-if)#

ASA9(config-if)# ip add 10.1.9.254 255.255.255.0    
ASA9(config-if)# no shut
ASA9(config-if)# int eth3
ASA9(config-if)# ip add 10.1.250.254 255.255.255.0
ASA9(config-if)# no shut
ASA9(config-if)# int eth0
ASA9(config-if)# ip add 10.1.10.254 255.255.255.0
ASA9(config-if)# no shut
ASA9(config-if)# 

Switch(config)#vlan 10,26,11
Switch(config-vlan)#exit
Switch(config)#int vlan 10
Switch(config-if)#ip add 10.1.10.200 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#int vlan 26
Switch(config-if)#ip add 10.1.26.200 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#int vlan 11
Switch(config-if)#ip add 10.1.11.200 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#int rang gi0/2 - 3
Switch(config-if-range)#swi mo acc
Switch(config-if-range)#swi acc vl 10
Switch(config-if-range)#
Switch(config-if-range)#int gi0/0
Switch(config-if)#swi mo acc
Switch(config-if)#swi acc vl 26
Switch(config-if)#int gi 0/1
Switch(config-if)#swi mo acc
Switch(config-if)#swi acc vl 11
Switch(config-if)#

GETVPN-S1(config)#int gi0/2
GETVPN-S1(config-if)#ip add 10.1.15.1 255.255.255.0
GETVPN-S1(config-if)#no shut
GETVPN-S1(config-if)#int gi0/1
GETVPN-S1(config-if)#ip add 10.1.26.1 255.255.255.0
GETVPN-S1(config-if)#no shut
GETVPN-S1(config)#int gi0/0
GETVPN-S1(config-if)#ip add 10.1.14.1 255.255.255.0
GETVPN-S1(config-if)#no shut
GETVPN-S1(config-if)#

GETVPN-S2(config)#int gi0/0
GETVPN-S2(config-if)#ip add 10.1.11.1 255.255.255.0
GETVPN-S2(config-if)#no shut
GETVPN-S2(config-if)#int gi0/1
GETVPN-S2(config-if)#ip add 10.1.12.1 255.255.255.0 
GETVPN-S2(config-if)#no shut
GETVPN-S2(config-if)#

NYC(config)#int gi0/0
NYC(config-if)#ip add 10.1.14.254 255.255.255.0
NYC(config-if)#no shut
NYC(config-if)#int gi 0/1
NYC(config-if)#ip add 10.1.12.254 255.255.255.0
NYC(config-if)#no shut
NYC(config-if)#int gi0/2
NYC(config-if)#ip add 10.1.13.254 255.255.255.0
NYC(config-if)#no shut
NYC(config-if)#

Telnet-2(config)#int gi0/0
Telnet-2(config-if)#ip add 10.1.13.1 255.255.255.0
Telnet-2(config-if)#no shut
Telnet-2(config-if)#int lo0
Telnet-2(config-if)#ip add 2.2.2.2 255.255.255.255
Telnet-2(config-if)#
If you want to play along at home, then you can download the file here.

CCIE Security Lab: IPS - CLI to GUI and back again

I started on the IPS a little while ago, in this post, and then in this post. Then went and rebuilt the lab using Arista switches, and now the stability is much improved. In doing so I moved from the IPS and into ISE, but there is much left to do with the IPS.

Options with the IPS seems to be limited, for me at least. I can't get IDM to work over HTTPS, but HTTP works:
IPS(config)# service web
IPS(config-web)# enable-tls false
IPS(config-web)# port 80 
IPS(config-web)# exit
Apply Changes?[yes]: yes 
IPS(config)# 
Temporarily.

Java sucks ass.

Fucking Java.

So, let's do this from the CLI instead:

Rachel Riley says use the CLI

Gives me another excuse to post pictures of Rachel Riley.

So, what do we need to achieve?

I want an interface pair, and I'll take Gi0/1 and Gi0/2 for these, and a VLAN pair, using Gi0/3, then we'll set up some custom signatures.

Let's go!

IPS interface pairs

We start in the "service interface" section:
IPS(config)# service interface 
IPS(config-int)# ?
bypass-mode                 
cdp-mode                    
default                     
exit                        
inline-interfaces           
interface-notifications     
no                          
physical-interfaces         
show                        
IPS(config-int)# 
I have removed the descriptions because they were long...
IPS(config-int)# inline-interfaces Inline-VS 
IPS(config-int-inl)# interface1 ?
GigabitEthernet0/0     GigabitEthernet0/0 physical interface.
GigabitEthernet0/1     GigabitEthernet0/1 physical interface.
GigabitEthernet0/2     GigabitEthernet0/2 physical interface.
GigabitEthernet0/3     GigabitEthernet0/3 physical interface.
Management0/0          Management0/0 physical interface.
IPS(config-int-inl)# interface1 GigabitEthernet0/1
IPS(config-int-inl)# interface2 GigabitEthernet0/2
IPS(config-int-inl)# exit
IPS(config-int)# exit
Apply Changes?[yes]: yes 
IPS(config)# 
That's the first part of the interface pair, let's do the VLAN pair:
IPS(config)# service interface 
IPS(config-int)# physical-interfaces GigabitEthernet0/3  
IPS(config-int-phy)# subinterface-type inline-vlan-pair 
IPS(config-int-phy-inl)# subinterface 1 
IPS(config-int-phy-inl-sub)# vlan1 4
IPS(config-int-phy-inl-sub)# vlan2 90
IPS(config-int-phy-inl-sub)# exit
IPS(config-int-phy-inl)# exit
IPS(config-int-phy)# exit
IPS(config-int)# exit
Apply Changes?[yes]: yes 
IPS(config)# exit
IPS# 
I can't see where to name this, though, so hopefully the config should show us. Well, this is the relevant part of the config, but there is no name, maybe we don't need it:
service interface
physical-interfaces GigabitEthernet0/3 
subinterface-type inline-vlan-pair
subinterface 1 
vlan1 4
vlan2 90
exit
exit
exit
inline-interfaces Inline-VS 
interface1 GigabitEthernet0/1
interface2 GigabitEthernet0/2
exit
exit
The next step is to create the virtual sensors and assign the interfaces to them (or maybe it's the other way around).

It is important to make sure that all the interfaces are up:
IPS(config)# service interface 
IPS(config-int)# physical-interfaces GigabitEthernet0/3
IPS(config-int-phy)# admin-state enabled
IPS(config-int)# exit
Apply Changes?[yes]: yes 
IPS(config)# exit
IPS# show interfaces brief
CC   Interface            Sensing State   Link   Inline Mode                                Pair Status   
     GigabitEthernet0/0   Disabled        Down   Unpaired                                   N/A           
     GigabitEthernet0/1   Enabled         Up     Paired with interface GigabitEthernet0/2   Up            
     GigabitEthernet0/2   Enabled         Up     Paired with interface GigabitEthernet0/1   Up            
     GigabitEthernet0/3   Enabled         Up     Inline-vlan-pair                           N/A           
*    Management0/0        Disabled        Up                                                              
IPS# 
Back to the virtual sensor:
IPS(config)# service analysis-engine
IPS(config-ana)# virtual-sensor VS-VS 
IPS(config-ana-vir)# signature-definition sig0

IPS(config-ana-vir-ano)# anomaly-detection-name ad0
IPS(config-ana-vir-ano)# exi
IPS(config-ana-vir)# event-action-rules rules0

IPS(config-ana-vir)# 
IPS(config-ana-vir)# logical-interface Inline-VS 
IPS(config-ana-vir)# 
IPS(config-ana-vir)# show setting
   name: VS-VS
   -----------------------------------------------
      description:  
      signature-definition: sig0 default: sig0
      event-action-rules: rules0 default: rules0
      anomaly-detection
      -----------------------------------------------
         anomaly-detection-name: ad0 default: ad0
         operational-mode: detect 
      -----------------------------------------------
      physical-interface (min: 0, max: 999999999, current: 0)
      -----------------------------------------------
      -----------------------------------------------
      logical-interface (min: 0, max: 999999999, current: 1)
      -----------------------------------------------
         name: Inline-VS
         subinterface-number: 0 
         -----------------------------------------------
      -----------------------------------------------
      inline-TCP-session-tracking-mode: virtual-sensor 
      inline-TCP-evasion-protection-mode: strict 
   -----------------------------------------------
IPS(config-ana-vir)# exit
IPS(config-ana)# exit
Apply Changes?[yes]: yes 
IPS(config)# 
Let's create the other one with the VLAN pair:
IPS(config)# service analysis-engine 
IPS(config-ana)# virtual-sensor VS-VP
IPS(config-ana-vir)# signature-definition sig0

IPS(config-ana-vir)# event-action-rules rules0
                                             
IPS(config-ana-vir)# 
IPS(config-ana-vir)# physical-interface GigabitEthernet0/3 subinterface-number 1
IPS(config-ana-vir)# exi 
IPS(config-ana-vir)# anomaly-detection 
IPS(config-ana-vir-ano)# anomaly-detection-name ad0
IPS(config-ana)# exit
IPS(config-ana-vir)# show settings 
   name: VS-VP
   -----------------------------------------------
      description:  
      signature-definition: sig0 default: sig0
      event-action-rules: rules0 default: rules0
      anomaly-detection
      -----------------------------------------------
         anomaly-detection-name: ad0 default: ad0
         operational-mode: detect 
      -----------------------------------------------
      physical-interface (min: 0, max: 999999999, current: 1)
      -----------------------------------------------
         name: GigabitEthernet0/3
         subinterface-number: 1 default: 0
         -----------------------------------------------
      -----------------------------------------------
      logical-interface (min: 0, max: 999999999, current: 0)
      -----------------------------------------------
      -----------------------------------------------
      inline-TCP-session-tracking-mode: virtual-sensor 
      inline-TCP-evasion-protection-mode: strict 
   -----------------------------------------------
IPS(config-ana-vir)# 
Apply Changes?[yes]: yes 
IPS(config)# 
Now let's create a custom signature, which is intended to produce a high-severity alert if it sees a telnet connection coming from the 192.168.90.0/24 subnet:
IPS(config)# service signature-definition sig0

IPS(config-sig)# signatures ?
     
IPS(config-sig)# signatures 60101 ?
     
IPS(config-sig)# signatures 60101 0           
IPS(config-sig-sig)# alert-severity high                        
IPS(config-sig-sig)# engine atomic-ip              
IPS(config-sig-sig-ato)# event-action produce-verbose-alert  
IPS(config-sig-sig-ato)# specify-l4-protocol yes                
IPS(config-sig-sig-ato-yes)# l4-protocol tcp                 
IPS(config-sig-sig-ato-yes-tcp)# no tcp-flags
IPS(config-sig-sig-ato-yes-tcp)# no tcp-mask
IPS(config-sig-sig-ato-yes-tcp)# specify-dst-port yes   
IPS(config-sig-sig-ato-yes-tcp-yes)# dst-port 23 
IPS(config-sig-sig-ato-yes-tcp-yes)# exi
IPS(config-sig-sig-ato-yes-tcp)# specify-src-port no
IPS(config-sig-sig-ato-yes-tcp)# exit
IPS(config-sig-sig-ato-yes)# exit           
IPS(config-sig-sig-ato)# specify-ip-addr-options yes     
IPS(config-sig-sig-ato-yes)# ip-addr-options ip-addr   
IPS(config-sig-sig-ato-yes-ip)# specify-src-ip-addr yes   
IPS(config-sig-sig-ato-yes-ip-yes)# src-ip-addr 192.168.90.1-192.168.90.254
IPS(config-sig-sig-ato-yes-ip-yes)# 
IPS(config-sig-sig-ato-yes-ip-yes)# exit
IPS(config-sig-sig-ato-yes-ip)# exit
IPS(config-sig-sig-ato-yes)# exit
IPS(config-sig-sig-ato)# exit
IPS(config-sig-sig)# exit
IPS(config-sig)# exit
Apply Changes?[yes]: yes 
IPS(config)#   
This shows in the config as follows:
service signature-definition sig0
signatures 60101 0 
alert-severity high
engine atomic-ip
event-action produce-verbose-alert
specify-l4-protocol yes
l4-protocol tcp
no tcp-flags
no tcp-mask
specify-dst-port yes
dst-port 23
exit
specify-src-port no
exit
exit
specify-ip-addr-options yes
ip-addr-options ip-addr
specify-src-ip-addr yes
src-ip-addr 192.168.90.1-192.168.90.254
This is all well and good, but we need to turn it on for it to be effective:
IPS(config)# service signature-definition sig0
IPS(config-sig)# signatures 60101 0
IPS(config-sig-sig)# status
IPS(config-sig-sig-sta)# enabled true
IPS(config-sig-sig-sta)# exit
IPS(config-sig-sig)# exit
IPS(config-sig)# exit
Apply Changes?[yes]: yes 
IPS(config)#  
Looks good, but we need the IPS to get the traffic. At the moment there is no reason why it should get the traffic, and this is partly a bad design choice on my part, and having moved my switches over to Arista, I lose the remote-span functionality, but we are not totally out of luck:
SW2(config)#monitor session trunky source e10
SW2(config)#monitor session trunky destination e18
SW2(config)#exi
SW2#sh mon sess

Session trunky
------------------------

Source Ports:

  Both:        Et10

Destination Ports:

    Et18 :  active


SW2#sh int e18 sta
Port       Name              Status       Vlan        Duplex  Speed Type        
Et18       IPS               connected    monitoring    full unconf EbraTestPhyP

SW2#
With this in place, we do get the telnet traffic (from MGMT-PC to 10.1.4.101) mirrored towards the IPS:

Wireshark session mirroring

Not getting anything on the IPS though:
IPS# sh events alert high


The lack of output isn't to say that it's not working. I look after a handful of IPS modules for work, and they are slow, not as slow as this one is, but still very slow. Thankfully, although IDM access is a little hit and miss, it does show that this works:

IPS alert severity IDM

The console does seem to take an extraordinarily long time, though, so it looks like its waiting for a response, but this does work, and, at nearly 10 pm, that's the goal. Thankfully I managed to pull the results out of IDM before Java shit the bed (for the ten billionth time).

I will be saving WLC integration for another day.

The countdown begins!

ccie security lab countdown

As soon as Cisco announced the CCIE Security v5, I immediately went and booked my v4 lab, it's on September 30th, so I have (as of today) 106 days to go. I really was not planning to take it this early, as I was looking to take it in December, but that would only give me one shot at the v4. At least this was I can have a resit in December if I need to.  But my initial reaction was:

rachel riley arse

I have been happily strolling through my mental plan, and figured six months would be ideal for me to get everything in place, read it, lab it, rinse, repeat.

Now I actually need to plan this all out, and pretty damn quick.

There are a few things that I am pretty comfortable with, predominantly the ASA. My initial forays into ISE and ACS have been going pretty well, and certainly if I get ISE, well, it's got all the help you need in it anyway. Similarly with the WLC, that seemed very intuitive. But these are only a handful of components within a big machine. There are a few bits I still want to cover with ISE and ACS, such as web proxy, command accounting/authorization,

So, let's list the weak points and work from there.

  • IPS
  • ZBF
  • FlexVPN, GET VPN, EasyVPN
  • Dual-hub DMVPN (regular DMVPN is fine)
  • Digital certificates/CA
  • Service hardening (NTP, SNMP)

OK, so it's not a massive list, really. The topology I have been playing with is not really that tuned for the VPN stuff, so I'll have to break that down into smaller labs. Variation is good though, and it'll help by setting things up from scratch again. Repetition helps memory.

Then we have the things that I am good at, that I need to get quicker on, or modify my approach. Such as the ASA, the things I do in the GUI (ASDM) regularly, I need to be able to do from the

countdown cli

VPNs are a good example of this. I cannot take for granted that the test PC in the lab will have the routing in place to get to the ASA to use ASDM. I will have console access though, and this is what I need to concentrate on.

All-in-all it's probably not that scary. A month or so of learning, then two months of labbing scenarios and final revision.

I remember the countdown for my first CCIE, and I must say, I feel in a much better place this time around. Having already done one, it's not as daunting and scary as it was the first time. I know what to expect in the lab (in terms of how it's laid out, how to navigate through the interface, what it feels like to be sitting there after two years of building up to it), I know where it is and where the hotel is (need to book that though), so I feel more comfortable this time. Though waiting for the results is horrible!

So here is the plan:

Topic Days
Finish off ISE/ACS 7
IPS 7
ZBF 7
Flex/GET/Easy/Dual -VPN 14
CA 3
Service hardening/routing authentication 10
Total 48
That's nearly half of the time I have left, so there is still room to study any blank bits I might have, revise, and set up some labs to do (or do some if the INE stuff).

There are other things that will also be happening during this time, such as a two week family holiday, but I still think I should be ready in time.

We will see!

CCIE Security lab - recap, redesign, restart

It's been a long time since I have written about the CCIE Security lab I have started. A lot has happened since though. I have completed the CCIE Security written exam, and have (nearly) finished my fourth book, CCNA and Beyond, soon to be on Amazon, looks good doesn't it??


Now it's time to start labbing again.

When I left it last, I had completed the MPLS core which will join the three "sites" together. These sites have now been named NY, LA and LON(don) (and yes, I know that NY and LA should probably be round the other way).

So the MPLS core has been completed. I also set up the AD domain, I also started some VLAN work. After that, loads of other stuff happened.

As a recap, this is what has been decided upon so far:


The MPLS bit is done, and LON1 can see the subnets for NY and LA:
LON1#sh ip route | b Gate
Gateway of last resort is not set

      1.0.0.0/32 is subnetted, 1 subnets
O        1.1.1.1 [110/2] via 134.20.1.9, 00:23:08, GigabitEthernet0/0
      2.0.0.0/32 is subnetted, 1 subnets
O        2.2.2.2 [110/3] via 134.20.1.9, 00:22:58, GigabitEthernet0/0
      4.0.0.0/32 is subnetted, 1 subnets
O        4.4.4.4 [110/3] via 134.20.1.9, 00:22:58, GigabitEthernet0/0
      8.0.0.0/32 is subnetted, 1 subnets
O        8.8.8.8 [110/2] via 134.20.1.9, 00:23:08, GigabitEthernet0/0
      10.0.0.0/32 is subnetted, 1 subnets
C        10.10.10.10 is directly connected, Loopback0
      134.20.0.0/16 is variably subnetted, 4 subnets, 2 masks
O        134.20.1.0/30 [110/2] via 134.20.1.9, 00:23:08, GigabitEthernet0/0
O        134.20.1.4/30 [110/2] via 134.20.1.9, 00:23:08, GigabitEthernet0/0
C        134.20.1.8/30 is directly connected, GigabitEthernet0/0
L        134.20.1.10/32 is directly connected, GigabitEthernet0/0
LON1#

This is not a true MPLS setup at the moment, we should get the other networks involved. So let's do that now. We will start with the London network:
Switch(config)#ho LON-SW
LON-SW(config)#vlan 10
LON-SW(config-vlan)#name MAIN-VLAN
LON-SW(config-vlan)#exi
LON-SW(config)#int gi0/0
LON-SW(config-if)#swi mo acc
LON-SW(config-if)#swi acc vl 10
LON-SW(config-if)#int vlan 10
LON-SW(config-if)#ip add 10.1.1.2 255.255.255.0
LON-SW(config-if)#no shut
LON-SW(config-if)#
LON-SW(config-if)#do ping 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1:
.!!!!
Success rate is 80 percent (4/5)
LON-SW(config-if)#
Now lets move down to our London firewalls. I will be using the subnet 21.38.5.0/24 for the connections between the two firewalls and the LON-SW switch.
LON-SW(config)#line con 0
LON-SW(config-line)#exec-t 0 0
LON-SW(config-line)#exi
LON-SW(config)#vlan 20
LON-SW(config-vlan)#name Inside-VLAN
LON-SW(config-vlan)#exit
LON-SW(config)#int vlan 20
LON-SW(config-if)#ip add 21.38.5.1 255.255.255.0
LON-SW(config-if)#no shut
LON-SW(config)#int ra gi 0/1 - 2  
LON-SW(config-if-range)#swi mode acc
LON-SW(config-if-range)#swi acc vl 20
LON-SW(config-if-range)#no shu
LON-SW(config-if-range)#do sh vlan bri

VLAN Name                             Status    Ports
---- -------------------------------- --------- -----------------------
1    default                          active    Gi0/3
10   MAIN-VLAN                        active    Gi0/0
20   Inside-VLAN                      active    Gi0/1, Gi0/2
1002 fddi-default                     act/unsup 
1003 token-ring-default               act/unsup 
1004 fddinet-default                  act/unsup 
1005 trnet-default                    act/unsup 
LON-SW(config-if-range)#do sh ip int bri
Interface              IP-Address      OK? Method Status     Protocol
GigabitEthernet0/0     unassigned      YES unset  up         up      
GigabitEthernet0/1     unassigned      YES unset  up         up      
GigabitEthernet0/2     unassigned      YES unset  up         up      
GigabitEthernet0/3     unassigned      YES unset  up         up      
Vlan10                 10.1.1.2        YES manual up         up      
Vlan20                 21.38.5.1       YES manual down       down    
LON-SW(config-if-range)#
*Jan 12 12:26:44.246: %LINK-3-UPDOWN: Interface Vlan20, changed state to up
*Jan 12 12:26:45.247: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan20, changed state to up
LON-SW(config-if-range)#
Because it's hard to cut and paste from a VNC session, I have set up SSH access from the LON-SW switch, and have ssh'd onto the LON-FW1, here is the basic IP addressing:
ASAv1# sh run interface GigabitEthernet 0/0
!
interface GigabitEthernet0/0
 nameif Outside
 security-level 0
 ip address 21.38.5.254 255.255.255.0 
ASAv1# conf t
ASAv1(config)# hostname LON-FW1
LON-FW1(config)# exi
LON-FW1# sh run | i ssh
aaa authentication ssh console LOCAL 
ssh stricthostkeycheck
ssh 192.168.0.0 255.255.0.0 Inside
ssh 21.38.5.1 255.255.255.255 Outside
ssh timeout 5
ssh version 2
ssh key-exchange group dh-group1-sha1
LON-FW1# 
LON-FW2 has been set up with an Outside address as well, and is reachable from LON-FW1.

We already have some basic internal IP addressing from before, so now we have the network 192.168.10.0/24 network going down from the firewalls to the switches. At the moment, this just the gi0/1 interface, but we'll change this into a redundancy group later on. Let's set them up in a failover pair.

Setting up Active/Standby ASA failover pair

The only difference between the two device is that one uses the command "failover lan unit primary" and the other uses "failover lan unit secondary". The configs for LON-FW1 are here:
LON-FW1(config)# failover
LON-FW1(config)# failover lan unit primary
LON-FW1(config)# failover lan interface FOVER GigabitEthernet0/3
INFO: Non-failover interface config is cleared on GigabitEthernet0/3 and its sub-interfaces
LON-FW1(config)# failover replication http
LON-FW1(config)# failover interface ip FOVER 10.1.208.1 255.255.255.252 standb$
LON-FW1(config)# 
        No Active mate detected
LON-FW1(config)# 
LON-FW1(config)# failover key fover
LON-FW1(config)# end
LON-FW1# sh failover
Failover On 
Failover unit Primary
Failover LAN Interface: FOVER GigabitEthernet0/3 (Failed - No Switchover)
Reconnect timeout 0:00:00
Unit Poll frequency 1 seconds, holdtime 15 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 2 of 61 maximum
MAC Address Move Notification Interval not set
failover replication http
Version: Ours 9.4(1), Mate Unknown
Last Failover at: 12:43:42 UTC Jan 12 2016
        This host: Primary - Active 
                Active time: 130 (sec)
                slot 0: empty
                  Interface Inside (192.168.10.254): Unknown (Waiting)
                  Interface Outside (21.38.5.254): Unknown (Waiting)
        Other host: Secondary - Failed 
                Active time: 0 (sec)
                  Interface Inside (0.0.0.0): Unknown (Waiting)
                  Interface Outside (0.0.0.0): Unknown (Waiting)

Stateful Failover Logical Update Statistics
        Link : Unconfigured.
              
LON-FW1# conf t
LON-FW1(config)# int gi0/3
LON-FW1(config-if)# no shut
LON-FW1(config-if)# Beginning configuration replication: Sending to mate.
End Configuration Replication to mate

LON-FW1(config-if)# 
Setting up interfaces for failover is pretty easy:
LON-FW1# sh run int gi0/0
!
interface GigabitEthernet0/0
 nameif Outside
 security-level 0
 ip address 21.38.5.254 255.255.255.0 standby 21.38.5.253 
LON-FW1# 
LON-FW1# conf t    
LON-FW1(config)# int gi0/1
LON-FW1(config-if)# ip add 192.168.10.254 255.255.255.0 standby 192.168.10.253
LON-FW1(config-if)# end
LON-FW1# sh fail
Failover On 
Failover unit Primary
Failover LAN Interface: FOVER GigabitEthernet0/3 (up)
Reconnect timeout 0:00:00
Unit Poll frequency 1 seconds, holdtime 15 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 2 of 61 maximum
MAC Address Move Notification Interval not set
failover replication http
Version: Ours 9.4(1), Mate 9.4(1)
Last Failover at: 12:43:42 UTC Jan 12 2016
        This host: Primary - Active 
                Active time: 540 (sec)
                slot 0: empty
                  Interface Inside (192.168.10.254): Normal (Waiting)
                  Interface Outside (21.38.5.254): Normal (Monitored)
        Other host: Secondary - Standby Ready 
                Active time: 28 (sec)
                  Interface Inside (192.168.10.253): Normal (Waiting)
                  Interface Outside (21.38.5.253): Normal (Monitored)

Stateful Failover Logical Update Statistics
        Link : Unconfigured.
              
LON-FW1#
LON-FW1# copy run start

Source filename [running-config]? 
Cryptochecksum: 8f650365 eb39d041 7e4fbeee d985eb91 

8751 bytes copied in 0.120 secs
LON-FW1#  
The switches also have some basic configuration:
SW1#sh vlan bri

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi0/1, Gi0/2, Gi0/3, Gi1/0
                                                Gi1/1, Gi1/2, Gi1/3, Gi2/0
                                                Gi2/1, Gi2/2, Gi2/3, Gi3/3
8    Internal-HTTP                    active    
10   AD VLAN                          active    Gi0/0
17   Voice_VLAN                       active    
42   VLAN0042                         active    
100  WSA MGMT                         active    
1002 fddi-default                     act/unsup 
1003 trcrf-default                    act/unsup 
1004 fddinet-default                  act/unsup 
1005 trbrf-default                    act/unsup 
SW1#
Let's het SW1 and SW2 working with HSRP for VLAN 10:
SW1(config)#int vlan 10
SW1(config-if)#no shut
SW1(config-if)#
SW1(config-if)#ip add 192.168.10.2 255.255.255.0
SW1(config-if)#standby 10 ip 192.168.10.1
SW1(config-if)#standby 10 pri 110
SW1(config-if)#standby 10 pre del min 60
SW1(config-if)#
%HSRP-5-STATECHANGE: Vlan10 Grp 10 state Standby -> Active
SW1(config-if)#

SW2(config)#int vlan 10
SW2(config-if)#ip add 192.168.10.3 255.255.255.0
SW2(config-if)#
SW2(config-if)#standby 10 ip 192.168.10.1
SW2(config-if)#standby 10 pri 90
SW2(config-if)#no shu
SW2(config-if)#int gi 0/0
SW2(config-if)#swi mo acc
SW2(config-if)#swi acc vl 10
SW2(config-if)#no sh
SW2(config-if)#
%LINK-3-UPDOWN: Interface Vlan10, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan10, changed state to up
%HSRP-5-STATECHANGE: Vlan10 Grp 10 state Speak -> Standby

SW1(config-if)#do sh standby
Vlan10 - Group 10
  State is Active
    2 state changes, last state change 00:03:29
  Virtual IP address is 192.168.10.1
  Active virtual MAC address is 0000.0c07.ac0a (MAC In Use)
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.688 secs
  Preemption enabled, delay min 60 secs
  Active router is local
  Standby router is 192.168.10.3, priority 90 (expires in 10.032 sec)
  Priority 110 (configured 110)
  Group name is "hsrp-Vl10-10" (default)
SW1(config-if)#

SW2(config-if)#do sh standby
Vlan10 - Group 10
  State is Standby
    1 state change, last state change 00:02:22
  Virtual IP address is 192.168.10.1
  Active virtual MAC address is 0000.0c07.ac0a (MAC Not In Use)
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 0.496 secs
  Preemption disabled
  Active router is 192.168.10.2, priority 110 (expires in 9.520 sec)
  Standby router is local
  Priority 90 (configured 90)
  Group name is "hsrp-Vl10-10" (default)
SW2(config-if)#
Seems pretty stable using vios (vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Version 15.2(CML_NIGHTLY_20150414)), so let's go and set up the ASAs in a redundant group.

ASA redundant interfaces 

For this we start by removing the nameif and IP address from the Gi0/1 interface, then create the redundant group:


In the end the config looks like this:
LON-FW1# sh run int gi0/1
!
interface GigabitEthernet0/1
 no nameif
 no security-level
 no ip address
LON-FW1# sh run int gi0/2
!
interface GigabitEthernet0/2
 shutdown
 no nameif
 no security-level
 no ip address
LON-FW1# sh run int redundant 1
!
interface Redundant1
 member-interface GigabitEthernet0/1
 member-interface GigabitEthernet0/2
 nameif Inside
 security-level 100
 ip address 192.168.10.254 255.255.255.0 standby 192.168.10.253 
LON-FW1# ping Inside 192.168.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/10 ms
LON-FW1# 
Looks like HSRP is stable! (much better than the IOL images!

One final thing before I leave it here for today, some static routing on the LON-FW firewall:
LON-FW1(config)# route Outside 0.0.0.0 0.0.0.0 21.38.5.1   
LON-FW1(config)# route Inside 192.168.0.0 255.255.0.0 192.168.10.1
LON-FW1(config)# 
The network is starting to take shape again. I need to figure out some internal addressing, so I'll do that and pick this up again later in the week.

CCIE Security lab server build starts!

It's server build time! 

Three year old boy build a server

My new server arrived on Thursday. I had been toying with what to get for a couple of weeks, and found what I thought was a bargain on eBay.

For the reasonable sum of £649.99, I picked up a dual hexa core Xeon Dell Precision T5500. It's got a pair of X5675 Xeon processors, so it gives me a total of 24 logical CPUs, and came with a nice 48Gb of memory. 

Cheap server for ESXi on eBay

The best part was that the seller had two of them, and then upped the price by £350!

Cheap server for ESXi on eBay
It just goes to show that timing is everything! I am very pleased that not waiting a day or two saved me a stack of cash.

It was a barebones setup, so I added a 120Gb SSD to hold the OS, and a 750Gb SATA drive. It took some time to get the second HD running, as that channel was disabled in the BIOS. Took me a little while to figure this out, but now it's running nicely. I was helped by one of my boys. He put the DVD in the drive and plugged cables in for me.

The best thing about it is that compared to my old server (which you can see in the background on the first picture), that I used for my R&S, it's nearly completely silent. My wife will be much happier about this, and it makes studying easier, as it's hard to concentrate when it sounds like you are sitting in a wind tunnel (or a server room).

It's now loaded with ESXi 6.0, and the vSphere server appliance is running on it. Being a Mac user it's either using that, or having to run a Windows VM for management.

ESXi on Dell T5500


I have migrated UNL from VMWare Fusion on my Mac, to the new server, and upped the CPU count to 12, and the memory from 8GB (the limit in Fusion) to 40GB, which, by my calculation, is the minimum memory requirement for the CCIE Security lab.

ESXi on Dell T5500

I think somethings will have to run as ESXi hosts, namely the ISE, but the benefit of the full VMWare solution is the enhanced memory handling - such as over commitment. That said, the first DIMM slots have 4GB sticks in them, so I could upgrade these to 8GB sticks and gain and additional 24GB or memory, taking the total up to 72GB. The system can take a maximum of 96GB. So there is a lot of scope for expansion.

I think I will need to add an ethernet card, probably a quad one, as I will need to link into to components such as the Access Point, ISE etc etc.  But this bit can wait a few months.

It's looking good so far. The books have started to arrive, and I am formulating my study plan.

I also managed to clear up the garage so we can fit a chest freezer in tomorrow. It's going to be a busy weekend!

Riddle: What has two thumbs and five digits?

You can probably guess that I got "that email" from Cisco this morning. So it's the moment of truth.

Did I pass or fail?

I woke up this morning feeling tired. One of my boys climbed into bed with me, wriggled around for a bit then made me get up to make him breakfast. The other one is still asleep, unusual for him, but we did stay out really late last night. Part of me wanted to stay in bed, after all in a Schrodinger's cat kind of way, if I don't know that I have failed, that means I have passed, right? I think that's how it works.

Nevertheless, I am still nervous about the result.

Nervous on Airplane

I was not sure whether I'd get an email from Cisco by now, mainly because it is the weekend, so I would have allowed until Monday to hear back.

They sent the email at just after 5am this morning.

CCIE results

The email itself just directs you to the CCIE webpage.
This is what greets me:

CCIE results

Clicking on the "Pass" link takes us to another page:

CCIE results

So there we go. What's got two thumbs and five digits?

This guy.

I am CCIE.

CCIE certified logo

I did it. I would like to know that actual scores, but now they are irrelevant.

I have the digits. Mission accomplished.

It's time to celebrate today. I can rest, I can enjoy time with my family again. I can spend my holiday (at the end of the month) relaxing and enjoying. This will be nice as I am sure my family would prefer me not to be studying for the fourth year in a row when we are on holiday.

I feel so relieved now. I have got some friends coming over later for a BBQ, so it's time to kick back and relax.

Once again I'd like to thank all of you who have encouraged me along this journey. It's not over yet, but I have reached a massive milestone.

So thank you guys for the support. I have the digits, and don't feel like I have let you guys down, as well as myself.

Time to go outside and smell the roses!

First CCIE attempt is over

So, let me start by saying that I don't know my result yet, it's nearly 11pm on a Friday night. I have a thumping headache, and after getting only a couple of hours sleep last night, I am feeling very tired.

Let me also say that I won't be breaking any NDA in this post (or outside of the post, so don't ask for any lab details).

That said, here's how my day went.

I got very little sleep. My body has a tendency to wake me up super early if I have something important to do, today was no exception. My alarm was set for 7am, brain woke me up at 5am. Screw you brain. Thanks a bunch. Managed to get an hour or so sleep after that, woke up feeling very groggy.

The shower at the hotel was decent enough, so that woke me up a bit, I got a coffee from Starbucks, and drove over to the Cisco campus.

The campus is very nice. I didn't take any pictures, already the nerves had kicked in, and I turned my phone off and stored it in the car.

I arrived about half an hour early, one of three candidates, the other two were taking the DC track.

We sign some paper work, and head up to the room.

I have got the most wobbly desk. It's like typing on a boat. I also have one of those keyboards with a really small enter key, and a \ next to it. So very frequently I pressed \ instead of enter, which got really infuriating for a while, but seemed to get easier (a little) later on.

We only have putty, no SecureCrt, or superputty. This is a little annoying, but you get used to it. The screen is a decent size though.

First up we have the troubleshooting section. I am whizzing through this, the first seven questions go really well, and the last two went well also. I did have to ask the proctor at one stage, but he couldnt help me. Everything was working fine, so it's my issue. I did solve that one myself though, so that was OK. Question 8, however, I could not get to work. It kind of worked, but not 100%. So I reckon I failed on that one. The annoying thing is that the first bunch of questions I whizzed through. Got stumped on #8, did 9 and 10 then went back to 8. Still couldn't get the output to match, I had bags of time, and even went into the 30 mins that could be used for the Config section. Still couldn't get it to work.

CCIE brain explode

At this point I got really angry and stressed at myself. Routes were there, just things were taking the wrong path. I spent ages going over and over it. Getting more and more stressed. In the end I decided to move on, and save the time for the config section.

As a side note - I know a lot of people have mentioned that there is a fair amount of lag in a remote lab, but I found it perfectly fine.

Then we have the Diagnostic, which I think went OK. Again, I havn't got the scores yet, so it might have gone ok, or I might have bombed out completely.

Its about 11:30 by now, so I start the config section, covering all of section 1 before lunch.
The cafeteria at Cisco is very nice, but I just opted for an orange juice. Nerves had hit hard by then. I was till angry over the question I had failed to solve in the TS, so was stewing a bit.

The config section went pretty well (I think, we'll find out at some stage). I didn't leave any questions un-attempted, and the outputs matched what was required.

I finished with about 2 minutes to spare. It was close, and I know I picked up a couple of points in the IPv6 section that I would have otherwise missed if I had not had those extra couple of minutes that I chose to "lose" from the TS section.

So although I know I lost some points in the TS, I gained some in the config.

I walked out feeing very uncertain. If I had got all of the TS tickets, then I am sure that I'd have a passing grade, as it stands now, I really don't know.

I then spent about 2 hours on the M25, before getting home and meeting my wife and kids at the family-do at the local cricket club.

Now it's 11:20pm. I am tired, a little drunk, and off to bed. Still none the wiser as to whether or not I have passed. Though the title of this post should be an indication of how well I think I did.

Before I go though, I'd like to say a big thank you to all of you who have wished me well for today, either through the blog, through twitter, or via any other means. It meant a lot, and thank you.

Night all.

The day before the CCIE lab

I have checked in to the hotel. It's nothing fancy, but it is close, it has beer, and the staff are friendly.

beer!

I am now known as Mr. Reese, due to my Reese's chocolate t-shirt. That's the kind of welcome I like after a 2 hour drive into outer London. 

So did I manage to keep up to my schedule for the week? Yes and no. I got called into a meeting at work, and spent a very large part of Tuesday building a lab to solve the work issue. 

Other than that, it has pretty much gone according to plan. I have watched the majority of the INE cram videos, and picked up a couple of tips in the way. I did another 360 config, and learned from my mistakes. 

I pushed myself for most of the week, but totally slacked off today. Being the day before the exam, you'd think that I would be pulling out all the stops and getting every last little bit of information that I could, however, to be perfectly honest, I am feeling tired and a little bit burnt out. 

It's been a good week, but tiring. 

The CCIE is no easy effort. It requires time, dedication, and is an exhausting process. 

So do I feel ready?

Not sure really. 

My good friend and colleague from work passed his on Monday, and given the external factors he's had to contend with, I really must congratulate him on passing when others in the same circumstances would have let these factors overwhelm them, and not be able to pass. So he's done great, and it really gives me a good feeling that I can pass this. We have bounced ideas off each other, worked through scenarios and spoken at great length about the process needed to do well, and it is a process, especially in the troubleshooting section.

When I sat Narbik's course and he said that if you have the right process then you will pass, I sat there thinking "There's a process?how do I get a process?", well actually that came pretty easy in the end and I think I have one that should serve me well. It's nothing magical, it's just a list of command to cover most eventualities, and hopefully it'll work tomorrow. 

Tonight is all about the final pointers; get my aliases in my head, a bit of light reading, and an early night. 

It's up early tomorrow, I plan for a 7am start, grab a Starbucks, and off to Cisco!

After one last beer. 

more beer!

Cheers!