LINUX.ORG.RU
решено ФорумAdmin

arch linux: персистентные сетевые настройки

 , , ,


0

1

Всех приветствую. Кстати, арч - говно!

А теперь к делу. Вот есть у меня некая виртуалочка со свежим арчем, где все сетевое управление якобы через systemd (256 версии если что). Вот я там настроил сетевые интерфейсы, маршрутизацию, iptables. Это виртуалочка часть большого стенда, отвечает за роутинг в интернеты остальной части.

Для этого там настроен:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Внимание вопрос, куда все это прописать, чтобы после перезагрузки все взлетело так как было настроено?

cat /etc/systemd/network/20-lan.network
[Match]
Name=*

[Network]
IPv4Forwarding=yes

не помогает.

сохранение правил в /etc/iptables/iptables.rules

тоже не помогает.

★★★★★

все сетевое управление якобы через systemd
настроил сетевые интерфейсы ... чтобы после перезагрузки все взлетело так как было настроено?

Сервисы systemd-networkd и iptables.service включены и активны? Выполненные настройки сохранены и находятся в соответствующих файлах?

sudo systemctl enable systemd-networkd

sudo systemctl enable iptables.service

iptables-save -f /etc/iptables/iptables.rules

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

sysctl -p

systemctl reboot
posixbit ★★
()
Последнее исправление: posixbit (всего исправлений: 7)

куда все это прописать

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

арч - говно

не помогает

тоже не помогает

возвращайся на винду и не морочь голову

flant ★★★★
()

Всякие echo и настройки файрволла я /etc/rc.local прописываю. Штатными обёртками над iptables которые изображают из него «службу» и что-то где-то сами сохраняют - никогда не пользовался, по-моему это ерунда какая-то.

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

Почему именно в /etc/sysctl.conf ?

systemd-networkd работает.

Но настройку ip_forward из /etc/systemd/network/ не подхватывает. При этом настройки по сетевым интерфейсам подхватывает нормально.

iptables.service выключен. Потом попробую включить.

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

«echo» чтобы показать смысл манипуляции. Понятно, что я хочу использовать штатные предусмотренные дистром способы сохранения настроек.

rc.local я даже в слаке стараюсь не использовать.

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

systemctl enable iptables.service - помогло.

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf - не помогло.

когда делаешь sysctl -p все срабатывает, но после перезагрузки не подхватывается. судя по всему раз в системе используется systemd-networkd но sysctl всем плевать.

Поэтому хочется для форвардинга использовать именно systemd-networkd. Чтоб стильно модно молодежно. А не через rc.local (как тут некоторые советуют).

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

echo «net.ipv4.ip_forward = 1» >> /etc/sysctl.conf - не помогло.

У меня вот это работает:

$ cat /etc/sysctl.d/99_forwarding.conf 
net.ipv6.conf.all.forwarding=1
net.ipv4.ip_forward=1

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Хочешь по модному, а сам до сих пор iptables дергаешь.

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

Почему именно в /etc/sysctl.conf ?

Извини, я забыл. Да, начиная с версии 207 и 21x, systemd применяет только настройки из /etc/sysctl.d/*.conf и /usr/lib/sysctl.d/sysctl.conf. Значит, исправь конец команды на /etc/sysctl.d/sysctl.conf.

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

Вот эти нюансы и нужны были.

правила для iptables - подхватились после старта сервиса. форвардинг подложил в sysctl.d

Теперь вроде все, что нужно взлетело.

Тем не менее, вот тут: https://wiki.archlinux.org/title/Internet_sharing

пишется про форвардинг в /etc/systemd/network/* При этом не работает, ну или я не понял как это запускать.

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

Всех приветствую. Кстати, арч - говно!

Теперь вроде все, что нужно взлетело.

пишется про форвардинг в /etc/systemd/network/* При этом не работает, ну или я не понял как это запускать.

Главно что ты разобрался, и понял, что гавно на самом деле ты.

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

echo «net.ipv4.ip_forward = 1» >> /etc/sysctl.conf - не помогло.

Запусти `strace sysctl --system 2>&1 | grep sysctl`, посмотри откуда conf файлы читаются и какие. Когда-то даже для совместимости делали такое `ln -s /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf` или наоборот, в /etc/sysctl.d был файл, а в /etc ссылка. Меня на этой почве даже срупт зафрендил.
В центоси например вот так:
ls -l /etc/sysctl.d/
total 0
lrwxrwxrwx. 1 root root 14 Oct 15 13:17 99-sysctl.conf -> ../sysctl.conf
В дженте на ноуте sysctl читает /etc/sysctl.conf напрямую. Я это вижу по 'openat(AT_FDCWD, «/etc/sysctl.conf», O_RDONLY)' в выхлопе strace.
Как именно сделано в арче я посмотреть не смогу, нет ни одной инсталляции под рукой.

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

Это как раз не арче-опыт, а сыстемдэ-опыт. В других дистрибутивах теперь точно также — /etc/sysctl.d/*, но раз пердолинг, пусть пердолинг. Слакваристам виднее.

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

Если отмотаешь назад (в самое начало) то увидешь пасту из этой доки которая по факту не работает.

Так что ртфм тут мимо. Потому, что см первую строчку моего поста.

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

Всякие echo и настройки файрволла я /etc/rc.local прописываю.

В этом методе есть один минус, может по какой-то причине не стартануть или стартануть не в то время.

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

Госпади, сделайте умолчательным запрет для каментов анонимов при создании поста. Все время забываю, что их отдельно надо игнорить.

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

Да, и так тоже бывает. Я же это не собираюсь это доказывать как самый правильный вариант, я просто сообщил, что на слаке этим не пользуюсь, по причинам которые теряются в тьме веков. Что-то там не работало или работало не очевидным образом. Значит это было богоугодно Патреком. Кто я такой чтобы сомневаться в его пути. Не пользуюсь, ибо верую!

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

Что-то там не работало или работало не очевидным образом.

Ну я почти так и сказал «что-то где-то». Я бы ещё понял если бы речь не про слаку была...

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

Ты даже не понял про, что я. Очередное подтверждения полного интелектуального бессилия анонима. Анонима следует запретить хотя бы из-за сострадания.

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

Ты даже не понял про, что я.

Ты даже не понял, кому я отвечаю (подсказка: не тебе). И запятую не там поставил.

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

Ну да. «Интеллектуального», настрой спеллчекер.

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

Я просто буду стараться не забывать снимать чекбокс разрешения анонимов в моих ветках. Меня это вполне устраивает. Если бы этот чекбокс был вынесен в настройки я был бы счастлив.

Модерации в своих ветках я скорей всего не дождусь.

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

[Match]
Name=*

Configures IPv4 packet forwarding for the interface. Takes a boolean value. This controls the net.ipv4.conf.INTERFACE.forwarding sysctl option of the network interface.

/etc/systemd/network/20-lan.network

To control the global setting, use the same setting in networkd.conf(5).

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

мне и надо глобально
прописывает настройки в конфиг специфичный для интерфейса

Выбери что-то одно. И нет, match на name=* - это != глобально. Почему так - спроси у авторов systemd-networkd.

Но вообще да, дока на арчевики в этом направлении малость всратая и зачем отдельно крутить настройки разрешения транзита пакетов кроме как в sysctl из нее абсолютно не ясно(видимо «потому что мы можем»)

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

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

Вобщем, задачу решил и ладно. Надеюсь больше с этим раком пересекаться не буду. Ну а то, что фанбои полыхнули, будет мне маленькая приятная компенсация.

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

Нет конечно, я не социопат какой-нидь. Но эмоционально неуравновешеные люди, у которых есть проблемы с адекватным восприятием окружающей их действительности. С проблемами восприятия юмора, иронии, сарказма. У меня с таких горит, поэтому невольно получается их поджигать (горю я и как следствие горят они).

Извините меня все, кого я вольно или невольно обтдел в этом треде. Арч конечно не говно, просто лично мне он не нравится. И анонимы лично мне не нравятся и в моих тредах я бы их не хотел видеть. Но про этот дурацкий чекбокс все время забываю.

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

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

Если для себя, то пишешь свой сервис, который вызывает скрипт, который дергает и вызывает кого угодно, хоть дьявола

[Unit]
Description=...
After=default.target

[Service]
Type=oneshot
ExecStart=/bin/bash /usr/local/bin/...

[Install]
WantedBy=default.target

Универсальный шаблон на все случаи жизни. А всё это говно ко всяким systemd-networkd пусть штудируют те, кому занять нечем

anonymous
()