Объединение двух локальных сетей с одинаковым номерами сетей на Linux-шлюзе
Из сети LAN1 мы хотим послать пакет в сеть LAN2. Но мы не можем послать его в сеть, номер которой одинаков с нашим. В самом частом случае 192.168.0.0/24. Если такой пакет появится в LAN1, он не будет знать, что есть LAN2, он будет искать такую машину в LAN1. Таковы правила маршрутизации по умолчанию.
Значит, надо посылать пакеты с другими адресами, которые уйдут в роутер.
Как это должно вглядеть для наблюдателя из LAN1
Например, пользователь сети LAN1 будет видеть сеть LAN2 как 10.8.1.0/24. Тут уже никакого пересечения адресов. LAN1 доволен.
Как это выглядит с обеих сторон
Из LAN1 приходит пакет с адресом отправителя 192.168.0.100 и адресом назначения 10.8.1.200. Из роутера с интерфейса LAN2 выходит тот же пакет с адресом отправителя 10.8.1.100 и с адресом назначения 192.168.0.200. Пакет проходит до адреса назначения и тот шлет в ответ на адрес отправителя со своим адресом. Пакет уходит в роутер. В нем происходит обратное преобразование и пользователь LAN1 получает ответ с того адреса, на который отправил пакет.
Теория. Путь пакета в ядре роутера: netfilter
Здесь я попытаюсь рассказать о путешествии транзитного трафика через наш Linux-роутер. Для полного понимания процесса путешествия пакета лучше видеть схему его прохождения из Википедии по цепочкам netfilter.
Наш пакет с [источником|назначением] [192.168.0.100|10.8.1.200] попадает на сетевой интерфейс роутера и первой его цепочкой будет PREROUTING.
PREROUTING
Проходя по цепочке он попадает в таблицу PREROUTING mangle. В которой посредством iptables мы определяем интерфейс, с которого он пришел, и адрес источника. Если это наш пациент, мы его помечаем действием MARK.
После чего пакет [192.168.0.100|10.8.1.200|(marked)] попадает в таблицу nat. Эта таблица предназначена для трансляции адресов. Поскольку не существует реального адреса 10.8.1.200, то на последующем этапе маршрутизации пакет будет отброшен или уйдет в неизвестном направлении. Поэтому заменяем ему адрес назначения на тот, на который он действительно должен пойти именно тут: [192.168.0.100|192.168.0.200|(marked)]. Делается это действием NETMAP, которое заменяет номер сети по маске.
ROUTING
Наш пакет пакет попадает на этап принятия решения, куда он должен идти дальше. Он промаркирован, поэтому можем отправить его в специальную таблицу маршрутизации, которую мы создали для такого случая. Там принимается решение, что пакет не предназначен для локального компьютера и должен идти в LAN2.
Пакет успешно проходит цепочку FORWARDING. Попадает опять на этап маршрутизации. Если в FORWARDING с ним ничего не случилось, а по идее не должно было. Он идет тем же путем. После чего попадает в POSTROUTING.
POSTROUTING
Без изменений доходя до таблицы nat. Мы должны изменить адрес источника. Ведь ответ на пакет [192.168.0.100|192.168.0.200] будет отправлен в локальную сеть, а не в роутер. Чтоб он попал обратно в роутер, меняем адрес источника на несуществующий [10.8.1.100|192.168.0.200]. Опять же NETMAP. После этого пакет выходит в LAN2.
С ответным пакетом проделываем обратную процедуру, чтоб он дошел до изначального источника.
Реализация
Метим входящие пакеты на нашу несуществующую сеть для дальнейшего их опознавания в netfilter. Можно обойтись и без меток, использовать в качестве критериев адрес источника, входной интерфейс и адрес назначения, но в случае сложной маршрутизации с отдельными таблицами маршрутизации решить куда отправить пакет будет проще всего по метке.
Узнаем пакет по метке и действием NETMAP в таблице PREROUTING подменяет номер сети.
В POSTROUTING NETMAP подменяет адрес источника.
После этого все обращения на подсеть 10.8.1.0/24 будут выглядеть внутри LAN2, как обращения из подсети 10.8.2.0/24.
ROUTING
Чтобы маршрутизировать пакеты по метке необходимо создать свою таблицу маршрутизации.Редактируем /etc/iproute2/rt_tables, добавляя уникальное число и название новой таблицы.
256 netmap
Далее надо добавить правило, по которому в эту таблицу будут направляться пакеты на маршрутизацию.
Теперь помеченные пакеты будут уходить на маршрутизацию в таблицу netmap.
И последним шагом нужно определить маршруты в таблице netmap.
Или можно указать в особом случае отдельный шлюз, если в эту сеть трафик от роутера идет через него. Что-то в духе:
Пока рано радоваться, к нам придет ответ из LAN2 [192.168.0.100|10.8.2.200].
Надо сделать все тоже самое, но только преобразовать обратно. Увы, netfilter сам этого не делает. Все действия уже описаны, приведу только последовательность команд для преобразования адресов в одну и в обратную сторону. (В первой таблице маршрутизации необходимости в данном случае нет, но при иных обстоятельствах может понадобиться.)
Результаты
Вот что пишет tcpdump (первый пример с vnc, второй с пингом):
12:46:46.358969 IP 192.168.0.100.41930 > 10.8.1.200.5900: Flags [P.], seq 647:657, ack 261127, win 1213, options [nop,nop,TS val 460624 ecr 171318], length 10
12:46:46.358978 IP 10.8.2.100.41930 > 192.168.0.200.5900: Flags [P.], seq 647:657, ack 261127, win 1213, options [nop,nop,TS val 460624 ecr 171318], length 10
12:46:46.505847 IP 192.168.0.200.5900 > 10.8.2.100.41930: Flags [.], ack 657, win 64879, options [nop,nop,TS val 171320 ecr 460624], length 0
12:46:46.505861 IP 10.8.1.200.5900 > 192.168.0.100.41930: Flags [.], ack 657, win 64879, options [nop,nop,TS val 171320 ecr 460624], length 0
12:47:46.363905 IP 192.168.0.100 > 10.8.1.200: ICMP echo request, id 2111, seq 1, length 64
12:47:46.363922 IP 10.8.2.100 > 192.168.0.200: ICMP echo request, id 2111, seq 1, length 64
12:47:46.364049 IP 192.168.0.200 > 10.8.2.100: ICMP echo reply, id 2111, seq 1, length 64
12:47:46.364054 IP 10.8.1.200 > 192.168.0.100: ICMP echo reply, id 2111, seq 1, length 64
Tcpdump отлично демонстрирует, как происходит преобразование адресов на входе в один интерфейс и на выходе в другой и в обратную сторону.
Так же отлично работают остальные сервисы, типа Samba и ее аналог на Windows.
Если соединение между сетями организовано посредством туннеля OpenVPN, то для правильной маршрутизации со стороны клиента в конфиг сервера необходимо добавить дополнительный маршрут через туннель.
push «route 10.8.1.0 255.255.255.0»
Создание соединения между 2-мя linux компьютерами через Wi-Fi на примере Ubuntu
Бывают случаи когда необходимо соединить компьютеры или раздать через компьютер интернет для телефона через Wifi.
Допустим соединяем 2 ноутбука оснащенные wifi картами.
На первом компьютере выполняем:
ifconfig wlan0 down
iwconfig wlan0 channel 6
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 essid ‘wifi’
iwconfig wlan0 key your_pass
ifconfig wlan0 192.168.1.1
На втором делаем тоже самое только изменив IP адрес:
ifconfig wlan0 down
iwconfig wlan0 channel 6
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 essid ‘wifi’
iwconfig wlan0 key your_pass
ifconfig wlan0 192.168.1.2
Все сеть готова 🙂 можете обмениваться файлами, ширить интернет, играть и т.д.
Так же этот пример применим если необходимо подключить iPhone к интернету, выполняем на компьютере заменяя ethX, IP_YOUR_LAN_CARD номером сетевой карты и IP адресом сетевухи через которую идет подключение к инету :
Ловим телефоном сеть, устанавлием IP 192.168.1.2 Шлюз 192.168.1.1 и ДНС выданный вам провайдером. Интернет должен работать 😉
7 комментариев
а можно ли подобным образом заставить WiFi чип (не ноутбука, а некоего другого устройства) убедить работать в качестве точки доступа?
От чего зависит такая возможность?
в теории, да 🙂
скорее всего зависит от драйверов и софта.
sudo apt-get install iw вообще не надо это отдельная утилита которой в описании ты походу ни разу не воспользовался
ifconfig wlan0 down
iwconfig wlan0 channel 6
Error for wireless request «Set Frequency» (8B04) :
SET failed on device wlan0 ; Network is down.
так и должно быть.
не должно..
под рутом пробуешь?
Network Manager попробуй приостановить sudo /etc/init.d/network-manager stop
под рутом
# ifconfig wlan0 down
# iwconfig wlan0 channel 6
Error for wireless request «Set Frequency» (8B04) :
SET failed on device wlan0 ; Network is down.
# iwlist scan
wwan0 Interface doesn’t support scanning.
ppp0 Interface doesn’t support scanning.
eth0 Interface doesn’t support scanning.
lo Interface doesn’t support scanning.
wlan0 Interface doesn’t support scanning : Network is down
# /etc/init.d/network-manager stop
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service network-manager stop
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) utility, e.g. stop network-manager
network-manager stop/waiting
# ifconfig wlan0 down
# iwconfig wlan0 channel 6
Error for wireless request «Set Frequency» (8B04) :
SET failed on device wlan0 ; Network is down.
# /etc/init.d/network-manager start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service network-manager start
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start network-manager
network-manager start/running, process 6122
#
# modprobe ath9k чтобы беспроводная снова появилась в менежере соединений
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Объединяем два компьютера в локальную сеть
Соединяем компьютеры в сеть
Как становится ясно из вступления, объединить два ПК в «локалку» можно двумя способами – напрямую, с помощью кабеля, и через роутер. Оба эти варианта имеют свои плюсы и минусы. Ниже мы разберем их подробнее и научимся настраивать систему на обмен данными и выход в интернет.
Вариант 1: Прямое соединение
При таком соединении один из компьютеров выступает в роли шлюза для подключения интернета. Это значит, что на нем должны быть как минимум два сетевых порта. Один для глобальной сети, а второй для локальной. Впрочем, если интернет не требуется или он «приходит» без использования проводов, например, через 3G модем, то можно обойтись и одним LAN-портом.
Схема подключения проста: кабель включается в соответствующие разъемы на материнской плате или сетевой карте обеих машин.
Обратите внимание, что для наших целей нужен кабель (патч-корд), который предназначен для прямого соединения компьютеров. Называется такая разновидность «кроссовером». Впрочем, современное оборудование способно самостоятельно определять пары для приема и передачи данных, поэтому обычный патч-корд, скорее всего, также будет нормально работать. Если возникнут неполадки, то кабель придется переделать или найти в магазине нужный, что бывает весьма непросто.
Из плюсов этого варианта можно выделить простоту подключения и минимальные требования по оборудованию. Собственно, нам понадобится только патч-корд и сетевая карта, которая в большинстве случаев уже встроена в материнскую плату. Второй плюс – высокая скорость передачи данных, но это зависит уже от возможностей карты.
Минусы таковыми можно назвать с большой натяжкой – это сброс настроек при переустановке системы, а также невозможность доступа в интернет при выключенном ПК, являющимся шлюзом.
Настройка
После подключения кабеля требуется настроить сеть на обоих ПК. Для начала необходимо присвоить каждой машине в нашей «локалке» уникальное имя. Это нужно для того, чтобы программное обеспечение могло находить компьютеры.

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

В Windows 7 и 8 данный блок параметров можно найти так:

Дальше требуется выполнить настройку адресов для обоих компьютеров.
В поле «Маска подсети» автоматически подставятся нужные значения. Здесь ничего менять не нужно. На этом настройка закончена. Жмем ОК.
Маску оставляем по умолчанию, а вот в полях для адресов шлюза и DNS-сервера указываем айпи первого ПК и нажимаем ОК.
В «семерке» и «восьмерке» следует перейти в «Центр управления сетями» из области уведомлений, а затем кликнуть по ссылке «Изменение параметров адаптера». Дальнейшие манипуляции производятся по тому же сценарию.

Заключительная процедура – разрешение совместного доступа к интернету.

Теперь на второй машине появится возможность работать не только в локальной сети, но и в глобальной. Если требуется обмениваться данными между компьютерами, необходимо будет выполнить еще одну настройку, но об этом мы поговорим отдельно.
Вариант 2: Соединение через роутер
Для такого подключения нам понадобится, собственно, сам роутер, набор кабелей и, разумеется, соответствующие порты на компьютерах. Тип кабелей для соединения машин с роутером можно назвать «прямым», как противоположность кроссовому, то есть жилы в таком проводе соединены «как есть», напрямую (см. выше). Такие провода с уже смонтированными коннекторами можно без проблем найти в розничной продаже.
Маршрутизатор имеет несколько портов подключения. Один для получения интернета и несколько для подключения компьютеров. Различить их просто: LAN-разъемы (для машин) группируются по цвету и пронумерованы, а порт для входящего сигнала стоит особняком и имеет соответствующее название, обычно написанное на корпусе. Схема подключения в этом случае также довольно несложная – кабель от провайдера или модема подсоединяется в разъем «Internet» или, в некоторых моделях, «Link» или «ADSL», а компьютеры в порты, подписанные как «LAN» или «Ethernet».
Плюсы такой схемы состоят в возможности организации беспроводной сети и автоматическом определении системных параметров.
Из минусов можно отметить необходимость покупки роутера и его предварительную настройку. Делается это с помощью инструкции, входящей в комплект поставки и обычно не вызывает затруднений.
Для настройки нужных параметров в Windows при таком подключении никаких действий предпринимать не требуется – все установки производятся в автоматическом режиме. Нужно только проверить способ получения айпи-адресов. В свойствах протокола IPv4 подключения по локальной сети необходимо поставить переключатель в соответствующее положение. Как добраться до настроек параметров, читайте выше.
Разумеется, также нужно не забыть установить разрешения общего доступа и сетевого обнаружения, как и для кабельного соединения.
Далее мы поговорим о том, как обеспечить работу с общими ресурсами – папками и файлами – в нашей «локалке».
Настройка доступа к ресурсам
Общий доступ подразумевает возможность использования каких-либо данных всеми пользователями локальной сети. Для того чтобы «расшарить» имеющуюся на диске папку, необходимо проделать следующее:

Доступ к «расшаренным» директориям осуществляется из области переходов «Проводника» или из папки «Компьютер».
В Windows 7 и 8 названия пунктов меню немного отличаются, но принцип действия такой же.
Заключение
Организация локальной сети между двумя компьютерами – процедура не сложная, но требующая некоторого внимания со стороны пользователя. Оба способа, приведенные в этой статье, имеют свои особенности. Наиболее простым, с точки зрения минимизации настроек, является вариант с роутером. Если же такого устройства в наличии нет, то вполне можно обойтись и кабельным соединением.
Помимо этой статьи, на сайте еще 12397 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Как организовать локальную сеть?
Здравствуйте. У меня есть роутер zyxel nbg334wee и мне бы очень хотел организовать локальную сеть для двух компьютеров (linux и mac). Хотелось бы узнать как это сделать.
Почитай про одноранговые сети.
Ах да, в чём, собственно, вопрос?
Я просто понятия не имею как мне ее организовать. Я конечно могу и дальше носиться между двумя компьютерами с флешкой, но ведь это не комильфо.
прочитать-то прочитал только вот слов много, а практических руководств ноль. Мне же надо знать какие кнопочки понажимать чтобы все заработало.
Ок. Только ты вопрос-то задай. Только сначала почитай про http://ru.wikipedia.org/wiki/Техническое_задание
Твои слова «как её организовать» настолько мутные и абстрактные, что, не имея телепатических способностей, узнать что ты хочешь довольно тяжело.
А почему не работает простое втыкание витой пары между компами и роутером?
Так, ладно, попробуем по пунктам.
ну так будете отвечать?
В нормальных людей сейчас рабочий день. Ответить могут и сразу, и через час, и через день. Или вовсе могут не ответить. Это Интернет, и никто никому ничем не обязан. Имей терпение.
Или посмотреть в сторону samba.
За nfs cпасибо. А есть что-нибудь подобное только без сервера?
ох, прости. Я не понял сначала про протокол толком. Оказывается компьютер может динамически менять статус.
Давай сразу проясним следующее:
Объяснить как сетевой кабель обжать или что требуется то? в чем проблема?
настраивай роутер на выдачу ip адресов, или вбивай врусную на каждой машине, фильтрацию по макам и шифрование вайфая дальше хоть nfs хоть самбу, за подробностями в гугль
какие кнопочки понажимать чтобы все заработало.
локалка по wi-fi между компьютерами под линукс
есть два компа с линуксами на борту. один ноут, второй десктоп с wifi свистком- как настроить локалку между ними? годные ссылки для чайника приветствуются.
На одном компе организовать точку доступа, подключаться к ней со второго.
На одном компе организовать точку доступа, подключаться к ней со второго.
было бы все так просто. ничего не видится и не подключается http://rghost.ru/43026170.view http://rghost.ru/43026185.view
судя по гуглу нужно снова ковыряться в конфигах и мышкой в гуе не настроить. 21 век на дворе.
Там конфигов на 5 строчек.
Болезные красноглазы не осознают всей убогости, в то время как это делается пароу кликов.
Болезные красноглазы не осознают всей убогости, в то время как это делается пароу кликов.
ну расскажи уже о них. о кликах
Громче скажи, а то, пробурчал что-то невнятное.
Клики только в гномощели, или по ссылке которую тебе выше дали. Или ты совсем не читаешь, что тебе отвечают? К тому же та ссылка вторая в выдаче гугла.
спасибо. разберусь. но сам факт удручает.
Клики только в гномощели, или по ссылке которую тебе выше дали. Или ты совсем не читаешь, что тебе отвечают? К тому же та ссылка вторая в выдаче гугла.
да читаю. уже понял.
Ты эти пять строчек напишешь и забудешь, ты же не собираешься их менять каждые 15 минут.



















