I wonder, how long would that table typically last?
Estes parecem ser controlados pelas seguintes teclas sysctl. Anexando como exemplo o que eu tenho em uma máquina minha (nunca os ajustei, deveria ser o padrão).
> sysctl -a 2>/dev/null | grep ip_conntrack_.*timeout
net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
So for example if I have a protocol that irregularly sends data either way, is there a risk the mapping has gone and the other side sees the connection as closed (gets no Ack)?
Parece que o tempo limite para conexões TCP estabelecidas é de 5 dias (432000 segundos). Eu acho que você vai ficar bem, a menos que você esteja usando um protocolo baseado em UDP.
In Linux, is there a way to see this table?
Sim. Em /proc/net/nf_conntrack
(terceira coluna) ou usando conntrack -L
.
Recursos adicionais:
- Tutorial Iptables de Oskar Andreasson ( espelho )