En fait, vous avez des VIP orientés vers l'avant et vers l'arrière. Par exemple ;
Deux serveurs Web x.x.x.1 & x.x.x.2 ont un VIP x.x.x.3 en face du client, ce dernier est celui vers lequel pointent les enregistrements DNS et est géré soit par les serveurs eux-mêmes, soit par un autre équilibreur de charge, selon votre système d'exploitation/implémentation.
Ils disposent également d'un VIP interne/arrière, par exemple y.y.y.1, qui équilibre la charge vers leurs IP internes y.y.y.1 et y.y.y.2. Les serveurs web communiquent en aval avec le VIP interne (z.z.z.3) via ces deux dernières interfaces, mais sont contactés en amont par les serveurs internes sur ce VIP y.y.y.3.
Les serveurs internes peuvent être z.z.z.1 et z.z.z.2 avec une VIP ascendante/vers le web de z.z.z.3 et bien qu'ils parlent chacun aux serveurs web via la VIP y.y.y.3 et que ces serveurs leur parlent sur la VIP z.z.z.3.
Bien sûr, vous pouvez ensuite ajouter une quatrième ou cinquième couche en dessous pour permettre à vos serveurs internes de communiquer avec les serveurs de la base de données qui peuvent avoir leurs propres VIP.
D'une manière ou d'une autre, vous utilisez l'équilibrage de la charge et les VIP pour permettre de faire face aux scénarios d'échec dont vous avez parlé.