Анализ локальной сети и сканирование IP-адресов через сканер или программы
Отлаженная домашняя или корпоративная сеть может начать сбоить: проблемы с передачей файлов, общие тормоза сети, конфликтность адресов и т. д. В таких случаях необходимы программный анализ и исправление неполадок. Но сначала необходимо провести сканирование локальной сети, состоящее из нескольких этапов.
Что такое анализ локальной сети
Комплекс мер по изучению параметров соединения между компьютерами в домашней или корпоративной сети называется анализом локальной сети (АЛС). Процесс включает в себя:
- измерение скорости сети;
- просмотр IP-адресов подключённых устройств;
- анализ трафика сети — процесс, который позволяет выявить конфликтную машину или неисправность паутины в определённом узле.
Эта процедура может обнаружить вредоносное программное обеспечение и изолировать его распространение на всю сеть. Поэтому АЛС стоит проводить даже в профилактических целях.
Как провести сканирование скорости
Первый параметр, который стоит просмотреть на предмет ошибок, — это скорость передачи данных. Если при обмене пакетами информации в ЛС происходят сбои, замедления потери команд, то налицо нарушение протоколов или конфликт адресов. В таких случаях стоит начинать искать неполадку. Просмотреть информацию о скорости передачи данных можно через «Командную строку» или стороннее ПО.
С помощью «Командной строки»
Терминал «Командной строки» — уникальный инструмент для управления компьютером и вывода необходимой информации пользователю. Консоль также может помочь с АЛС, в частности вывести отчёт о скорости доступа в ЛС:
- Чтобы запустить «Командную строку», открываем меню «Пуск», переходим в папку «Служебные» и кликаем по иконке «Командная строка».
Через меню «Пуск» открываем консоль «Командной строки»
- В терминале прописываем первую команду ipconfig /all. Внимательно смотрим на выведенную информацию и находим строку «Основной шлюз», где будет указан сетевой адрес роутера. Это значение нам понадобится для дальнейших действий.
Прописываем команду ipconfig /all и находим основной шлюз компьютера
- Запускаем команду Ping, указывая адрес шлюза (в данном случае команда имеет вид Ping 192.168.137.1), и ожидаем несколько секунд, пока произойдёт обмен пакетов с маршрутизатором. Результат будет опубликован почти мгновенно, сразу же после обработки данных.
Через команду Ping основного шлюза узнаём скорость обмена данных с роутером
Если максимальное значение будет больше 1500 мсек даже в беспроводной сети, имеет смысл провести анализ трафика, а также проверить каждый компьютер на наличие вредоносного ПО антивирусными программами.
С помощью сторонних программ
Не только с помощью «Командной строки» можно узнать скорость внутри ЛС. Существуют дополнительные инструменты в виде сторонних программ. По интернету их гуляет огромное количество и большинство схожи между собой как по интерфейсу, так и по выводимым данным. Одной из таких утилит является LAN Speed Test.
- Скачиваем, устанавливаем и запускаем программу.
- На главной странице приложения нажимаем кнопку Start Test.
В интерфейсе программы LAN Speed Test нажимаем кнопку Start Test
- В течение пары секунд получаем исчерпывающую информацию о возможностях передачи данных в ЛС.
Данные о скорости в сети выводятся в виде таблицы
Также для анализа можно использовать другие утилиты, к примеру, Iperf или LAN Bench.
Первая весьма полезная для домашней и небольшой корпоративной сети. Приложение можно установить на все машины и следить за пингом. Оно весьма полезно, так как может производить мониторинг и вести записи продолжительное время.
Iperf — это программа для слежки за пингом и выявления небольших неполадок в ЛС
LAN Bench — это минималистическая утилита, похожая на LAN Speed Test. Ею очень легко мониторить скорость и пинг в сети, достаточно открыть интерфейс и нажать кнопку Test. Ниже сразу начнут появляться результаты.
LAN Bench — это простейшая утилита для оценки скорости ЛС
Как посмотреть список IP-адресов, подключённых к ЛС
Иногда возникает необходимость узнать информацию о подключённых к сети устройствах. В основном это касается беспроводных маршрутизаторов, к которым можно подключиться незаметно и «воровать» трафик. Посмотреть список устройств можно сторонними ПО и штатными средствами (веб-админкой маршрутизатора).
С первым всё довольно просто: существует простейшая утилита под названием Wireless Network Watcher. Она, как IP-сканер локальной сети, прекрасно справляется с анализом адресатов сети и выводит на экран всю доступную информацию о них.
Через программу Wireless Network Watcher можно увидеть список всех подключённых к сети устройств
Однако у программы есть два минуса:
- для её работы необходимо проводное подключение к роутеру;
- инструментарий программы ограничивается только выводом информации. Если нарушитель будет обнаружен, она ничего не сможет с ним сделать. То же касается и аналогичных программ. Заблокировать доступ к сети можно только внутри веб-админки роутера.
Для просмотра информации о подключённых устройствах через веб-админку маршрутизатора необходимо сначала её открыть:
- На тыльной стороне устройства знакомимся с реквизитами для входа.
На тыльной стороне роутера знакомимся с реквизитами для входа
- Вводим данные в браузере и авторизуемся в сервисе управления.
Через браузер открываем панель управления маршрутизатором
- В свойствах админки находим вкладку «Беспроводной режим», а в ней пункт «Статистика беспроводного режима».
Находим пункт «Статистика беспроводного режима» и знакомимся со всеми подключёнными устройствами
- Проверяем IP-адресы всех известных устройств, остальные же можно «Запретить». Только не стоит забывать о подключённых телевизорах, телефонах и планшетах, они также имеют собственный индикатор в этой вкладке настроек.
Программы, помогающие провести анализ трафика
Анализ трафика — это сложный процесс, который должен быть известен любому профессионалу в IT-индустрии, сисадмину и другим специалистам в области. Процедура оценки передачи пакетов больше похожа на искусство, чем на элемент технического управления. Одних данных от специальных программ и инструментов тут недостаточно, необходима ещё интуиция и опыт человека. Утилиты в этом вопросе лишь инструмент, что показывает данные, остальное должен делать уже ваш мозг.
Wireshark
Wireshark — это новый игрок на рынке сетевого анализа трафика. Программа имеет довольно простой интерфейс, понятное диалоговое окно с выводом данных, а также множество параметров для настройки. Кроме того, приложение охватывает полный спектр данных сетевого трафика, потому является унитарным инструментом для анализа без необходимости добавлять в функционал программы лишние утилиты.
Wireshark имеет открытый код и распространяется бесплатно, поэтому захватывает аудиторию в геометрической прогрессии.
Возможно, приложению не хватает визуализации в плане диаграмм и таблиц, но минусом это назвать сложно, так как можно не отвлекаться на просмотр картинок и напрямую знакомиться с важными данными.
Wireshark — это программа с открытым кодом для анализа трафика ЛС
Видео: обзор программы Wireshark
Kismet
Kismet — это отличный инструмент для поиска и отладки проблем в ЛС. Его специфика заключается в том, что программа может работать даже с беспроводными сетями, анализировать их, искать устройства, которые настроены неправильно, и многое другое.
Программа также распространяется бесплатно и имеет открытый код, но сложный в понимании интерфейс немного отталкивает новичков в области анализа трафика. Однако подобный инструмент всё больше становится актуальным из-за постепенного отказа от проводных соединений. Поэтому чем раньше начнёшь осваивать Kismet, тем скорее получишь от этого пользу.
Kismet — это специальный инструмент для анализа трафика с возможностью вывода информации о беспроводной сети
NetworkMiner
NetworkMiner — это продвинутое программное решение для поиска проблем в сети через анализ трафика. В отличие от других приложений, NetworkMiner анализирует не сам трафик, а адреса, с которых были отправлены пакеты данных. Поэтому и упрощается процедура поиска проблемного узла. Инструмент нужен не столько для общей диагностики, сколько для устранения конфликтных ситуаций.
Программа разработана только для Windows, что является небольшим минусом. Интерфейс также желает лучшего в плане восприятия данных.
NetworkMiner — это инструмент для Windows, который помогает находить конфликты и неточности в ЛС
Провести полный анализ сети можно как штатными, так и сторонними способами. А полученные данные помогут исправить возможные неполадки, недочёты и конфликты.
Как узнать ip адрес своего или чужого компьютера в локальной сети
Иногда пользователю может понадобиться быстро узнать, какой у его устройства адрес IP в локальной сети, в которой он подключён. Также может оказаться нужным такой же адрес, но уже другого компьютера, который работает в этой же сети. Можно ли это сделать без использования какого-то стороннего ПО? И какие утилиты скачивают и устанавливают для этих целей?
Что такое IP-адрес и для чего он нужен
IP-адрес (Internet Protocol Address) — это определённый конечный адрес узла в сети на конкретном компьютере или ином устройстве. Его можно сравнить с обычным почтовым адресом какого-то человека — по нему люди отправляют письма и посылки. Аналогией писем в интернете и сети являются сетевые пакеты (например, в виде сайтов и загружаемых файлов). Они не могут уходить неизвестно откуда и неизвестно куда — нужно направление, конкретный адрес две конечные точки в виде отправителя и получателя.
IP-адрес представляет собой адрес какой-либо точки в сети: как в глобальной, так и в локальной
У каждого ПК есть свой адрес IP в сети.
Сетевой пакет доставляются по определенному IP-адресу
IP может выдаваться администратором локальной сети, провайдером или назначаться автоматически системой. Адрес включает в себя два номера: сети, которой он принадлежит, и узла. Это комбинации из четырёх чисел от 0 до 255, которые разделяются точками, например, 10.255.255.255.
Виды IP-адресов
По разным параметрам различают такие виды адресов IP:
- Статический (фиксированный, постоянный). Это комбинация чисел, которая навсегда присваивается юзеру. Его может выдать ваш провайдер за отдельную плату. Он необходим тем людям, которым нужно постоянно получать удалённый доступ к своему девайсу посредством клиента FTP. Главный минус такого адреса в том, что ПК становится более уязвимым в сети — взломщики могут также получить доступ к вашему ПК и всей информации на нём.
- Динамический. В начале каждого сеанса «сёрфинга» в сети юзер получает новый IP. Система выдаёт его автоматически из конкретного диапазон комбинаций.
- Белый (публичный, глобальный). Его используют для «сёрфинга» в интернете, то есть во внешней сети.
Белый IP нужен для работы в глобальной сети — в интернете
- Серый (внутренний, частный). Его получают юзеры отдельной локальной сети. Серый IP-адрес может быть как статистическим, так и динамическим. То же самое касается и белого адреса.
Серые IP работают только в рамках локальных сетей
Рассмотрим сегодня, как выяснить, какой у вас есть IP именно для локальной сети — сети, которая соединяет друг с другом несколько устройств, находящихся недалеко друг от друга (в одном здании, офисе, квартире, институте и т. д.). Такое соединение нужно, например, для обмена теми или иными документами между ПК, получения доступа к общим каталогам и прочих целей.
Как узнать IP-адрес своего компьютера в локальной сети
IP-адрес своего ПК нужно знать, например, для подключения к своему домашнему или рабочему ПК для копирования каких-то документов. Раздобыть свой IP-адрес проще и быстрее всего — достаточно выполнить некоторые действия в одном из двух системных окнах «Виндовс».
С помощью «Командной строки»
Консоль «Командная строка» представляет собой редактор с чёрным фоном, через который юзер может выполнять различные операции на своём компьютере, в том числе и осуществлять вывод на экран сетевых параметров девайса:
- На «клаве» зажимаем кнопки R и «Виндовс», но только одновременно. Результат выполнения данной команды — появление окна «Выполнить». В нём вбиваем три буквы cmd — жмём на «Ввод» либо на «Энтер» на самой клавиатуре.
Введите команду cmd в окне «Выполнить»
- Вызвать указанную стандартную утилиту можно также через панель «Пуск».
Вы можете воспользоваться поиском в «Пуске», чтобы открыть консоль
- На дисплее будет вызван редактор. Пишем в его окне формулу ipconfig самостоятельно либо используем вставку (через Ctrl + V). Для выполнения жмём на «Энтер».
Выполните команду ipconfig в редакторе
- В редакторе отобразятся разные сетевые параметры. Нас интересует блок с тем адаптером, который мы сейчас используем. В данном случае это беспроводной адаптер локальной сети. В перечне будет отображена маска подсети, основной шлюз и IP-адрес (IPv4). Если в данный момент девайс соединён с локальной сетью, то IPv4 будет таким же, как главный адрес (основной шлюз).
Внимательно изучите блок с адаптером локальной беспроводной сети
- Для получения детальной информации при необходимости вбиваем в консоль ещё одну формулу ipconfig/all.
Выполните команду ipconfig/all
- В чёрном редакторе отобразится информация по сетевой карте, а также физический точный адрес ПК (по-другому, MAC-адрес).
Команда ipconfig/all покажет на экране более подробную информацию
С помощью «Панели управления»
Эти же данные юзер может получить через определённый раздел «Панели управления»:
- Вызываем панель через сервис «Выполнить» (открывается с помощью «Виндовс» и R) и слова control, написанного в строке «Открыть».
Вставьте в строку «Открыть» команду control
- Переходим в сетевой центр в перечне разделов панели.
На панели запустите «Центр управления сетями и общим доступом»
- В левой колонке жмём на вторую ссылку для смены настроек сетевых адаптеров.
Перейдите по ссылке «Изменение параметров адаптеров»
- В итоге на экране видим окно «Сетевые подключения».
На дисплее появилось окно «Сетевые подключения»
- Вызвать это окно можно также с помощью секретной команды ncpa.cpl — просто копируем и вставляем её в окошко «Выполнить».
Выполните команду ncpa.cpl, чтобы запустить «Сетевые подключения»
- Находим плитку для локального подключения, жмём правой клавишей и щёлкаем по второй строчке для показа состояния сети.
Выберите в меню пункт «Состояние»
- Переходим в раздел со сведениями — кликаем по соответствующей кнопке под данными подключения. Ищем в следующем окошке пункт IPv4-адрес.
Перейдите в окно со сведениями и посмотрите на пункт «Адрес IPv4»
Видео: как узнать свой IP в сети
youtube.com/embed/rNz1KkOJe6s?feature=oembed&wmode=opaque» frameborder=»0″ allow=»accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture» allowfullscreen=»»/>
Как узнать IP-адрес чужого или всех подключённых к локальной сети компьютеров
Определение IP-адреса других устройств, которые находятся в данный момент в локальной сети, отнимет больше времени и усилий. Выполнять будем всё через ту же «Командную строку». Рассмотрим также способ с использованием ПО от сторонних разработчиков.
Через «Командную строку»
На этот раз в редакторе будем выполнять другие команды для вывода адреса:
- Для начала определимся, адрес какого конкретного юзера сети мы хотим узнать. С этой целью запускаем любую страницу «Проводника Виндовс». На левой панели с основными разделами находим и открываем ссылку «Сеть».
В «Проводнике» перейдите в раздел «Сеть» слева
- В правой зоне «Проводника» должны появиться все устройства, подключенные в текущий момент к внутренней сети. Ищем нужного юзера и запоминаем название его ПК.
Выберите девайс, адрес которого вы хотите узнать
- Перечень девайсов в сети может показать также «Командная строка». Для этого запускаем на дисплее консоль через панель «Выполнить» и команду cmd. Вбиваем в редактор формулу nbtstat -n и жмём на «Энтер». Ищем необходимый чужой компьютер.
Чтобы вывести на экран всех пользователей локальной сети, выполните nbtstat -n в консоли
- Теперь в чёрном редакторе набираем формулу по типу ping [Название ПК]. Например, имя у компьютера apresn-pc, соответственно полностью команда будет выглядеть как ping apresn-pc. Для выполнения жмём как всегда на «Энтер».
Запустите выполнение команды apresn-pc
- Ваш компьютер начнёт обмениваться пакетами с юзером, информацию о котором вы запросили. В итоге отобразится конечный IP-адрес другого пользователя.
Скопируйте адрес чужого ПК
Возможно, вам необходимо определить адреса IP всех компьютеров из локальной сети. В этом вам также поможет консоль:
- Запускаем интерфейс строки через «Выполнить» либо «Пуск», а затем пишем короткую формулу arp -a.
Запустите выполнение формулы arp -a в консоли
- Даём старт выполнению через клавишу «Энтер».
- Внутренний сканер «операционки» проверит сеть и при наличии каких-либо устройств покажет их на дисплее: вы увидите адреса IP в первой колонке и физические адреса во второй.
В консоли появится перечень всех адресов в локальной сети
С помощью сканирования сети сторонними утилитами
Не всегда стандартные средства «Виндовс» помогают в поиске IP-адресов девайсов, которые находятся в вашей внутренней сети. Для таких случаев сторонними разработчиками были созданы специальные утилиты-сканеры. Одно из таких приложений — программа Advanced IP Scanner от компании Famatech. Утилита бесплатная и имеет две версии: та, что устанавливается, и портативная (то есть которая работает без предварительной инсталляции).
Advanced IP Scanner показывает не только IP-адреса, но и названия устройств
Кроме поиска девайсов в сети, в возможности этой программы входит предоставление доступа к общим каталогам и FTP-серверам, удалённое управление устройствами через Radmin и RDP и даже дистанционное отключение ПК.
Где её скачать и как ей пользоваться, расскажем в инструкции:
- Открываем официальный сайт сканера в любом браузере — на странице жмём на зелёную клавишу «Скачать бесплатно».
Скачайте бесплатный вариант Advanced IP Scanner
- Запускаем загруженный исполняемый файл через окно со списком закачек.
Откройте файл через загрузки
- В первом появившемся меню выбираем язык и кликаем по ОК.
Выберите язык установки
- В следующем окошке выбираем полную инсталляцию утилиты или быстрый простой запуск без установки. При необходимости можете отметить дополнительные настройки внизу, чтобы в будущем вы смогли изменить расширенные параметры приложения. Мы выберем только запуск. Жмём на «Далее».
Выберите между установкой и запуском
- Принимаем условия соглашения и кликаем по «Запустить».
Примите условия использования программы и запустите её
- Ждём, когда завершится распаковка файлов.
Подождите, пока закончится процесс распаковки
- В интерфейсе утилиты кликаем сначала по иконке IP на верхней панели, а затем по первой большой клавише «Сканировать».
Нажмите на «Сканировать», чтобы начать поиск девайсов
- Ожидаем завершение процедуры поиска девайсов во внутренней сети.
Подождите, пока завершится процесс поиска устройств
- В итоге видим перечень устройств — в него будет входить и ваш девайс. Здесь будет показан не только адрес IP, но и его статус (активирован или отключён), название изготовителя девайса и MAC-адрес.
Посмотрите на IP нужного вам девайса
- Если устройство активировано, в статусе будет стоять монитор с ярким голубым экраном, а если оно будет отключено, дисплей будет серым.
Отключенное устройство будет с иконкой погасшего экрана ПК
У Advanced IP Scanner есть много аналогов: Angry IP Scanner, SolarWinds, Free IP Scanner, Spiceworks IP Scanner, Nmap и другие.
Видео: как использовать утилиту Advanced IP Scanner
Узнать свой адрес во внутренней сети можно легко с помощью стандартных средств «Виндовс» — через «Центр управления сетями и общим доступом» и чёрный редактор «Командная строка». Последняя утилита подойдёт также для определения комбинаций чисел, которые действуют для других компьютеров в этой же внутренней сети. Если у вас не получается получить информацию с помощью встроенных инструментов, используйте сторонние утилиты, например, Advanced IP Scanner, Nmap, SolarWinds или любой другой сканер.
Тестирование и диагностика локальных сетей
Монтаж и тестирование структурированных кабельных сетей — операция хотя и сложная, но выполняемая в соответствии с известными правилами и алгоритмами. То же справедливо и в отношении монтажа и ввода в эксплуатацию телефонной учрежденческой сети. Между тем проблемы, возникающие в локальных вычислительных сетях (ЛВС), значительно сложнее и многообразнее. Зачастую они состоят не в прекращении функционирования или сбоях в работе ЛВС, а в неадекватной производительности сети или ее части.
Поэтому эксплуатация ЛВС немыслима без тестирования, диагностики и профилактики. Существенная часть этой работы выполняется интуитивно и со стороны больше похожа на шаманство. Но, несмотря на это, для достижения качественного результата администратор ЛВС должен иметь отличное техническое оснащение — чем могущественнее шаман, тем дороже у него бубен.
Возникающие в локальных сетях проблемы можно условно разделить на три основные группы: неисправности на физическом уровне, перегрузки в сети и ошибки в работе сетевых протоколов. Неисправности физического уровня обусловлены выходом из строя каких-либо электрических или электронных сетевых устройств и компонентов. Перегрузки в сети возникают, если то или иное сетевое устройство не справляется с обработкой поступающих к нему запросов. Ошибки в работе сетевых протоколов приводят к тому, что сетевые устройства не могут взаимодействовать друг с другом из-за некорректного функционирования сетевых драйверов или невозможности обработки сетью пакетов какого-нибудь протокола (или нескольких протоколов одновременно).
Неисправности физического уровня могут возникнуть в сетевом устройстве, в среде передачи или в месте их контакта. Они наиболее просто поддаются обнаружению, так как носят постоянный характер (естественно, до момента их устранения). Локализовать неисправность можно, в частности, с помощью простейших тестеров для локальных сетей. Такие тестеры проверяют работу канала в одну сторону (от тестера к концентратору или к сетевой плате компьютера). Если дефект имеет место в среде передачи, то его можно обнаружить с помощью кабельного тестера. Плавающие ошибки, обусловленные плохим контактом в соединителях, диагностировать несколько сложнее. Но даже такие неисправности можно выявить с помощью кабельного тестера — достаточно быть внимательным. Кстати, как это ни банально звучит, но хочется напомнить, что лучший способ профилактики образования дефектов в среде передачи — использование качественных материалов и выполнение профессионального монтажа.
Совершенно другое дело — ошибки в результате перегрузки сети и некорректной работы сетевых протоколов. Такие ошибки наиболее трудны в обнаружении, так как чаще всего носят нерегулярный характер. Они и более коварны, так как могут парализовать работу организации в самый неподходящий момент. Их инструментальная диагностика выполняется с помощью достаточно дорогих приборов — сетевых тестеров и анализаторов протоколов. Однако опыт и интуиция стоят еще дороже, да и не у каждого они имеются.
Сетевые тестеры занимают промежуточное положение между кабельными тестерами и анализаторами протоколов. Они незаменимы для поиска неисправностей в сетях. Производители выпускают широкую гамму таких приборов, отличающихся набором контролируемых параметров и сервисных функций, способностью работать в тех или иных сетях (например, Ethernet и/или Token Ring), конструктивным исполнением и ценой. Эти приборы позволяют измерять множество различных параметров, например пиковую и усредненную загруженность, долю широковещательного трафика, сбои в работе протоколов верхних уровней. В сетях Ethernet некоторые из них способны подсчитывать число конфликтов (коллизий), идентифицировать адреса DLC-пакетов (с ошибками CRC, коротких и длинных), отличать фрагменты от пакетов с ошибками CRC и коротких пакетов. В сетях Token Ring они подключаются к кольцу, в котором запущен процесс аварийной сигнализации, и могут определить станцию с перегруженным буфером приема, выявить порядок станций в кольце, замерить время обхода маркера и т. п.
Наиболее совершенные из приборов данного класса позволяют опрашивать зонды и агенты SNMP и таким образом представляют собой мини-консоль SNMP. Конечно, консоли SNMP значительно богаче по своим возможностям, чем данные приборы, однако последние намного удобнее, так как они позволяют, не отходя от экрана прибора, получить некоторые основные данные. Кроме того, через SNMP-агентов такие тестеры дают возможность получать информацию от оборудования frame relay, ISDN и T-1/E-1.
Чрезвычайно удобной и полезной является способность некоторых сетевых тестеров сохранять результаты тестирования для дальнейшей обработки. Обычно результаты загружаются затем в компьютер и обрабатываются соответствующими программами для получения аналитической информации (например, пика максимальной нагрузки в сети, количества и типов ошибок). Для получения полной картины функционирования сети данные могут быть отсортированы по протоколам и/или ошибкам.
Некоторые современные модели сетевых тестеров могут работать как серверы Web, поэтому они позволяют в качестве пользовательского интерфейса использовать обычный браузер. Но самыми интересными устройствами являются приборы, объединяющие функции портативного сетевого и кабельного тестера. Хотя их стоимость и высока, они совмещают в себе лучшие качества обоих устройств и чрезвычайно удобны в эксплуатации.
Несмотря на все преимущества, у портативных сетевых тестеров есть один недостаток — они не могут перехватывать и декодировать пакеты. И если такие возможности необходимы, например, для более глубокого изучения проблем функционирования сетевых приложений, то тогда вам стоит обратить внимание на анализаторы протоколов. Фактически они представляют собой компьютер с одним или несколькими сетевыми интерфейсами, со специализированным программным обеспечением. Некоторые из таких анализаторов могут понимать две сотни (!) различных протоколов. Каждый как минимум способен перехватывать пакеты и фильтровать их в соответствии с заданными параметрами. Используя соответствующие фильтры, вы можете получить массу различной, иногда оказывающейся просто незаменимой информации. В дальнейшем сохраненная информация может быть обработана для составления обобщенной сводки о пакетах и получения подробного резюме об используемых в них протоколах. Кроме того, все анализаторы фиксируют время прохождения пакета и показывают сетевые и физические адреса его отправителя и получателя.
Анализаторы протоколов способны даже собирать данные о работе того или иного указанного пользователем уровня, причем вся необходимая информация оказывается сразу перед глазами пользователя. Но чтобы пользоваться такими устройствами, администратор должен обладать высокой квалификацией и достаточно хорошо разбираться в сетевых протоколах. В противном случае он либо будет просто не в состоянии справиться с огромным объемом информации (даже фильтры не всегда помогают), либо может неправильно интерпретировать данные анализатора. Попытки же внести исправления на основе неверных выводов чреваты серьезной опасностью выхода из строя сегмента сети. Поэтому анализаторы протоколов чаще всего используются как экспертные системы и только в тех случаях, когда все другие средства исчерпаны.
Отметим, что портативные сетевые тестеры хотя и требуют определенной квалификации, но в целом проще в освоении. Сегодня, при минимальном весе и габаритах, они обладают мощностью, достаточной для диагностики большинства проблем в ЛВС, особенно при поддержке функций кабельного тестера.
Сравнение инструментов сканирования локальной сети / Хабр
Когда я работал в нескольких государственных организациях
Старый и опытный
Дабы сгладить наши противоречия, было решено провести блиц-тестирование сетевых сканеров уязвимостей. Холивар среди пентестеров Hacken привел нас к новой задаче — проведению сравнительной характеристики по результатам сканирования. Для проведения сравнения эффективности сканирования было выбрано четыре сканера: Rapid7 Nexpose, Tenable Nessus, OpenVAS 9 и Nmap. Их выбрали на основании аналитики интернет-публикаций и личного опыта. Лично я делал ставку на Nessus, но увы, не угадал.
Rapid7 Nexpose – это сканер уязвимостей, который выполняет активное сканирование IT-инфраструктуры на наличие ошибочных конфигураций, дыр, вредоносных кодов, и предоставляет рекомендации по их устранению. Под анализ попадают все компоненты инфраструктуры, включая сети, операционные системы, базы данных и web-приложения. По результатам проверки Rapid7 Nexpose в режиме приоритетов классифицирует обнаруженные угрозы и генерирует отчеты по их устранению. [2]
Tenable Nessus Scanner – это сканер, предназначенный для оценки текущего состояния защищённости традиционной ИТ-инфраструктуры, мобильных и облачных сред, контейнеров и т.д. По результатам сканирования выдаёт отчёт о найденных уязвимостях. Рекомендуется использовать, как составную часть Nessus Security Center. [3]
OpenVAS — это сканер уязвимостей с открытым исходным кодом. OpenVAS предназначен для активного мониторинга узлов вычислительной сети на предмет наличия проблем, связанных с безопасностью, оценки серьезности этих проблем и для контроля их устранения. Активный мониторинг означает, что OpenVAS выполняет какие-то действия с узлом сети: сканирует открытые порты, посылает специальным образом сформированные пакеты для имитации атаки или даже авторизуется на узле, получает доступ к консоли управления, и выполняет на нем команды. Затем OpenVAS анализирует собранные данные и делает выводы о наличии каких-либо проблем с безопасностью. Эти проблемы, в большинстве случаев касаются установленного на узле необновленного ПО, в котором имеются известные и описанные уязвимости, или же небезопасно настроенного ПО. [1,6]
Nmap — свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети (портов и соответствующих им служб). Изначально программа была реализована для систем UNIX, но сейчас доступны версии для множества операционных систем.[4,5]
Тестовая среда
Для проведения тестирования я собрал тестовую сеть на VMware Workstation 12 Pro в схему, которая представлена на рис. 1.
Рис. 1. Схема сети
Поднятые виртуалки:
- Windows 7 со всеми установленными обновлениями, запущенным приложением XAMPP, развёрнутыми сервисами MySQL и Apache. Также развёрнута тестовая система DVWA.
- Metasploitable 2 – операционная система с предустановленными уязвимыми сервисами и приложениями, которая используется для тестирования.
- Ubuntu 16.04 c установленным IDS Suricata [10] и сконфигурированным iptables [9].
- Kali Linux — дистрибутив Linux, который используется для тестирования на проникновения.
- Перечень уязвимых сервисов в Metasploitable 2 приведены в таблице 1.
Таблица 1
Service | Port | Status |
Vsftpd 2..four | 21 | Open |
OpenSSH four.7p1 Debian 8ubuntu 1 (protocol 2.zero) | 22 | Open |
Linux telnetd service | 23 | Open |
Postfix smtpd | 25 | Open |
ISC BIND 9. four.2 | 53 | Open |
Apache httpd 2.2.eight Ubuntu DAV/2 | 80 | Open |
A RPCbind service | 111 | Open |
Samba smbd .X | 139, 445 | Open |
r companies | 512, 513, 514 | Open |
GNU Classpath grmiregistry | 1099 | Open |
Metasploitable root shell | 1524 | Open |
A NFS service | 2048 | Open |
ProFTPD 1..1 | 2121 | Open |
MySQL 5.zero.51a-3ubuntu5 | 3306 | Open |
PostgreSQL DB eight..zero — eight..7 |
5432 | Open |
VNC protocol v1. | 5900 | Open |
X11 service | 6000 | Open |
Unreal ircd | 6667 | Open |
Apache Jserv protocol 1. | 8009 | Open |
Apache Tomcat/Coyote JSP engine 1.1 | 8180 | Open |
На практике, когда проводится сканирование внутренних сетей на межсетевом экране и IPS, создаются правила, исключающие блокировку сканирования. Поэтому Suricata использовалась в режиме детектирования, и были написаны разрешающие правила на межсетевом экране.
Конфигурация iptables[9]:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -I FORWARD -j ACCEPT
iptables -A FORWARD -i ens34 -o ens33 -j ACCEPT
iptables -t nat -A POSTROUTING -o ens33 -s 192.168.234.0/24 -j MASQUERADE
iptables -A FORWARD -i ens33 -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A FORWARD -i ens33 -o ens34 -j REJECT
Nessus Scanner запускался в режиме «Basic Network Scanning». [3]
Rapid 7 Nexpose запускался в режиме «Full audit without Web Spider». [2]
OpenVAS 9 запускался в режиме «default». [1,6]
Nmap запускался двумя командами: [4,5]
Результаты тестирования
Nexpose обнаружил 527 уязвимости (см. Диаграмма 1), из них:
Репорт
167 – получили статус “critical” — уязвимости необходимо закрывать в первую очередь.
349 – получили статус “severe” — уязвимости сложны в эксплуатации, но могут привести к тяжёлым последствиям.
46 – получили статус “moderate” — найденные уязвимости могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки.
Найдены уязвимости не только тестированных систем, но и потенциальные уязвимости в системе виртуализации.
Tenable Nessus обнаружил 168 уязвимостей (см. Диаграмма 2), из них:
Репорт
3 – получили статус “critical”
9 – получили статус “high”
33 – получили статус “medium”
5 – получили статус “low”
118 получили статус “info”
Уязвимости уровня “critical” и “high” необходимо закрывать в первую очередь.
Уязвимости уровня “medium” — сложны в эксплуатации, но при должной проработке могут нанести ущерб.
Уязвимости уровня “low” и “info” — могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки через другие векторы.
OpenVAS 9 обнаружил 53 уязвимости (см. Диаграмма 3), из них:
Репорт
Результаты срабатывания IDS
16 – получили статус “high”
33 – получили статус “medium”
4 – получили статус “low”
Уязвимости уровня “high” необходимо закрывать в первую очередь.
Уязвимости уровня “medium” — сложны в эксплуатации, но при должной проработке могут нанести ущерб.
Уязвимости уровня “low” могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки через другие векторы.
Отдельно следует отметить полученные результаты с помощью сканера Nmap. Сканирование проводилось двумя командами, которые описывались выше. Результатом выполнения стал вывод информации об операционной системе, открытых сервисах и найденные возможные уязвимые сервисы и ссылки.
Использование скрипта “vuln” определило следующие типы уязвимостей:
- открытый telnet
- http-csrf
- http-enum
- http-sql-injection
- http-vuln-cve2017-1001000
- rmi-vuln-classloader
- mysql-vuln-cve2012-2122
- ssl-ccs-injection
- ssl-dh-params
- ssl-poodle
- irc-botnet-channels
- http-cookie-flags
Результаты работы Nmap и IDS
Результаты работы Nmap с использованием скрипта «vuln» и IDS
Выводы
Для формирования выводов я применил количественный метод оценки по суммарному количеству найденных уязвимостей. В результате выяснилось, что наибольшую глубину сканирования проводит Nexpose. Довольно слабо отработал Nessus, так как в режиме сканирования сети выдал много служебных данных о системах и сервисах, которые только дают информацию для аналитики. С очень слабой стороны показал себя сканнер OpenVAS 9 с последними обновлениями. Отдельного слова требует Nmap – очень хороший инструмент для проведения аналитического тестирования с возможностью расширения с помощью NSE-скриптов.
Во время тестирования IDS Suricata обнаружила сканнеры NMap и OpenVAS.
Данное тестирование не является каноничным, как например, тесты Gartner или NSS Labs. Но не смотря на это, думаю, статья будет актуальна для специалистов в сфере администрирования систем и технического аудита.
P.S. А для чего это всё делалось?
Необходимо было принять на вооружение выбрать сканер для компании Hacken. Кроме того, проведение сканирования внутренней сети регламентировано стандартами управления информационной безопасности в коммерчиских организациях, банковской, энергетической и прочих сферах деятельности. Сканирование сети необходимо проводить не только для получения сертификации для организации, но и для управления уязвимостями в информационно-телекоммуникационной системе, контроля обновления операционных систем и другие не менее важные задачи по управлению информационной безопасностью. [8, 11]
Работа с сетью в командной строке Windows (CMD).
    Большинство рассматриваемых сетевых утилит для полноценной работы требуют наличия административных привилегий. Для операционных систем семейства Windows 2000/XP достаточно того, чтобы пользователь работал под учетной записью члена группы администраторов. Интерпретатор командной строки cmd.exe можно запустить с использованием меню Пуск — Выполнить — cmd.exe. В среде операционных систем Widows Vista/Windows 7 интерпретатор cmd.exe должен быть запущен для выполнения с использованием пункта контекстного меню «Запустить от имени администратора». Командные файлы, в которых используются сетевые утилиты, также должны выполняться в контексте учетной записи с привилегиями администратора.В списке представлены сетевые утилиты командной строки для получения информации о сетевых настройках, выполнения операций по конфигурированию и диагностике сети.
В описании команд используется
— текст в угловых скобках. Обязательный параметр
[ текст ] — текст в квадратных скобках. Необязательный параметр.
( текст ) — текст в круглых скобках. Необходимо выбрать один из параметров.
Вертикальная черта | — разделитель для взаимоисключающих параметров. Нужно выбрать один из них.
Многоточие … — возможно повторение параметров.
Краткое описание и примеры использования сетевых утилит командной строки Windows:
ARP
IPCONFIG
GETMAC
NBTSTAT
NETSH
NETSTAT
NET
NSLOOKUP
PATHPING
PING
ROUTE
TELNET
TRACERT
Примеры практического использования.
Утилита ARP.EXE
   
Утилита командной строки ARP.EXE присутствует во всех версиях Windows и имеет один и тот же синтаксис.
Команда
ARP позволяет просматривать и изменять записи в кэш ARP (Address Resolution Protocol — протокол разрешения адресов), который представляет собой таблицу соответствия IP-адресов аппаратным адресам сетевых устройств. Аппаратный адрес — это уникальный, присвоенный при изготовлении, 6-байтный адрес сетевого устройства, например сетевой карты. Этот адрес также
часто называют MAC-адресом (Media Access Control — управление доступом к среде) или Ethernet-адресом. В сетях Ethernet передаваемые и принимаемые данные всегда содержат MAC-адрес источника (Source MAC) и MAC-адрес приемника (Destination MAC). Два старших бита MAC-адреса используются для идентификации типа адреса:
— первый бит — одиночный (0) или групповой (1) адрес.
— второй бит — признак универсального (0) или локально администрируемого (1) адреса.
Следующие 22 бита адреса содержат специальный код производителя MFG или OUI — универсальный код организации.
Другими словами, любое сетевое устройство имеет аппаратный адрес, состоящий из 2- х частей. Старшую часть MAC — адреса, централизованно выделяемую по лицензии каждому производителю сетевого оборудования. Например, 00:E0:4C — для сетевых устройств REALTEK SEMICONDUCTOR CORP. Крупным производителям сетевого оборудования обычно принадлежит несколько диапазонов OUI . И младшую часть MAC-адреса, которая формируется при производстве оборудования, и уникальна для каждого экземпляра устройства.
Отображение IP-адресов (формируемых программным путем), в аппаратные адреса, выполняется с помощью следующих действий:
— в сеть отправляется широковещательный запрос (ARP-request), принимаемый всеми сетевыми устройствами. Он содержит IP и Ethernet адреса отправителя, а также, целевой IP-адрес, для которого выполняется определение MAC-адреса.
— каждое устройство, принявшее запрос проверяет соответствие целевого IP-адреса, указанного в запросе, своему собственному IP-адресу. При совпадении, отправителю передается ARP-ответ (ARP-Reply), в котором содержатся IP и MAC адреса ответившего узла. Кадр с ARP-ответом содержит IP и MAC адреса как отправителя, так и получателя-составителя запроса.
— информация, полученная в ARP-ответе, заносится в ARP-кэш и может использоваться для обмена данными по IP-протоколу для данного узла. ARP-кэш представляет собой таблицу в оперативной памяти, каждая запись в которой содержит IP, MAC и возраст их разрешения. Возраст записи учитывается для того, чтобы обеспечить возможность повторного выполнения процедуры ARP при каком либо изменении соответствия адресов.
Синтаксис ARP.EXE:
arp[-a [InetAddr] [-NIfaceAddr]] [-g [InetAddr] [-NIfaceAddr]] [-dInetAddr [IfaceAddr]] [-sInetAddr EtherAddr [IfaceAddr]]
-a[ InetAddr] [ -NIfaceAddr] — ключ -a — отображает текущую таблицу ARP для всех интерфейсов. Для отображения записи конкретного IP-адреса используется ключ -a с параметром InetAdd , в качестве которого указывается IP-адрес. Если узел, отправляющий ARP-запрос имеет несколько сетевых интерфейсов, то для отображения таблицы ARP
нужного интерфейса, можно использовать ключ -N с параметром IfaceAddr, в качестве которого используется IP-адрес интерфейса.
-g[ InetAddr] [ -NIfaceAddr] ключ -g идентичен ключу -a.
-d InetAddr[ IfaceAddr] — используется для удаления записей из ARP-кэш. Возможно удаление по выбранному IP или полная очистка ARP кэш. Для удаления всех записей, вместо адреса используется символ * Если имеется несколько сетевых интерфейсов, то очистку можно выполнить для одного из них, указав в поле IfaceAddr его IP .
-s InetAddr EtherAddr [ IfaceAddr] — используется для добавления статических записей в таблицу ARP. Статические записи хранятся в ARP-кэш постоянно. Обычно, добавление статических записей используется для сетевых устройств, не поддерживающих протокол ARP или не имеющих возможности ответить на ARP- запрос.
/? — получение справки по использованию arp.exe. Аналогично — запуск arp.exe без параметров.
Примеры использования ARP:
arp -a — отобразить все записи таблицы ARP.
arp -a 192.168.0.9 — отобразить запись, соответствующую IP-адресу 192.168.0.9
arp -a 192.168.1.158 -N 192.168.1.1 — отобразить таблицу ARP для адреса 192.168.1.158 на сетевом интерфейсе 192.168.1.1
arp -a -N 10. 164.250.148 — отобразить все записи таблицы ARP на сетевом интерфейсе 10.164.250.148 .
arp -s 192.168.0.1 00-22-15-15-88-15 — добавить в таблицу ARP статическую запись, задающую соответствие IP — адреса 192.168.0.1 и MAC-адреса 00-22-15-15-88-15
arp -s 192.168.0.1 00-22-15-15-88-15 192.168.0.56 — то же самое, что и в предыдущем случае, но с указанием сетевого интерфейса, для которого выполняется добавление статической записи.
arp -d 192.168.1.1 192.168.1.56 удаление записи из таблицы ARP для IP-адреса 192.168.1.1 на сетевом интерфейсе 192.168.1.56
arp -d * — полная очистка таблицы ARP. Аналогично — arp -d без параметров. Если имеется несколько сетевых интерфейсов, то очистка может быть выполнена только для одного из них — arp -d * 192.168.0.56.
    Некоторые замечания по практическому использованию команды ARP:
— разрешение адресов по протоколу ARP выполняется только при операциях передачи данных по протоколу IP .
— время жизни записей в таблице ARP ограничено, поэтому, перед просмотром ее содержимого для конкретного адреса нужно выполнить ping на этот адрес.
— если ответ на ping не приходит, а запись для данного IP-адреса присутствует в таблице ARP, то этот факт можно интерпретировать как блокировку ICMP-пакетов брандмауэром пингуемого узла.
— невозможность подключения к удаленному узлу по протоколам TCP или UDP при наличии записей в таблице ARP для целевого IP, может служить признаком отсутствия служб обрабатывающих входящие подключения, или их блокировки брандмауэром (закрытые порты).
— ARP протокол работает в пределах локального сегмента сети. Поэтому, если выполнить ping на внешний узел ( например ping yandex.ru ), то в таблице ARP будет присутствовать запись для IP — адреса маршрутизатора, через который выполняется отправка пакета во внешнюю сеть.
При использовании команды ARP для отображения таблицы, не помещающейся на экране, удобно пользоваться командой постраничного вывода more или перенаправлением стандартного вывода в файл:
arp -a | more
arp -a > C:\myarp. txt
Утилита IPCONFIG .
    Утилита командной строки IPCONFIG присутствует во всех версиях Windows. Некоторые параметры командной строки не поддерживаются в версиях предшествующих Windows Vista/Windows 7
Команда IPCONFIG используется для отображения текущих настроек протокола TCP/IP и для обновления некоторых параметров, задаваемых при автоматическом конфигурировании сетевых интерфейсов при использовании протокола Dynamic Host Configuration Protocol (DHCP).
Синтаксис:
ipconfig [/allcompartments] [/all] [/renew[Adapter]] [/release[Adapter]] [/renew6[Adapter]] [/release6[Adapter]] [/flushdns] [/displaydns] [/registerdns] [/showclassidAdapter] [/setclassidAdapter [ClassID]]
Параметры:
/? — отобразить справку по использованию IPCONFIG
/all — отобразить полную конфигурацию настроек TCP/IP для всех сетевых адаптеров. Отображение выполняется как для физических интерфейсов, так и для логических, как например, dialup или VPN подключения.
/allcompartments — вывести полную информацию о конфигурации TCP/IP для всех секций. Применимо для Windows Vista/Windows 7 .
/displaydns — отобразить содержимое кэш службы DNS — клиент.
/flushdns — сбросить содержимое кэш службы DNS — клиент.
/registerdns — инициировать регистрацию записей ресурсов DNS для всех адаптеров данного компьютера. Этот параметр используется для изменения настроек DNS сетевых подключений без перезагрузки компьютера.
/release[Adapter] — используется для отмены автоматических настроек сетевого адаптера, полученных от сервера DHCP. Если имя адаптера не указано, то отмена настроек выполняется для всех адаптеров.
/release6[Adapter] — отмена автоматических настроек для протокола IPv6
/renew[Adapter] — обновить конфигурацию для сетевого адаптера настроенного на получение настроек от сервера DHCP. Если имя адаптера не указано, то обновление выполняется для всех адаптеров.
/renew6[Adapter] — как и в предыдущем случае, но для протокола IPv6
/showclassid Adapter и /setclassid Adapter[ ClassID] — эти параметры применимы для Windows Vista / Windows 7 и используются для просмотра или изменения идентификатора Class ID, если он получен от DHCP — сервера при конфигурировании сетевых настроек.
    Изменение сетевых настроек с помощью команды IPCONFIG, в основном, применимо к тем сетевым адаптерам, которые настроены на автоматическое конфигурирование с использованием службы динамической настройки основных параметров на сетевом уровне DHCP (Dynamic Host Configuration Protocol) или службы автоматической настройки приватных IP — адресов APIPA (Automatic Private IP Addressing) .
Если в параметрах командной строки IPCONFIG используется имя адаптера, содержащее пробелы, то оно должно заключаться в двойные кавычки. Если имя содержит символы русского алфавита, то оно должно быть представлено в DOS-кодировке.
Для имен адаптеров применимо использование символа * в качестве шаблона:
* — любое имя
Локальн* — имя адаптера начинается с » Локальн «
* сети * — имя адаптера содержит строку » сети »
Примеры использования:
ipconfig — отобразить базовые сетевые настройки для всех сетевых адаптеров.
ipconfig /all — отобразить все сетевые настройки для всех сетевых адаптеров.
ipconfig /renew «Подключение по локальной сети 2» — обновить сетевые настройки, полученные от DHCP — сервера только для адаптера с именем » Подключение по локальной сети 2″
ipconfig /dysplaydns — вывести на экран содержимое кэш службы разрешения имен DNS
ipconfig /showclassid «Подключение по локальной сети» — отобразить все допустимые для этого адаптера идентификаторы классов DHCP.
ipconfig /setclassid «Local Area Connection» TEST — установить для адаптера с именем «Local Area Connection» идентификатор класса DHCP «TEST». Если идентификатор класса DHCP не указан, то он будет удален.
Пример отображаемой конфигурации сетевого адаптера :
Ethernet adapter Подключение по локальной сети : — имя адаптера
DNS-суффикс подключения . . . . . : — DNS-суффикс из настроек сетевого подключения
Описание. . . . . . . . . . . . . : Realtek 8139d Adapter #2 — описание адаптера.
Физический адрес. . . . . . . . . : 00-14-02-7B-ED-67 — MAC- адрес данного адаптера.
DHCP включен. . . . . . . . . . . : Да — признак использования DHCP для конфигурирования сетевого адаптера
Автонастройка включена. . . . . . : Да — признак автоматической настройки параметров адаптера с использованием функции автоматического назначения адресов (APIPA) при отсутствии сервера DHCP. Режим определяется значением ключа реестра
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\GUID адаптера\IPAutoconfigurationEnabled
Значение 0 (тип DWORD) параметра IPAutoconfigurationEnabled отключает APIPA. Если значение этого параметра равно 1 , или параметр отсутствует в реестре, APIPA активируется.
Автонастройка IPv4-адреса . . . . : 169.254.254.18(Основной) — автоматически полученный локальный адрес, если используется APIPA
Локальный IPv6-адрес канала . . . : fe80::7c22:e7f8:3a71:8249%16(Основной) — локальный IPv6 адрес, если используется адресация IPv6
IPv4-адрес. . . . . . . . . . . . : 10.10.11.77(Основной) — используемый для данного адаптера IPv4 — адрес.
Маска подсети . . . . . . . . . . : 255.255.224.0 — маска подсети.
Аренда получена. . . . . . . . . . : 2 марта 2012 г. 22:44:48 — дата и время получения сетевой конфигурации от сервера DHCP
Срок аренды истекает. . . . . . . . . . : 3 марта 2012 г. 2:31:27 — срок истечения аренды сетевых настроек. Определяется сервером DHCP.
Основной шлюз. . . . . . . . . : 10.10.11.1 — IP — адрес маршрутизатора, используемого в качестве шлюза по умолчанию.
Код класса DHCPv4. . . . . . . . . . : TEST — код класса DHCP, если он существует.
DHCP-сервер. . . . . . . . . . . : 10.10.11.11 — — IP-адрес DHCP-сервера, от которого получена сетевая конфигурация.
Следующие 2 параметра (идентификатор участников DHCP — DUID и идентификатор арендованного адреса IAID) присутствуют при автоматическом конфигурировании настроек протокола IPv6 . В крупных сетях могут присутствовать несколько серверов DHCPv6. При автоматическом конфигурировании сетевого адаптера, все они получают от клиента специальный запрос DHCP REQUEST. Каждый из них проверяет, ему ли был направлен запрос. Сервер не приступает к обработке пакетов с DUID, отличающимся от его собственного. При совпадении DUID, сервер помечает адрес как присвоенный и возвращает ответ DHCP REPLY. На этом обработка запроса завершается.
IAID — это специальный идентификатор арендуемого IPv6-адреса длиной 4 байта. Клиенту выделяется адрес на время, определенное сервером (срок аренды). Когда предпочитаемый срок действия адреса заканчивается, клиент отправляет серверу пакет DHCP RENEW с запросом на продление этого срока. В сообщение включается идентификатор IAID, код которого также хранится в базе данных DHCP сервера. Если сервер готов продлить срок действия адреса, он отправляет ответ DHCP REPLY и клиент получает возможность использования арендованного адреса без повторного получения настроек.
IAID DHCPv6 . . . . . . . . . . . : 234890384 — идентификатор арендованного адреса IAID
DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-14-E2-78-C0-00-0C-1E-7C-29-E3 — идентификатор участников DHCP
DNS-серверы. . . . . . . . . . . : 94.25.128.74
                       
                           
94. 25.208.74 — адреса DNS — серверов, используемых для разрешения имен в IP-адреса узлов.
NetBios через TCP/IP. . . . . . . . : Включен — режим использования NetBios через протокол TCP/IP.
Подробное описание команды IPCONFIG
Утилита GETMAC .
    Утилита командной строки GETMAC присутствует в версиях Windows XP и старше. Используется для получения аппаратных адресов сетевых адаптеров (MAC-адресов) как на локальном, так и на удаленном компьютере.
Синтаксис:
GETMAC [/S [/U [/P ]]] [/FO ] [/NH] [/V]
Параметры:
/S — имя или IP-адрес удаленного компьютера.
/U [\] Имя пользователя. Если не задано, то используется текущая учетная запись.
/P [] — Пароль. Если задан параметр /U и не задан пароль, то он будет запрошен.
/FO — Формат, в котором следует отображать результаты запроса. Допустимые форматы: «TABLE» (таблица), «LIST» (список), «CSV» (разделяемые запятыми поля). Если параметр не задан, то используется вывод в виде таблицы (TABLE) .
/NH — Указывает, что строка заголовков столбцов не должна отображаться в результирующем файле. форматов TABLE и CSV.
/V — Отображение подробной информации. В отображаемой информации присутствует имя сетевого подключения и название сетевого адаптера.
/? — Вывод справки по использованию команды.
Примеры:
GETMAC /? — отобразить краткую справку об использовании GETMAC.
GETMAC /FO csv — выдать информации о MAC-адресах всех существующих на локальном компьютере сетевых адаптеров в формате CSV (полей с разделителями в виде запятой)
GETMAC /S COMPUTER /NH /V — получить MAC адреса сетевых адаптеров для удаленного компьютера COMPUTER, не отображать заголовки столбцов в таблице и использовать отображение подробной информации. Для подключения к удаленному компьютеру используется текущая учетная запись пользователя.
GETMAC /S 192.168.1.1 /NH /V — то же самое, но вместо имени компьютера задан его IP-адрес.
GETMAC /S COMPUTER /U user /P password — получить MAC — адрес адаптеров удаленного компьютера COMPUTER. Для подключения к нему используется имя пользователя «user» и пароль «password»
GETMAC /S COMPUTER /U mydomain\user — для подключения к удаленному компьютеру используется учетная запись пользователя «user» в домене «mydomain». Пароль пользователя вводится по запросу.
GETMAC /S COMPUTER /U mydomain\user /P password — то же самое, что и в предыдущем случае, но пароль задан в командной строке.
Пример выводимой информации по GETMAC без параметров:
Физический адрес             Имя транспорта
=================== ==========================================================
00-00-DB-CE-97-9C            \Device\Tcpip_{85E2B831- 859B-45D4-9552-0E6DCFB57391}
00-2E-20-6B-0D-07             \Device\Tcpip_{158A50DF- F6F2-4909-8F15-DF94B51A81FF}
По имени транспорта можно найти в реестре записи, связанные с данным сетевым адаптером.
Утилита NBTSTAT .
    Команда NBTSTAT позволяет получить статистику протокола NetBIOS over TCP/IP (NetBT), таблицу имен локальных и удаленных компьютеров и содержимое кэш NetBIOS имен. Применение NBTSTAT позволяет принудительно обновить кэш NetBIOS-имен компьютеров и имена, зарегистрированные с помощью серверов Windows Internet Name Service (WINS).
Синтаксис:
nbtstat[-a RemoteName] [-A IPAddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Interval]
Параметры командной строки:
-a RemoteName — отображает таблицу имен удаленного компьютера. NetBIOS-имена соответствуют перечню NetBIOS-приложений, выполняющихся на удаленном компьютере.
-A IPAddress — то же самое, что и в предыдущем случае, но вместо имени удаленного компьютера используется его IP-адрес.
-c — отображает кэш имен NetBIOS и соответствующих им IP-адресов.
-n — отображает таблицу NetBIOS-имен на локальном компьютере. Состояние «Зарегистрирован» означает, что имя зарегистрировано с использованием широковещательного запроса или с помощью сервера WINS.
-r — отображает статистику разрешения NetBIOS-имен. На компьютерах под управлением Windows XP и старше, выдается раздельная статистика о разрешении имен с помощью широковещательной рассылки и с помощью сервера имен WINS.
-R — очистка кэш NetBIOS-имен и загрузка данных из секции #PRE файла LMHOSTS.
-RR — очистка кэш NetBIOS — имен на локальном компьютере и их повторная регистрация с использованием сервера WINS.
-s — отображает статистику NetBIOS — сессий между клиентом и сервером и NetBIOS-имена удаленных узлов.
-S — отображает статистику сессий между клиентом и сервером и IP-адреса удаленных узлов.
Interval — интервал обновления отображаемых данных в секундах. Для прекращения автоматического обновления используется комбинация клавиш CTRL+C
/? — отобразить справку по использованию NBTSTAT.
Примеры использования: nbtstat -n — вывести список зарегистрированных NetBIOS-имен на локальном компьютере.
nbtstat -a SERVER — вывести список зарегистрированных NetBIOS-имен на компьютере SERVER.
nbtstat -A 192.168.1.1 — вывести список зарегистрированных NetBIOS-имен на удаленном компьютере с IP-адресом 192.168.1.1 .
nbtstat -RR — выполнить очистку и перерегистрацию NetBIOS-имен на локальном компьютере.
Подробное описание команды NBTSTAT
Утилита NETSH.EXE
    Утилита сетевой оболочки NETSH (NETwork SHell) — наиболее полное и функциональное стандартное средство управления сетью с использованием командной строки в среде Windows XP и старше. Набор внутренних команд сетевой оболочки пополняется с появлением новых версий операционной системы, что необходимо учитывать при работе в локальной сети с различными ОС. Так, например, команда уровня wlan ( netsh wlan — управление беспроводной сетью) может использоваться на компьютерах под управлением Windows Vista и старше и отсутствует в Widows XP. Синтаксис используемых команд и параметров также может различаться в разных операционных системах семейства Windows.
При запуске NETSH.EXE без параметров на экран выводится приглашение к вводу внутренних команд оболочки. Набор команд представляет собой многоуровневую структуру, позволяющую выполнять необходимые действия в выбранном контексте. При вводе знака вопроса ? можно получить краткую справку по доступному перечню команд на данном уровне. Ввод команды данного уровня со знаком вопроса вызовет отображение справки по ее использованию. Аналогичную справку можно получить, введя определенную команду и, после перехода на уровень ее выполнения, ввести знак вопроса. При необходимости, можно выполнить нужное действие без использования интерактивного режима, указав в качестве параметров командной строки последовательный набор внутренних команд NETSH и необходимых параметров. Например:
netsh advfirewall show global последовательно выполняется команда первого уровня advfirewall, в ее контексте, команда следующего уровня show с параметром global
Команды NETSH можно выполнить и на удаленном компьютере с использованием подключения по локальной сети. Netsh также предоставляет возможность выполнения сценариев, представляющих собой группу команд в текстовом файле, выполняемых в режиме очередности на определенном компьютере. В целом, возможности NETSH настолько обширны, что трудно найти сетевую задачу, которую невозможно было бы решить с использованием данной утилиты.
Синтаксис:
NETSH.EXE [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName\]UserName] [-p Password | *] [Command | -f ScriptFile]
-a AliasFile — не завершать работу а перейти к приглашению ввода команд после выполнения AliasFile. AliasFile — имя текстового файла, в котором содержатся одна или несколько команд netsh .
-c Context — изменить контекст (уровень) команд netsh.
-r RemoteMachine — выполнять команды netsh на удаленном компьютере. В качестве RemoteMachine может использоваться имя или IP-адрес.
[-u DomainName\]UserName — имя пользователя для подключения к удаленному компьютеру. Если не задано, то используется текущее имя пользователя.
-p Password пароль для подключения к удаленному компьютеру.
Command — команда оболочки netsh , которую необходимо выполнить.
-f ScriptFile — аналогично ключу -a, но после выполнения команд файла сценария Scriptfile, работа netsh завершается.
Пример полученной справки об использовании по команде netsh ? или вводе знака вопроса на приглашение при запуске netsh без параметров в среде ОС Windows 7:
Применимы следующие команды:
Команды в этом контексте:
? — Отображение списка команд.
add — Добавление элемента конфигурации в список элементов.
advfirewall — Изменения в контексте ‘netsh advfirewall’.
branchcache — Изменения в контексте ‘netsh branchcache’.
bridge — Изменения в контексте ‘netsh bridge’.
delete — Удаление элемента конфигурации из списка элементов.
dhcpclient — Изменения в контексте ‘netsh dhcpclient’.
dnsclient — Изменения в контексте ‘netsh dnsclient’.
dump — Отображение сценария конфигурации.
exec — Запуск файла сценария.
firewall — Изменения в контексте ‘netsh firewall’.
help — Отображение списка команд.
http — Изменения в контексте ‘netsh http’.
interface — Изменения в контексте ‘netsh interface’.
ipsec — Изменения в контексте ‘netsh ipsec’.
lan — Изменения в контексте ‘netsh lan’.
mbn — Изменения в контексте ‘netsh mbn’.
namespace — Изменения в контексте ‘netsh namespace’.
nap — Изменения в контексте ‘netsh nap’.
netio — Изменения в контексте ‘netsh netio’.
p2p — Изменения в контексте ‘netsh p2p’.
ras — Изменения в контексте ‘netsh ras’.
rpc — Изменения в контексте ‘netsh rpc’.
set — Обновление параметров конфигурации.
show — Отображение информации.
trace — Изменения в контексте ‘netsh trace’.
wcn — Изменения в контексте ‘netsh wcn’.
wfp — Изменения в контексте ‘netsh wfp’.
winhttp — Изменения в контексте ‘netsh winhttp’.
winsock — Изменения в контексте ‘netsh winsock’.
wlan — Изменения в контексте ‘netsh wlan’.
Доступны следующие дочерние контексты:
advfirewall branchcache bridge dhcpclient dnsclient firewall http interface ipsec lan mbn namespace nap netio p2p ras rpc trace wcn wfp winhttp winsock wlan
Чтобы получить справку по команде, введите эту команду, затем пробел и «?»
Примеры практического использования NETSH.Для примера, нужно получить справку в контексте работы с конфигурацией беспроводной сети wlan . Последовательно выполняем команды
netsh
wlan
set file open C:\wlanhelp.txt
?
set file close
В данном примере, команда set file open C:\wlanhelp.txt устанавливает режим вывода консольных сообщений в файл с именем C:\wlanhelp.txt. После установки данного режима, все, что вводится с клавиатуры и отображается на экране, будет записано в указанный текстовый файл. Таким образом, можно создавать файлы журналов отдельных сессий использования netsh . Вместо параметра open можно использовать append и имя уже существующего файла журнала. В таком режиме данные будут записываться в конец существующего текстового файла.
Команда dump создает сценарий, который содержит текущую конфигурацию. Если данные сценария сохранить в текстовый файл, то при необходимости, его можно будет использовать для восстановления измененных параметров с помощью команды загрузки и выполнения скриптов exec.
Для сохранения используется команда:
dump Имя файла сценария
Для восстановления настроек из файла сценария используется команда:
exec Имя файла сценария
В некоторых версиях netsh команда dump с указанием имени файла почему-то не работает. Однако, для сохранения конфигурации можно воспользоваться способом, описанным выше — использовать запись в файл командой set file open C:\mynet.sav .
netsh
set file open C:\mynet.sav
dump
quit
Остается только слегка исправить полученный файл сценария C:\mynet.sav — удалить 1-ю строчку с командой dump и последние — с приглашением netsh и (или) командой quit
Второй способ — использовать netsh с перенаправлением вывода команды dump в файл:
netsh dump > C:\mynet. sav
Для сохранения отдельного контекста конфигурации можно воспользоваться командой dump на соответствующем уровне :
netsh interface dump > C:\myinterf.cnf — сохранить настройки сетевых интерфейсов в виде сценария netsh в файле C:\myinterf.cnf
Для восстановления сетевой конфигурации можно воспользоваться
netsh exec C:\mynet.sav
Обычно, после восстановления сетевых настроек из файла сценария , требуется перезапуск некоторых сетевых служб, а желательнее — выполнить перезагрузку Windows
Иногда требуется выполнить некоторые команды на одном уровне, перейти на другой, и снова вернуться на предыдущий. Для выполнения таких переходов используются команды pushd и popd . Принцип переключения между контекстами основан на обработке очереди в соответствии с правилом «первым вошел — последним вышел» или first-in-last-out (FILO) stack. Команда pushd запоминает текущий уровень (контекст) в стеке, а команда popd извлекает его из стека. Например:
netsh> — приглашение первого уровня команды nesh
pushd — введена команда запоминания контекста в стек
netsh> — приглашении netsh не меняется, контекст прежний.
interface ipv4 — переход на уровень interface и уровень ipv4
netsh interface ipv4> — соответственно, изменилась строка приглашения, отображая текущий контекст выполнения команды netsh
set address local static 192.168.1.9 255.255.255.0 192.168.1.1 1 — команда, меняющая настройки IP протокола.
netsh interface ip> — контекст выполнения команды, отображаемый в приглашении не изменяется.
popd — команда извлечения из стека запомненного контекста.
netsh > — строка приглашения изменилась, отображая текущий контекст выполнения команды netsh .
Без использования команд pushd и popd практически невозможно полноценное использование сценариев netsh.
Кроме сохранения и восстановления настроек использование команды dump позволяет получить примеры в виде сценария, соответствующего текущей конфигурации. Например, дамп секции interface дает пример выполнения команд netsh в контексте настроек сетевых интерфейсов. Пример сценария :
#========================
# Конфигурация интерфейса
#========================
pushd interface
reset all
popd
# Конец конфигурации интерфейса
. . .
# ——————————————
# Настройка IP-интерфейсов
# ——————————————
pushd interface ip
# Интерфейс настройки IP для «Подключение по локальной сети»
set address name=» Подключение по локальной сети » source=static addr=192.168.0.1 mask=255.255.255.0
set dns name=»Подключение по локальной сети» source=static addr=192.168.0.2 mask=255.255.255.0
set wins name=» Подключение по локальной сети » source=static addr=192.168.0.9
Строки сценария, начинающиеся с символа #, являются комментариями. Команды pushd и popd позволяют определить контекст исполнения других команд netsh. Команды настроек конфигурации плюс справочная информация самой netsh позволяют довольно легко получить командную строку для выполнения отдельных сетевых настроек:
— Сменить IP-адрес в командной строке:
netsh interface ip set address name=»Подключение по локальной сети» source=static addr=192.168.0.58 mask=255.255.255.0
name — имя сетевого подключения
source — static — статический IP-адрес. Возможно значение DHCP, если адрес назначается автоматически сервером DHCP.
addr — значение IP-адреса
mask — значение маски сети.
Для получения сведений о дополнительных возможностях конфигурирования сетевых интерфейсов можно перейти на соответствующий контекст выполнения netsh, и выполнить интересующую команду с параметром ? . Например:
netch — старт NETSH
interface — перейти в контекст настройки сетевых интерфейсов interface
ip — перейти в контекст настройки протокола IP
set file open C:\setaddr. txt — записывать сессию в файл. Эта команда используется, если нужна справочная информация в виде текстового файла .
set address ? выдать справку по использованию set address
set file close — закрыть файл справки.
quit — завершить работу с netsh
Для Windows Vista / Windows 7 синтаксис будет немного отличаться, уровню ip будет соответствовать уровень ipv4 :
netch — старт NETSH
interface — перейти в контекст настройки сетевых интерфейсов interface
ipv4 — перейти в контекст настройки протокола IP
set file open C:\setaddr.txt — записывать сессию в файл. Эта команда используется, если нужна справочная информация в виде текстового файла .
set address ? выдать справку по использованию set address
set file close
quit — завершить работу с netsh
Пример синтаксиса для смены адреса DNS-сервера в настройках сетевого подключения «Подключение по локальной сети 2» на адрес публичного DNS-сервера Googl в среде Windows 7:
netsh interface ipv4 set dnsservers name=»Подключение по локальной сети 2″ static 8. 8.8.8 primary
Из информации файла справки следует, что возможно использование параметров командной строки netsh без указания ключевых слов:
netsh interface ip set address name=»Подключение по локальной сети» source=static addr=192.168.0.58 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1
Аналогично, без указания ключевых слов:
netsh interface ip set address name=»Подключение по локальной сети» static 192.168.0.58 255.255.255.0 192.168.0.1 1
При изменении одного из параметров настроек необходимо указывать и остальные. Например, только для изменения адреса шлюза по умолчанию недостаточно выполнить команду
netsh interface ip set address name=»Подключение по локальной с
ClusterIP, NodePort, LoadBalancer, Services и Ingress — обзор с примерами
Для сетевых коммуникаций Kubernetes предоставляет четыре типа сервисов — ClusterIP
(по умолчанию), NodePort
, LoadBalancer
и ExternalName
, а также ресурсы Ingress
.
В этом посте мы кратко рассмотрим их все и проверим, как они работают.
Документация доступна здесь — Publishing Services (ServiceTypes).
Я использую AWS Elastic Kubernetes Service, поэтому имейте в виду, что у нас есть виртуальное частное облако AWS и балансировщики нагрузки приложений AWS.
В кластере Kubernetes вам могут потребоваться следующие сетевые сценарии:
- прямая связь между контейнерами — обеспечивается абстракцией Pod и доступ контейнеров друг к другу через локальный хост внутри одного и того же модуля — см. Модули
- связь между Pod и Pod в области кластера — обеспечивается сетевыми плагинами, в случае AWS EKS см. AWS VPC CNI для Kubernetes
- соединений от Pod к Сервису — предоставляется абстракцией Service, например —
ClusterIP
- подключений из мира к подам в кластере — предоставляется абстракцией Service, с внешним ресурсом, например — AWS Load Balancer
Основная цель Сервисов в Kubernetes — обеспечить постоянный доступ к своим модулям без необходимости искать IP-адрес модуля каждый раз, когда вы воссоздаете такой модуль.
Кроме того, Services могут обеспечить минимальную балансировку нагрузки между аналогичными модулями, см. Services.
Для тестов создадим развертывание с модулем с веб-сервером NGINX, который будет принимать подключения к своему порту 80:
kubectl create deployment nginx —image = nginx
deployment.apps / nginx created
Чек:
kk get deploy nginx
ИМЯ ГОТОВА АКТУАЛЬНАЯ ДОСТУПНОСТЬ ВОЗРАСТ
nginx 1/1 1 1 53s
Поскольку службы будут искать модули по их меткам, давайте проверим, какие метки имеют это развертывание:
kubectl получить развертывание nginx -o jsonpath = ‘{.metadata.labels} ‘
карта [приложение: nginx]
Хорошо — это тег app со значением nginx — запомните.
kubectl порт-вперед
Чтобы убедиться, что наш модуль запущен и работает и может обрабатывать входящие подключения к порту 80, позвольте использовать kubectl port-forward
. После того, как мы проверим, что он работает — можно начинать играть с настройкой сети со стороны кластера Kubernetes.
Найдите имя модуля:
kubectl get pod
НАЗВАНИЕ ГОТОВ СОСТОЯНИЕ ВОЗРАСТ НАЗАД
nginx-554b9c67f9-rwbp7 1/1 Бег 0 40 м
Передайте его kubectl port-forward
в качестве первого аргумента, затем укажите локальный порт ( 8080 ) и порт на модуле ( 80 ):
kubectl port-forward nginx-554b9c67f9-rwbp7 8080: 80
Перенаправление с [:: 1]: 8080 -> 80
С локального компьютера проверьте подключение к модулю NGINX в кластере Kubernetes:
curl localhost: 8080
…
Cool — «Это работает!», У нас есть рабочий модуль, и теперь мы можем использовать его для наших Сервисов.
Давайте кратко рассмотрим каждый тип, а затем начнем с примеров:
-
ClusterIP
: тип по умолчанию, будет создавать ресурс службы с IP-адресом из пула кластера, такая служба будет доступна только внутри кластера (или сkube-proxy
) -
NodePort
: откроет TCP-порт на каждом WorkerNode EС2, «за ним» автоматически создаст службуClusterIP
и перенаправит трафик с этого TCP-порта на ЕС2 на этотClusterIP
— такая служба будет быть доступным из мира (очевидно, если EC2 имеет общедоступный IP-адрес) или внутри VPC -
LoadBalancer
: создаст внешний балансировщик нагрузки (AWS Classic LB), «за ним» автоматически создастNodePort
, затемClusterIP
и, таким образом, перенаправит трафик от балансировщика нагрузки к модулю в кластер -
ExternalName
: что-то вроде DNS-прокси — в ответ на такой сервис будет возвращена запись, принятая через CNAME записи, указанной вexternalName
Кластер IP
Самый простой тип, стандартный.
Откроет доступ к приложению в кластере без доступа из мира.
Его можно использовать, например, для предоставления доступа к службе кэширования, чтобы сделать ее доступной для всех модулей в пространстве имен.
Давайте использовать следующий манифест Kubernetes:
--- apiVersion: v1 вид: Сервис метаданные: имя: "nginx-service" пространство имен: "по умолчанию" спецификации: порты: - порт: 80 тип: ClusterIP селектор: приложение: "nginx"
Создание службы:
kubectl применить -f nginx-svc.yaml
служба / nginx-служба создана
Проверьте это:
kk получить svc nginx-service
ИМЯ ТИП КЛАСТЕР-IP ВНЕШНИЙ IP-ПОРТ (И) ВОЗРАСТ
nginx-service ClusterIP 172.20.54.138 <нет> 80 / TCP 38s
прокси kubectl
и служба DNS
Поскольку ClusterIP
Service type будет доступен только из кластера — мы можем использовать kubectl proxy
для его тестирования — это откроет локальный TCP-порт для API-сервера, а затем мы сможем использовать его для доступа к нашему NGINX.
Запустить прокси:
kubectl proxy —port = 8080
Запуск на 127.0.0.1:8080
Теперь, зная имя нашей службы — мы устанавливаем его в метаданных : имя
— мы можем открыть соединение с локальным хостом : 8080 , а затем через имя пространства имен — с самой службой:
curl -L localhost: 8080 / api / v1 / namespaces / default / services / nginx-service / proxy
…
Или просто получить информацию о Сервисе:
curl -L localhost: 8080 / api / v1 / namespaces / default / services / nginx-service /
{
«kind»: «Service»,
«apiVersion»: «v1»,
«metadata» : {
«name»: «nginx-service»,
«namespace»: «default»,
«selfLink»: «/ api / v1 / namespaces / default / services / nginx-service»,
. ..
Итак, ClusterIP
:
- предоставит доступ к приложению в кластере Kubernetes, но без доступа из мира
- будет использовать IP-адрес из IP-пула кластера и будет доступен через DNS-имя в области кластера, см. DNS для служб и подов
NodePort
Теперь давайте подробнее рассмотрим тип службы NodePort
.
С этим типом Kubernetes откроет TCP-порт на каждом WorkerNode, а затем через kube-proxy
, работающий на всех узлах, будет прокси-запросы от этого TCP-порта к модулю на этом узле.
Обновите наш манифест:
--- apiVersion: v1 вид: Сервис метаданные: имя: "nginx-service" пространство имен: "по умолчанию" спецификации: порты: - порт: 80 nodePort: 30001 тип: NodePort селектор: приложение: "nginx"
Параметр nodePort
здесь не является обязательным, он добавлен здесь только для примера.Без него Kubernetes выделит порт из диапазона портов 30000-32767.
Обновите службу:
kubectl apply -f nginx-svc.yaml
служба / nginx-служба настроена
Проверьте это:
kubectl get svc nginx-service
ИМЯ ТИП КЛАСТЕР-IP ВНЕШНИЙ IP-ПОРТ (-И) ВОЗРАСТ
nginx-service NodePort 172. 20.54.138 <нет> 80: 30001 / TCP 20h
И проверьте порт на инстансе EC2:
[root @ ip-10-3-49-200 ec2-user] # netstat -anp | grep 30001
tcp6 0 0 ::: 30001 ::: * СЛУШАТЬ 5332 / kube-proxy
Очевидно, что если рабочие узлы размещены в частных подсетях и у них нет доступа из мира, такая служба не может использоваться для предоставления доступа приложению извне в сети.
Тем не менее, вы можете получить доступ к приложению NGINX из той же сети, например, с хоста Bastion:
[ec2-user @ ip-10-3-49-200 ~] $ curl 10.3.49.200:30001
…
Итак, тип NodePort
:
- привязан к конкретному хосту, например ЕС2
- , если хост недоступен из мира — тогда такая служба не будет предоставлять внешний доступ к подам
- будет использовать IP-адрес из пула провайдера, например AWS VPC CIDR .
- предоставит доступ к модулям только на том же рабочем узле
Балансировщик нагрузки
Наиболее часто используемый тип услуги.
В случае AWS — создаст AWS Load Balancer, по умолчанию классический тип, который будет проксировать трафик на все экземпляры ЕС2 TargetGroup, привязанные к этому Load Balancer, а затем через NodePort
Service — ко всем модулям.
На таком балансировщике нагрузки вы можете использовать TLS, можете использовать различные типы балансировщиков нагрузки — внутренние / внешние и т. Д., См. Другие аннотации ELB.
Обновите манифест:
--- apiVersion: v1 вид: Сервис метаданные: имя: "nginx-service" пространство имен: "по умолчанию" спецификации: порты: - порт: 80 тип: LoadBalancer селектор: приложение: "nginx"
Применить:
kubectl применить -f nginx-svc.yaml
служба / nginx-служба настроена
Чек:
kubectl get svc nginx-service
ИМЯ ТИП КЛАСТЕР-IP ВНЕШНИЙ IP-ПОРТ (S) ВОЗРАСТ
nginx-service LoadBalancer 172. 20.54.138 ac8415de24f6c4db9b5019f789792e45-443260761.us-east TCP 21h
Подождите пару минут, пока ваш DSN обновится, и проверьте URL-адрес созданного балансировщика:
curl ac8415de24f6c4db9b5019f789792e45-443260761.us-east-2.elb.amazonaws.com
…
Что вы не можете сделать, используя этот тип, так это использовать маршрутизацию на основе хоста или пути, см. Сравнение Application Load Balancer и Classic Load Balancer.
На самом деле, чтобы иметь все возможности в приложении AWS Application Load Balancer, мы можем использовать другой тип сервиса — Ingress
, о нем мы поговорим чуть позже в части Ingress этого поста.
Итак, тип службы LoadBalancer
:
- обеспечит внешний доступ к стручкам
- обеспечит базовую балансировку нагрузки для модулей на разных EC2
- даст возможность завершить сеансы SSL / TLS
- не поддерживает маршрутизацию уровня 7
Внешнее имя
Другой тип службы — это ExternalName
, который перенаправляет запрос в домен, указанный в его параметре externalName
:
--- apiVersion: v1 вид: Сервис метаданные: name: "google-service" пространство имен: "по умолчанию" спецификации: порты: - порт: 80 тип: ExternalName externalName: google.com
Создать:
kubectl apply -f nginx-svc.yaml
служба / служба Google создана
Проверить сервис:
kubectl get svc google-service
ИМЯ ТИП КЛАСТЕР-IP ВНЕШНИЙ IP-ПОРТ (И) ВОЗРАСТ
google-service ExternalName <нет> google.com 80 / TCP 33s
И проверьте, как это работает — перейдите в модуль NGINX и используйте утилиту dig
для проверки записи DNS:
root @ nginx-554b9c67f9-rwbp7: / # dig google-service.default.svc.cluster.local + short
google.com.
172.217.8.206
Здесь мы запрашиваем локальное DNS-имя google-servic e, которое было преобразовано в IP-адрес домена google.com , который был установлен в externalName
.
На самом деле, Ingress
не является специализированной службой — он просто описывает набор правил для Kubernetes Ingress Controller по созданию балансировщика нагрузки, его слушателей и правила маршрутизации для них.
Документация здесь >>>.
В случае AWS это будет ALB Ingress Controller — см. ALB Ingress Controller на Amazon EKS и AWS Elastic Kubernetes Service: запуск ALB Ingress controller.
Чтобы заставить его работать, Ingress
требует дополнительной службы, где Ingress
будет перенаправлять трафик на … своего рода серверную часть.
Для контроллера входа ALB манифест с входом
и его службой может быть следующим:
--- apiVersion: v1 вид: Сервис метаданные: имя: "nginx-service" пространство имен: "по умолчанию" спецификации: порты: - порт: 80 тип: NodePort селектор: приложение: "nginx" --- apiVersion: extensions / v1beta1 вид: Ingress метаданные: имя: "nginx-ingress" аннотации: кубернетес.io / ingress.class: alb alb.ingress.kubernetes.io/scheme: доступ в Интернет ярлыки: приложение: "nginx" спецификации: бэкэнд: serviceName: "nginx-service" servicePort: 80
Здесь мы создаем службу с типом NodePort
и Ingress
с типом ALB.
Kubernetes создаст объект Ingress
, затем его увидит alb-ingress-controller , создаст AWS ALB с правилами маршрутизации из spec
из Ingress
, создаст объект Service с NodePort
, затем откроет TCP-порт на WorkerNodes и начнет маршрутизацию трафика от клиентов => к Load Balancer => к NodePort на EC2 => через Service к модулям.
Давай проверим.
Служба:
kubectl get svc nginx-service
ИМЯ ТИП КЛАСТЕР-IP ВНЕШНИЙ IP-ПОРТ (И) ВОЗРАСТ
nginx-service NodePort 172.20.54.138 <нет> 80: 30968 / TCP 21h
Вход
:
kubectl get ingress nginx-ingress
ИМЯ ХОЗЯЙКИ АДРЕС ПОРТЫ ВОЗРАСТ
nginx-ingress * e172ad3e-default-nginxingr-29e9-1405936870.us-east-2.elb.amazonaws.com 80 5 мин. 22 сек.
и URL балансировщика нагрузки:
curl e172ad3e-default-nginxingr-29e9-1405936870.us-east-2.elb.amazonaws.com
…
«Это работает!» (в)
Маршрутизация на основе пути
В приведенном выше примере мы отправим весь трафик от ALB к той же службе и ее модулям.
Используя Ingress
и его правила, мы также можем указать правила для отправки трафика на конкретный бэкэнд в зависимости, например, от URI запроса.
Итак, давайте раскроем два модуля NGINX:
kubectl create deployment nginx-1 —image = nginx
deployment.apps / nginx-1 created
kubectl create deployment nginx-2 —image = nginx
deployment.apps / nginx-2 created
Создайте файл для каждого, но с разным содержанием:
kubectl exec nginx-1-75969c956f-gnzwv — bash -c «echo svc-1> / usr / share / nginx / html / sv1.html «
kubectl exec nginx-2-db55bc45b-lssc8 — bash -c» echo svc-2> /usr/share/nginx/html/svc2.html «
Обновите файл манифеста и добавьте еще одну службу и установите правила для Ingress
с двумя бэкэндами:
--- apiVersion: v1 вид: Сервис метаданные: имя: "nginx-1-service" пространство имен: "по умолчанию" спецификации: порты: - порт: 80 тип: NodePort селектор: приложение: "nginx-1" --- apiVersion: v1 вид: Сервис метаданные: имя: "nginx-2-service" пространство имен: "по умолчанию" спецификации: порты: - порт: 80 тип: NodePort селектор: приложение: "nginx-2" --- apiVersion: extensions / v1beta1 вид: Ingress метаданные: имя: "nginx-ingress" аннотации: кубернетес.io / ingress.class: alb alb.ingress.kubernetes.io/scheme: доступ в Интернет ярлыки: приложение: "nginx" спецификации: правила: - http: пути: - путь: /svc1.html бэкэнд: serviceName: "nginx-1-service" servicePort: 80 - путь: /svc2.html бэкэнд: serviceName: "nginx-2-service" servicePort: 80
Здесь мы устанавливаем два правила: если URI == / svc1.html или / svc2.html — затем отправил трафик на nginx-1 или nginx-2 соответственно.
Разверните его:
kubectl apply -f nginx-svc.yaml
service / nginx-1-service created
service / nginx-2-service created
ingress.extensions / nginx-ingress configured
Ознакомьтесь с правилами:
kubectl describe ingress nginx-ingress
…
Rules:
Backends пути к хосту
—- —- ———
*
/ svc1.html nginx-1-service: 80 (<нет>)
/svc2.html nginx-2-service: 80 (<нет>)
…
Проверьте это — сделайте запрос по URI svc1.html и svc2.html :
curl e172ad3e-default-nginxingr-29e9-1405936870.us-east-2.elb.amazonaws.com/svc1.html
svc-1
curl e172ad3e-default-nginxingr-29e9-1405936870.us-east .elb.amazonaws.com / svc2.html
svc-2
Маршрутизация на основе имени
Другой пример — маршрутизация на основе имени хоста.
Давайте создадим три записи DNS — svc1.example.com , svc2.example.com, и только svc.example.com , а затем через CNAME-записи укажем их на наш URL-адрес балансировщика нагрузки, созданный из . Ресурс Ingress
.
Затем обновите манифест:
--- apiVersion: v1 вид: Сервис метаданные: имя: "nginx-1-service" пространство имен: "по умолчанию" спецификации: порты: - порт: 80 тип: NodePort селектор: приложение: "nginx-1" --- apiVersion: v1 вид: Сервис метаданные: имя: "nginx-2-service" пространство имен: "по умолчанию" спецификации: порты: - порт: 80 тип: NodePort селектор: приложение: "nginx-2" --- apiVersion: extensions / v1beta1 вид: Ingress метаданные: имя: "nginx-ingress" аннотации: кубернетес.io / ingress.class: alb alb.ingress.kubernetes.io/scheme: доступ в Интернет ярлыки: приложение: "nginx" спецификации: правила: - хост: "svc1.example.com" http: пути: - бэкэнд: serviceName: "nginx-1-service" servicePort: 80 - хост: "svc2.example.com" http: пути: - бэкэнд: serviceName: "nginx-2-service" servicePort: 80 - http: пути: - бэкэнд: serviceName: "nginx-1-service" servicePort: 80
Здесь мы оставили Сервисы без изменений, но в Правилах мы установили это запрос к svc1.example.com необходимо отправить в службу Service-1, svc2.example.com — в службу 2, svc.example.com — в серверную часть по умолчанию, например Сервис-1.
Проверьте это:
curl svc1.example.com
svc-1
curl svc2.example.com
svc-2
curl svc.example.com
svc-1
И проверьте эти правила в прослушивателе балансировщика нагрузки в консоли AWS:
«Это все, ребята!» (в)
Также опубликовано на Medium.
Сеть— Конфигурация | Ubuntu
Ubuntu поставляется с рядом графических утилит для настройки сетевых устройств. Этот документ предназначен для администраторов серверов и посвящен управлению вашей сетью из командной строки.
Интерфейсы Ethernet
Интерфейсы Ethernetидентифицируются системой с использованием предсказуемых имен сетевых интерфейсов. Эти имена могут отображаться как eno1 или enp0s25 . Однако в некоторых случаях интерфейс может по-прежнему использовать стиль именования ядра eth # .
Определение интерфейсов Ethernet
Чтобы быстро определить все доступные интерфейсы Ethernet, вы можете использовать команду ip, как показано ниже.
ип а
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка / петля 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00
inet 127.0.0.1/8 область видимости хоста lo
valid_lft навсегда предпочтительный_lft навсегда
inet6 :: узел области 1/128
valid_lft навсегда предпочтительный_lft навсегда
2: enp0s25: mtu 1500 qdisc noqueue state UP группа по умолчанию qlen 1000
ссылка / эфир 00: 16: 3e: e2: 52: 42 brd ff: ff: ff: ff: ff: ff ссылка-netnsid 0
инет 10.102.66.200 / 24 brd 10.102.66.255 область глобального динамического eth0
valid_lft 3257sec предпочтительный_lft 3257sec
inet6 fe80 :: 216: 3eff: fee2: 5242/64 ссылка области
valid_lft навсегда предпочтительный_lft навсегда
Еще одно приложение, которое может помочь идентифицировать все сетевые интерфейсы, доступные в вашей системе, — это команда lshw. Эта команда предоставляет более подробную информацию об аппаратных возможностях конкретных адаптеров. В приведенном ниже примере lshw показывает один интерфейс Ethernet с логическим именем eth0 вместе с информацией о шине, сведениями о драйвере и всеми поддерживаемыми возможностями.
sudo lshw - сеть класса
* -сеть
описание: интерфейс Ethernet
продукт: MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT / s]
поставщик: Mellanox Technologies
физический идентификатор: 0
информация по автобусу: pci @ 0004: 01: 00.0
логическое имя: eth5
версия: b0
серийный: e4: 1d: 2d: 67: 83: 56
слот: U78CB.001.WZS09KB-P1-C6-T1
размер: 10 Гбит / с
емкость: 10 Гбит / с
ширина: 64 бита
часы: 33 МГц
возможности: pm vpd msix pciexpress bus_master cap_list физическое волокно Ethernet 10000bt-fd
конфигурация: автосогласование = выключено широковещание = да драйвер = mlx4_en driverversion = 4.0-0 дуплекс = полная прошивка = 2.9.1326 ip = 192.168.1.1 задержка = 0 канал = да многоадресная передача = да порт = скорость волокна = 10 Гбит / с
ресурсы: iomemory: 24000-23fff irq: 481 память: 3fe200000000-3fe2000fffff память: 240000000000-240007ffffff
Логические имена интерфейса Ethernet
Логические имена интерфейса также можно настроить через конфигурацию netplan. Если вы хотите контролировать, какой интерфейс получает конкретное логическое имя, используйте ключи match и set-name .Ключ соответствия используется для поиска адаптера на основе некоторых критериев, таких как MAC-адрес, драйвер и т. Д. Затем ключ set-name может использоваться для изменения устройства на желаемое логическое имя.
сеть:
версия: 2
рендерер: networkd
Ethernet:
eth_lan0:
dhcp4: правда
соответствие:
macaddress: 00: 11: 22: 33: 44: 55
имя-набора: eth_lan0
Настройки интерфейса Ethernet
ethtool — это программа, которая отображает и изменяет настройки карты Ethernet, такие как автосогласование, скорость порта, дуплексный режим и Wake-on-LAN.Ниже приведен пример того, как просмотреть поддерживаемые функции и сконфигурированные параметры интерфейса Ethernet.
судо ethtool eth5
Настройки для eth5:
Поддерживаемые порты: [FIBER]
Поддерживаемые режимы связи: 10000baseT / Full
Поддерживаемое использование кадра паузы: Нет
Поддерживает автосогласование: Нет
Поддерживаемые режимы FEC: не сообщается
Рекламируемые режимы связи: 10000baseT / Full
Рекламируемое использование кадра паузы: Нет
Объявленное автосогласование: Нет
Объявленные режимы FEC: не сообщается
Скорость: 10000 Мб / с
Дуплекс: Полный
Порт: FIBER
PHYAD: 0
Трансивер: внутренний
Автосогласование: выключено
Поддерживает пробуждение: d
Пробуждение: d
Текущий уровень сообщения: 0x00000014 (20)
ссылка ifdown
Ссылка обнаружена: да
IP-адресация
В следующем разделе описывается процесс настройки IP-адреса вашей системы и шлюза по умолчанию, необходимых для связи в локальной сети и Интернете.
Назначение временного IP-адреса
Для временных сетевых конфигураций вы можете использовать команду ip, которая также присутствует в большинстве других операционных систем GNU / Linux. Команда ip позволяет настроить параметры, которые вступают в силу немедленно, однако они не являются постоянными и будут потеряны после перезагрузки.
Чтобы временно настроить IP-адрес, вы можете использовать команду ip следующим образом. Измените IP-адрес и маску подсети в соответствии с требованиями вашей сети.
sudo ip addr add 10.102.66.200/24 dev enp0s25
Затем IP-адрес можно использовать для установки соединения вверх или вниз.
набор IP-каналов для разработчиков enp0s25 up
ip link установить dev enp0s25 вниз
Чтобы проверить конфигурацию IP-адреса enp0s25, вы можете использовать команду ip следующим образом.
ip-адрес показать dev enp0s25
10: enp0s25: mtu 1500 qdisc noqueue state UP группа по умолчанию qlen 1000
ссылка / эфир 00: 16: 3e: e2: 52: 42 brd ff: ff: ff: ff: ff: ff ссылка-netnsid 0
инет 10.102.66.200 / 24 brd 10.102.66.255 область глобального динамического eth0
valid_lft 2857sec предпочтительный_lft 2857sec
inet6 fe80 :: 216: 3eff: fee2: 5242/64 ссылка области
valid_lft навсегда предпочтительный_lft навсегда6
Чтобы настроить шлюз по умолчанию, вы можете использовать команду ip следующим образом. Измените адрес шлюза по умолчанию в соответствии с требованиями вашей сети.
sudo ip route добавить значение по умолчанию через 10.102.66.1
Чтобы проверить конфигурацию шлюза по умолчанию, вы можете использовать команду ip следующим образом.
ip маршрут показать
по умолчанию через 10.102.66.1 dev eth0 proto dhcp src 10.102.66.200 metric 100
10.102.66.0/24 dev eth0 proto kernel scope link src 10.102.66.200
10.102.66.1 dev eth0 proto dhcp scope ссылка src 10.102.66.200 метрика 100
Если вам требуется DNS для временной конфигурации сети, вы можете добавить IP-адреса DNS-сервера в файл /etc/resolv.conf
. В общем, редактирование /etc/resolv.conf
напрямую не рекомендуется, но это временная и непостоянная конфигурация.В приведенном ниже примере показано, как ввести два DNS-сервера в /etc/resolv.conf
, который следует заменить на серверы, подходящие для вашей сети. Более подробное описание правильного постоянного способа настройки DNS-клиента находится в следующем разделе.
сервер имен 8.8.8.8
сервер имен 8.8.4.4
Если вам больше не нужна эта конфигурация и вы хотите удалить всю IP-конфигурацию с интерфейса, вы можете использовать команду ip с опцией flush, как показано ниже.
очистка IP-адреса eth0
Примечание
Очистка IP-конфигурации с помощью команды ip не очищает содержимое
/etc/resolv.conf
. Вы должны удалить или изменить эти записи вручную или перезагрузить, что также должно привести к повторному запуску/etc/resolv.conf
, который является символической ссылкой на/run/systemd/resolve/stub-resolv.conf
. написано.
Назначение динамического IP-адреса (DHCP-клиент)
Чтобы настроить сервер на использование DHCP для динамического назначения адресов, создайте конфигурацию netplan в файле / etc / netplan / 99_config.yaml
. В приведенном ниже примере предполагается, что вы настраиваете свой первый интерфейс Ethernet, обозначенный как enp3s0 .
сеть:
версия: 2
рендерер: networkd
Ethernet:
enp3s0:
dhcp4: правда
Затем конфигурацию можно применить с помощью команды netplan.
sudo netplan применить
Назначение статического IP-адреса
Чтобы настроить вашу систему на использование статического назначения адресов, создайте конфигурацию netplan в файле / etc / netplan / 99_config.yaml
. В приведенном ниже примере предполагается, что вы настраиваете свой первый интерфейс Ethernet, обозначенный как eth0 . Измените значения адресов , шлюза , и серверов имен в соответствии с требованиями вашей сети.
сеть:
версия: 2
рендерер: networkd
Ethernet:
eth0:
адреса:
- 10.10.10.2/24
шлюз4: 10.10.10.1
серверы имен:
поиск: [mydomain, otherdomain]
адреса: [10.10.10.1, 1.1.1.1]
Затем конфигурацию можно применить с помощью команды netplan.
sudo netplan применить
Петлевой интерфейс
Интерфейс обратной связи определяется системой как lo и имеет IP-адрес по умолчанию 127.0.0.1. Его можно просмотреть с помощью команды ip.
ip-адрес показать lo
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка / петля 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00
инет 127.0.0.1 / 8 объем хоста lo
valid_lft навсегда предпочтительный_lft навсегда
inet6 :: узел области 1/128
valid_lft навсегда предпочтительный_lft навсегда
Имя Разрешение
Разрешение имен применительно к IP-сети — это процесс сопоставления IP-адресов с именами хостов, что упрощает идентификацию ресурсов в сети. В следующем разделе объясняется, как правильно настроить вашу систему для разрешения имен с использованием DNS и статических записей имен хостов.
Конфигурация клиента DNS
Традиционно файл / etc / resolv.conf
был статическим файлом конфигурации, который редко нужно было изменять или автоматически изменять с помощью клиентских хуков DCHP. Systemd-resolved обрабатывает конфигурацию сервера имен, и с ним следует взаимодействовать с помощью команды systemd-resolve
. Netplan настраивает systemd-resolved для генерации списка серверов имен и доменов для помещения в /etc/resolv.conf
, который является символической ссылкой:
/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
Чтобы настроить преобразователь, добавьте IP-адреса серверов имен, которые подходят для вашей сети, в файл конфигурации netplan.Вы также можете добавить дополнительные списки поиска DNS-суффиксов для соответствия доменным именам вашей сети. В результате файл может выглядеть следующим образом:
сеть:
версия: 2
рендерер: networkd
Ethernet:
enp0s25:
адреса:
- 192.168.0.100/24
шлюз4: 192.168.0.1
серверы имен:
поиск: [mydomain, otherdomain]
адреса: [1.1.1.1, 8.8.8.8, 4.4.4.4]
Поиск Опция также может использоваться с несколькими доменными именами, поэтому запросы DNS будут добавляться в том порядке, в котором они вводятся.Например, в вашей сети может быть несколько поддоменов для поиска; родительский домен example.com
и два субдомена: sales.example.com
и dev.example.com
.
Если у вас есть несколько доменов, которые вы хотите найти, ваша конфигурация может выглядеть следующим образом:
сеть:
версия: 2
рендерер: networkd
Ethernet:
enp0s25:
адреса:
- 192.168.0.100/24
шлюз4: 192.168.0.1
серверы имен:
поиск: [example.com, sales.example.com, dev.example.com]
адреса: [1.1.1.1, 8.8.8.8, 4.4.4.4]
Если вы попытаетесь проверить связь с хостом с именем server1 , ваша система автоматически запросит у DNS его полное доменное имя (FQDN) в следующем порядке:
server1.example.com
server1.sales.example.com
server1.dev.example.com
Если совпадений не найдено, DNS-сервер выдаст результат notfound и запрос DNS завершится ошибкой.
Статические имена хостов
Статические имена хостов — это локально определенные сопоставления имени хоста-IP, расположенные в файле / etc / hosts
. Записи в файле hosts
по умолчанию будут иметь приоритет над DNS. Это означает, что если ваша система пытается разрешить имя хоста, и оно соответствует записи в / etc / hosts, она не будет пытаться найти запись в DNS.В некоторых конфигурациях, особенно когда доступ к Интернету не требуется, серверы, которые обмениваются данными с ограниченным количеством ресурсов, можно удобно настроить на использование статических имен хостов вместо DNS.
Ниже приведен пример файла hosts
, в котором ряд локальных серверов идентифицирован простыми именами хостов, псевдонимами и их эквивалентными полными доменными именами (FQDN).
127.0.0.1 локальный хост
127.0.1.1 ubuntu-сервер
10.0.0.11 server1 server1.example.com vpn
10.0.0.12 server2 server2.example.com почта
10.0.0.13 server3 server3.example.com www
10.0.0.14 server4 server4.example.com файл
Примечание
В приведенном выше примере обратите внимание, что каждому из серверов были присвоены псевдонимы в дополнение к их собственным именам и полному доменному имени. Server1 был сопоставлен с именем vpn , server2 упоминается как mail , server3 как www , а server4 как файл .
Конфигурация переключателя службы имен
Порядок, в котором ваша система выбирает метод преобразования имен хостов в IP-адреса, управляется файлом конфигурации коммутатора службы имен (NSS) /etc/nsswitch.conf
. Как упоминалось в предыдущем разделе, обычно статические имена хостов, определенные в файле system / etc / hosts
, имеют приоритет над именами, разрешенными из DNS. Ниже приведен пример строки, отвечающей за этот порядок поиска имени хоста в файле / etc / nsswitch.conf
.
хостов: файлы mdns4_minimal [NOTFOUND = return] dns mdns4
files сначала пытается разрешить статические имена хостов, расположенные в
/ etc / hosts
.mdns4_minimal пытается разрешить имя с помощью Multicast DNS.
[NOTFOUND = return] означает, что любой ответ notfound предыдущим процессом mdns4_minimal должен рассматриваться как авторитетный и что система не должна пытаться продолжить поиск ответа.
dns представляет собой устаревший одноадресный DNS-запрос.
mdns4 представляет многоадресный DNS-запрос.
Чтобы изменить порядок вышеупомянутых методов разрешения имен, вы можете просто изменить строку hosts: на значение по вашему выбору. Например, если вы предпочитаете использовать устаревший Unicast DNS вместо Multicast DNS, вы можете изменить строку в /etc/nsswitch.conf
, как показано ниже.
хостов: файлы dns [NOTFOUND = return] mdns4_minimal mdns4
Перемычка
Мостовое соединение нескольких интерфейсов — это более сложная конфигурация, но она очень полезна во многих сценариях. Один из сценариев — это установка моста с несколькими сетевыми интерфейсами, а затем использование брандмауэра для фильтрации трафика между двумя сегментами сети. Другой сценарий — использование моста в системе с одним интерфейсом, чтобы позволить виртуальным машинам прямой доступ к внешней сети.В следующем примере рассматривается последний сценарий.
Настройте мост, отредактировав конфигурацию вашего netplan, находящуюся в / etc / netplan /
:
сеть:
версия: 2
рендерер: networkd
Ethernet:
enp3s0:
dhcp4: нет
мосты:
br0:
dhcp4: да
интерфейсы:
- enp3s0
Примечание
Введите соответствующие значения для вашего физического интерфейса и сети.
Теперь примените конфигурацию для включения моста:
sudo netplan применить
Новый интерфейс моста теперь должен быть запущен.Brctl предоставляет полезную информацию о состоянии моста, контролирует, какие интерфейсы являются частью моста, и т. Д. См. man brctl
для получения дополнительной информации.
networkd-диспетчер для скриптов pre-up, post-up и т. Д.
Пользователи бывшего ifupdown
могут быть знакомы с использованием скриптов ловушек (например, pre-up, post-up и т. Д.) В своих файлах интерфейсов. Конфигурация Netplan в настоящее время не поддерживает сценарии ловушек в своем определении конфигурации.
Вместо того, чтобы реализовать эту функциональность с помощью networkd renderer
, пользователи могут использовать networkd-dispatcher.Пакет предоставляет пользователям и пакетам точки подключения при достижении определенных состояний сети, чтобы помочь в реагировании на состояние сети.
Примечание. Если не на Ubuntu Server, а на рабочем столе, сеть управляется Network Manager — в этом случае вам понадобятся сценарии NM Dispatcher.
В FAQ Netplan есть отличная таблица, в которой сравниваются сроки событий между ifupdown
/ systemd-networkd
/ network-manager
Важно знать, что эти хуки выполняются асинхронно; то есть они не будут блокировать переход в другое состояние.
В FAQ Netplan также есть пример преобразования старого хука ifupdown
в networkd-dispatcher
.
ресурсов
Сканер уязвимостей веб-сайтов — онлайн-сканирование веб-уязвимостей
Версия сканера Full включает все тесты из сканирования Light и добавляет более сложные тесты безопасности. Сначала он сканирует целевое приложение, затем отправляет различные входные данные в параметры страниц и ищет определенные веб-уязвимости, такие как: внедрение SQL, межсайтовые сценарии, включение локального файла, внедрение команд ОС и многие другие.Кроме того, сканер также пытается обнаружить конфиденциальные файлы с сервера, такие как файлы резервных копий, старые файлы, интерфейсы администратора, файлы архивов и т. Д.
Хотя Light Scan является пассивным и генерирует максимум 20 HTTP-запросов к серверу, Full Scan более агрессивен и отправляет до 10 000 HTTP-запросов. Это может вызвать срабатывание сигнализации от устройств IDS, но вы должны знать, что это не деструктивное сканирование.
Поскольку Full Scan выполняет комплексную оценку веб-сайта, это может занять до нескольких часов.
Сканирование с аутентификацией
Сканер уязвимостей веб-сайтов может сканировать целевое веб-приложение как аутентифицированный пользователь. Аутентификацию можно настроить двумя способами:- Аутентификация пользователя / пароля : Когда выбран этот параметр, сканер сначала попытается пройти аутентификацию по указанному URL-адресу для входа и получит действительный файл cookie сеанса. Этот файл cookie будет использоваться со всеми HTTP-запросами к серверу, выполняя сканирование с проверкой подлинности.У вас есть возможность проверить, была ли аутентификация успешной, перед фактическим запуском сканирования.
- Аутентификация файлов cookie : с помощью этой опции вы можете указать уже действующий файл cookie сеанса (или несколько файлов cookie), который будет отправляться с каждым HTTP-запросом на сервер.