Zakładam, że 192.168.0.1 nie jest bramą używaną na routerze B, ale raczej własnym adresem IP na interfejsie LAN. Jeśli router A podaje adresy za pośrednictwem DHCP, informuje również B o tym, jakiej bramy użyć, i powinno to być 192.168.1.1. Jeśli możesz uzyskać dostęp do Internetu z podsieci B, tak jest, chyba że masz bardzo ekscentryczną konfigurację, która wymaga znacznie bardziej szczegółowych wyjaśnień.
Aby odpowiedzieć na twoje pytanie, maszyny C i D są w oddzielnych sieciach, ale D może dobrze nawiązać połączenie z C. Nie może znaleźć adresu IP 192.168.1.3 we własnej podsieci, więc przekazuje żądanie do swojej bramy, tj. Routera B, który wie, gdzie znajduje się maszyna docelowa.
Odwrotna sytuacja jest trudniejsza. Ani sam host D, ani jego brama, router A, nie wiedzą, że ruch przeznaczony dla 192.168.0.199 powinien przechodzić przez router B. Nawet jeśli tak, na przykład poprzez zdefiniowanie trasy „192.168.0.0/24 przez 192.168.1.2”, router B nie pozwoliłby na przekazywanie pakietów z interfejsu WAN do interfejsu LAN.
Chociaż lepiej byłoby użyć B jako „głupiego” przełącznika zamiast routera, po prostu podłączając wszystko do jego portów LAN, możliwe jest obejście tego problemu bez zmiany topologii sieci. Konieczne będzie przekierowanie portów na routerze B, które są używane w komunikacji pochodzącej poza siecią 192.168.0.0/24.
Na przykład, jeśli na komputerze D działa serwer WWW, na którym komunikacja musi zostać zainicjowana z komputera C, należy skonfigurować router B, aby przekazywał port 80 w kierunku 192.168.0.199. Alternatywnie, biorąc pod uwagę, że router obsługuje taką funkcję, możesz umieścić komputer D w DMZ routera B, przekazując w ten sposób wszystkie porty do tego komputera, chyba że skonfigurowano inaczej. Zwykle można to uznać za niepewne, ale w tym przypadku maszyna nadal będzie chroniona przez router A, chyba że sieć 192.168.1.0/24 zostanie naruszona.