### Summary

When modifying firewall rules with `iptables` module in ansible, the iptables tries to do reverse lookups for the IP addresses in some occasions, which can cause huge delays when the defined DNS server is unreachable for some reason. When working with iptables from the command line, one can just use the `-n` -switch (`--numeric`) of the iptables binary to disable DNS lookups altogether. However, when using the `ansible.builtin.iptables` module, such switch can not be set.

The delay problem of iptables has been known issue for long, but usually it can be bypassed with the trick mentioned above.

The` --numeric` only is available for the list (`-L`) command, and even though this module does not directly offer such functionality, internally it is using it for checking policies etc.

### Issue Type

Feature Idea

### Component Name

iptables

### Additional Information

For the sake of clarity: the problem is not about using hostnames for firewall rules (which is generally considered bad idea anyway), but the fact that iptables does the reverse lookup of the IP addresses too.

As for the question: why don't you just setup a working DNS?
- Some environments might not have DNS at all and still need firewall
- Not all machines need DNS, so no DNS for them
- DNS might not be available during the deployment when setting the initial firewall rules but will be around later on

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
description:
      - Specifies the GID or group to use in match by owner rule.
    type: str
    version_added: "2.9"
  reject_with:
    description:
      - 'Specifies the error packet type to return while rejecting. It implies
        "jump: REJECT".'
    type: str
    version_added: "2.1"
  icmp_type:
    description:
      - This allows specification of the ICMP type, which can be a numeric
        ICMP type, type/code pair, or one of the ICMP type names shown by the
        command 'iptables -p icmp -h'
    type: str
    version_added: "2.2"
  flush:
    description:
      - Flushes the specified table and chain of all rules.
      - If no chain is specified then the entire table is purged.
      - Ignores all other parameters.
    type: bool
    default: false
    version_added: "2.2"
  policy:
    description:
      - Se for the chain to the given target.
      - Only built-in chains can have policies.
      - This parameter requires the C(chain) parameter.