LINUX.ORG.RU
ФорумAdmin

Конфигурирование сети

 


0

2

Понял, что вообще ничего не знаю о конфигурировании сети в linux. Никаких централизованных гайдов на эту тему нету, либо [обычно частично] разбирают конкретные инструменты, либо «тыкни сюда, тыкни туда, вот, работает, молодец.»
Как научиться настраивать сеть? Желательно на примерах arch.

А теперь немного пояснения, в Linux сеть настраивается несколько по разному.

Во-первых, по тому, что есть достаточно большон разнообразие дистрибутивов Linux и в каждом из них своя система инициализации и свои конифгурационные файлы. По крайней мере, в большей степени так было относительно недавно, пока большинство дистрибутивов не перешло на использование systemd.

К примеру в Debian и дистрибутивах родных ему одним из способов настройки сети является запуск сценария настройки сети networking, для которого конфигурационным файлом является /etc/network/interfaces, в ubuntu в относительно старых версиях так же одним из варинатов является сценарий networking, другим вариантом - netplan.

Так же в большинстве дистрибутивов Linux ты можешь установить networkmanager, в этом случае сеть настраивается чере него самого, либо через графический апплет настройки сети, либо через команду в консоли.

В rpm-based дистрибутивах конфигурационные файлы настройки сервисов конфигурирования сети лежат где-то в /etc/sysconfig/network-scripts/ifcfg-имя_интерфейса.

Если говорить не о networkmanager, то любой другой сервис конфигурирования сети вызывает стандартные консольные утилиты для настройки сети.

Это iproute2.

В принципе тебе никто не запрешает настроить сеть руками вызвав утилиты, например ты хочешь настроить такие параметры:

IP адрес: 192.168.1.1 маска 255.255.255.0
шлюз: 192.168.1.254
DNS сервер: 8.8.8.8
для этого нужно выполнить такие команды:
ip l s up dev eth0
ip a a 192.168.1.1/24 dev eth0
ip r a default via 192.168.1.254
echo "nameserver 8.8.8.8" > /etc/resolv.conf
В примере имя интерфейса eth0.

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

Но настройки выставленные с помощью утилит после перезагрузки не сохранятся.

Что бы разобраться как настраивать сеть выбери себе какой-нибудь дистрибутив, открой его wiki страницы и изучай документацию.

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

Вот например сейчас мне нужно создать виртуальный сетевой интерфейс для vbox.

Для виртуалбокс всё делается через сам виртуалбокс, либо через утилиту VBoxManage.

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

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

чтобы шлюзом был не хост, а шлюз хоста?

Переключи интерфейс виртуальной машины в режим моста, тип подключени «Сетевой мост» («Bridge»), а ниже выбери адаптер хост системы, к которому хочешь подключиться в режиме моста.

В этом случае сетевая карта виртуальной машины сможет получить достук к реальной сети и даже получить IP адрес от dhcp сервера твоей сети.

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

Чтобы vbox получал ip от шлюза хоста.

Смотри ответ выше.

Ну и дополнительно понять, какой у меня менеджер сети. Открой wiki страницы, которые я указал в первом сообщении и прочти что там написано, скорее всего либо systemd-networking, либо networkmanager, что почти одно и тоже.

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

Во, на vbox то что надо, спасибо. MAC машины можно задавать вручную?
А про systemd-networking и networkmanager уже говорил, что они есть, но в systemctl выключены. В своём установочном скрипте обнаружил [ставил почти год назад], что тогда менеджером был networkmanager, но видимо, позже он был отключён, тк я по незнанию перепутал networkmanager и nm-applet.
Так у меня может работать сеть без работающего сетевого менеджера?

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

[quote] А про systemd-networking и networkmanager уже говорил, что они есть, но в systemctl выключены. [/quote] С чего ты решил, что они выключены?

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

Посмотри вывод systemctl увидишь какие юниты запущены.

anonymous ()
Ответ на: комментарий от anonymous
>s status NetworkManager
● NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; >
    Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
             └─NetworkManager-ovs.conf
     Active: inactive (dead)
       Docs: man:NetworkManager(8)
__________________________________________________________
>s status systemd-networkd
● systemd-networkd.service - Network Service
     Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; disabled>
     Active: inactive (dead)
       Docs: man:systemd-networkd.service(8)


Ну и при проверке systemctl is-enabled отвечает disabled.

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

Ты wiki открывал?

Network management

To set up a network connection, go through the following steps:

Ensure your network interface is listed and enabled. Connect to the network. Plug in the Ethernet cable or connect to the wireless LAN. Configure your network connection: static IP address dynamic IP address: use DHCP

Note: The installation image enables dhcpcd (dhcpcd@interface.service) for wired network devices on boot.

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

https://wiki.archlinux.org/index.php/Dhcpcd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)

Ну вот и ответи у тебя запускается dhcpcd сервис, который запускает dhcp клиент для всех интерфейсов.

Я тебе и напсиал смотреть вывод systemctl и анализировать.

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

Почиму ты не читаешь, что написано? И ссылку которую я привёл?

Или ты, скорее всего, мало понимаешь как работает сеть и не знаешь, что такое DHCP.

DHCP - это протокол динамической настройки параметров сети (Dynamic Host Configuration Protocol).

Есть отдельно DHCP сервер, который выдаёт параметры по запросу и есть клиенты, программа которая посылает широковещательный запрос с адресом 255.255.255.255 для IPv4 в сеть на порт 67 и ждёт ответа от первого попавшегося DHCP сервера.

dhcpcd - это демон, который при запуске запускает на всех сетевых интерфейсах dhcp клиент.

И уже этот клиент конфигуриурет твою сетевую карту по ответу от DHCP сервера.

dhcpcd - это не менеджер сети. Повторяю, это сценарий, который запускает DHCP клиент на всех сетевых интерфейсах.

Почитай что-нибудь по работе сети, например вот: https://habr.com/ru/post/134892/

тебе хватит для начала частей с 0 по 3.

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

Сообщения читаю полностью, а ссылку решил прочитать позже.
Просто вы так сказали про dhcpcd, что я уже подумал, что это менеджер сети. А так о том, кто такой dhcp я примерно представляю.
Т.е. до этого у меня всё работало без менеджера?
Хорошо, прочитаю хабр, и если останутся вопросы, напишу завтра.

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

Т.е. до этого у меня всё работало без менеджера? А что такое менеджер сети и зачем он нужен ты думал?

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

В случае networkmanager через nm-applet можно изменять настройки сетевых интерфейсов.

anonymous ()