Code:
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.2
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.2 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
This would confuse any machine with 2 default routes to the world on the same interface and 2 different gateways.
If I am understanding correctly you want the server at 2.1 to be able to reach the outside (or at least 1.1) by routing through the laptop.
The laptop would need 2 physical interfaces, or 2 virtual interfaces configured on 1 physical interface.
something like this
ISP gateway----------laptop----------server
---1.1-----------------1.2 & 2.2---------2.1
The laptop would need to have 2 interfaces (hardware or virtual) one on each network (1.0 and 2.0) with the appropriate IP assigned to each.
the server would then need the default route to point to 2.2 and the laptop would point to 1.1
while the routing on gateway machine would need a
dedicated route for the 2.0 network pointing to 1.2 and the laptop would also need routing for the 2.0 network going out the appropriate interface.
The virtual interfaces on the laptop for eth0 could then be the 1.2 and eth0:0 could then be 2.2 with the routing tables accordingly.
Your original post shows 2 interfaces (eth0 and eth1) on the laptop but you do not show an IP assigned to eth1.
Update:
An alternative to changing the routing on the 1.1 server would be to use dnsmasq on the laptop and the 1.1 server would then see everything from the 2.1 server as if it originated from the laptop so no extra routing would be needed there