Best practice wise - should I let the router or the ASA handle NAT
(Overloading)?
In the most general of design best practices NAT is performed between an inside and outside network. NAT overloading is generally performed at the edge when there is limited public IP address space. You can learn more about NAT overloading, also known as Port Address Translation or PAT, in RFC 2663 (PAT is referred to as Network Address Port Translation (NAPT) in section 4.1.2).
In this particular scenario you can argue that you have two inside and outside networks and will need to perform some form of NAT on both the ASA (whether that is the NAT overloading you're using now, NAT exemption, static NAT, etc) and the Cisco Router.
I can ping the 172.16.2.2
interface but not 172.16.2.1
from a pc
connected to one of the layer 2 switches (proves intervlan routing is
working -- i have a 172.20.100.8
address on the PC). Why can't I ping
172.16.2.1
from a PC but I can from the Layer 3 Switch?
The ASA 172.16.2.2
is receiving the ICMP echo-request but does not have a route back to 172.20.100.0/27
. The echo-reply is actually being forwarded to the Router 172.16.1.1
via the default route.
And most of all -- Why can't I get out to the Internet from the Layer 3 switch?
Currently your ASA and Cisco Router do not have routes to internal devices other than their connected routes.
Your ASA configuration:
route outside 0.0.0.0 0.0.0.0 172.16.1.1 1
This will provide a default route via the outside interface, but how will the ASA know how to reach subnets residing behind the Layer 3 Distribution Switch?
You'll need to add routes to the internal subnets via the inside interface using the Layer 3 Distribution Switch as the next-hop IP address.
ASA static routing example:
route inside 172.19.12.0 255.255.255.240 172.16.2.2
route inside 172.19.3.0 255.255.255.0 172.16.2.2
route inside 172.20.100.0 255.255.255.224 172.16.2.2
Further reading: ASA static routing
Your Cisco Router's configuration:
ip route 0.0.0.0 0.0.0.0 200.200.200.200
Additionally, how will your border router know how to reach subnets other than it's connected routes, and the catch all default route via the outside interface's next-hop address 200.200.200.200
?
Router static routing example:
ip route 172.19.12.0 255.255.255.240 172.16.1.10
ip route 172.19.3.0 255.255.255.0 172.16.1.10
ip route 172.19.100.0 255.255.255.224 172.16.1.10
ip route 172.16.2.0 255.255.255.224 172.16.1.10
Further reading: ISR static routing
I cannot get an ip address right now from the DHCP server (Windows).
Any insight into why?
Ensure you have end-to-end IP reachability between the client(s) sending DHCP discover messages and the DHCP server.
From what I can gather from your topology and configuration, the subnets 172.19.3.0/24
, 172.19.12.0/28
and 172.20.100.0/27
should have no issues connecting to each other (assuming they are configured to use their respective default gateways) from a networking perspective.
You can remove the ip helper-address
syntax from the SVI 100 given that the DHCP server is on the same segment and that command is used for a DHCP server(s) that is on a different segment.
interface Vlan100
ip address 172.20.100.1 255.255.255.224
ip helper-address 172.20.100.27
There is an option that overrides the default timeout to the tacacs server, depending on your software version:
tacacs-server host host-name [port integer] [timeout integer]
timeout (Optional) Specifies a timeout value. This overrides the global timeout value set with the tacacs-server timeout command for this server only.
On newer versions, where tacacs-server is truncated:
tacacs server [group name]
address ipv4 [tacacs server address]
key [password]
timeout [timeout integer]
timeout - Time to wait for this TACACS server to reply (overrides default)
Edit:
I can confirm, that we've now changed our TACACS configuration to the following and it works like a charm for all 900 devices, including the timeout option. All switches and routers are running the newest safe harbor IOS.
TACACS is running on Cisco ISE redundant platform.
Layer 2/3 switches and routers, with VRF also (not including Nexus):
aaa group server tacacs+ TACACS_PLUS
server-private XX.XX.X.XXX timeout 2 key <password>
server-private XX.XX.X.XXX timeout 2 key <password>
Optional: ip vrf forwarding <vrf name>
aaa authorization config-commands
aaa authentication login default group TACACS_PLUS local
aaa authentication enable default group TACACS_PLUS enable
aaa authorization exec default group TACACS_PLUS local
aaa authorization commands 0 default group TACACS_PLUS if-authenticated
aaa authorization commands 1 default group TACACS_PLUS if-authenticated
aaa authorization commands 15 default group TACACS_PLUS if-authenticated
aaa accounting commands 0 default start-stop group TACACS_PLUS
aaa accounting commands 1 default start-stop group TACACS_PLUS
aaa accounting commands 15 default start-stop group TACACS_PLUS
Nexus 5K, 6K, 7K (tested):
feature tacacs+
tacacs-server host XX.XX.X.XXX key <password> timeout 2
tacacs-server host XX.XX.X.XXX key <password> timeout 2
aaa group server tacacs+ TACACS_PLUS
server XX.XX.X.XXX
server XX.XX.X.XXX
source-interface <ex. vlan/loopback>
!Optional: use-vrf <vrf name>
aaa authentication login default group TACACS_PLUS
aaa authorization config-commands default group TACACS_PLUS
aaa authorization commands default group TACACS_PLUS
aaa accounting default group TACACS_PLUS
Best Answer
If your switch supports it (not all IOS versions do), the following command should fix this for you:
Here is an article that goes into more depth: Would you mind waiting for 2-3 mins in a console?
And a bit from Cisco's documentation: