| Настройка сети вручную |
|
Авторы статьи: WonderTalik, forkostya
В данной теме я постараюсь "на апельсинах" рассказать, как устроены компьютерные сети, а WonderTalik расскажет вам о настройке сети.
Принцип устройства сетиКомпьютеры связываются между собой с помощью адресов, представленных цифрами. Cистема исчисления у компьютеров двоичная, т.е. адрес компьютера представляет собой последовательность из нулей и единиц (1010010101....) и длина этой последовательности равна 32 знакам. Для удобства и наглядности для человека эту последовательность цифр разбили на 4 части и перевели в десятичную систему. Получилось, что 32 единицы = 255.255.255.255 (8 единиц = 2 в 8 степени - 1 = 256 - 1 = 255). На апельсинах: телефонная связь тоже работает с цифровыми адресами (4951234567). Маска подсети: Для удобства компьютера и наглядности пользователя, разбили этот адрес, и получилось, что первая часть 32-значного адреса отвечает за адрес подсети, а вторая часть - за адрес хоста. Но разделили не пополам. Для определения длины подсети используется маска. Например, 255.255.255.0 - последовательность из 24 единиц и 8 нулей - говорит о том, что первые 24 символа (бита) адреса - подсеть, а остальные 8 бит - адрес хоста в этой подсети. Это нужно для того, чтобы компьютер, формируя пакет для другого компьютера, посмотрел на свою и его подсеть и сравнив их понял, куда слать пакет. Если подсеть одинаковая - значит напрямую компьютеру-получателю, если разная - то шлюзу. На апельсинах: в Москве телефонные номера могут быть в коде 495 или 499. Когда мы смотрим на весь номер (4991234567) мы автоматически понимаем, в одной "подсети" мы с ним или нет. Если в одной, то звоним напрямую 1234567, а если в разных, то через "шлюз" - восьмерку. Шлюз: Когда я говорю "напрямую слать пакет туда-то", или "слать пакет шлюзу", я должен сразу рассказать о том, как же это происходит: сформированный пакет просто выбрасывается в провод, а дальше его ловят все, до кого он дошел. По идее, компьютеры сверяют информацию о получателе в пакете со своими данными и в случае ошибки просто отбрасывают его. Информация, которая нас интересует: MAC-адрес получателя, ip-адрес получателя. Когда мы посылаем пакет через шлюз, то компьютер указывает MAC-адрес шлюза (который он сам получит из ip-адреса шлюза с помощью arp-запроса), и ip-адрес конечного компьютера. На апельсинах: Раньше нужно было звонить "девушке" и просить её соединить с "Ларисой Ивановной". Номер девушки и есть аналогия MAC-адресу шлюза. DNS: Когда мы пытаемся подключиться к "страничке" http://www.yandex.ru, компьютер должен сформировать пакет-запрос для удаленного компьютера, на котором эта страничка находится. Для того, чтобы узнать адрес этого компьютера ему необходимо сначала просмотреть локальный файл hosts (в windows - C:/windows/system32/drivers/etc/hosts, в linux - /etc/hosts) и если там нет записей с этим именем, то послать запрос ДНС-серверу, который получит http://www.yandex.ru и вернет его 32-битный адрес. Если же ДНС-сервер не отвечает, то мы отправляем запрос второму ДНС-серверу. Соответственно: если Вам кто-то сказал, что у него не работает интернет, проверьте, может быть у него просто не прописаны или прописаны неправильные ДНС-сервера. Проверить это можно "попинговав" сначала yandex.ru, а потом его ip-адрес: 77.88.21.11. Все адреса делятся на два типа: уникальные (белые, реальные, внешние) и не уникальные (серые, внутренние). Было много причин для их разделения, например:
Так уж договорились, что адреса, относящиеся к подсетям, представленным ниже, не используются в интернете в качестве реальных адресов.
Это и есть "серые", "внутренние" адреса. Их используют в обособленных компьютерных сетях, которые если и имеют подключение к интернет, то через особый компьютер (шлюз), у которого есть внешний адрес (ну или он может быть в сети с тем компьютером, у которого внешний адрес и т.д.). Особый он тем, что у него настроен forwarding (пропуск) пакетов из одной сети в другую через него. Если у этого шлюза вторая сеть - интернет, и адрес как раз реальный (внешний), то необходимо настроить на нем технологию транслирования сетевых адресов (network address translation, NAT). Это делается для того, чтобы сетевые пакеты из локальной сети, прошедшие через него в интернет не имели серого адреса-отправителя, т.к. в этом случае сервер, для которого предназначен пакет, не поймет, кому именно из миллионов локальных сетей возвращать ответный пакет. При использовании NAT, шлюз меняет адрес-отправителя на свой внешний адрес, а у себя записывает "ответные пакеты с этого сервера перенаправлять такому-то компьютеру...". В этом случае используется SNAT (source network address translation). Если же нам необходимо изменять адрес получателя (например, в нашей локальной сети есть почтовый сервер с серым адресом, а мы бы хотели иметь к нему доступ из интернета), то можно использовать на нашем шлюзе DNAT (destination network address translation) или, как говорят в простонародье "проброс портов". То есть мы указываем в правилах файервола, что пакеты, предназначенные нам и пришедшие на порт 110 перенаправлять на внутренний серый адрес почтового сервера. Определение состояния сетевых средствЕсли рассматривать самое простое соединение, т.е. компьютер в локальной сети и получает настройки автоматически, то необходимо выполнить команду: sudo dhclient eth0 (команду dhclient надо запускать с правами суперпользователя) Команда ifconfig отображает информацию только об активных сетевых интерфейсах. Просмотреть информацию по всем интерфейсам можно командой ifconfig -a, выбрать необходимый из них (eth0, или eth1, или eth0:1) и манипулировать им. ifconfig -a
В Ubuntu имена сетевых устройств принимают вид ethN, где N - число, означающее номер устройства связи в системе. Нумерация устройств начинается с нуля. Если в компьютере две сетевых карты, то они получат имена eth0 и eth1. Если в сетевую карту ethN вставлен сетевой провод, идущий в модем, роутер или свитч, будет написано RUNNING, можно увидеть это примером выше в интерфейсе eth1. Интерфейс eth0 - это карта Ethernet, к которой можно подключить сетевой кабель. В текущий момент сетевой кабель не подключен, поэтому интерфейс не активен и для него не отображается ip-адрес, широковещательный адрес и маска подсети:
Интерфейс eth1 - вторая карта Ethernet. Сетевой кабель подлючен, интерфейс активен, присвоен ip(10.7.9.6) и маска подсети(255.0.0.0):
Интерфейс lo - интерфейс обратной петли и позволяет компьютеру обращатся к самому себе. Интерфейс имеет ip-адрес 127.0.0.1 и необходим для нормальной работы системы:
Команда ifconfig -a удобна в тех случаях, когда надо быстро выяснить состояние интерфейсов, в частности, если необходимо узнать их IP-адреса. Помимо сведений о конфигурации сетевых интерфейсов, команда выдает еще много полезной информации, например, количество отправленных и полученных пакетов(параметры RX и TX). Еще один интересный адрес, который можно увидеть у сетевой карты - параметр HWaddr (Hardware Address, аппаратный адрес). Его еще часто называют MAC - адресом (Media Access Control, управление доступом к среде). Это 48-разрядный серийный номер сетевого адаптера, присваиваемый производителем. Так как lo создан программно, у него не может быть аппаратного адреса. Настройка сетевого интерфейса посредством ifconfigКоманда ifconfig позволит сконфигурировать сетевой интерфейс, имеет очень широкие возможности, для подробной информации: man ifconfig. sudo ifconfig eth0 10.7.9.6 netmask 255.255.0.0 up Подробности: sudo ifconfig ethN параметры Параметры: down - остановить интерфейс: sudo ifconfig eth0 down up - поднять интерфейс: sudo ifconfig eth0 up IP-адрес - для его изменения используется следующий формат команды: sudo ifconfig eth1 10.7.9.6 Маска подсети: sudo ifconfig eth1 netmask 255.0.0.0 Иногда администраторы сетей (в том числе и провайдеры) делают привязку к МАС-адресу сетевой карты. В случае смены сетевой карты или всего системного блока в такой сети ничего работать не будет. Можно позвонить и попросить обновить эту информацию, но днем провайдеру можно не дозвониться, а ночью он может спать. В таком случае можно изменить МАС-адрес на тот, что был у предыдущей сетевой карты вручную. Но сначала нужно выяснить мак-адрес по умолчанию, при помощи уже знакомой вам команды ifconfig без параметров. После этого дать команду, которая заменит текущий мак-адрес на новый: sudo ifconfig eth1 hw ether 00:e0:4c:d0:99:28 Все действия можно выполнить одной командой, например так: sudo ifconfig eth1 down && ifconfig eth1 10.7.9.7 netmask 255.0.0.0 hw ether 00:e0:4c:d0:99:28 up && - означает, успешное выполнение предыдущей команды. Т.е. если ifconfig eth1 down будет выполнено, передается на управление следующая команда ifconfig eth1 10.7.9.7 netmask 255.0.0.0 hw ether 00:e0:4c:d0:99:28 up Все эти настройки действительны лишь до перезагрузки системы. Сделаем их постоянными следующим образом: Настройка сети редактированием файла /etc/network/interfaces1. Удалим Network Manager: sudo apt-get remove network-manager 2. Введите команду ifconfig -a, отрывающую перед вами список всех(активных и неактивных) сетевых устройств, которые именуются как eth0, eth1, eth2 и т.д. Я ввел без ключа -а, так как у меня все сетевые интерфейсы активны.
На скриншоте вы видите три устройства: 3. Почти вся информация о настройках сети и методах ее активации, хранится в файле /etc/network/interfaces, именно с ним мы и будем работать, используя ваш любимый редактор. Откройте и посмотрите на его содержание: sudo gedit /etc/network/interfaces auto lo - говорит о том, что интерфейс lo поднимается автоматически при загрузке системы. Добавьте в файл строки: auto eth1 auto eth1 - сетевая карта eth1 поднимается автоматически во время загрузки системы. Редактирование закончено. Сохраните и закройте файл. 5. Запросите у вашего провайдера услуг Интернет (Internet Service Provider, ISP) адреса основного и вспомогательного серверов DNS, и опишите их в файле /etc/resolv.conf. На примере я укажу адрес своего днс-провайдера, вы должны ввести свои данные. Откройте файл для редактирования: sudo gedit /etc/resolv.conf Вставьте свои данные: nameserver 10.0.0.1 Сохраните и закройте файл. 6. Для настройки DHCP и получения сетевых параметров автоматически, нужно добавить две строчки (пусть у меня так поднимется карта eth0). Откройте файл: sudo gedit /etc/network/interfaces Вставьте строчки следующего содержания: auto eth0 Ваш файл будет выглядеть так: auto lo Если по каким-либо причинам вы хотите чтобы при загрузке у сетевой карты eth1 был другой MAC-адрес, для этого нужно дописать строчку hwaddress ether 00:e0:4c:d0:99:28: auto eth1 Несколько IP адресов на одной сетевой картеНа одной сетевой карте может быть несколько 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 Синтаксис простой:
|








