Quand tu ping depuis 192.168.1.2 le 172.10.12.148, le srv connait 172.10.12.148 et donc la route pour le retour vers 192.168.1.2 qui est 192.168.1.1.
Quand tu ping depuis 192.168.1.2 le 172.10.12.154, le SRV envoi au 127.0.0.1 qui est l'interface loopback .... d'ou une réponse nulle.
Si tu place le gateway 192.168.1.1 au 172.10.12.148 et inverse :
Ping depuis 192.168.1.2 le 172.10.12.154 : le SRV recoit une demande vers le net 172.10 dont la porte de sortie est le 172.10.12.148, le 172.10.12.154 recoit le ping et répond au 192.168.1.2, le SRV recoit la rep pour le 192.168.1.2 dont la porte de sortie est le 192.168.1.1 ....
Donc un routeur ou gateway doit toujours connaitre la porte vers laquelle il doit envoyer les demandes pour un range donné: Ex
Reseau A : 192.168.1.x/24 (192.168.1.254)
Reseau B : 192.168.10.x/24 (192.168.10.254)
Reseau C : 172.10.x.x/16 (172.10.254.254) + connect internet.
A est connecté a B, B est connecté a C, La liaison entre A et C passe par B. On placera donc des routes :
Sur le routeur A
172.10.0.0/16 -> 192.168.10.254 metric 2
192.168.10.0/24 -> 192.168.10.254 metric 1
0.0.0.0/32 -> 192.168.10.254 metric 2 (tout ce qui n'est pas résolu)
Sur le routeur B
172.10.0.0/16 -> 172.10.254.254 metric 1
192.168.1.0/24 -> 192.168.1.254 metric 1
0.0.0.0/32 -> 172.10.254.254 metric 1
Sur le routeur C
192.168.10.0/24 -> 192.168.10.254 metric 1
192.168.1.0/24 -> 192.168.10.254 metric 2
0.0.0.0/32 -> 172.10.0.254 metric 1 (par ex la connect internet)
Pourquoi metric 2, simplement il y a deux routeur (gateway) pour arriver au range voulu de C vers A nous avons B->A, donc deux saut.
On peux également aller plus loin, sur le routeur A, seul la ligne 0.0.0.0/32 pourrais rester car dans sont cas tout passe par B (sauf pour son range bien sur), mais il est toujours plus sage de tout définir.