Je suppose que 192.168.0.1 n'est pas la passerelle utilisée sur le routeur B, mais plutôt sa propre IP sur l'interface LAN. Si le routeur A donne des adresses via DHCP, il informe également B de la passerelle à utiliser, et cela devrait être 192.168.1.1. Si vous pouvez accéder à Internet à partir du sous-réseau de B, c'est le cas, sauf si vous avez une configuration très excentrante qui nécessite une explication beaucoup plus détaillée.
Pour répondre à votre question, les machines C et D sont sur des réseaux séparés, mais D peut très bien établir une connexion avec C. Il ne peut pas trouver l'IP 192.168.1.3 sur son propre sous-réseau, il transmet donc la demande à sa passerelle, c'est-à-dire le routeur B, qui sait où se trouve la machine cible.
L'inverse est plus difficile. Ni l'hôte D lui-même ni sa passerelle, le routeur A, ne savent que le trafic destiné à 192.168.0.199 doit traverser le routeur B. ne permettrait pas aux paquets de passer de son interface WAN à l'interface LAN.
Bien qu'il soit préférable d'utiliser B comme commutateur `` stupide '' au lieu d'un routeur en connectant simplement tout à ses ports LAN, il est possible de contourner ce problème sans changer la topologie du réseau. Vous devrez transférer les ports du routeur B qui sont utilisés dans les communications provenant de l'extérieur du réseau 192.168.0.0/24.
Par exemple, si la machine D exécute un serveur Web, vers lequel la communication doit être initiée à partir de la machine C, vous souhaiterez configurer le routeur B pour transférer le port 80 vers 192.168.0.199. Alternativement, étant donné que votre routeur prend en charge une telle fonctionnalité, vous pouvez placer la machine D dans la DMZ du routeur B, transmettant ainsi tous les ports à cette machine, sauf s'ils sont configurés autrement. Normalement, cela peut être considéré comme non sécurisé, mais dans ce cas, la machine sera toujours protégée via le routeur A, sauf si le réseau 192.168.1.0/24 est compromis.