Компьютер в сети, должен быть уникальным. Уникальность ему предоставляет IP-адрес. IP-адрес - это последовательность единиц и нолей равная 32 знакам (1100100111...) - страшно и непонятно :).
Для наглядности и удобства эту последовательность разбили на 4 равные части и перевели в десятичную систему исчисления.
Что получилось? 32 знака (единицы и ноли) = 8 знаков * 4 группы = 255.255.255.255 (8 знаков = 2 в 8-й степени - 1 = 256 - 1 = 255). То есть максимально возможная группа цифр - это 255.255.255.255.
Что такое маска подсети? А это часть ip-адреса. IP-адрес поделили на две неравные части. Первые 24 знака (бита) - маска, а остальные 8 - адрес хоста в подсети.
Маска подсети нужна для определения того, является ли компьютер которому отправляется пакет, компьютером той же подсети, что и наш.
Если маска у нас одна, тогда шлем напрямки к компу-получателю, если же нет, то шлем пакет шлюзу (шлюз - это комп, маршрутизатор или программа для сопряжения компьютерных сетей, использующих разные протоколы).
Как работает сеть?
Если сказать просто, то так: компьютер отсылает пакет абы куда :), но в пакете есть информация в которой записано кому он предназначен - информация о получателе.
Пакет может прийти хосту, для которого он не предназначен. Хост проверит по записанной ключевой информации принадлежность пакета, убедится, что пакет не для него, и выбросит его как ненужный.
И так происходит пока пакет не придет к получателю.
Что за информация записана в пакете, по которой хосты определяют принадлежность пакета получателю?
Записаны: MAC-адрес получателя и ip-адрес получателя. MAC-адрес вещь уникальная, в пределах земного шара :).
При тривиальных условиях, то есть когда компьютеры в одной подсети, записывается MAC-адрес получателя и ip-адрес получателя, а когда пакет шлем через шлюз, то в пакете указывается MAC-адрес шлюза (его мы узнаем из ip-адреса шлюза с помощью ARP-запроса) и ip-адрес компьютера-получателя.
DNS-сервер - это компьютер, который знает всё про всех :). Это глобальное определение.
На деле, всё примерно так: есть DNS-серверы национальные (российский, украинский, белорусский, немецкий, ...), под ними DNS-серверы региональные (калининградская область, ленинградская область и т.д.), под региональными - местные DNS-серверы.
Национальные серверы знают друг о друге и о серверах которые ниже, региональные знают о серверах которые выше и ниже них. В общем железа хватает, для того, чтобы определить что кому переслать.
Пример: Есть желание попасть на http://yandex.ru. Наш компьютер формирует запрос для сервера - это компьютер на котором размещена страничка http://www.yandex.ru :).
Для того, чтобы узнать адрес этого сервера, ему нужно, сначала, посмотреть файл hosts (в windows - C:/windows/system32/drivers/etc/hosts, в linux - /etc/hosts) и, если в нём нет записи с этим именем, то послать запрос DNS-серверу, в котором прописаны символы - "http://yandex.ru".
DNS-сервер посмотрит в таблицах соответствий имён ip-адресам, и найдет ip-адрес сервера. Этот 32-битный адрес он вернёт нам. Используя этот ip-адрес мы преспокойненько попадаем на нужную нам страничку.
Если же DNS-сервер не отвечает, то мы отправляем запрос второму DNS-серверу. Если у вас не работает интернет, проверьте, может быть не прописаны или прописаны, но неправильно, DNS-серверы.
Проверить это можно "попинговав" сначала yandex.ru, а потом его ip-адрес: 77.88.21.11.
IP-адреса есть уникальные (белые, реальные, внешние) и неуникальные (серые, внутренние).
Адреса, относящиеся к подсетям, представленным ниже, не используются в интернете в качестве реальных адресов.
Это "серые", "внутренние" адреса. Они используются в локальных компьютерных сетях, которые если и имеют выход в интернет, то только через шлюз, у которого есть внешний ip-адрес.
Если у этого шлюза вторая сеть - интернет, и адрес внешний, то необходимо настроить на нем технологию транслирования сетевых адресов (network address translation, NAT).
Это делается для того, чтобы сетевые пакеты из локальной сети, прошедшие через него в интернет, не имели серого адреса-отправителя, т.к. в этом случае сервер, для которого предназначен пакет, не поймет, кому именно из миллионов локальных сетей возвращать ответный пакет.
При использовании NAT, шлюз меняет адрес отправителя на свой внешний адрес, а у себя записывает, что "ответные пакеты с этого сервера перенаправлять такому-то компьютеру...".
В этом случае используется SNAT (source network address translation).
Если же нам необходимо изменять адрес получателя (например, в нашей локальной сети есть сервер терминалов с серым адресом, а мы бы хотели иметь к нему доступ из интернета), то можно использовать на нашем шлюзе DNAT (destination network address translation) - "проброс портов".
То есть мы указываем в правилах файервола, что пакеты, предназначенные нам и пришедшие на порт 3389, перенаправлять на внутренний серый адрес сервера терминалов.
Если рассматривать самое простое соединение, т.е. компьютер в локальной сети и он получает сетевые настройки автоматически, то необходимо выполнить команду:
Далее, для изменения настроек нам понадобятся права суперпользователя, по этому будем использовать программу sudo.
sudo dhclient eth0
(команду dhclient
надо запускать с правами суперпользователя).
Команда ifconfig
(без параметров), отображает информацию только об активных сетевых интерфейсах.
Просмотреть информацию по всем интерфейсам можно командой ifconfig -a
, выбрать необходимый из них (eth0, или eth1, или eth0:1) и работать с ним.
ifconfig -a
В Ubuntu имена сетевых устройств имеют вид ethN, где N - число, означающее номер устройства связи в системе.
Нумерация устройств начинается с нуля. Если в компьютере две сетевых карты, то они будут с идентификаторами eth0 и eth1.
Если в сетевую карту ethN вставлен сетевой провод, идущий в модем, роутер или свитч, будет написано "RUNNING", на первом рисунке это видно.
Интерфейс eth0 - это карта Ethernet, к которой можно подключить сетевой кабель. В текущий момент сетевой кабель подключен, поэтому интерфейс активен, и для него отображаются ip-адрес, широковещательный адрес и маска подсети:
Интерфейс eth0 - карта Ethernet. Сетевой кабель подключён, интерфейс активен, присвоен ip (192.168.1.254) и маска подсети (255.255.255.0): Интерфейсlo
- интерфейс обратной петли и позволяет компьютеру обращаться к самому себе.127.0.0.1
и необходим для нормальной работы системы:
Команда ifconfig -a
удобна в тех случаях, когда надо быстро выяснить состояние интерфейсов, в частности, если необходимо узнать их ip-адреса.
Помимо сведений о конфигурации сетевых интерфейсов команда выдает еще много полезной информации, например, количество отправленных и полученных пакетов (параметры RX и TX).
Еще один интересный адрес, который можно увидеть у сетевой карты - параметр HWaddr
(Hardware Address, аппаратный адрес).
Это mac-адрес (Media Access Control, управление доступом к среде). Это 48-разрядный серийный номер сетевого адаптера, присваиваемый производителем.
Так как lo
создан программно, у него не может быть аппаратного адреса.
Команда ifconfig позволяет настраивать сетевой интерфейс по вашему усмотрению и предлагает широкие возможности для этого.
Чтобы получить подробную информацию по команде, пишем в терминале:
man ifconfig
Если компьютер со статическим ip-адресом и не имеет доступа ни к другим сетям ни к интернету, то команда настройки сетевого интерфейса будет такой:
sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
Поясняю:
eth0
- идентификатор сетевого оборудования (сетевая карта).
192.168.1.2
- присваиваемый ip-адрес.
netmask 255.255.255.0
- присваиваемая маска подсети.
up
- поднять интерфейс (то есть применить изменения, начать работу сетевой карте).
down
- остановить интерфейс.
Команда: sudo ifconfig eth0 down
означает - остановить работу сетевой карты с eth0 идентификатором.
Бывает так, что провайдер интернет привязывает mac-адрес сетевой карты к учётке клиента. При замене сетевой карты или же компьютера, мы получим отсутствие интернета на нашей стороне.
Как временное решение может подойти подмена реального mac-адреса, mac-адресом который был зарегистрирован у провайдера.
Почему временное?
Потому, что описанная ниже команда делает изменения которые удалятся при перезагрузке компьютера.
Сначала выясняем наш старый mac-адрес, выполняем команду ifconfig
без параметров.
Допустим он у нас такой: 00:00:00:00:00:01
.
Производим следующие действия, то есть выполняем последовательность команд:
1) Отключаем интерфейс: ifconfig eth0 down
2) Изменяем MAC: ifconfig eth0 hw ether 00:00:00:00:00:01
3) Включаем интерфейс: ifconfig eth0 up
Все действия можно выполнить одной командой:
sudo ifconfig eth0 down && ifconfig eth0 hw ether 00:00:00:00:00:01 up
&&
- означает, выполнить следующую команду при успешном выполнении предыдущей команды.
Как я писал выше, все эти настройки действительны лишь до перезагрузки системы. Сделаем их постоянными следующим образом:
Теперь приступим к редактированию файла настройки сетевых интерфейсов. Вот эти настройки и будут долговременными, пока мы их не изменим в файле снова.
Набираем команду ifconfig -a
. Видим список всех (активных и неактивных) сетевых устройств, которые именуются как eth0
, eth1
, eth2
и т.д.
На скриншоте вы видите три устройства:
eth0
— первая сетевая карта.
lo
— локальная петля.
Локальная сеть подключена к сетевой карте eth0
.
Почти вся информация о настройках сети и методах ее активации, хранится в файле /etc/network/interfaces
, именно с ним мы и будем работать, используя редактор.
Открываем файл:
sudo gedit /etc/network/interfaces
auto lo
- говорит о том, что интерфейс lo
поднимается автоматически при загрузке системы.
Добавьте в файл строки:
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0
- сетевая карта eth0
поднимается автоматически во время загрузки системы.
iface eth0 inet static
- указывает, что интерфейс (iface) сетевой карты (eth0) находится в диапазоне адресов ipv4 (inet) со статическим ip (static).
address 192.168.1.254
- статический ip адрес, тут пишем свой ip-адрес.
netmask
— стандартная маска сети.
gateway
- ip-адрес основного шлюза.
Редактирование закончено. Сохраняем и закрываем файл.
Запросите у вашего провайдера услуг Интернет (Internet Service Provider, ISP) адреса основного и вспомогательного серверов DNS и опишите их в файле /etc/resolv.conf
.
На примере я укажу адрес DNS-сервер своего провайдера, вы должны ввести свои данные.
Откройте файл для редактирования:
sudo gedit /etc/resolv.conf
Вставьте свои данные:
nameserver 192.168.1.1 nameserver 172.16.0.1
Сохраните и закройте файл.
Для настройки DHCP и получения сетевых параметров автоматически, нужно добавить две строчки (пусть у меня так поднимется карта eth1).
Откройте файл:
sudo gedit /etc/network/interfaces
Вставьте строчки следующего содержания:
auto eth1 iface eth1 inet dhcp
Ваш файл будет выглядеть так:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
gateway 192.168.1.1
auto eth1
iface eth1 inet dhcp
Если по каким-либо причинам вы хотите чтобы при загрузке у сетевой карты eth0
был другой mac-адрес, для этого нужно дописать строчку hwaddress ether 00:00:00:00:00:01
:
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
gateway 192.168.1.1
hwaddress ether 00:00:00:00:00:01
На одной сетевой карте может быть несколько ip-адресов, это бывает необходимо, если в коммутатор идут два провода от разных сетей и один от компьютера.
В этом случае можно настроить на компьютере адреса обоих сетей без использования дополнительной сетевой карты.
Для этого необходимо идентифицировать так называемый алиас (alias) к определенному сетевому интерфейсу, и выглядеть это будет так: сетевой_интерфейс:1
или сетевой_интерфейс:2
, т.е. eth0:1
или eth1:2
.
Идентифицировать его можно следующим образом:
ifconfig eth0:1 192.168.0.5 netmask 255.255.255.0 up
Интересно то, что можно настроить основной интерфейс через dhcp (автоматически) dhclient eth0
, а алиас eth0:1
в статику, чего я в альтернативных операционных системах не нашел.
Все это хорошо, но после перезагрузки все настройки слетают.
В Ubuntu есть файл /etc/network/interfaces
. В него можно прописать опции сетевых карт, которые будут устанавливаться при загрузке системы (благодаря скрипту /etc/init.d/networking
, запускающемуся автоматически).
Откройте файл для редактирования:
sudo gedit /etc/network/interfaces
Синтаксис простой:
Настройка локальной сети в Ubuntu
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()