Приветствую Вас Гость | RSS

Суббота, 04.05.2024, 17:04
Главная » 2012 » Март » 18 » Почему на нетбуке не работал интернет и что такое метрика.
21:28
Почему на нетбуке не работал интернет и что такое метрика.
Исходные данные: нетбук DNS 0128811 (на его месте может оказться любой другой) с ubuntu 11.10.
Вчера надо было с домашнего компьютера на бук скачать файлик размером 80 Гб. Оба подключены к инету через роутер: комп через ethernet, а бук через wi-fi. При таком раскладе загрузка файла могла растянуться на 8-10 часов, поэтому бук тоже подцепил через ethernet, после этого отключил wifi, через 2 часа файл уже был скачен. Бук всю ночь не выключался, инет работал. Сегодня думаю больше ethernet не нужен, включаю на буке обратно wifi, выдёргиваю ethernet и чувствую, что инет как-то не работает

pwd: ~
user: intell@intell-laptop
$ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3009ms

И даже роутер не пингуется, хотя wifi подключение работает

pwd: ~
user: intell@intell-laptop
$ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
From 192.168.1.28 icmp_seq=2 Destination Host Unreachable
From 192.168.1.28 icmp_seq=3 Destination Host Unreachable
^C
--- 192.168.1.1 ping statistics ---
6 packets transmitted, 0 received, +2 errors, 100% packet loss, time 5031ms
pipe 2

Смотрим настройки вайфая

pwd: ~
user: intell@intell-laptop
$ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:790567 errors:0 dropped:0 overruns:0 frame:0
TX packets:424210 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1152719016 (1.1 GB) TX bytes:40480933 (40.4 MB)

Соответственно 192.168.1.28 - не вайфай. На самом деле это адрес, который до этого был на интерфейсе eth0. Себя мы видим:

pwd: ~
user: intell@intell-laptop
$ping 192.168.1.3
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_req=1 ttl=64 time=0.146 ms
64 bytes from 192.168.1.3: icmp_req=2 ttl=64 time=0.071 ms
^C
--- 192.168.1.3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.071/0.108/0.146/0.038 ms

Посмотрим таблицу маршрутизации:

pwd: ~
user: intell@intell-laptop
$route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
link-local * 255.255.0.0 U 1000 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 2 0 0 wlan0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0

Короче причина оказалась здесь в колонке Metric. Для 192.168.1.0 у eth0 здесь 0, а у wlan0 - 2. У кого метрика меньше - через тот интерфейс трафик и пойдёт, вот как оказывается. Чтоб исправить положение, нужно, чтоб у eth0 метрика стала больше, чем у wlan0:

pwd: ~
user: intell@intell-laptop
$sudo route add -net 192.168.1.0 netmask 255.255.255.0 metric 100 dev eth0

Вот теперь таблица маршрутизации выглядит так:

pwd: ~
user: intell@intell-laptop
$route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
default * 0.0.0.0 U 1002 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 2 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 100 0 0 eth0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0

Теперь 2 < 100, вайфай победил, всё чудесно заработало.

pwd: ~
user: intell@intell-laptop
$ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=255 time=65.3 ms
64 bytes from 192.168.1.1: icmp_req=2 ttl=255 time=2.08 ms
64 bytes from 192.168.1.1: icmp_req=3 ttl=255 time=2.06 ms
64 bytes from 192.168.1.1: icmp_req=4 ttl=255 time=2.16 ms
64 bytes from 192.168.1.1: icmp_req=5 ttl=255 time=2.08 ms
^C
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 2.065/14.748/65.342/25.297 ms

pwd: ~
user: intell@intell-laptop
$ping www.ru
PING www.ru (194.87.0.50) 56(84) bytes of data.
64 bytes from www.ru (194.87.0.50): icmp_req=1 ttl=56 time=72.4 ms
64 bytes from www.ru (194.87.0.50): icmp_req=2 ttl=56 time=75.0 ms
64 bytes from www.ru (194.87.0.50): icmp_req=4 ttl=56 time=75.1 ms
64 bytes from www.ru (194.87.0.50): icmp_req=5 ttl=56 time=73.6 ms
64 bytes from www.ru (194.87.0.50): icmp_req=6 ttl=56 time=72.6 ms
^C64 bytes from www.ru (194.87.0.50): icmp_req=7 ttl=56 time=68.4 ms

--- www.ru ping statistics ---
7 packets transmitted, 6 received, 14% packet loss, time 6012ms
rtt min/avg/max/mdev = 68.491/72.907/75.115/2.232 ms

pwd: ~
user: intell@intell-laptop
$

Вот практически всё.
И на последок пара запоротых дублей как у Джеки Чана (вдруг у кого такие же ошибки вывалятся):

pwd: ~
user: intell@intell-laptop
$sudo route del -net 255.255.255.0 dev eth0
SIOCDELRT: Недопустимый аргумент

pwd: ~
user: intell@intell-laptop
$sudo route del 192.168.1.0 dev eth0
SIOCDELRT: Нет такого процесса

pwd: ~
user: intell@intell-laptop
$sudo route del link-local
SIOCDELRT: Недопустимый аргумент

pwd: ~
user: intell@intell-laptop
$sudo route del hw eth0
hw: Неизвестный хост

pwd: ~
user: intell@intell-laptop
$sudo dhclient
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd reload

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the reload(8) utility, e.g. reload smbd
RTNETLINK answers: File exists

pwd: ~
user: intell@intell-laptop
$sudo route add -net 192.168.1.0 dev eth0 metric 100
SIOCADDRT: Недопустимый аргумент

pwd: ~
user: intell@intell-laptop
$sudo route add -net 192.168.1.0 metric 100 dev eth0
SIOCADDRT: Недопустимый аргумент
Просмотров: 2198 | Добавил: intell | Теги: Metric, таблица маршрутизации, Route, метрика | Рейтинг: 0.0/0
Всего комментариев: 1
1 intell  
0
Если результат окажется таким:
$route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
link-local * 255.255.0.0 U 1000 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 2 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 100 0 0 eth0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0

(у eth0 метрика 100 и 0, а 0 < 2) и ничего не заработает, то делаем так:

$sudo ifconfig eth0 down

тогда станет вот так:

$route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
link-local * 255.255.0.0 U 1000 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 2 0 0 wlan0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0

и снова всё должно работать

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]