I am having some troubles connecting to my Fedora server from my static IP ISP connection. Usually I can ping that server with no problems. But other times it just gives me timeout responses. When this problem occurs I have to reboot the whole server in order to fix it, needless to say, this is not a feasible solution.
When this problem happens I connect to the server using different ISP connection to try figure out what is happening. Here are some results of some tests that I have tried:
1- Fail2Ban
[root@application ~]# service fail2ban status
Fail2ban is stopped
2- iptables
[root@application ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
MYFIRE all -- 0.0.0.0/0 0.0.0.0/0
3- ARP
[root@application ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
79.134.132.1 (incomplete) em1
XX.XXX.XXX.1 ether 00:XX:XX:XX:XX:00 C em1
[root@application ~]# ip neigh show
79.134.132.1 dev em1 FAILED
XX.XXX.XXX.1 dev em1 lladdr 00:XX:XX:XX:XX:00 DELAY
For some reason there is a network of my static ISP IP (79.134.140.122) created in the server's ARP table! The other record is the one that connects the server to the default gateway.
I tried to delete it but it failed:
[root@application ~]# arp -d 79.134.132.1
SIOCDARP(priv): Network is unreachable
Then I restarted the whole ARP service
[root@application ~]# ip link set arp off dev em1
[root@application ~]# ip link set arp on dev em1
Temporarily the "(incomplete)" record disappears but as soon as I make an http request it reappears again and the server will not respond to my request.
4- Reboot server After restarting the server everything worked fine and the ARP record disappears.
[root@application ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
XX.XXX.XXX.1 ether 00:XX:XX:XX:XX:00 C em1
[root@application ~]# ip neigh show
XX.XXX.XXX.1 dev em1 lladdr 00:XX:XX:XX:XX:00 DELAY
This will fix it for a day or two, until something triggers that ARP record to appear again. What other tests I should do in order to know the root cause of the problem? How can I prevent this from happening again? Or at least, how can I fix the problem temporarily without rebooting the whole server?
Any hints and pointers are greatly appreciated, thanks!