Этот компьютер подключен к нескольким сетям

Этот компьютер подключен к нескольким сетям

Архив номеров / 2007 / Выпуск №2 (51) / Подключаем несколько локальных сетей с пересекающейся адресацией к одному компьютеру

Рубрика: Администрирование / Продукты и решения

Андрей Кишкин

Подключаем несколько локальных сетей с пересекающейся адресацией к одному компьютеру

В вашу квартиру или офис проведено несколько локальных сетей, но их одновременному подключению к компьютеру мешают пересекающиеся адресные пространства. Сети можно «подружить», если вы используете ОС Linux.

Локальные пользовательские сети стихийно появляются и исчезают повсюду, они могут охватывать как целые городские районы, так и соединять лишь пару компьютеров в квартире.

Ситуация, когда компьютер подключен одновременно к нескольким сетям, нередка. Но часто одновременной работе во всех этих сетях препятствует объективная причина – пересекающаяся, а чаще всего и вовсе одинаковая адресация. Что же делать?

Одни эту проблему решают физическим подключением только одной из «проблемных» сетей к компьютеру и «перетыкая» кабели по мере необходимости.

Другие устанавливают для каждой сети отдельную плату в системный блок и «переключают» сети на уровне операционной системы, активизируя нужный сетевой интерфейс и выключая все ненужные.

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

Последний подход универсален, но при всех своих плюсах требует, во-первых, дополнительное «железо», а во вторых – умения это «железо» настраивать.

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

Для начала рекомендую ознакомиться с материалами [1, 2].

Эти материалы можно найти и на русском языке, но найденные мной переводы несколько устарели.

Требования к системе:

  • Ядро Linux 2.6 (я использовал 2.6.17.9), собранное с поддержкой следующих опций netfilter:

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

  • IPTables 1.2.9 и выше (я использовал 1.3.3).

При тестировании работы схемы использовался дистрибутив Slackware Linux 10.2, но вы можете работать с другими дистрибутивами, так как схема универсальна.

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

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

Исходные данные для подключений

Схематично это они представлены на рисунке.

Алгоритм решения поставленной задачи состоит в замене неуникальных адресов на уникальные, таким образом можно «обмануть» систему маршрутизации, заставив ее «плясать под нашу дудку».

О том, какими критериями нужно пользоваться при выборе сети, адреса которой мы будем подменять, читайте в конце статьи, пока же для простоты выберем в качестве «подопытной» сеть, подключенную к интерфейсу Eth1.

Задачу конфигурирования системы можно разбить на три, более мелкие:

  1. Идентификация и инициализация входящего трафика.
  2. Инициализация и маршрутизация ответного трафика.
  3. Инициализация и маршрутизация собственного трафика системы.

Под идентификацией трафика подразумевается определение сети источника, а под инициализацией – придание идентифицированным пакетам неких специфических черт, разговор о которых пойдет дальше.

Идентификация и инициализация входящего трафика

Инициализацию будем производить в зависимости от интерфейса, с которого трафик пришел. Неуникальный адрес хоста назначения (нашего компьютера) (в общем случае не уникальна адресация сетевых сегментов, подключенных к компьютеру, но так как из каждого сегмента нашей системе принадлежит только один адрес, будем именно его называть неуникальным, хотя это может быть и не так, т.е. адреса разные, но принадлежат одному сетевому пространству) будем заменять уникальным. Это поможет нам решить и еще одну задачу – задачу маршрутизации обратного трафика, но об этом позже.

Мы выбрали в качестве «подопытной» сеть, подключенную к интерфейсу eth1, поэтому назначаем дополнительный уникальный адрес на этом интерфейсе:

ip address add 192.168.1.10/32 dev eth1

Адрес можно выбирать любой удобный, особой роли он не играет, важно, чтобы он не входил в сети, подключенные к другим сетевым интерфейсам.

Читайте также:  Коммутаторы cisco catalyst 2960

Обратите внимание на маску сети, в общем случае она может быть любой, но так как адрес не участвует в реальном сетевом взаимодействии, то лучше ее сделать как в нашем примере.

Далее заменяем адрес хоста назначения в пакетах, приходящих с интерфейса eth1:

iptables –t NAT –A PREROUTING –i eth1 –s 192.168.0.0/24 –j DNAT -–to-destination 192.168.1.10

Инициализация и маршрутизация ответного трафика

Маршрутизацию обратного трафика будем производить «от источника», т.е. в зависимости от адреса отправителя, т.к. он уникальный.

Создадим в системе дополнительную таблицу маршрутизации для каждой сети. Из консоли дайте следующие команды:

echo /etc/iproute2/rt_tables >> 10 TO_ETH0

echo /etc/iproute2/rt_tables >> 20 TO_ETH1

или добавьте в файл /etc/iproute2/rt_tables строки соответствующие «10 TO_ETH0», «20 TO_ETH1» вручную. В скрипт эти команды добавлять не нужно, достаточно запустить их один раз.

Добавляем маршрут по умолчанию в эти таблицы:

ip route add default dev eth1 table TO_ETH1

ip route add default dev eth0 table TO_ETH0

А теперь создаем правила, в соответствии с которыми все пакеты, у которых в поле «От» указан адрес 192.168.1.10, нужно маршрутизировать в соответствии с таблицей TO_ETH1, т.е. передавать через интерфейс eth1, а все пакеты у которых в поле «От» указан адрес 192.168.0.10, передавать через интерфейс eth0.

iptables –t mangle –A OUTPUT –s 192.168.0.10/24 –j MARK -–set-mark 0

iptables –t mangle –A OUTPUT –s 192.168.1.10/24 –j MARK -–set-mark 1

Маршрутизируем в зависимости от метки:

ip rule add fwmark 1 table TO_ETH1

ip rule add fwmark 0 table TO_ETH0

Теперь осталось заменить адрес, и пакет может отправляться в путешествие по сети:

iptables –t nat –A OUTPUT –s 192.168.1.10 –j DNAT -–to 192.168.0.10

Теперь наш компьютер может отвечать на запросы (например, DNS или ICMP) из обеих подключенных сетей. Можно попробовать его «попинговать» и насладиться полученным эффектом.

Инициализация и маршрутизация собственного трафика системы

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

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

Логика работы такова: при обращении к хосту из сети, подключенной к интерфейсу eth1, заменяем адрес сети хоста с 192.168.0.0 на 192.168.1.0, например, пишем не:

При обращении к сети, подключенной к интерфейсу eth0 все остается по-старому.

Существует один не очень приятный момент: невозможность работы с DNS-сервером сети, подключенной к интерфейсу eth1 (распространяется только на подменяемые нами адреса, т.е. все нелокальные для этой сети имена (например, интернет-имена) будут разрешаться корректно). То есть посылать DNS-запросы вы, конечно, можете, но ответы сервера теперь будут «некорректными», эта проблема решается занесением нужных, но уже откорректированных записей в файл /etc/hosts. То есть если в сети, подключенной к интерфейсу eth1, имеется хост с именем server.local и адресом 192.168.0.1, то файл /etc/hosts следует прописать server.local 192.168.1.1.

Для реализации схемы, описанной выше, нам требуется только заменить адрес сети на выходе:

iptables –t nat –A POSTROUTING –d 192.168.1.0/24 –j NETMAP –to 192.168.0.0

И все. Пакеты будут корректно отмаршрутизированы при помощи правил, созданных нами выше.

Теперь несколько слов о том, как следует подходить к выбору сети, в которой будем «подменять» адреса.

Во-первых, подменять адреса нужно в более «простой» сети, т.е. в той, где меньше сервисов (выделенные серверы и т. д.).

Во-вторых, не стоит выбирать сеть, адреса в которой выдаются по DHCP. Для гарантированной работы конфигурации следует в стартовом скрипте каждый раз выяснять свой адрес, например, через «ip link sh».

Будьте предельно внимательны при наборе правил, т.к. даже малейшие ошибки могут привести к серьезным проблемам, поэтому перед подключением к реальным сетям работоспособность конфигурации настоятельно рекомендую проверить на «испытательном стенде»: вашем ПК и нескольких подключенных к нему.

Две сетевые карты на одном компьютере в разных подсетях

Друзья, совсем недавно я опубликовал пост о сетевых настройках и маршрутизации для одновременной работы выделенного VPN-канала и общего интернета.

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

Читайте также:  Приложение для преобразования фото в рисунок

Но тем не менее с недавних пор на одном рабочем месте она (схема) перестала работать. Почему? Ведь более года ничего не вызывало нареканий.

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

Две сетевые карты на одном компьютере в разных подсетях

Именно так, друзья, другого выхода я не нашел. Теперь на одной рабочей машине будут одновременно "трудиться" установленная в разъем PCI материнской платы внешняя сетевая карта, а также встроенная (штатная).

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

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

Значит, именно к ней подключаем витую пару из локалки. В конкретной ситуации включение в сеть происходит при помощи неуправляемого свитча.

Вторая же карта будет "смотреть" в сеть VPN. Для этого роутер, который обеспечивает соединение с данным выделенным каналом, напрямую подключаем к ней.

Вот и все. Теперь осталось посмотреть на образец сетевых настроек на обеих картах. Скриншоты показаны на примере Windows 10. Итак, вот первая карта. Помним, это подключение в локальную сеть и интернет.

192.168.100.28 — адрес компьютера в локальной сети

192.168.100.2 — адрес роутера, раздающего интернет

В разделе "Дополнительно" ничего делать не надо.

А теперь давайте обратим внимание на вторую сетевую карту. Вот что мы видим.

IP-адрес — значение CE согласно данным провайдера

Маска подсети — маска согласно данным провайдера

Основной шлюз — PE согласно данным провайдера

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

Дальнейшие тесты показали, что пакеты больше не терялись в VPN линии. Это победа! Теперь на одном компьютере прекрасно работают несколько сетей одновременно. Причем они имеют разные шлюзы. А раз так, значит, тема полностью закрыта.

Всем привет! И сегодня у нас очередной очень интересные и важный вопрос – какую сеть выбрать домашнюю или общественную, и какая из них лучше. Если ответить быстро – то всё зависит от ситуации, а также от сетки, к которой вы подключаетесь. Также эти сети по-другому ещё можно назвать как: общедоступная и частная.

Компьютер или ноутбук при подключении к новому пространству, сразу же оповестит пользователя вот таким вот окном в Windows 10.

В Windows 7 это окошко также будет иметь пункт «Сеть предприятия», которое будет иметь абсолютно то же описание как и в домашней сетки, что может запутать многих пользователей. По сути разницы никакой нет между частной и рабочей сетью.

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

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

Далее вы увидите схему подключения. Чуть ниже будет номер локалки и её статус.

В чем разница

А теперь давайте постараемся разобраться поподробнее в чем же разница. К примеру, у вас есть ноутбук, на котором есть общая папка с фотографиями и видео. Все фото и видео домашнее и открыто в общем использовании, для того чтобы ваши родные из дому могли в любой момент зайти в эту папку и посмотреть или скачать эти файлы.

Дома, чтобы была такая возможность, нужно чтобы локалка была «домашняя» или «частная». Тогда система Виндовс разрешает доступ из локальной сети всем устройствам к данным папкам. Сеть стандартно раздается домашним роутер, а подключиться извне можно только с помощью Wi-Fi при знании точного пароля.

Читайте также:  Как раздавать интернет через usb на андроид

Теперь представим, что вы с ноутбуком ещё ходите на работу или в кафе. Прейдя в общественное место, вы сразу же подключаетесь к Wi-Fi. Так вот, чтобы посторонние пользователи не смогли просматривать фотографии и видео вашей семьи в общественной папке – нужно просто выбрать «общественную сеть». Тогда доступ ко всем общим папкам, файлам и принтерам будет полностью закрыт.

Какую сеть лучше выбрать и какая лучше

Нужно сразу понимать, что частная и общественная сеть профилей безопасности не лучше и не хуже. Они просто имеют разную политику безопасности, о которой я говорил выше. Тут всё зависит от ситуации. Если вы подключены к домашней локалке и хотите, чтобы другие подключенные устройства имели доступ к общим папкам – то включаем домашнюю или частную сетку.

Если же вы подключены к общественной локалке в кафе или на предприятии, то лучше все же включить «общественную» или «общедоступную» сетку. Но тут все зависит от потребности, на самом деле дома также можно будет включить второй вариант и вас просто не будет видно в локалке.

Как поменять профиль на ПК

Windows 7

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

Далее просто нажимаем на названия профиля чуть ниже сети. Вылезет стандартное окошко, где вы можете уже выбрать другой профиль.

Windows 10

  1. В меню пуск нажимаем на значок шестерни;
  2. Далее находим раздел сетей и интернета и переходим туда;
  3. Теперь слева выбираем «Состояние» и чуть ниже выбираем «Изменить свойства подключения»;

  1. Теперь просто выбираем профиль.

Если у вас Wi-Fi, то сделать это куда быстрее – нажимаем по подключению и далее переходим в раздел параметров.

Теперь слева нажимаем по «Wi-Fi», а далее нажимаем по локалке, к которой вы подключены. Вылезет то же самое окошко с выбором параметров доступа.

Постарайтесь выбрать профиль правильно. Иногда при неправильном выборе, некоторые функции в локальной сети выключается. Например, тот же самый DLNA, который позволяет просматривать фильмы, фотографии и прослушивать музыку со SMART телевизора.

Детальная настройка

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

Опять нажимаем по нашему подключению и переходим в центр управления сетями. Далее нужно найти раздел «Изменить дополнительные параметры общего доступа». На десятке он называется как «Дополнительные параметры общего доступа».

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

А теперь давайте пройдемся по пунктам. Первый пункт «Сетевое обнаружение» – если его полностью выключить, то компьютер не будет видно в локалке. Для домашней включаем данный пункт.

«Общий доступ к файлам и принтерам» – тут все понятно, если включить данную функцию, то расшаренные файлы будут видны другим компьютерам.

«Доступ к общим папкам» – тут всё аналогично с прошлым пунктом, только имеется ввиду именно общие папки.

Про 128 или 40/56 битное шифрование – лучше данный пункт не трогать и оставить по умолчанию.

А теперь самый важный пункт «Общий доступ с парольной защитой». Если включить данную функцию, то общая папка будет видна в сети, но вот, чтобы на неё зайти, нужно будет ввести пароль. Очень часто данный пункт включен по умолчанию в «домашнем профиле», в таком случае многие не могут понять, почему нельзя подключится к другом компьютеру, ноутбуку дома. А нужно всего лишь выключить эту функцию. Для рабочей группы, пароль можно включить.

Ссылка на основную публикацию
Экран на телефоне мерцает полосками
Доброго времени суток! Большое количество пользователей android устройств, сталкиваются с проблемой, мерцание экрана. Сегодня в этой теме мы опишем возможные...
Что такое django python
Django Тип каркас веб-приложений Автор РазработчикDjango Software FoundationНаписана наPython[2]Интерфейсвеб-интерфейсОперационная системакроссплатформенностьПервый выпуск2005[1]Последняя версия 3.0.4 ( 4 марта2020 ) [3] Лицензиямодифицированная лицензия...
Что такое hangouts и для чего
Хэкгаутс что это за программа на телефоне Добрый день, друзья. Для смартфонов на разных платформах существуют тысячи программ. Сейчас мы...
Экранная камера без скачивания
«Экранная Камера» — это компактная программа, позволяющая быстро и качественно захватывать любое видео с экрана монитора. Теперь вы можете без...
Adblock detector