Настройка локальной сети linux ubuntu

Настройка сети в Linux, диагностика и мониторинг

Содержание

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

Настройка TCP/IP в Linux для работы в сети Ethernet

Для работы с сетевыми протоколами TCP/IP в Linux достаточно наличие только петлевого интерфейса, но если необходимо объединить хосты между собой, естественно, необходимо наличие сетевого интерфейса, каналов передачи данных (например витая пара), возможно, какого-либо сетевого оборудования. Так же, необходимо наличие установленных утилит для настройки сети (/sbin/ifconfig, /sbin/route и др.), обычно поставляемые в пакете net-tools. Так же необходимо наличие конфигурационных файлов для сети (например /etc/hosts) и поддержку сети ядром Linux.

Параметры сети

Начнем понимание сетевых механизмов Linux с ручного конфигурирования сети, то есть со случая, когда IP адрес сетевого интерфейса статичен. Итак, при настройке сети, необходимо учесть и настроить следующие параметры:

IP-адрес — как уже говорилось в первой части статьи — это уникальный адрес машины, в формате четырех десятичных чисел, разделенных точками. Обычно, при работе в локальной сети, выбирается из частных диапазонов, например: 192.168.0.1

Маска подсети — так же, 4 десятичных числа, определяющие, какая часть адреса относиться к адресу сети/подсети, а какая к адресу хоста. Маска подсети является числом, которое складывается (в двоичной форме) при помощи логического И, с IP-адресом и в результате чего выясняется, к какой подсети принадлежит адрес. Например адрес 192.168.0.2 с маской 255.255.255.0 принадлежит подсети 192.168.0.

Адрес подсети — определяется маской подсети. При этом, для петлевых интерфейсов не существует подсетей.

Широковещательный адрес — адрес, используемый для отправки широковещательных пакетов, которые получат все хосты подсети. Обычно, он равен адресу подсети со значением хоста 255, то есть для подсети 192.168.0 широковещательным будет 192.168.0.255, аналогично, для подсети 192.168 широковещательным будет 192.168.255.255. Для петлевых интерфейсов не существует широковещательного адреса.

IP адрес шлюза — это адрес машины, являющейся шлюзом по-умолчанию для связи с внешним миром. Шлюзов может быть несколько, если компьютер подключен к нескольким сетям одновременно. Адрес шлюза не используется в изолированных сетях (не подключенных к глобальной сети), потому что данным сетям некуда отправлять пакеты вне сети, то же самое относиться и к петлевым интерфейсам.

Файлы настроек сети в Linux (конфигурационные файлы)

Для понимания работы сети в Linux, я бы обязательно посоветовал ознакомиться со статьей «Этапы загрузки Linux». В целом, вся работа Linux основана на процессе init, который рождается при загрузке ОС и плодит своих потомков, которые в свою очередь и выполняют всю необходимую работу, будь то запуск bash или демона. Да, и вся загрузка Linux основана на скриптах bash, в которых прописана вся последовательность запуска мелких утилит с различными параметрами, которые последовательно запускаются/останавливаются при запуске/остановке системы. Аналогично запускается и сетевая подсистема Linux. Каждый дистрибутив Linux имеет слегка отличающийся от других механизм инициализации сети, но общая картина, думаю, после прочтения будет ясна. Если просмотреть стартовые скрипты сетевой подсистемы какого-либо дистрибутива Linux, то, как настроить конфигурацию сети с помощью конфигурационных файлов, станет более-менее понятно, например у Debian/Ubuntu (за основу возьмем эту ветвь дистрибутивов) за инициализацию сети отвечает скрипт /etc/init.d/networking , просмотрев содержимое которого:

Читайте также:  Astra chat mac os

можно найти несколько функций, проверяющих наличие подключенных сетевых файловых систем (check_network_file_systems(), check_network_swap()), а так же проверку существования какого-то пока непонятного конфига /etc/network/options (функция process_options()), а в самом низу, конструкцией case «$1» in проверяется первый параметр переданный скрипту и в соответствии с введенным параметром (start/stop/force-reload|restart или любое дугое) производит определенные действия. Из этих самых «определенных действий», на примере аргумента start видно, что сначала запускается функция process_options, далее отправляется в лог фраза Configuring network interfaces, и запускается команда ifup -a. Если посмотреть man ifup, то видно что данная команда читает конфиг из файла /etc/network/interfaces и согласно ключу -a запускает все интерфейсы имеющие параметр auto.

Соответственно, прочитав man interfaces (rus) или man interfaces (eng), становиться ясно, как же в Debian/Ubuntu настроить какой-либо сетевой интерфейс с помощью конфига /etc/network/interfaces. Ниже, пример данного конфигурационного файла для 3х интерфейсов: петлевой (lo), со статичным IP (eth2) и IP получаемым по dhcp (eth0):

В данном конфиге строки allow-hotplug и auto — это синонимы и интерфейсы будут подняты по команде ifup -a. Вот, собственно, и вся цепь работы сетевой подсистемы. Аналогично, в других дистрибутивах: в RedHat и SUSE сеть запускается скриптом /etc/init.d/network. Рассматрев его, аналогично можно найти, где лежит конфигурация сети.

/etc/hosts

Данный файл хранит перечень IP адресов и соответствующих им (адресам) имен хостов.Формат файла ничем не отличается от мастдайного:

/etc/networks

Данный файл хранит имена и адреса локальной и других сетей. Пример:

При использовании данного файла, сетями можно управлять по имени. Например добавить маршрут не route add 192.168.1.12, а route add home-network.

/etc/nsswitch.conf

Файл определяет порядок поиска имени хоста/сети, за данную настройку отвечают строки:

Параметр files указывает использовать указанные файлы (/etc/hosts и /etc/networks соответственно), параметр dns указывает использовать службу dns.

/etc/resolv.conf

Этот файл определяет параметры механизма преобразования сетевых имен в IP адреса. Пример:

В современных дистрибутивах Linux используется динамическая генерация данного файла, с помощью утилиты resolvconf. Она является посредником между службами, динамически предоставляющими сервера имен (например DHCP client) и службами, использующими данные сервера имен. Статические адреса DNS серверов, в случае использования resolvconf, задаются внутри /etc/network/interfaces (подробнее об этом — в разделе настройки).

Настройка сети

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

Диагностика сети Linux

Существует большое количество инструментов диагностики сети в Linux, зачастую, они очень похожи на утилиты от Microsoft. Я рассмотрю 3 основные утилиты диагностики сети, без которых выявить неполадки будет проблематично.

Думаю, что данная утилита знакома чуть ли не каждому. Работа этой утилиты заключается в отправке т.н. пакетов ICMP удаленному серверу, который будет указан в параметрах команды, сервер возвращает отправленные команды, а ping подсчитывает время требуемое отправленному пакету, чтобы дойти до сервера и вернуться. Например:

Читайте также:  What is disk utility in windows

Так же, утилита ping интересна тем, что может позволить увидеть, где именно возникли неполадки. Допустим, утилита ping выводит сообщение network not reachable (сеть недоступна), либо другое аналогичное сообщение. Это, скорее всего, говорит о некорректной настройке вашей системы. В таком случае, можно послать пакеты по IP-адресу провайдера, чтобы понять, в каком месте возникает проблема (между локальным ПК или «дальше»). Если Вы подключены к интернету через маршрутизатор, то можно послать пакеты по его IP. Соответственно, если проблема проявиться уже на этом этапе, это говорит, о неправильном конфигурировании локальной системы, либо о повреждении кабеля, если маршрутизатор отзывается, а сервер провайдера нет, то проблема — в канале связи провайдера и т.д. Наконец, если неудачей завершилось преобразовании имени в IP, то можно проверить связь по IP, если ответы будут приходить корректно, то можно догадаться, что проблема в DNS .

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

traceroute

Простым языком, команда называется трассировка маршрута. Как можно понять из названия — данная утилита покажет по какому маршруту шли пакеты до хоста. Утилита traceroute несколько похожа на ping, но отображает больше интересной информации. Пример:

Источник

Как настроить локальную сеть в Убунту

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

Настройка локальной сети в Ubuntu выполняется с помощью команд.

Консольная настройка сети во всех Линукс-подобных операционных системах, в том числе и Ubuntu, осуществляется при помощи специальной команды ifconfig. Если просто прописать эту команду в терминале, то консоль покажет все сетевые интерфейсы, которые запущены на ПК в этот момент. Выглядит это следующим образом:

eth0 Link encap:Ethernet HWaddr 00:04:75:c1:e2:ab
inet addr:10.2.10.32 Bcast:10.2.10.255 Mask:255.255.255.0
….
….
eth1 Link encap:Ethernet HWaddr 00:04:75:c1:e2:6b
inet addr:192.168.140.1 Bcast:192.168.140.255 Mask:255.255.255.0
….
….
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
….
….

Первый столбец содержит имена интерфейсов, а второй — настройки этих самых интерфейсов. Команда ifconfig eth0 выводит настройки только интерфейса eth0. Для отключения либо включения интерфейса eth0 введите команды:

sudo ifconfig eth0 down
sudo ifconfig eth0 up

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

Для изменения настроек интерфейсов пропишите команды следующего вида:

sudo ifconfig eth1 inet 192.168.140.1

поменять IP-адрес интерфейса eth1 на 192.168.140.1

sudo ifconfig eth0 hw ether 00:12:34:56:78:90

поменяет МАС-адрес на 00:12:34:56:78:90

sudo ifconfig eth0 netmask 255.255.255.0

поменять маску подсети интерфейса eth0 на 255.255.255.0

Однако, установленные подобным образом параметры сбрасываются после перезапуска компьютера. Во избежание этого следует изменить параметры в файле конфигурации сетевых интерфейсов, который находится в /etc/network/interfaces. Выглядит этот файл подобным образом:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.2.10.32
#hwaddress ether 12:34:56:78:90:12
netmask 255.255.255.0
network 10.2.10.0
broadcast 10.2.10.255
gateway 10.2.10.1
dns-nameservers 212.212.45.174
# The secondary network interface
auto eth1
iface eth1 inet static
address 192.168.140.1
netmask 255.255.255.0

Чтобы установить адрес DNS-сервера, перейдите к файлу /etc/network/interfaces, но обратите внимание, что обычно управление адресами DNS-серверов в Ubuntu происходит через файл /etc/resolv.conf, синтаксис этого файла конфигурации предельно прост, и выглядит так

Читайте также:  Windows настройка уведомлений почты

После внесения изменений в эти конфигурационные файлы выполните перезапуск сетевой службы при помощи команды:

Если вам нужно, чтобы компьютер получал настройки сети динамически (через DHCP), пропишите в файле /etc/network/interfaces следующие строки:

iface eth0 inet auto

Для динамического обновления параметров сети пропишите:

Чтобы остановить или запустить сетевую службу, воспользуйтесь командами:

sudo /etc/init.d/networking stop
sudo /etc/init.d/networking start

Если посмотреть рассматриваемый файл конфигурации, в настройках интерфейса eth0 строка, которая изменяет MAC-адрес закомментирована. Это сделано потому, что если её не закомментировать, то сетевая служба может не запуститься, и для изменения MAC-адреса может понадобиться прописать:

sudo ifconfig eth0 down
sudo ifconfig eth0 hw ether 12:34:56:78:90:12
sudo ifconfig eth0 up
sudo /etc/init.d/networking restart

Как вариант, можно написать bash-скрипт.

В папке /home/user создайте файл под названием mynetconfig и скопируйте в него код:

echo «########OTKLYCHENIE eth0#######»
sudo ifconfig eth0 down
echo «#####MENYAEM MAC ADRES#####»
sudo ifconfig eth0 hw ether 00:13:8f:cb:10:21
echo «########VKLUCHAEM eth0#########»
sudo ifconfig eth0 up
echo «####PEREZAGRYGAEM NETWORKING####»
sudo /etc/init.d/networking restart
echo «KONEC»

Теперь вместо этих строк вам придётся писать только одну команду: /home/user/mynetconfig

Далее скопируйте файл mynetconfig в каталог /use/local/bin. Теперь запускать скрипт можно будет просто с помощью команды mynetconfig. Чтобы скрипт запускался сразу при загрузке системы, скопируйте его в /etc/init.d/, а затем откройте консоль и перейдите в /etc/init.d/ , после чего выполните команду:

update-rc.d mynetconfig defaults 99,

где mynetconfig — имя скрипта;

defaults — выполнять на всех режимах загрузки от второго до пятого;

99 — порядок загрузки.

Чтобы удалить скрипт из автозагрузки, откройте каталог /etc/init.d/ и пропишите:

Существует ещё один способ добавления скрипта в автозагрузку. Достаточно просто вписать имя скрипта в файл /etc/rc.local либо удалить его, если хотите убрать скрипт. Первый способ несколько сложнее, но стоит отдать предпочтение именно ему, так как в этом случае можно будет выбрать порядок и режим загрузки, что может быть важно в некоторых ситуациях.

Теперь рассмотрим, как подключить сетевой диск в Ubuntu. Делается это довольно просто. Сначала откройте меню «Переход» и выберите пункт «Соединиться с сервером». В открывшемся окне необходимо будет указать тип сервиса и другие общие данные. Нажмите кнопку «Соединиться». Далее нужно будет ввести свой пароль и кликнуть по кнопке «Подключиться». Готово. Всё достаточно легко и быстро.

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

Источник

Оцените статью