LINUX.ORG.RU

Сообщения Igorion

 

После перезагрузки серва с Debian через раз поднимаются сетевые интерфейсы..

Форум — Admin

Доброго времени суток!

Уже больше года есть домашний сервер-роутер на Debian сначала 6, сейчас 7.1, эта проблема с самого начала возникла. Почем-то после перезагрузки или выключения/включения, НЕ ВСЕГДА нормально поднимаются интерфейсы, чаще всего смотрящий в инет, но очень редко смотрящий локалку. Пробовал даже менять сетевые платы местами, и на другую, правда на ту же модель - то же самое. В линуксах начал разбираться с нуля дома, уровень beginner)

Инфа по системе: мать Asrock H61Del с последним биосом 2.0 сетевые платы: 2 дешёвые TP-LINK TG-3468, проц у них Realtek RTL8168B, думаю для домашнего сервера норм вариант, в 10 раз дороже intel без особой необходимости желания покупать нет...

Настройки interfaces, iptables..

interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

#LocalNetwork
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

#Internet
allow-hotplug eth3
iface eth3 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
# dns-nameservers 109.86.2.2 109.86.2.21

iptables (скрипт выполняется при загрузке системы, нашёл в инете, настроил под себя):

#!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Объявление переменных
export IPT="iptables"

# Интерфейс который смотрит в интернет
export WAN=eth3

# Локальная сеть
export LAN=eth0
export LAN_IP_RANGE=192.168.0.0/24

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN -j ACCEPT

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $WAN -o $LAN -j REJECT

# Маскарадинг
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE

# Далее дано как пример открытие портов извне:
# **********************************************************************
# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp --dport 26 -j ACCEPT
#$IPT -A INPUT -i $WAN -p udp --dport 26 -j ACCEPT

# Открытие портов для торрентов (такие же указать в torrent-клиенте)
#$IPT -A INPUT -i $WAN -p tcp -m multiport --ports 50100:51100 -j ACCEPT

# Открытие 443 порта
#$IPT -A INPUT -p tcp --dport 443 -j ACCEPT

# Открываем 80 порт для веб сайтов
#$IPT -A INPUT -i $WAN -p all --dport 80 -j ACCEPT

# Открытие портов для игровых серверов
#$IPT -A INPUT -i $WAN -p tcp --dport 27010:27030 -j ACCEPT
#$IPT -A INPUT -i $WAN -p udp --dport 27010:27030 -j ACCEPT
# **********************************************************************
# Вывод информации о состоянии
$IPT -L 

Тут вроде всё хорошо, да и с несколько другими настройками на прошлой системе то же самое было.

/etc/init.d/networking restart приводит к падению доступа в инет и ругани:

root@debsrv:~# /etc/init.d/networking restart
[warn] Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).
[....] Reconfiguring network interfaces...RTNETLINK answers: File exists
Failed to bring up eth0.
done.
Хотя команда отправлена через SSH с локальной сети, и Деб пишет, что не может поднять eht0, который как раз смотрит в локальную с., доступ к серву не пропадает, а вот в инет уже нету, то есть что-то с eth3. Впрочем тут и предупреждение есть, что может не встать какой-нибудь интерфейс.. Опять перезагружаю серв..

Когда, после ребута, один из интерфейсов не работает, при попытке поднятия его на сервере командой ifup eth0/eth3 выдаёт снова это «RTNETLINK answers: File exists».

Почему так? Что это за хрень, извините))? Ведь настроек не меняю, выкл,вкл и уже работает (или не работает)..надоело. В чём может быть дело? Что за «RTNETLINK answers: File exists»?

Как временно приемлемый вариант, я бы сделал скрипт, проверяющий состояние обоих интерфейсов, и в случае неполадок, отправляющий серв в ребут (потому что бывает не из дома подключаюсь, напр. из другого города). Только как его написать, кто бы помог))

 ,

Igorion
()

RSS подписка на новые темы