Как сделать свитч из компьютера
Обновлено: 05.07.2024
Сетевая инфраструктура дома или компании позволяет беспрепятственно обмениваться данными внутри созданной локальной сети, а также выходить в интернет благодаря сигналу, предоставляемому оператором. Для этого могут использоваться и маршрутизаторы (роутер) и коммутаторы и, конечно же, модемы. Многие люди ищут возможность расширить свою локальную сеть за счет дополнительных устройств, и в этом случае поможет коммутатор. Но есть и другой способ, а именно использовать старый и ненужный роутер в качестве коммутатора, и с его помощью создать более эффективную и расширенную локальную сеть.
Чем коммутатор отличается от маршрутизатора?
Очень часто термины маршрутизатор и коммутатор используются как синонимы, но на самом деле это совершенно разные устройства.
Коммутаторы - это устройства, соединяющие элементы компьютерной сети. Они оснащены несколькими гнездами LAN, благодаря которым возможно подключение нескольких устройств, входящих в состав сети, а также обмен данными между ними. Коммутатор (Switch) является самым важным устройством локальной сети Ethernet. Таким образом, вы можете создать домашнюю сеть, соединив вместе несколько компьютеров.
Маршрутизатор - это оборудование, создающее сеть, в которой передаются пакеты данных на основе анализа IP-адресов устройств источника и получателя. Маршрутизатор способен распознавать разные сети, а также распределять сетевой сигнал между компьютерами и различными гаджетами, подключенными к сети. Роль маршрутизатора состоит в том, чтобы разделять сигнал, предоставляемый модемом, между устройствами локальной сети. Разные IP-адреса, назначенные отдельным устройствам, действительны только в локальной сети, а в сети интернет для всех устройств в пределах локальной сети присваивается один и тот же IP-адрес.
Маршрутизатор vs коммутатор - что выбрать?
Многие задаются вопросом, что выбрать - коммутатор или маршрутизатор. На самом деле сделать выбор будет не сложно, поскольку работа этих устройств отличается. Коммутатор будет полезен для тех, кто хочет создать, например, в компании, локальную сеть, в рамках которой будет происходить передача данных между устройствами. Одним словом, благодаря коммутатору каждое устройство в локальной сети будет иметь доступ к одним и тем же файлам.
Маршрутизатор используется для распределения интернет-соединения между устройствами. Каждое из них будет иметь гарантированный доступ к интернету в пределах локальной сети.
Покупка коммутатора - на что обратить внимание?
Прежде всего, нужно знать, что различают два типа этих устройств. Вы можете выбрать между управляемыми и неуправляемыми моделями. Как нетрудно догадаться, в первом случае у пользователя есть возможность вручную настроить ключевые рабочие параметры, а в случае с неуправляемым режимом такой возможности нет. Также следует обратить внимание на тип устройства и, конечно, на количество разъемов.
Маршрутизатор в качестве коммутатора - как это сделать?
Если у вас завалялся старый роутер, то вы можете использовать его в качестве коммутатора, т.е. он будет работать как разветвитель, например, от одного порта LAN к трем портам LAN.
Для этого необходимо войти в настройки роутера и перейти на вкладку DHCP. Затем нажать на опцию "Настройки DHPC" или “DHPC Settings” и выбрать "отключено" (“disabled”). На этом этапе изменения нужно сохранить, поскольку вы уже настроили маршрутизатор в качестве коммутатора. Имеющиеся порты можно использовать для подключения необходимого оборудования, например, телевизора, декодера или консоли.
Адреса отдельных устройств загружаются из порта LAN 1, то есть рабочего порта маршрутизатора, а не разветвителя. Разветвитель (старый роутер), работающий в качестве коммутатора только увеличивает возможность подключения большего количества устройств.
Лежала как-то небольшая гора металла, из которой удалось собрать:
* Intel Celeron E3300 - двухядерный бомжовский селерон под 775 платформу
* ASUS P5KPL-AM EPU - материнка под 775 платформу с ddr2 памятью (что плохо) и гигабитным ethernet портом (что хорошо)
* DDR2 плашка на 1 gb оперативки
* Пару жестких дисков на 320 гигов каждый
* БП насколько-то, на сколько не помню (работает же)
* Корпус самый обычный
Первая попытка - установить туда windows server 2012 в целях "попробовать" и учебной практики (ключик MS дали сами, типа для студентов).
В итоге: с 1 активным пользователем (локальным администратором) использовано 600-700мб из 1000 всего. Не кайф. Где-то в течении месяца на данном ПК висел просто FTP сервер (filezilla server - отлично работает по ssl и мне показалось что намного проще настраивается, чем дефолтный).
Что интересно: сначала я ради интересна оставил открытым без пароля на запись. сразу (в течении полудня) положили туда Photo.scr, который быстро гуглится, это было забавно и я доступ на запись закрыл. остались попытки с access denied =)
Но мне это надоело, захотелось что-то новенького.
Все это время роутером (маршрутизатором) между моей локальной сетью и внешним миром (внешний адрес) стоял ASUS RT-N65U.
Схема сети - в принципе обычная для обычного нормального человека.
И так, погнали.
Рассказ будет без бешеных врезок для ctrl-c ctrl-v, а наоборот с объяснением каждого момента!
Непосредственно рассказ
И тут мне пришла в голову идея: а что если взять этот компьютер, вставить туда вторую сетевую карту, сделать его маршрутизатором (то бишь роутером) и поставить вместо asus'овского роутера?
Тут же началось гугление про это, из которого было ясно: люди делают все и данная мысль вполне осуществима.
Решено было делать это на базе Ubuntu Server, так как монитор у этого ПК не предполагается и GUI, соответственно, не нужно. Зашел на официальный сайт, скачал образ х64 последней (на тот момент) 16.04 убунты, записал на флешку с ultraiso - втыкаю - не загружается =\ , записал еще раз - тоже самое. Перепробовано 3 метода и 2 образа - не работает, почему было уже лень разбираться. Достал DVD-RW диск (оттуда же откуда и детали) и записал на него. Загрузилось.
В процессе установки ставлю имя ПК HiroXServer, а имя пользователя mark.
По окончании установки и логина в учетку у меня открывается bash
Теперь с этого момента схема моей сети выглядит так:
Теперь все задачи по маршрутизации трафика должен выполнять тот самый сервер-пк, через который гоняется весь трафик, а asus'овский аппарат просто служит wifi точкой доступа и на этом его задачи теперь заканчиваются.
Итак, вернемся к тому, что есть: сервер-пк, к которому подключены 2 провода - один к провайдеру, второй к коммутатору asus (то что было роутером), отсутствие интернета на всем, в том числе и на сервер-пк. =)
Первым дело я хочу настроить сетевые интерфейсы, их 3:
* lo - loopback - так называемое кольцо, 127.0.0.1, localhost, итд, которое используют некоторые сервисы
* enp3s0 - так у меня называется интерфейс (сетевая карта), что смотрит в сторону провайдера.
* enp1s0 - так у меня называется интерфейс, что смотрит в локальную сеть.
Мой провайдер идентифицирует пользователей по MAC-адресу, а затем выдает мне внешний адрес по DHCP, значит мне нужно выставить mac-адрес.
Конфигурационный файл лежит тут: /etc/network/interfaces
Открываю его nano /etc/network/interfaces.
iface lo inet loopback
auto enp3s0
iface enp3s0 inet dhcp
hwaddress ether AC:22:0B:XX:XX:XX
auto enp1s0
iface enp1s0 inet static
address 192.168.1.1
mask 255.255.255.0
CTRL+O (сохранить) -> Enter -> CTRL+X (выходим из редактора)
Интерфейсы настроены, для применения настроек нужно перезагрузить сеть одним из способов:
* перезагрузить компьютер sudo reboot
* перезагрузить саму сеть sudo /etc/init.d/networking restart
Далее запускаем пинг до Google DNS, дабы проверить, что у нас все работает:
Отлично! Значит все сделали правильно. Далее нужно сделать так, чтобы пакеты из локальной сети попадали в интернет.
Когда мы работаем из-под root'а, то есть у нас root@HiroXServer:
$ , то нужно, иначе система не даст изменять системные файлы. root - аналог администратора в windows. чтобы зайти в консоль из-под root нужно ввести sudo -i (и ввести пароль)
Первое, что мы делаем - разрешаем пересылку пакетов. Для этого нужно поставить 1 в файл /proc/sys/net/ipv4/ip_forward вручную через nano или такой командой (предварительно зайдя под root через sudo -i ):
echo 1 > /proc/sys/net/ipv4/ip_forward
Второе, что мы делаем: SNAT (Source NAT) или MASQUERADE из локальной сети в интернет. При этом адрес отправителя (например 192.168.1.2) заменяется на внешний адрес сервер-пк, из-за чего он правильно доходит к нам обратно.
sudo iptables -t nat -A POSTROUTING -o enp3s0 -s 192.168.1.0/24 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o enp3s0 -s 192.168.1.0/24 -j SNAT --to-source 228.228.228.228 (вместо этого само собой пишем статичный внешний адрес, а если адрес не статичный чтобы его каждый раз не выставлять лучше используем MASQUERADE)
Разберем как это работает:
iptables - инструмент для настройки брандмауэра netfilter в linux
-t или аналог --table - таблица, с которой я хочу работать. Их всего 3: основная filter, nat и mangle.
-A или аналог --append - добавить действие вниз в цепочку. Можно еще -I (insert), но тут роли не играет.
POSTROUTING - цепочка в таблице nat, через которую проходят все пакеты, после маршрутизации. В таблице nat есть еще PREROUTING, INPUT, OUTPUT.
-o - тут указывает из какого интерфейса пакет выходит
-s - указываем из какой сети (!) пакет пришел
-j - указываем действие, которое с этим пакетом нужно совершить
Подробнее об iptables, netfilter и их возможностях можно почитать здесь и здесь.
Далее я рекомендую удалить сразу ubuntu брандмауэр ufw, так как он возможно будет мешать:
sudo apt remove ufw -y
Для того, чтобы убедиться, что у нас все получилось пишем:
sudo iptables -t nat -L
В принципе базовая функция маршрутизатора у нас теперь работает работает, но для того чтобы это ощутить с основого пк в моей схеме нужно: настроить asus'овский агрегат в режим коммутатора и выставить ему статический ip, а затем выставить на каждом пк статичный ip. например на настольном ПК у меня будет IP 192.168.1.105.
Первое делается от модели к модели роутеров по разному, в общем нужно заменить режим с "беспроводной маршрутизатор" на "беспроводная точка доступа". В некоторых роутерах эта опция называется "Enable NAT" - ее нужно выключить. Также выставить для роутера статичный IP 192.168.1.2 (в моем случае), маску подсети 255.255.255.0 и основной шлюз 192.168.1.1
Второе - на основном пк идем панель управления -> Центр управления сетями и общим доступом -> Изменение параметров адаптера -> ПКМ по нашему Wifi соединению, свойства -> Протокол Интернета версии 4 , свойства и тут вписываем:
* Маска подсети = 255.255.255.0 (у меня автоматически вставилась)
* Основной шлюз = 192.168.1.1 (адрес сервер-пк)
* Предпочитаемый DNS-сервер = 8.8.8.8
Вуаля и интернет на основном пк опять вернулся. Можно закончить статью
но ведь долго же на каждом устройстве вводить статичный IP адрес теперь! И на каждом телефоне придется! Неудобно!
Для этого нужно настроить DHCP-сервер. Эта служба отвечает за автоматическое присвоение адресов внутри сети на основе рандома или какого-либо правила в конфиге.
Этой службой у нас будет выступать dnsmasq (он же DNS сервер). Попробуйте ввести
Будет ли в ответ что-то типа: "Dnsmasq version 2.76 Copyright (c) 2000-2016 Simon Kelley"?
Если нет, то устанавливаем
sudo apt install dnsmasq -y
и проверяем знакомой командой.
Конфигурационный файл dnsmasq лежит /etc/dnsmasq.conf
Откроем его через nano и заполняем:
dhcp-range=192.168.1.3,192.168.1.200,24h
dhcp-host=60:A4:4C:XX:XX:XX,Mark-PC,192.168.1.105
no-dhcp-interface=enp3s0
dhcp-authoritative
dhcp-leasefile=/var/log/dnsmasq.leases
dhcp-option=2,255.255.255.0
dhcp-option=3,192.168.1.1
CTRL+O (сохранить) -> Enter -> CTRL+X (выходим из редактора)
С полным списком возможных параметров можно ознакомиться здесь.
sudo /etc/init.d/dnsmasq restart
Результат должен быть "ОК"
Убираем из настроек винды на основном пк статическую привязку, переподключаемся и проверяем что у нас тот же адрес. При этом остальные устройства в сети получат случайный адрес из диапазона 192.168.1.3
Получился нереально длинный пост. Если тема интересная и зайдет, то продолжу в примерно таком же виде, расскажу как организовать PPTP VPN, OpenVPN сервера, сделать проброс портов, а так же установку dns и прокси-сервера squid с фильтрацией неугодной рекламы во всей нашей сети!
Спасибо тем, кто дочитал пост до конца.
Выслушаю любую критику и предложения.
Не претендую на лучший мануал, ибо где-то что-то мог упустить или подзабыть в процессе написания. Тег "МОЁ", так как моё =)
Читайте также: