Carlos
Thanks for the explanation, which is making the task clearer.
As you already realise it is not possible to configure the present project to do this since it only supports the standard single IP case. To do what you aim to do requires some modification of the TCP/IP stack.
However I see no big difficulty in doing this and I think that you will find it rather easier than your original project due to the fact that all development is possible in the uTasker simulator. If you haven't already done it, try working though the tutorial and then there is nothing stopping you digging in and changing a few lines in the source.
Eg. Step though the code when an ARP frame is sent to the second IP address (although not yet supported) [this will always arrive in int fnProcessARP(ETHERNET_FRAME *frame)]. You will see that it will be ignored due to the fact that its address doesn't match. In this case add code to check whether it maybe corresponds to the IP of the second configuration (add the second configuration alongside network_default[] in application.c). If it matches, use the equivalent ARP sub-routines to send a response and add details to a second ARP table (alongside tARP in arp.c). Then move on to IP and anything else which you need in a similar fashion.
The simulator will allow fast experimentation, testing and debugging until things are doing what you require. Then compile for the target and load to the board. Such coding will generally work 100% first time on the HW so you can then immediately do performance measurements, knowing that there there will be usually no need for extra target level debugging.
If you have any difficulties just post them here. Maybe some other users will be interested in a similar project so you are welcome to share your results here.
Good luck
Regards
Mark