to post messages and comments.

← All posts tagged Linux

< Arseniy >
У меня линукс тоже работает. Правда чтобы войти в ждущий режим, приходится отключать зарядку, закрывать крышку и потом подключать зарядку обратно, как ещё это делать непонятно. Ну и так по мелочи.

Развитие systemd продолжает радовать!
В новом выпуске заметные улучшения в networkd: добавлена новая секция [RoutingPolicyRule] для задания правил маршрутизации; добавлены опция Table в секции [VRF] для выбора используемой таблицы маршрутизации.
opennet.ru

Ха, я не так давно про idpr спрашивал, мол, у меня какие-то IDPR-пакеты вылезли, версия протокола 0x23.
Всё совсем не так, оказалось, что это обычные ARP-запросы. Просто там заголовок так как-то обрезан, что их и не узнать.

Пытаясь разобраться, почему у меня пакеты пропадают, наткнулся на такой вот текст:
Monitoring and Tuning the Linux Networking Stack: Sending Data
blog.packagecloud.io

Поначалу всё более-менее понятно, но когда дошёл до Linux netdevice subsystem и Queuing disciplines, голова начала пухнуть.
В любом случае, надо будет посмотреть статистику с помощью tc.

А откуда вылезли пакеты Inter-Domain Policy Routing Protocol, мне так и не ясно.

Чтобы напечатать новый документ, требуется очистить очередь печати. Почему-то это можно сделать только через 127.0.0.1:631. Там CUPS требует ввести пароль рута. Но у меня НЕТ пароля у Рута! Поэтому очередь печати я очистить не могу: просто так нажать "Enter" — не помогает. Что делать? Создавать для Рута пароль я не хочу. Ну, точнее, у меня пустая строка, чтобы программы не могли без моего согласия заходить под Рут; мне кажется, совсем убирать у Рута пароль небезопасно.

Добавил в цепочку FORWARD в таблицу filter правило, чтобы подсчитывать пакеты, которые через него проходят. Там я вижу, что прошла, например, тысяча пакетов, столько, я и отправил.
Но вот разработчик сетевого драйвера, того устройства, с которого эти пакеты уходят, говорит, что к нему приходит пакетов уже меньше.

Получается, что теряются они где-то в недрах Linux'а, а где и почему — не понятно.

Может ли Linux терять проходящие через него сетевые пакеты и не отображать их в /proc/net/dev в столбце drop?
Ели в drop нули, значит ли это, что Linux, работающий как маршрутризатор, отправил каждый полученный пакет куда надо?

Настройка сети в Linux остаётся для меня тёмным лесом. :-(
Да, многое есть в systemd-networkd. Но многого там и нет! Вплоть до того, что сейчас я что-то поднимаю руками, благо компьютер перезагружается довольно редко.
dhcp, таблицы маршрутизации, правила в iptables, правила в ip rule — как же связать всё это вместе? не говноскрипт же писать на bash'е?

Примерно так действовала одна из собеседниц «Медузы» — жительница Благовещенска Тамара (имя и город изменены по просьбе героини). Пять лет назад ей ампутировали левую ногу. 35-летняя женщина, работающая парикмахером, шла к этой операции два десятилетия: сначала самостоятельно удаляла себе фаланги пальцев, потом получила небольшую травму, внесла в рану инфекцию и добилась ампутации по медицинским показаниям. Как она вспоминает сейчас, после операции она испытала «облегчение» и «нашла себя». Сейчас она продолжает работать по профессии из дома, воспитывает двенадцатилетнюю дочь (после ампутации от Тамары ушел муж) — и говорит, что уже привыкла к костылям, передвигаться на которых ей «очень удобно».

$ head /var/log/pacman.log
[07/31/07 22:26] synchronizing package lists
[07/31/07 22:27] warning: no /var/cache/pacman/pkg cache exists. creating...
[07/31/07 22:29] installed fakeroot (1.7.1-2)
[07/31/07 22:29] installed libarchive (2.2.5-1)
[07/31/07 22:29] installed libdownload (1.1-1)
[07/31/07 22:29] upgraded pacman (2.9.8-4 -> 3.0.5-2)
[2007-07-31 22:33] starting full system upgrade
[2007-07-31 22:52] synchronizing package lists
[2007-07-31 22:52] installed ddcxinfo-arch (0.8-1)
[2007-07-31 22:52] Run 'hwd -u' to update pci, usb, and pcmcia tables.

Я точно не помню, но похоже, сегодня десять лет, как у меня на десктопе работает Arch Linux!
Всё стабильно, без переустановки, без смс.
Спрашивайте свои ответы.

Разобрался, почему пакеты не приходили!
Нужно было написать -A INPUT -i lo -j ACCEPT
у меня было написано -s 127.0.0.1, но это же не одно и то же! потому что у этих пакетов -s как раз другой, у них -d 127.0.0.1.

В настройках systemd к одному из интерфейсов у меня написано:
[Network]
DHCP=yes
IPForward=ipv4
IPMasquerade=yes

и в таблице nat появляется строчка:
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all — 192.168.0.0/24 0.0.0.0/0

Если эту таблицу сбросить, то подмена адреса прекращается. Но вот что удивительно, адрес-то меняется не на 192.168.0.16, а на адрес другого интерфейса… Хотя, там же в этом дополнительном правиле и не говорится ничего про интерфейс (почему?).

Я прописал правило:
$ iptables -t nat -A OUTPUT -p udp --dport 555 -j REDIRECT --to-ports 5555
Даю команду
$ nc -u ya.ru 556
Это другой порт, он никуда не перенаправляется, поэтому я вижу в tcpdump вполне ожидаемые пакеты:
192.168.0.16.48741 > 87.250.250.242.556
Теперь я пробую
$ nc -u ya.ru 555
и с помощью tcpdump я вижу, что пакеты теперь почему-то имеют другой src-адрес! Не 192.168.0.16, а другого сетевого интерфейса, не буду его палить!
Кроме того, я запускаю
$ nc -l -u localhost 5555
и этих пакетов не вижу! Они почему-то не доходят… Где же они теряются?

На ноутбуке почему-то работает.

Я у мамы админ локалхоста, и я что-то не очень понимаю, как работает -j REDIRECT.
Напердолил тестовую программки, запускаю на ноутбуке — всё работает. Пакеты перенаправляются, куда надо.

Но я смотрю на них в tcpdump, а там:
192.168.13.138.34288 > 127.0.0.1.5555: UDP

меня это смущает :)

Сейчас буду разбираться, почему на десктопе не работает :)