LINUX.ORG.RU

Не работает интернет, но есть соединение по локальной сети

 ,


0

1

Всем доброго дня! Не пинайте сильно, в линуксе я полный новичек, но добросовестно весь вечер гуглил свою проблему и ничего не нагуглил :-( Суть проблемы такова: в линуксе настраиваю сетевое соединение (что вручную, что DHCP - все одна беда). Пробую пинговать компьютеры в локальной сети и внутрений интерфейс роутера - все отлично пингуется. Но интернета нет. Пробую «ping http://www.google.com", он находит IP гугла по имени (т.е. проблема не в DNS), но пинг не проходит. Сразу после попытки пингануть гугл смотрю лог на роутере - там появляется строчка вида „Dropped packet from 0.0.0.0 to X.X.X.X (IP protocol 1) as unable to create new session“, где X.X.X.X - IP гугла. С виндовыми клиентами (что по проводу, что по WiFi), и с андроидами подобных проблем с роутером не было. Роутер перегружать пробовал. Эта же проблема с различными сборками линукса, и как с виртуальными машинами, так и с живыми компьютерами.

Ответ на: комментарий от rumgot

Ничего страшного, я не обижен — сам виноват, ляпнул чушь, не подумав.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Thunderbom

Не должно ли там быть scope global?

Формально к IPv4 это не относится, вроде как. Хотя у меня для приватных IP, действительно, global пишется.

И если должно, то как поменять link на global?

А как ты этого добился ? Вот так и меняй. :-) Команда ip addr add 169.254.185.92/24 dev eth1 у меня добавляет IP в таком виде:

inet 169.254.185.92/24 scope global eth1
ip r, кстати, что показывает ? И что показывает tcpdump ? В каком виде формируются и пытаются (если пытаются) улететь пакеты в Интернет ?

AS ★★★★★
()
Ответ на: комментарий от AS

Я, всё же, думаю, что у него тупо нет коннекта на рутер.

Причина разная: сетевой кабель, косяк в рутере, кривая сетевуха, кривые дрова.

Он же так и не написал, что у него за сетевуха, какие сообщения ведро пишет и т. д.

Сидим тут, гадаем на кофейной гуще. Телепаты ещё, как назло, в отпуск уехали всей толпой.

Что касается сети 169.254.0.0/16: она назначается, если DHCP сервер не был обнаружен! В маздае, кстати, тоже так делается.

Сделай в любой центоси:

[root@api ~]# cat /etc/centos-release

CentOS Linux release 7.3.1611 (Core)

[root@api ~]# route -n | grep 169.254

169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1

Видишь, роутинг туда прописан, чтобы DHCP могло подхватить? :) На интерфейсах eth0 eth1 IP-адреса из 192.168.0.0/16

slamd64 ★★★★★
()
Последнее исправление: slamd64 (всего исправлений: 1)
Ответ на: комментарий от slamd64

чтобы DHCP могло подхватить

Точнее, наверное, надо переформулировать: чтобы могло общаться с хостами, которые НЕ обнаружили DHCP.

slamd64 ★★★★★
()
Ответ на: комментарий от slamd64

На интерфейсах eth0 eth1 IP-адреса из 192.168.0.0/16

Бардак это какой-то в случае IPv4, когда адреса из одинаковой сети на разных интерфейсах...

А так да, может и не dhcp вовсе это раздаёт. Хотя я, честно говоря, эту автомаГическую выдачу вообще не сильно люблю. :-)

AS ★★★★★
()
Ответ на: комментарий от AS

Бардак это какой-то в случае IPv4, когда адреса из одинаковой сети на разных интерфейсах

????

192.168.40.9/24 на eth0

192.168.3.19/24 на eth1

Ну и оба интерфейса, соответственно, из 192.168.0.0/16 :)

slamd64 ★★★★★
()
Ответ на: комментарий от slamd64

Ну и оба интерфейса, соответственно, из 192.168.0.0/16 :)

Нет. Они из more specific. :-) Но если будет 192.168.40.9/24 на eth0 и 192.168.3.19/16 на eth1, то тоже будет бардак.

AS ★★★★★
()
Ответ на: комментарий от AS

Кабы я знал, как этого добился :-)) И в этом ли дело на самом деле... ip r показывает:

default via 169.254.185.200 dev eth0
default via 169.254.185.200 dev eth0  proto static  metric 100
169.254.0.0/16 dev eth0  scope link  metric 1000
169.254.185.0/24 dev eth0  proto kernel  scope link  src 169.254.185.92  metric             100
tcpdump - Нету такой команды.

Thunderbom
() автор топика
Ответ на: комментарий от slamd64

Коннект на рутер есть, т.к. по внутренней сети связь со всеми устройствами есть и я без проблем удаленно захожу в терминал. Внутренний интерфейс роутера пингуется. DNS тоже работает судя по тому, что так бурно осуждаемый «ping google.com» подставляет IP-шник гугля, но пинг не проходит (а должен). Повторюсь, что инет до этого работал, он отвалился после установки драйверов WiFi-свистка, но связь по локальной сети осталась (т.е. опять же сетевуха как таковая работает).

Сделал route -n | grep 169.254:

~$ route -n | grep 169.254
0.0.0.0         169.254.185.200 0.0.0.0         UG    0      0        0 eth0
0.0.0.0         169.254.185.200 0.0.0.0         UG    100    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
169.254.185.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0
Вот тут меня смущает 0.0.0.0. Это нормально? Если нет, то как их поменять? Ибо повторюсь, что глядя в логи роутера в момент попытки выхода в инет (пингануть тот же гугль) я вижу строчки:
Dropped packet from 0.0.0.0 to 209.85.233.103 (IP protocol 1) as unable to create new session
где 209.85.233.103 - IP гугля. Пакеты дропаются, судя по всему, как раз из-за странного 0.0.0.0.

Адреса 169.254.185.xxx получаются устройствами ни в каком не в аварийном режиме - так настроен мой DHCP и такова моя локальная сеть. Пробовал и статический адрес давать устройству (без всяких DHCP) - та же ерунда. По моему глубокому убеждению максимум проблем, которые я могу получить используя за NATом локальную сеть 169.254.185.0/24 - это не получить доступа к одному из дальнейших маршрутизаторов или сайтов из той же подсети, не более того.

Thunderbom
() автор топика

Вобщзем с трудом нарыл на просторах инета про scope link и как его поменять на global, нашел такой код:

# ip addr
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:d1:09:56 brd ff:ff:ff:ff:ff:ff
    inet 169.254.55.3/16 brd 169.254.255.255 scope link dynamic ens33
       valid_lft 1596sec preferred_lft 1596sec
# ip addr del 169.254.55.3/16 dev ens33
# ip addr add 169.254.55.3/16 dev ens33 scope global
# ip addr
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:d1:09:56 brd ff:ff:ff:ff:ff:ff
    inet 169.254.55.3/16 scope global ens33
       valid_lft forever preferred_lft forever
# ip route add default via 169.254.0.34 dev ens33
# ip route
    default via 169.254.0.34 dev ens33 
    169.254.0.0/16 dev ens33  proto kernel  scope link  src 169.254.55.3 
Источник: https://superuser.com/questions/1069956/all-outgoing-tcp-packets-have-source-...

естественно меняя IP адрес на свой. После выполнения команд scope поменялся на global и интернет заработал без проблем. Я так понял, что linux шибко умный и сам за меня решает, что если я взял «запретные» 169.254, даже если их роутер выдал по DHCP, то в интернет мне ходить не судьба...

Проблема теперь в том, что после перезагрузки машины scope опять меняется на Link и повторяй все сначала. Может кто посоветует, как сконфигурить Linux, чтобы scope оставался global после перезагрузки? Менять подсеть с 169.254 на что-то другое прошу не предлагать, этому существуют определенные препятствия.

Thunderbom
() автор топика
Ответ на: комментарий от Thunderbom

Может кто посоветует, как сконфигурить Linux, чтобы
scope оставался global после перезагрузки?

Когда настраивается без dhcp, то точно получается global. Я же приводил пример. Как с dhcp - не знаю.

AS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.