Hi Pau,
Thank you for your response.
You are right, I should have told the configuration in more detail. However, you came to the point already. I am talking about the second case where there is NAT. There is a slight difference though.
After the NAT two IP (IP1 and IP2) will be IPnat, but the NAT maps the IP1 and IP2 to the port range. Since, there is no port in ICMP, both IP1 and IP2 will be go to uplink as IPg and but on the return there must be problem for NAT machine to traverse the two different paths from IPnat to IP1 and IPnat to IP2. I looked into the ICMP header and observed the packets have different identifiers. So, NAT machine must be using the identifies to reverse the packets.
Anyways, in my case the IP1=IP2 (In my experimental architecture, the GGSN will not be assigning distinct IP for each host. Instead, GGSN will assign 1 IP address for 32 hosts (seems like NAT). My configuration is probably out of standard architectures, but I need to understand how would gtp handle matching these two pdp contexts. I have tried this configuration, pinging from two different host with same IP and it was successful!
Two packets coming from the server to the GGSN will be [src:IPs | dst:IP1] and [src:IPs | dst:IP2] IP1=IP2, but two packets have different icmp identifier. And pdp contexts are still resolved successfully. so a big HOW in my mind?
Fırat