LINUX.ORG.RU
ФорумAdmin

Debian 12. В гуе у enp2s0 запрещен дефолтроутинг, после перезагрузки он заворачивается туда. Где копать?

 , ,


0

2

У меня немного жуткая конфигурация. Есть enp2s0, и в локальной сети есть роутер, но 64кбит.
Когда приезжаю, активирую точку доступа на мобильнике и цепляюсь к нему через WiFi. Так и работаю, но получается два дефолтроутинга.
В гуе, зашел в «параметры соединений» и прописал явно на этот интерфейс только роутинг для локальной стети. «Передёрнул» (off/on) - Интерфейс поднялся как надо, и месяц работал. Но сегодня потребовалась перезагрузка. После перезагрузки - опять два дефолтроутинга. Если в гуе отключить enp2s0, а потом снова включить - то уже всё путём - остаётся лишь один маршрут. Но вот после перезагрузки - будет снова два и опять передёргивать...
Куда копать, чтобы этого избежать?
(Ну нет пока у меня нормального интернета в этой локации, а тут ещё ВТБ подкинул на халяву бесплатную связь до конца года, и вести интернет и за него платить - будет расточительно, когда и так десятки гигабайт пропадают.)
В /etc/network/interfaces - прописан лишь lo

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

В каком GUI? Где вывод ip route с проблемой и без?

Сорри, это и планировал написать но мысли «ускакали».


# ip route
default via 10.10.10.254 dev enp2s0
default via 192.168.177.164 dev wlp1s0 proto dhcp src 192.168.177.214 metric 600
10.10.10.0/24 dev enp2s0 proto kernel scope link src 10.10.10.100 metric 100
10.10.10.254 dev enp2s0 scope link


После «передёргивания»

ip route
default via 192.168.177.164 dev wlp1s0 proto dhcp src 192.168.177.214 metric 600
10.10.10.0/24 dev enp2s0 proto kernel scope link src 10.10.10.100 metric 100

Но где то косяк

# ping ya.ru
ping: connect: Сеть недоступна

Передергиване WiFi - решило ситуацию.
В общем то ip route сейчас:

# ip route
default via 10.10.10.254 dev wlp1s0 proto dhcp src 10.10.10.219 metric 600
10.10.10.0/24 dev wlp1s0 proto kernel scope link src 10.10.10.219
10.10.10.0/24 dev enp2s0 proto kernel scope link src 10.10.10.100 metric 100

Где вывод nmcli connection show ...?

В какой момент? Могу только сейчас, когда всё уже работает:


# nmcli connection show
NAME UUID TYPE DEVICE
0F-MR3020-4G 7f02653a-521c-4da5-90b7-375fde8d76fa wifi wlp1s0
enp2s0 cebb12fc-39bd-4b28-af24-39fa7c587899 ethernet enp2s0
lo a5c91e61-2299-4d10-a552-f0f3cadbdcbe loopback lo
0F-4G 2c7653d7-e289-4ec2-ba38-d62b93cf5cd2 wifi  —
0F-IS6P 2f0ab439-555e-4238-9a95-c0f1484c89e7 wifi  —
Infinix SMART 6 PLUS d061d262-4b94-4f3f-9d90-aed273d01cf8 wifi  —
MR3020-4G 109cff9b-4aba-4554-8296-48d6876c5d84 wifi  —

Хм, WiFi сети в списке какие? Которые видны или для которых есть пароли?
А то вижу только мои сети - причём «Infinix SMART 6 PLUS» и «0F-IS6P» это мой смартфон. Первое это дефолтное название сети, я переименовал в «0F-IS6P». Старое - это из настроек сохраненное? Или оно видно в эфире?

Зато про какой-то ВТБ написано.

Это обоснование такой конфигурации, иначе всё просто рулилось бы через один роутер.

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

Бесплатный сыр бывает только в мышеловке. Хочешь хорошо жить – не связывайся с банками.

Ну давай не будем? Это оффтопик и плата может быть просто тем что я останусь их клиентом, хотя МТС меня заипал, давно хотел сменить этих уродов на что то ещё и посмотреть на их уродливость.

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

В какой момент?

Ну хотя бы когда работает. Только двоеточие в вопросе было не для красоты, туда надо подставить идентификатор проблемного соединения (у которого не должно быть маршрута по умолчанию). И покажи файл этого соединения из /etc/NetworkManager/system-connections (не забудь зацензурить пароли). Вероятнее всего, это баг, но вдруг в конфигурации что-то подозрительное окажется.

anonymous
()
Ответ на: комментарий от imul

Так тебе что проводной интерфейс передёргивать, что вайфай, судя по твоим сообщениям.

Я хочу чтобы после перезагрузки - оно само работало, без передергиваний.

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

В какой момент?

Ну хотя бы когда работает. Только двоеточие в вопросе было не для красоты, туда надо подставить идентификатор проблемного соединения (у которого не должно быть маршрута по умолчанию). И покажи файл этого соединения из /etc/NetworkManager/system-connections (не забудь зацензурить пароли).

Спасибо за этот файл, не представлял где у NM конфиги, думал это что то типа виндового реестра.

Вероятнее всего, это баг, но вдруг в конфигурации что-то подозрительное окажется.

Вопрос как раз в проводном соединении. Почему после перезагрузки - дефолтроут туда смотрит? Он и на WiFi тоже смотрит - в итоге ничего не работает. Хотя казалось бы в конфиге: ignore-auto-routes=true и never-default=true

Wired connection 1: (А можно его тупо переименовать в eth0?)


\[connection\]
id=enp2s0
uuid=cebb12fc-39bd-4b28-af24-39fa7c587899
type=ethernet
interface-name=enp2s0
timestamp=1748879167

\[ethernet\]
mac-address=00:E0:4C:2E:FA:52

\[ipv4\]
address1=10.10.10.100/24
ignore-auto-routes=true
method=manual
never-default=true

\[ipv6\]
addr-gen-mode=stable-privacy
ip6-privacy=2
method=auto

\[proxy\]

Пока после перезагрузки передёргиваю и проводной чтобы дефолтроутинг убрать, и WiFi чтобы на него перезадать. После убирания роутинга передергиванием проводного - отваливается и WiFi (Но посмотреть и задокументировать детали забыл, а сейчас не хочу ещё раз перезагружаться.)

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

хотя МТС меня заипал, давно хотел сменить этих уродов на что то ещё и посмотреть на их уродливость.

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

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

Да научись ты уже в Markdown

Спасибо, будем надеяться что вспомню...
Такой разметкой я ещё не пользовался. Максимум меня хватало на \[pre\]
Пока посмотрел, но увы, память.

Икстати... А если я в комментарии хочу **markdown** - а оно не работает. Какой смысл учиться тому что хочет - работает, а хочет - нет.
Вот стабильное lorcode - работает стабильнее.

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

В свойствах соединения. У тебя:

[connection]
id=enp2s0
uuid=cebb12fc-39bd-4b28-af24-39fa7c587899
type=ethernet
interface-name=enp2s0
...

С отключенным:

[connection]
...
autoconnect=false
...

У тебя в свойствах соединения указан конкретный MAC-адрес. Значит с другим работать не будет. Аналогично для WIFI-соединения, если указан BSSID.

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

Не надо ковырять конфиги NetworkManager, просто используй nmcli. Например, nmcli c покажет список профилей (активные – зелёненькие). nmcli c show enp2s0 покажет свойства конкретного профиля. nmcli c edit enp2s0 даст интерактивный редактор свойств профиля. Либо просто пользуйся GUI (nm-applet и nm-connection-editor).

По теме: проводной профиль и беспроводной профиль оба должны давать дефолтный маршрут (свойство ipv4.never-default = no). Но у беспроводного профиля метрика должна быть ниже. Тогда при отсутствии беспроводного соединения в таблице маршрутизации будет один дефолтный маршрут (от проводного соединения), а после поднятия беспроводного соединения – два дефолтных маршрута с разными метриками. Ядро при прочих равных выбирает маршрут с наименьшей метрикой, т.е. это будет дефолтный маршрут беспроводного соединения.

nmcli c modify enp2s0 connection.autoconnect=yes
nmcli c modify enp2s0 ipv4.never-default=no
nmcli c modify enp2s0 ipv4.route-metric=600

nmcli c modify 0F-IS6P connection.autoconnect=yes
nmcli c modify 0F-IS6P ipv4.never-default=no
nmcli c modify 0F-IS6P ipv4.route-metric=100
iliyap ★★★★★
()
Ответ на: комментарий от andytux

У тебя в свойствах соединения указан конкретный MAC-адрес. Значит с другим работать не будет. Аналогично для WIFI-соединения, если указан BSSID.

Стоп! Зачем отключать автоконнект если мне нужен локальный интерфейс? Я с этой машины самбу раздаю. Мне надо чтобы интерфейсм поднялся, но без дефолтроутинга, на него должно идти лишь 10.10.10.0/24

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

Не надо ковырять конфиги NetworkManager, просто используй nmcli. Например, nmcli c покажет список профилей (активные – зелёненькие). nmcli c show enp2s0 покажет свойства конкретного профиля. nmcli c edit enp2s0 даст интерактивный редактор свойств профиля. Либо просто пользуйся GUI (nm-applet и nm-connection-editor).

Спасибо! Всё по делу! Но, до конца недели я в другом городе.
Приеду и применю. С метрикой точно, и как я сам ступил? Когда два интерфейса поднимаются - всё встаёт раком, а надо было всего лишь метрики разрулить.

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

Илья, у меня ВЗРЫВ МОЗГА :(
Спасибо за заклинания, я их применил:

nmcli c modify enp2s0 connection.autoconnect yes
nmcli c modify enp2s0 ipv4.never-default no
nmcli c modify enp2s0 ipv4.route-metric 600

nmcli c modify 0F-IS6P connection.autoconnect yes
nmcli c modify 0F-IS6P ipv4.never-default no
nmcli c modify 0F-IS6P ipv4.route-metric 100

Убрав «=»
Ни чего не получилось. Я уже не первый час с этим мучаюсь, делая контрольные перезагрузки - потому что не знаю как поставить сеть в положение «после перезагрузки»
sudo service networking restart и sudo systemctl restart NetworkManager не помогают.

После тьмы команд и кликов, я имею следующую позицию после загрузки и логине в MATE:
$ ip route
default via 10.10.10.254 dev enp2s0 
10.10.10.0/24 dev enp2s0 proto kernel scope link src 10.10.10.100 metric 600 
10.10.10.254 dev enp2s0 scope link 
192.168.63.0/24 dev wlp1s0 proto kernel scope link src 192.168.63.214 
192.168.63.0/24 dev wlp1s0 proto kernel scope link src 192.168.63.214 metric 100 
192.168.63.48 dev wlp1s0 scope link 

Почему то вообще пропал второй default, остался только enp2s0 хотя в настройках интерфейса стоит галочка: «Игнорировать маршруты полученные автоматически»
Делаю: $sudo systemctl restart NetworkManager
$ ip route
default via 10.10.10.254 dev enp2s0 
default via 192.168.63.48 dev wlp1s0 proto dhcp src 192.168.63.214 metric 100 
10.10.10.0/24 dev enp2s0 proto kernel scope link src 10.10.10.100 metric 600 
10.10.10.254 dev enp2s0 scope link 
192.168.63.0/24 dev wlp1s0 proto kernel scope link src 192.168.63.214 metric 100

ПОЧЕМУ??? ПОЧЕМУ после старта одна позиция, а после рестарта другая?
Но хотя бы появился второй дефолтроут. Теперь можно тупо, в трее выключить/включить enp2s0 и сеть втанет в нужную позицию:
$ ip route
default via 192.168.63.48 dev wlp1s0 proto dhcp src 192.168.63.214 metric 100 
10.10.10.0/24 dev enp2s0 proto kernel scope link src 10.10.10.100 metric 600 
192.168.63.0/24 dev wlp1s0 proto kernel scope link src 192.168.63.214 metric 100

Какие ещё будут рекомендации, чтобы добиться этого без ручного передёргивания? Как добиться отсутствия defaultroute на enp2s0?
И опять же он встаёт без метрики 600 и забирает всё на себя. После рестарта Network Manager - тоже метрика не изменяется и Ваш лайфхак не проходит. Метрика появляется лишь для маршрута 10.10.10.0/24 а вот как раз ему нужна минимальная, потому что он локальный.

P.S. И какие будут предположения, как вернуть второй defaultroute без передёргивания Network Manager? Теперь после перезагрузки надо сначала передёрнуть Network Manager, а птотом только enp2s0.

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

Вообще NetworkManager работает детерминированно, если профили разумны, не содержат дублей с разными настройками.

Ты после загрузки системы сделай nmcli c show --active, после рестарта NetworkManager тоже, сравни результаты, один и тот же набор активных профилей?

Можно ещё сюда показать полный список профилей nmcli c show и Настройки каждого профиля nmcli c show UUID.

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

Кстати, попробуй ещё отключить дефолтный dhcp. По дефолту, Network manager когда видит новый интрефейс, не может устоять :)

/etc/NetworkManager/NetworkManager.conf

[main]
no-auto-default=*

а так будет запускать только то, что ты явно настроил

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

Кстати, попробуй ещё отключить дефолтный dhcp. По дефолту, Network manager когда видит новый интрефейс, не может устоять :)

Не, ну его... Я лучше, после перезагрузки «передёрну» 2 интерфейса.

/etc/NetworkManager/NetworkManager.conf
[main]
no-auto-default=*

Спасибо за хинт, может когда то применю.

а так будет запускать только то, что ты явно настроил

Это всё таки мой десктоп, пусть PNP работает.

Сейчас ещё поперезагружаюсь, поисполняю то что насоветовали и кстати попробую залогиниться консолью и посмотреть что там, до логина в гуй.

Бесит то что почему то оно так не встаёт как после передёргивания? Сразу же уже есть конфиги и в конфигах то что сконфигурено.

Откуда этот дефолтроут на enp2s0 берется? Он же как и положено - пропадает после выкл/вкл интерфейса.

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

Ты после загрузки системы сделай nmcli c show --active, после рестарта NetworkManager тоже, сравни результаты, один и тот же набор активных профилей?

Спасибо за заклинания, их исполнять надо от юзера, рута или sudo?

n0mad ★★★
() автор топика

головойапземлюнеубился... Теперь мучаюсь :(
Это трэш какой то, моей голове оно никак не даётся...
Подумалось - а дай ка я настрою enp2s0 в /etc/network/interfaces

auto enp2s0
iface enp2s0 inet static
address 10.10.10.100
netmask 255.255.255.0
#nodefaultroute
#DEFROUTE no
#DEFROUTE=no

Естественно интерфейс выпадает из nm (nmcli c show --active не показывает)
Но! Задолбал этот дефолтроутинг!
Меня до истерики это довело.
Я не понимаю почему изменяю конфиг и
#service networking restart или
#/etc/init.d/networking restart могут или показывать ошибки или молча запускаться. Пробовал все варианты отмены DEFAULTROUTE какие нагуглил. Началось с того что вспомнил что когда то использовал nodefaultroute, по этому слову и начал гуглить.
Но меняю конфиги, рестартую сеть и ошибка может быть, а может и не быть - при одной и той же строчке.
Я уже перепробовал все варианты рестартов networking и NetworkManager.

Вернулся к тому что убрал описание интерфейса из /etc/network/intefaces и после ребута, зашел в текстовую консоль и исполнил nmcli con down enp2s0;nmcli con up enp2s0
Сеть встала как надо...
Вот и думаю - засунуть это куда нибудь в /etc/rc.local или в
Система->параметры->Персональные:Запускаемые приложения?
В общем сделал: /etc/init.d/local
#!/bin/sh -e
nmcli con down enp2s0
nmcli con up enp2s0

и
sudo update-rc.d local defaults

Но есть подозрение что это механизм в Debian 12 уже не работает...
Сейчас, допишу это письмо и перезагружусь.

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

Но есть подозрение что это механизм в Debian 12 уже не работает...

Видимо не работает. В итоге получилось мало маслянное через жопу...

/etc/init.d/local:

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          restart ethernet
# Required-Start:    mountkernfs $local_fs urandom
# Required-Stop:     $local_fs
# Default-Start:     S
# Default-Stop:      0 6
# Short-Description: Restart Ethernet.
# Description:       Restart enp2s0 и 0F-IS6P
### END INIT INFO
nmcli con down enp2s0
nmcli con up enp2s0
nmcli con up 0F-IS6P


sudo update-rc.d local defaults


Не заработало, тогда я пошел в (MATE)
Система->Параметры-Персональные->Запускаемые приложения
И сделал пункт с именем:Передёрнуть и командой: /etc/init.d/local

ВСЁ! РАБОТАЕТ! И ХЕР С НИМ ЧТО КРИВО!
Но работает только после логина моим пользователем.

Может кто знает ШТАТНЫЙ метод запуска команды ПОСЛЕ инициализации системы (Появления GDM логина, естественно там и NM должен уже отработать) в крайних Debian?

Создавать Сервис: «Передёрнуть»?

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

Wired connection 1: (А можно его тупо переименовать в eth0?)

Wiki Arch Linux говорит, что да, можно. И вообще, иметь две управлялки сетью одновременно – плохая идея. В Arch нет никаких /etc/network/interfaces, это нужно читать документацию Debian. Выбери какой-то один способ управления сетью и используй только его. И да, NetworkManager на сервере – не самая подходящая софтина.

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

Хватит передёргивать. Специально поставил debian12 в виртуалку и пробросил в неё usb wifi адаптер. К минимальному дебиану поставил пакеты network-manager и wpasupplicant. В /etc/network/interfaces после установки удалил все кроме lo. В NetworkManager-е сделал два профиля: Wired для проводного подключения (с автоконнектом и метрикой 600) и Wireless для беспроводного подключения (без автоконнекта, хотя это не важно, и с метрикой 100).

Вот система после перезагрузки, есть только маршруты с метрикой 600:

root@deb12:~# nmcli c
NAME      UUID                                  TYPE      DEVICE 
Wired     53688435-b8ea-31ab-aca9-b1762a3f5b15  ethernet  enp1s0 
lo        d585c6d1-24de-4aa7-99b7-54f728b8f4e9  loopback  lo     
Wireless  cf93d35e-cb42-45b7-bfff-15826d4dc20e  wifi      --     

root@deb12:~# ip ro
default via 192.168.122.1 dev enp1s0 proto dhcp src 192.168.122.25 metric 600 
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.25 metric 600 

Поднимаю беспровод, добавляются маршруты с метрикой 100:

root@deb12:~# nmcli c up Wireless
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

root@deb12:~# ip ro 
default via 172.20.10.1 dev wlxd8eb971508d3 proto dhcp src 172.20.10.9 metric 100 
default via 192.168.122.1 dev enp1s0 proto dhcp src 192.168.122.25 metric 600 
172.20.10.0/28 dev wlxd8eb971508d3 proto kernel scope link src 172.20.10.9 metric 100 
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.25 metric 600 

Проверяю, что маршрут в интернет идёт через беспровод:

root@deb12:~# ip ro get 8.8.8.8
8.8.8.8 via 172.20.10.1 dev wlxd8eb971508d3 src 172.20.10.9 uid 0 
    cache 

Опускаю беспровод, и проверяю, что маршрут в интернет идёт через провод:

root@deb12:~# nmcli c down Wireless
Connection 'Wireless' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

root@deb12:~# ip ro get 8.8.8.8
8.8.8.8 via 192.168.122.1 dev enp1s0 src 192.168.122.25 uid 0 
    cache 

Вот конфигурация профилей:

root@deb12:~# nmcli c show Wired
connection.id:                          Wired
connection.type:                        802-3-ethernet
connection.interface-name:              enp1s0
connection.autoconnect:                 yes
ipv4.method:                            auto
ipv4.route-metric:                      600
ipv4.ignore-auto-routes:                no
ipv4.never-default:                     no

root@deb12:~# nmcli c show Wireless
connection.id:                          Wireless
connection.type:                        802-11-wireless
connection.interface-name:              --
connection.autoconnect:                 no
ipv4.method:                            auto
ipv4.route-metric:                      100
ipv4.ignore-auto-routes:                no
ipv4.never-default:                     no
iliyap ★★★★★
()
Ответ на: комментарий от yars068

И да, NetworkManager на сервере – не самая подходящая софтина.

Ну этот сервер, это мой десктоп, и дома в моё отсутствие - никому сервер не нужен...

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

Хватит передёргивать.

Спасибо за пинок! :)
Откатил все настройки на голимый DHCP, но метрики оставил.
По дефолту - дефолтроут идёт через enp2s0 с метрикой 600.
Когда прихожу со смартом и поднимаю «точку» - случаетя автоконнект и появляется дефолтроут с метрикой 100 - через него всё и заворачивается. Ухожу - опять переключается на enp2s0 со скоростью 64кБит.

$ ip ro
default via 192.168.171.60 dev wlp1s0 proto dhcp src 192.168.171.214 metric 100 
default via 10.10.10.254 dev enp2s0 proto dhcp src 10.10.10.100 metric 600 
10.10.10.0/24 dev enp2s0 proto kernel scope link src 10.10.10.100 metric 600 
192.168.171.0/24 dev wlp1s0 proto kernel scope link src 192.168.171.214 
192.168.171.0/24 dev wlp1s0 proto kernel scope link src 192.168.171.214 metric 100 
192.168.171.60 dev wlp1s0 scope link 

n0mad ★★★
() автор топика