LXF169: Создание сети
Olkol (обсуждение | вклад) |
Olkol (обсуждение | вклад) м (Olkol переименовал страницу LXF168: Создание сети в LXF169: Создание сети) |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 120: | Строка 120: | ||
Если добавить их в файл /etc/hosts на обоих компьютерах, вы должны увидеть, что компьютеры пингуются по именам lxf-network-1 и lxf-network-2, и вас перенаправляют на нужный компьютер – так-то лучше. | Если добавить их в файл /etc/hosts на обоих компьютерах, вы должны увидеть, что компьютеры пингуются по именам lxf-network-1 и lxf-network-2, и вас перенаправляют на нужный компьютер – так-то лучше. | ||
− | Создаем роутер | + | ===Создаем роутер=== |
Пока мы не задавали шлюз ни на одном из наших компьютеров, поскольку получали его от DHCP из сети NAT VirtualBox по умолчанию вместе с данными DNS, и таким образом наши компьютеры подключались к внешнему Интернету. Чтобы продемонстрировать еще кое-какие возможности сети, отключим соединение NAT на второй виртуальной машине и настроим первую как роутер для предоставления доступа в Интернет. | Пока мы не задавали шлюз ни на одном из наших компьютеров, поскольку получали его от DHCP из сети NAT VirtualBox по умолчанию вместе с данными DNS, и таким образом наши компьютеры подключались к внешнему Интернету. Чтобы продемонстрировать еще кое-какие возможности сети, отключим соединение NAT на второй виртуальной машине и настроим первую как роутер для предоставления доступа в Интернет. | ||
Строка 152: | Строка 152: | ||
Если вы хотите подробнее узнать об IPTables, прочтите несколько HowTo на сайте Netfilter: http://netfilter.org/documentation/. | Если вы хотите подробнее узнать об IPTables, прочтите несколько HowTo на сайте Netfilter: http://netfilter.org/documentation/. | ||
− | Вот и все, на что у нас хватило места в этом месяце. Но не отчаивайтесь: за последние два урока вы многое узнали о сети. Проявив немного терпения, вы сможете читать другие руководства и создавать гораздо более сложные конфигурации, точно соответствующие вашим потребностям. | | + | Вот и все, на что у нас хватило места в этом месяце. Но не отчаивайтесь: за последние два урока вы многое узнали о сети. Проявив немного терпения, вы сможете читать другие руководства и создавать гораздо более сложные конфигурации, точно соответствующие вашим потребностям. |
+ | |||
+ | {{Врезка|left|Ширина=98%|Заголовок=Дистрибутивы на базе Debian |Содержание= | ||
+ | В этой статье мы занимались конфигурацией, специфичной для Red Hat, а в CentOS используется именно эта модель. Конечно, дистрибутивы на базе Red Hat – не единственное достойное решение для серверов; многие предпочитают Debian или его более молодой и популярный вариант Ubuntu. | ||
+ | |||
+ | Однако в дистрибутивах на базе Debian используется другой подход. Все утилиты, о которых мы вам рассказали – набор команд ip, ping и т. д. – здесь работают. Более того, файлы вроде /etc/resolv.conf и /etc/hosts находятся в тех же местах. | ||
+ | |||
+ | Зато различие есть в файлах настройки интерфейса. Вместо разбиения конфигурации на отдельные файлы, такие как ifcfg-eth0 и ifcfg-eth1 в Red Hat, в дистрибутивах на базе Debian используется файл /etc/network/interfaces, где находятся настройки всех интерфейсов. Вот пример этого файла: | ||
+ | |||
+ | auto eth0 | ||
+ | |||
+ | iface eth0 inet static | ||
+ | |||
+ | address 192.168.1.2 | ||
+ | |||
+ | netmask 255.255.255.0 | ||
+ | |||
+ | Первая строка auto eth0 говорит, что интерфейс eth0 нужно включить при выполнении команды ifup -a или при загрузке системы. | ||
+ | |||
+ | Следующие параметры, начиная с iface, содержат подробные параметры конфигурации интерфейса. Сначала указывается интерфейс, затем протокол подключения. Здесь возможны несколько вариантов, но самый популярный – inet, означающий IP-сети. | ||
+ | |||
+ | Слово static – это «метод» получения адреса; другие варианты – dhcp и bootp. Методы могут принимать дополнительные параметры, и они приводятся далее с отступами под заголовком. Наш пример очень простой, в нем задаются IP-адрес и маска подсети для этого интерфейса. | ||
+ | |||
+ | Более подробную информацию и возможные параметры можно найти на странице man /etc/network/interfaces. | ||
+ | }} | |
Текущая версия на 09:39, 14 ноября 2018
|
|
|
Сеть. Заставим компьютеры с Linux общаться друг с другом.
Содержание |
[править] Сеть: Построим маршрутизатор
Познакомив вас с кирпичиками, из которых строят сети, Джонатан Робертс складывает из них реально работающую сеть.
Месяц назад мы познакомили вас с основными понятиями сетей – пакетами, физическими соединениями и логической адресацией, а также с утилитами, при помощи которых в Linux можно исследовать работу сети. Пользуясь ими, вы сможете эффективно работать с сетями и диагностировать проблемы, с которыми столкнетесь.
На данном уроке мы покажем, как эти элементы сочетаются друг с другом в настоящих сетях. Сперва заставим два компьютера взаимодействовать друг с другом напрямую, затем продемонстрируем, как превратить компьютер с Linux в маршрутизатор (он же – роутер). Парк компьютеров вам не потребуется – все это мы будем делать в VirtualBox, но вы должны уметь применять те же самые технологии к настоящим сетям.
В наших примерах мы воспользуемся CentOS – он основан на Red Hat Enterprise Linux и является популярной платформой для серверов. Если вам интересен Ubuntu или другие дистрибутивы на основе Debian, загляните во врезку «Дистрибутивы на базе Debian».
Прежде чем перейти к сети, создадим систему, в которой мы будем практиковаться. Сначала установите VirtualBox. Он должен быть в репозиториях большинства дистрибутивов, так что для его установки просто воспользуйтесь менеджером пакетов своего дистрибутива. После этого загрузите минимальный установочный диск CentOS 6.3 (http://bit.ly/1446qQO).
Теперь создайте две новых виртуальных машины (ВМ) в VirtualBox, следуя нашему пошаговому руководству на соседней странице, позаботившись добавить все необходимые сетевые интерфейсы.
Затем повторите те же шаги для второй ВМ, убедившись, что она подключена к той же внутренней сети. Создав виртуальные машины с двумя такими сетевыми интерфейсами, как у нас, мы сделаем так, что они обе смогут подключаться к Интернету (через NAT по умолчанию), но также смогут и взаимодействовать друг с другом напрямую по внутренней сети, которую мы добавили. Эта внутренняя сеть эквивалентна подключению двух виртуальных машин к одному коммутатору [switch] или простому соединению их сетевым кабелем.
[править] Базовая настройка сети
Завершив установку на обоих компьютерах, подключим обоих к Интернету через сеть NAT по умолчанию. Это даст нам возможность познакомиться с сетевыми конфигурационными файлами Red Hat и освежить кое-что, о чем мы говорили в прошлый раз.
После загрузки виртуальной машины первым делом надо перейти в каталог /etc/sysconfig/network-scripts. В дистрибутивах на базе Red Hat этот каталог содержит скрипты запуска и файлы настройки всех сетевых устройств, подключенных к компьютеру. Если вы следовали нашему пошаговому руководству, вы должны увидеть два конфигурационных файла – ifcfg-eth0 и ifcfg-eth1 (в других версиях Red Hat это могут быть ifcfg-em1 и ifcfg-em2). Eth0 – первое сетевое устройство, и оно должно ссылаться на первый адаптер (Adapter 1) в настройках VirtualBox – это сеть NAT.
Откройте в Vi файл ifcfg-eth0 и убедитесь, что в нем есть такие параметры со своими значениями:
NM_CONTROLLED=”no”
BOOTPROTO=”dhcp”
ONBOOT=”yes”
Первая строка говорит о том, что менеджер сети (NetworkManager) не должен управлять этим интерфейсом – раз мы пытаемся делать это вручную, его вмешательство может внести путаницу, поэтому мы его отключаем.
Вторая строка определяет, какой протокол должен использоваться для получения IP-адреса. Здесь мы указали DHCP (Dynamic Host Configuration Protocol – протокол динамической настройки хоста). Это означает, что ВМ получит IP-адрес, шлюз и информацию о DNS-серверах автоматически с удаленного сервера. В данном случае это не удаленный сервер, а VirtualBox, который эмулирует его.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Возможны и другие значения параметра BOOTPROTO, в том числе static, если вы хотите вручную назначить этому компьютеру постоянный IP-адрес.
Наконец, ONBOOT говорит, что интерфейс должен запускаться при каждом запуске скриптов инициализации сети на этом компьютере, то есть при загрузке системы или перезапуске сетевого сервиса. Проверьте это сами, выполнив от имени root команду /etc/init.d/network restart, и убедившись, что сеть работает так, как должна. Для этого можно попробовать отправить пакеты на популярный сайт, например, на Google, командой ping: ping google.com.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Немного везения, и ваши пакеты вернутся – это значит, что вы подключены к Интернету, следовательно, ваши IP-адрес, маска подсети (или префикс), шлюз по умолчанию и DNS – все, что нужно для подключения подсети – заданы верно и работают правильно.
Просмотреть все эти настройки можно, заглянув в различные конфигурационные файлы или с помощью утилит, о которых мы говорили в прошлый раз. Например, команда ip route выведет шлюз по умолчанию (в данном случае, виртуальный шлюз, предоставляемый VirtualBox); в /etc/resolv.conf можно найти сервер имен; а команда ip a выведет ваши IP-адрес и префикс. Повторите все эти действия для второго компьютера.
[править] Статические адреса
В предыдущем разделе большую часть трудной работы сделали протокол DHCP и VirtualBox. Теперь мы настроим сетевое соединение между двумя виртуальными машинами, но все настройки будем добавлять сами.
Первое, что нужно отметить – если бы это были настоящие компьютеры, их бы пришлось соединять физическим кабелем, либо напрямую, либо через свитч или роутер. Так как это виртуальные машины, мы уже сделали это, подключив их вторые интерфейсы к одной и той же внутренней сети.
Поэтому, как и прежде, начнем с каталога /etc/sysconfig/network-scripts. Вам понадобится файл ifcfg-eth1, но он будет выглядеть не так, как в прошлый раз:
NM_CONTROLLED=”no”
BOOTPROTO=”static”
IPADDR=”192.168.1.2”
PREFIX=24
ONBOOT=”yes”
Протокол загрузки теперь установлен в static [статический] – это означает, что вместо автоматического получения IP-адреса нам придется задать его вручную. Это делается в параметрах IPADDR и PREFIX. IP-адрес может быть любым, но принято, чтобы он начинался с 10 (8-битный префикс), 172.16 (12- битный префикс) или 192.168 (16- битный префикс). Эти адреса выделены для «частного» использования, и у большинства роутеров они закрыты для доступа извне. Кроме того, не забывайте, что первый (для 24-битного префикса – .0) и последний (.255) адреса зарезервированы как адрес сети и широковещательный адрес, поэтому их назначать нельзя.
Чтобы выбрать префикс, взгляните на врезку «Подробнее про IP-адреса» из прошлой статьи и затем примите решение. Помните, что для 24-битного префикса только последний октет идентифицирует хост, а остальные – сеть; для 16-битного префикса, два последних октета представляют хост, а первые два – сеть. Мы воспользуемся 24-битным префиксом.
После этого сбросьте сеть, как раньше.
Затем попытайтесь попинговать со второй виртуальной машины первую по ее новому IP-адресу: 192.168.1.2. Ни один из пакетов не должен вернуться. Чтобы соединение можно было установить, нужно дать второму компьютеру IP-адрес с точно таким же префиксом (или маской подсети). Мы советуем использовать 192.168.1.3. Добавьте его в соответствующий файл /etc/sysconfig/network-scripts и перезапустите сеть.
Если теперь попинговать адрес 192.168.1.2 со второго компьютера, пакеты должны возвращаться. Более того, если перейти на первый компьютер и попробовать попинговать 192.168.1.3, это тоже должно работать. Подключение по SSH также должно работать, и если запустить web-сервер на одной из виртуальных машин, он должен быть доступен с другой.
Теперь два компьютера могут взаимодействовать. Отлично! Но при каждом подключении набирать IP-адреса неудобно. Обычно компьютерам назначают имена, которые проще запомнить и легче набирать. Это можно сделать несколькими способами. Например, в сети с большим количеством компьютеров стоит создать свой сервер DNS (Domain Name System – система доменных имен), но это выходит далеко за рамки нашего урока.
Так как у нас всего два компьютера, их имена можно задать гораздо проще – поместить их в файл /etc/hosts. Этот файл содержит список IP-адресов и их алиасов, поэтому в него можно добавить записи для двух наших компьютеров:
192.168.1.2 lxf-network-1
192.168.1.3 lxf-network-2
Если добавить их в файл /etc/hosts на обоих компьютерах, вы должны увидеть, что компьютеры пингуются по именам lxf-network-1 и lxf-network-2, и вас перенаправляют на нужный компьютер – так-то лучше.
[править] Создаем роутер
Пока мы не задавали шлюз ни на одном из наших компьютеров, поскольку получали его от DHCP из сети NAT VirtualBox по умолчанию вместе с данными DNS, и таким образом наши компьютеры подключались к внешнему Интернету. Чтобы продемонстрировать еще кое-какие возможности сети, отключим соединение NAT на второй виртуальной машине и настроим первую как роутер для предоставления доступа в Интернет.
Сначала выполним команду ifdown eth0 для выключения интерфейса NAT на второй виртуальной машине. Теперь, когда интерфейс настроен, эта команда вместе со своей напарницей ifup может использоваться для включения и выключения интерфейсов.
Потом попробуйте попинговать Google с этого компьютера, и вы увидите, что это больше не работает. Чтобы все заработало снова, нужно внести изменения в конфигурацию первой виртуальной машины.
Сначала ей нужно разрешить перенаправлять пакеты с одного сетевого интерфейса на другой – это самое важное и единственное, для чего нужен роутер. В Linux такое можно, но по умолчанию эта функция отключена. Чтобы снова ее включить, откройте файл /etc/sysctl.conf – он управляет различными аспектами работы ядра, и установите net.ipv4.ip_forward = 1. Затем запустите sysctl -p /etc/sysctl.conf для загрузки новой конфигурации.
После этого вам понадобится настроить собственный NAT, или сетевое маскирование; в Linux это делается с помощью IPTables – брандмауэра, встроенного в ядро.
IPTables пугают многих, но на самом деле все очень просто: это лишь набор правил, на которые смотрит ядро при обработке пакета. Если пакет соответствует любому из этих правил, ядро применяет к нему действие, указанное в правиле. Действия могут включать отбрасывание или прием пакета или манипуляцию с ним для изменения его источника или места назначения.
В нашем случае, когда пакет прибывает на первую виртуальную машину со второй на интерфейс eth1, мы хотим применить к нему действие masquerade – то есть направить его во внешний мир через интерфейс eth0, представив, что пакет пришел с первой, а не со второй виртуальной машины:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Разберем это:
» -t nat определяет, на какой набор правил в какой таблице правил нужно посмотреть.
» -A POSTROUTING – поднабор правил, которые нужно просмотреть, иначе известный как цепочка. Цепочка определяет, в какой точке процесса маршрутизации должно применяться правило.
» -o eth1 определяет, что это правило должно применяться ко всем пакетам, которые будут выходить из интерфейса eth1.
» -j MASQUERADE говорит, что нужно «перепрыгнуть» на действие MASQUERADE, когда любой пакет соответствует этому правилу.
С этим правилом добавьте шлюз по умолчанию GATEWAY = 192.168.1.2 в файл /etc/sysconfig/network (в котором хранится общая сетевая конфигурация для всех интерфейсов) на второй виртуальной машине, задайте популярный внешний сервер имен в /etc/resolv.conf, добавив туда nameserver 8.8.8.8 (IP-адрес сервера имен Google), и у вас должно получится полностью рабочее интернет-подключение, несмотря на то, что никакого прямого подключения у вас нет.
Если вы хотите подробнее узнать об IPTables, прочтите несколько HowTo на сайте Netfilter: http://netfilter.org/documentation/.
Вот и все, на что у нас хватило места в этом месяце. Но не отчаивайтесь: за последние два урока вы многое узнали о сети. Проявив немного терпения, вы сможете читать другие руководства и создавать гораздо более сложные конфигурации, точно соответствующие вашим потребностям.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить |