nginx 113: No route to host

Jul 09, 2012 15:39

Столкнулся с проблемой, что в логах nginx регулярно появляется сообщение об ошибке: 113: No route to host
Копал разные форумы и нашел следующее.
Допустим frontend с nginx имеет IP адрес : a.a.a.a Вот при таком конфиге iptables на backend'е (это выдержка):

-A FORWARD -j RH-Firewall-1-INPUT 
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
-A RH-Firewall-1-INPUT -s a.a.a.a -j LOG
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

в логах просачиваются пакеты
Jul  9 12:55:20 hp-php kernel: IN=eth0 OUT= MAC=00:26:55:86:aa:9c:00:1a:2f:32:53:20:08:00 SRC=a.a.a.a DST=b.b.b.b LEN=60 TOS=0x04 PREC=0x00 TTL=54 ID=49992 DF PROTO=TCP SPT=52271 DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0

и именно в этот момент мы видим в nginx ошибку 113: No route to host
Почему такое случается - я не знаю :( Кто-нибудь сможет объяснить?

Решение проблемы. Вместо:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Сделать так:
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp -s a.a.a.a --dport 80 -j REJECT --reject-with tcp-reset

Т.е. убрать -m state --state NEW и на всякий случай добавить REJECT с статусом  tcp-reset

Лично мне сильно помогло!!! Надеюсь, что и вам тоже поможет.

tcp, nginx, сеть, iptables

Previous post
Up