Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Периодически отключается сетевуха на интернет шлюзе  (Прочитано 27324 раз)
0 Пользователей и 1 Гость смотрят эту тему.
andrystepa
Помогающий

ru
Offline Offline

« : 17-06-2009 11:32 » 

На интернет шлюзе стоит Mandriva Linux 2009. Шлюз настроен с помощью shorewall, прокси и таблицы маршрутов. eth0 смотрит в инет, а eth1 в локалку. В последнее время eth1 стал периодически отключаться. То есть ifconfig показывает правильные настройки, а сетевуха не работает! Восстановить работу тем же ifconfig не выходит - приходится в графической утилите Сетевой центр запускать ее, нажимая десятки раз подряд кнопку "Подключить". При этом еще и нарушается таблица маршрутов. Сейчас в дополнение появилась еще одна напасть - сама собой нарушается таблица маршрутов. То есть пропадает сеть с маршрутом через eth1, а вместо него подставляется та же сеть с шлюзом 0.0.0.0.
Вот правильная таблица маршрутов:

Код:
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
217.69.165.128   0.0.0.0         255.255.255.128 U         0 0          0 eth0
169.254.0.0     169.254.37.1    255.255.0.0     UG        0 0          0 eth1
0.0.0.0         217.69.165.129   0.0.0.0         UG        0 0          0 eth0

А вот что получается после глюка:

Код:
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
217.9.165.128   0.0.0.0         255.255.255.128 U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         217.69.21.165.129   0.0.0.0         UG        0 0          0 eth0

Поискал в системном логе - вот что есть на описанный период времени:

Код:
Jun 11 15:44:57 AnsaldoGW kernel: VFS: busy inodes on changed media.
Jun 11 15:45:29 AnsaldoGW last message repeated 32 times
Jun 11 15:46:31 AnsaldoGW last message repeated 62 times
Jun 11 15:47:33 AnsaldoGW last message repeated 62 times
Jun 11 15:48:35 AnsaldoGW last message repeated 62 times
Jun 11 15:49:37 AnsaldoGW last message repeated 62 times
Jun 11 15:50:39 AnsaldoGW last message repeated 62 times
Jun 11 15:51:41 AnsaldoGW last message repeated 62 times
Jun 11 15:52:43 AnsaldoGW last message repeated 62 times
Jun 11 15:53:45 AnsaldoGW last message repeated 62 times
Jun 11 15:54:47 AnsaldoGW last message repeated 62 times
Jun 11 15:55:49 AnsaldoGW last message repeated 62 times
Jun 11 15:56:51 AnsaldoGW last message repeated 62 times
Jun 11 15:57:53 AnsaldoGW last message repeated 62 times
Jun 11 15:59:57 AnsaldoGW last message repeated 62 times
Jun 11 16:00:01 AnsaldoGW last message repeated 5 times
Jun 11 16:00:01 AnsaldoGW CROND[27222]: (drweb) CMD (/opt/drweb/update.pl)
Jun 11 16:00:03 AnsaldoGW kernel: VFS: busy inodes on changed media.
Jun 11 16:00:35 AnsaldoGW last message repeated 32 times
Jun 11 16:01:01 AnsaldoGW last message repeated 27 times
Jun 11 16:01:01 AnsaldoGW CROND[27241]: (root) CMD (nice -n 19 run-parts --report /etc/cron.hourly)
Jun 11 16:01:03 AnsaldoGW kernel: VFS: busy inodes on changed media.
Jun 11 16:01:35 AnsaldoGW last message repeated 32 times
Jun 11 16:02:07 AnsaldoGW last message repeated 33 times

Отчего это last message repeated 62 times? В каких еще логах надо смотреть? Может это железо глючит?
Помогите пожалуйста.
Записан
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #1 : 17-06-2009 12:40 » 

Сетевые встроенные или внешние? Если внешние то попробуй их заменить, например взяв на время у друзей.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
andrystepa
Помогающий

ru
Offline Offline

« Ответ #2 : 17-06-2009 13:01 » 

Сетевухи к сожалению встроенные. А вообще то есть возможность как-то проверить, не в самой ли сетевухе дело?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 17-06-2009 13:01 » 

andrystepa, в твоем логе совсем ничего нет о сети - про остальные строчки можно не думать.

1. Странный выбор для роутера — десктопный дистрибутив. Конечно, работать будет, но все же есть некоторая специализация.

2. GUI — мрак. Так точно будешь кликать мышкой до посинения и ничего не поймешь.

Открывай консоль.
Если ты под простым юзером, введи "su -" и пароль рута.
Воспользуйся утилитой ip вместо древних, малоинформативных, но традиционных для *nix — ifconfig и route.

ip l sh # или полностью: ip link show

Тут мы видим все сетевые подключения, их MAC-адреса, настройки и состояние. Добавив -s можно узреть еще статистику.

ip -s l sh

Далее учимся поднимать и опускать интерфейс:

ip link set dev eth1 down
ip link set dev eth1 up


Я предпочитаю сокращенные формы:

ip l s dev eth1 down
ip l s dev eth1 up


Попробуем понять состояние на примере:

ip -s l sh
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:30:48:2b:dd:e2 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    696580479  427359479 0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    3012897288 127400567 0       0       0       0
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether 00:30:48:2b:dd:e3 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    0          0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    0          0        0       0       0       0

Главная информация содержится в первой строке: eth0 — UP — интерфейс поднят и не за чем его дергать. Счетчик errors говорит об ошибках: выведи статистику несколько раз подряд и если он меняется, то смотри сетевой кабель или все остальное, что подключено к нему.
Eth1 у нас опущен. Попробуем поднять.

ip l s dev eth1 up
ip l sh dev eth1

3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:30:48:2b:dd:e3 brd ff:ff:ff:ff:ff:ff

Видим, что интерфейс поднят — UP, но кабель не подключен — NO-CARRIER.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
andrystepa
Помогающий

ru
Offline Offline

« Ответ #4 : 17-06-2009 13:46 » 

Спасибо. Я про утилиту ip пока только слышал. Но это надо делать в тот момент, когда не работает сетевуха - я так понимаю. Но сейчас она работает уже второй день без проблем. Можно ли по каким-либо логам посмотреть, отчего же она перестала работать?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 17-06-2009 14:54 » 

andrystepa, смотри лог /var/log/messages и логи ядра командой dmesg. Ищи упоминание eth1.
Лог messages обычно ротируется раз в неделю, а логи ядра имеют ограничение в 16 кБ и ротируются в памяти.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
andrystepa
Помогающий

ru
Offline Offline

« Ответ #6 : 18-06-2009 05:16 » 

Лог messages я привел в первом посте как раз примерно на то время, когда перестал работать eth1. Там вроде ничего не наблюдается. А вот лог ядра я не смотрел... Сейчас уже поздно, буду ждать следующего сбоя...
Записан
andrystepa
Помогающий

ru
Offline Offline

« Ответ #7 : 06-07-2009 12:14 » 

Пришел после отпуска - во время отпуска ничего не происходило (иначе бы обязательно позвонили). В первый же рабочий день глючит сетевуха. Восстанавливаю таблицу маршрутов - через 20 минут то же самое. Но тут один наш сотрудник приходит и говорит, что видел как отключился маршрутизатор провайдера. Дело в том, что наш провайдер сидит в соседнем корпусе. Одно время у нас было подключение через ADSL а полгода назад начался ремонт в нашем корпусе и провайдер протянул нам оптику и повесил свою железяку, от которой к нашему серверу идет витая пара. Вот ее то отключение и видел этот сотрудник. Иду выяснять. В комнате, где стоит маршрутизатор говорят, что был сбой по электричеству - рабочие, что ведут ремонт что-то напортачили. И это было оба раза, перед тем как глючила сетевуха на нашем сервере - шлюзе. Решил проверить подозрения - отцепил входящий от прова кабель на несколько секунд, а потом опять включил. И получил то же самое, что я указал в первом посте. То есть маршрут в локальную сеть сбивается. Только вот странно - отключаю я сеть, подключенную к eth0, а изменяется маршрут для сети подключенной к eth1. С чего бы такое?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 06-07-2009 20:05 » 

andrystepa, "этого не может быть".

Почитай: ip route help
Статические маршруты.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 07-07-2009 06:05 » 

покажи маршруты до и после
netstat -r
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andrystepa
Помогающий

ru
Offline Offline

« Ответ #10 : 07-07-2009 06:59 » 

покажи маршруты до и после
netstat -r
А они показаны в первом посте. Тот что до глюка и после.

andrystepa, "этого не может быть".

Почитай: ip route help
Статические маршруты.

Вот этот хелп:
Код:
ip route help
Usage: ip route { list | flush } SELECTOR
       ip route get ADDRESS [ from ADDRESS iif STRING ]
                            [ oif STRING ]  [ tos TOS ]
       ip route { add | del | change | append | replace | monitor } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ]
           [ rtt TIME ] [ rttvar TIME ]
           [ window NUMBER] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
           [ rto_min TIME ]
TYPE := [ unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat ]
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
FLAGS := [ equalize ]
MP_ALGO := { rr | drr | random | wrandom }
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
TIME := NUMBER[s|ms|us|ns|j]
К сожалению толком разобраться не могу. Как я понимаю, команда изменения (добавления и т.д.) маршрута:
ip route { add | del | change | append | replace | monitor } ROUTE
где
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]..
а
RTPROTO := [ kernel | boot | static | NUMBER ]
Что такое PREFIX не указано. Это префикс сети? Или тут просто надо прописать маршрут, например:
Код:
ip route add -net 169.254.0.0/16 gw 169.254.37.1 ...
и в конце указать proto static? Или как-то иначе?
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 07-07-2009 07:20 » 

169.254.х.х это автоконфигурационная сеть
поэтомку при пропадании линка на eth1 у тебя есть проблемы
надо поднимать статическую маршрутизацию
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andrystepa
Помогающий

ru
Offline Offline

« Ответ #12 : 07-07-2009 09:07 » 

169.254.х.х это автоконфигурационная сеть
поэтомку при пропадании линка на eth1 у тебя есть проблемы
надо поднимать статическую маршрутизацию
Так, вроде понял. То есть когда пропадает линк на eth1 система автоматически переконфигурирует маршрутизацию и делает маршрут в эту сеть через дефолтный шлюз. Хотя, конечно, все равно не очень понятно, почему при этом настройки дефолтного шлюза остаются...
Хорошо. А насчет статической маршрутизации - то что я предположил, то есть
Код:
ip route add -net 169.254.0.0/16 gw 169.254.37.1 proto static
это правильно?
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 07-07-2009 09:33 » 

andrystepa, прописать маршрут это пол дела
он же у тебя умрет после перезагрузки
я, к сожалению, не знаю mandriva (читай линукс) но шел бы след путем.



1. настройка сети
2 конфигурационные файлы настройки системы

настройки дефолтного шлюза  статические, потому и не меняются.

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andrystepa
Помогающий

ru
Offline Offline

« Ответ #14 : 07-07-2009 09:55 » 

В /etc/sysconfig/network-scripts/ в файлах ifcfg-eth0 и ifcfg-eth1 записаны совершенно правильные настройки сети. Везде стоит BOOTPROTO = static. При перезагрузке эти настройки сохраняются. Вот только дефолтный шлюз после перезагрузки не сохраняется. В каких конфигах еще это смотреть? Как сделать маршрут статическим?
Записан
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #15 : 07-07-2009 10:20 » 

andrystepa, вариантов масса, например:

/etc/sysconfig/network-scripts/route-ethN

Код:
GATEWAY<N>=xxx.xxx.xxx.xxx
NETMASK<N>=yyy.yyy.yyy.yyy
ADDRESS<N>=zzz.zzz.zzz.zzz

или можешь выполнять команду в /etc/rc.local
или завести отдельную службу
или выполнять в фаерволе
...
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
andrystepa
Помогающий

ru
Offline Offline

« Ответ #16 : 07-07-2009 10:41 » 

andrystepa, вариантов масса, например:

/etc/sysconfig/network-scripts/route-ethN

Код:
GATEWAY<N>=xxx.xxx.xxx.xxx
NETMASK<N>=yyy.yyy.yyy.yyy
ADDRESS<N>=zzz.zzz.zzz.zzz

или можешь выполнять команду в /etc/rc.local
или завести отдельную службу
или выполнять в фаерволе
...
Ага, спасибо. Я тут как раз просматривал файл etc/sysconfig/network-scripts/ifup-routes и увидел, что он использует файл route-ethN, но этих файлов у меня нет. А их синтаксис я не знаю.
Записан
andrystepa
Помогающий

ru
Offline Offline

« Ответ #17 : 07-07-2009 10:58 » 

Вот только одно не пойму - в файле /etc/sysconfig/network-scripts/ifcfg-eth0  у меня записано следующее:  
Код:
DEVICE=eth0
BOOTPROTO=static
IPADDR=217.69.165.230
NETMASK=255.255.255.128
NETWORK=217.69.165.129
BROADCAST=217.69.165.255
GATEWAY=85.21.165.129
ONBOOT=yes
METRIC=5
MII_NOT_SUPPORTED=no
USERCTL=yes
DNS1=192.168.83.23
DNS2=192.168.83.30
RESOLV_MODS=no
IPV6INIT=no
IPV6TO4INIT=no

а в файле  /etc/sysconfig/network-scripts/ifcfg-eth1  следующее:
Код:
DEVICE=eth1
BOOTPROTO=static
IPADDR=169.254.37.1
NETMASK=255.255.0.0
GATEWAY=169.254.0.1
ONBOOT=yes
METRIC=5
MII_NOT_SUPPORTED=no
USERCTL=yes
DNS1=192.168.83.30
DNS2=192.168.83.23
RESOLV_MODS=no
IPV6INIT=no
IPV6TO4INIT=no

Разве этих настроек недостаточно?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 07-07-2009 14:32 » 

andrystepa, убери GATEWAY=169.254.0.1

Пример минимализма.

/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=static
IPADDR=10.0.0.2
NETMASK=255.255.255.0
ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-eth1:
DEVICE=eth1
BOOTPROTO=static
IPADDR=10.1.0.1
NETMASK=255.255.255.0
ONBOOT=yes

/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=your-hoste-name
GATEWAY=10.0.0.1

Маршруты не сбиваются никогда.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
andrystepa
Помогающий

ru
Offline Offline

« Ответ #19 : 03-08-2009 05:51 » new

andrystepa, убери GATEWAY=169.254.0.1

Пример минимализма.

/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=static
IPADDR=10.0.0.2
NETMASK=255.255.255.0
ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-eth1:
DEVICE=eth1
BOOTPROTO=static
IPADDR=10.1.0.1
NETMASK=255.255.255.0
ONBOOT=yes

/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=your-hoste-name
GATEWAY=10.0.0.1

Маршруты не сбиваются никогда.

Попробовал:
Интерфейс смотрит в инет
/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=static
IPADDR=217.69.165.128
NETMASK=255.255.255.128
ONBOOT=yes

Интерфейс смотрит в локалку:
/etc/sysconfig/network-scripts/ifcfg-eth1:
DEVICE=eth1
BOOTPROTO=static
IPADDR=169.254.37.1
NETMASK=255.255.0.0
ONBOOT=yes

И теперь
/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=MyGw
GATEWAY=169.254.37.1

Сделал, перезагрузил. Результат такой:
Код:
netstat -rn
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         169.254.37.1    0.0.0.0         UG        0 0          0 eth1
То есть конечно маршрут в локалку правильный, а вот инет не увидит даже шлюз. Что-то тут напутано.
С теми настройками, которые у меня были - см. пост выше, после перезагрузки получается следующее:
Код:
netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
85.21.165.128   0.0.0.0         255.255.255.128 U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         85.21.165.129   0.0.0.0         UG        0 0          0 eth0

Откуда эти два кривых маршрута в локалку вылезли?! Черт побери!!
А вот то, что я предположил в первом посте, что сетевуха падает - скорее всего все не так. Руководство института, в котором мы базируемся, повелело в целях экономии отключать электричество на ночь. Вот и провайдерский роутер отключается. А мой шлюз нет - у него другая линия электропитания. Вот только почему при этом сбивается маршрут в локалку а не в инет - это вопрос.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines