I was recently testing an application and wanted to see how it would behave if its connection to vCenter Server was interrupted. Would the process auto-recover? Would I need to restart a service? To find out, I simulated a connection failure using the built-in firewall on Photon OS. This type of testing can be helpful when validating resiliency, troubleshooting connection handling, or preparing for real-world outages.
The application was running on a Photon OS appliance, so I checked to see if the native iptables
firewall was enabled using the following command:
systemctl status iptables.service
This returned a confirmation that the status was loaded/active, pictured below.

Since the firewall was enabled, I checked its configuration using the command:
iptables --list --line-numbers
This lists all the rules and their associated line numbers in the configuration. At the end of the configuration, I could see a block of OUTBOUND requests, which allow everything (based on rule 7).
Chain OUTPUT (policy DROP)
num target prot opt source destination
1 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
2 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
3 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
4 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
5 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
6 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
7 ACCEPT all -- anywhere anywhere
8 ACCEPT icmp -- anywhere anywhere icmp echo-reply
9 ACCEPT icmp -- anywhere anywhere icmp echo-reply
For my testing, I only needed to create a rule above number 7 that would DROP
the requests to the specific vCenter Server my request was going to. I waited for the application to start, then added this firewall rule to drop requests to the vCenter Server, effectively simulating a network interruption:
iptables -I OUTPUT 7 -d 192.168.127.40 -j DROP
Caution: these changes are meant to be temporary and should only be used in test environments.
I then ran the same iptables --list --line-numbers
command and confirmed that rule 7 was now my DROP entry and the previous rule 7 (that allowed all traffic) shifted down to rule number 8.
Finally, after testing, I could remove the rule:
iptables -D OUTPUT 7
Conclusion
Using iptables makes it easy to simulate a loss of connectivity to vCenter (or any other target system) without touching physical network infrastructure. This approach is lightweight, repeatable, and useful for testing application resiliency or recovery processes. Just remember that iptables changes made this way are not persistent across reboots, so they’re ideal for temporary testing in a lab or non-production environment.