I am putting together a network currently that will utilize VRF-lite to segregate various customer VPNs. I am using VRF-lite because I don't have the need for capacity greater than a single Cisco 7206 at the moment, and I don't really anticipate growing past that for the forseeable future (although that would be a good problem to have).
I am having a bit of trouble wrapping my brain around how to implement the firewall, though. The idea is to provide "in-cloud" internet access for my customers using VRF-Aware NAT as well as IPsec access to their VPN. To that end, I have already configured NAT and it works fine. But I would also like to secure that NAT with the IOS firewall.
Right now, the two ways that I can think of for doing this are: 1) to create a separate routed subinterface to represent each VRF instance between this router and the upstream router, or 2) to have a single monolithic ACL and inspect class to apply to the existing interface which would cover all PATs and static NATs for all customers on this router.
How is this kind of thing normally done? I'd prefer not to create routed subinterfaces for each VRF to avoid IP address waste, but I certainly can if I need to.
Here are some relevant portions of my config to see how I'm currently handling things (IP addresses have been obfuscated, but all subnets are correct). Constructive criticism is welcome.
Any insight would be appreciated! Thanks!
I am having a bit of trouble wrapping my brain around how to implement the firewall, though. The idea is to provide "in-cloud" internet access for my customers using VRF-Aware NAT as well as IPsec access to their VPN. To that end, I have already configured NAT and it works fine. But I would also like to secure that NAT with the IOS firewall.
Right now, the two ways that I can think of for doing this are: 1) to create a separate routed subinterface to represent each VRF instance between this router and the upstream router, or 2) to have a single monolithic ACL and inspect class to apply to the existing interface which would cover all PATs and static NATs for all customers on this router.
How is this kind of thing normally done? I'd prefer not to create routed subinterfaces for each VRF to avoid IP address waste, but I certainly can if I need to.
Here are some relevant portions of my config to see how I'm currently handling things (IP addresses have been obfuscated, but all subnets are correct). Constructive criticism is welcome.
Code:
ip vrf 1001
description Test Network 1
!
interface Loopback1
ip address 1.1.169.1 255.255.255.0
ip nat outside
ip virtual-reassembly
ip ospf network point-to-point
!
interface Loopback1001
ip vrf forwarding 1001
ip address 192.168.163.55 255.255.255.255
ip nat inside
ip virtual-reassembly
!
interface Tunnel101
ip vrf forwarding 1001
ip address 172.29.1.1 255.255.255.252
ip nat inside
ip virtual-reassembly
ip ospf network broadcast
tunnel source 1.1.173.2
tunnel destination 3.3.5.2
tunnel key 11022
!
interface Port-channel1
no ip address
duplex full
hold-queue 150 in
!
interface Port-channel1.1731
encapsulation dot1Q 1731 native
ip address 1.1.173.2 255.255.255.252
ip nat outside
ip virtual-reassembly
!
router ospf 1001 vrf 1001
router-id 1.1.1.1
log-adjacency-changes
area 1 stub
network 172.29.1.0 0.0.0.3 area 1
network 192.168.163.55 0.0.0.0 area 0
!
router ospf 1
router-id 1.1.1.2
log-adjacency-changes
network 1.1.169.0 0.0.0.255 area 0
network 1.1.173.0 0.0.0.3 area 0
!
ip forward-protocol nd
ip route vrf 1001 0.0.0.0 0.0.0.0 Port-channel1.1731 1.1.173.1
!
ip nat pool 1001 1.1.169.65 1.1.169.65 netmask 255.255.255.0
ip nat inside source list 1301 pool 1001 vrf 1001 overload
!
access-list 1301 permit 192.168.163.55
access-list 1301 permit 10.0.0.0 0.255.255.255
Any insight would be appreciated! Thanks!
