Forget the term "Class" relating to IP routing. The term is dead and buried. They're "/8", "/16", and "/24" networks-- not "Class A", etc. If anyone tells you otherwise send them to me.
It sounds like you're asking:
Can I an entire network of 250-ish hosts behind a NAT router that, in turn, is connected to another network of 250-ish hosts behind ANOTHER NAT router. Something like:
Interface Interface
Ethernet1 Ethernet1
192.168.1.254/24 192.168.1.1/24
__________ V __________ V
(( heap o )) | NAT | V | NAT |
(( internet )) ----| ROUTER A |----- //// -----| ROUTER B |----- //// -----
(( w00t! )) ^ |__________| ^ |__________|
^ ^
Interface Interface
Ethernet0 Ethernet0
Some Internet IP 192.168.1.1/24
In each of those interstitial networks (represented by the ////
) you'd like to pile 250-ish hosts, eh?
Firstoff, you seem to be conflating the terms "router" and "NAT router". Many routers don't do NAT as part of their day-to-day duties. I think you believe that every router translates network addresses, and that's not the case.
You might think this would work. You might think "Gee-- NAT Router B could just 'know' to route packets from the LAN connected to its Ethernet1 interface, bound for the Internet, out to 'NAT Router A'."
It won't work, though. You need some terminology to understand why. See this question and my answer for an excruciating level of detail and come back when you're done.
The way that NAT Router B would "know" where to send packets is based on the network IDs assigned to its interfaces. Both interfaces, Ethernet0 and Ethenet1, have the same network ID assigned (192.168.1.0). Re-using the same network IDs on two different networks and then connecting those networks together isn't going to facilitate communication between those networks. Poor ol' NAT Router B won't know, when it receives a packet on its Ethernet1 interface bound for "192.168.1.254", for example, whether that packet should be sent out interface Ethernet0 or Ethernet1. You might think "Gee-- it arrived on Ethernet1 so it should be sent out Ethernet0", but that's a human assumption and not how an IP router "thinks".
Changing NAT Router B to use addresses from a different subnet (like from 192.168.2.0/24, for example) would allow the configuration to work, insofar as hosts on the 192.168.2.0/24 network could initiate communication to the 192.168.1.0/24 network and the Internet.
Interface Interface
Ethernet1 Ethernet1
192.168.1.254/24 192.168.2.1/24
__________ V __________ V
(( heap o )) | NAT | V | NAT |
(( internet )) ----| ROUTER A |----- //// -----| ROUTER B |----- //// -----
(( w00t! )) ^ |__________| ^ |__________|
^ ^
Interface Interface
Ethernet0 Ethernet0
Some Internet IP 192.168.1.1/24
It's still a problematic real-world configuration, though. Hosts connected to NAT Router B on the 192.168.2.0/24 network, because of the NAT functionality in NAT Router B, won't be reachable by hosts in the 192.168.1.0/24 network. NAT Router B is effectively "sharing" the 192.168.1.1 IP address for any communication initiated by hosts in 192.168.2.0/24 to other networks (referred to, technically, as "Port Address Translation", or "overloaded NAT"). Incoming connections into the 192.168.2.0/24 network will have to be funneled through the 192.168.1.1 IP address and specific port or protocol forwarding rules would have to be configured on NAT Router B to facilitate this communication.
In corporate network it's typically desirable to have any host on the network capable (though, perhaps, not allowed) of reaching any other host on the network. In corporate networks you don't just stack up NAT routers like in this example, because you want end-to-end communication throughout the network. You'll often see NAT at the border of the network / Internet, but typically no further NAT inside the network (except in specific places where, if you want it, you'll know why you want it).