По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В предыдущей статье мы рассмотрели развертывание сервера с помощью Terraform в Amazon облаке. Мы использовали для развертывания файл с кодом, где описали полностью наш сервер и добавили скрипт на скриптовом языке bash, чтобы создалась HTML страничка с IP адресом сервера.
Сам скрипт:
user_data = <<EOF
#!/bin/bash
apt -y update
apt -y install apache2
myip=`curl http://169.254.169.254/latest/meta-data/local-ipv4`
echo "<h2>WebServer with IP: $myip</h2><br> Build by Terraform!" > /var/www/html /index.html
sudo service httpd start
chkconfig httpd on
EOF
Помещение подобного скрипта в код для поднятия инстанса, не очень хорошая практика, обычно для этого используются внешние статические файлы. На это есть несколько причин, одна из них разделение ролей в команде, например. Один человек пишет Terraform код, а другой скрипты для серверов на bash если это Linux сервер или на PowerShell если сервер разворачивается под управлением операционной системой Windows. Еще одной причиной является информационная безопасность точки зрения, которой не корректно вставлять скрипт внутри терраформ кода.
Для начала создадим новую директорию Lesson-3 с помощью команды mkdir Lesson-3.
Теперь, создадим новый файл WebServer.tr, командой nano webserver.tr и вставим рабочий код:
Далее мы можем вырезать те данные которые у нас пойдут в скрипт и сохраняем файл. Создадим еще один файл назовем его user_data.sh. Создается файл достаточно просто - nano user_data.sh. В данный файл мы вставляем вырезанный кусок скрипта. Очень важно, обратите внимание! Файл должен начинаться с #!/bin/bash данная строка указывает, что для исполнения данного файла должен использоваться скриптовый язык bash. Сохраняем. На самом деле расширение файла, создаваемого не важно, т.к мы будем использовать функцию в Terraform которая берет контент из файла и делает вставку в код, автоматически подхватывая скрипт. Далее переходим к редактированию основного файла из которого мы вырезали скрипт. Открываем его любым текстовым редактором опять - nano webserver.tr. И нам теперь необходимо вставить функцию, которая возьмет данные из файла. В общем виде данная функция будет выглядеть следующим образом:
user_data = file(“./dir/myfile.txt”)
В нашем случае строчка модифицируется, т.к файл лежит в той же директории, что и Terraform файл user_data = file(“user_data.sh”).
Теперь, чтобы проверить, как это работает мы должны сделать первоначальную инициацию Terraform, командой terraform init. Terraform, как обычно скачает все, что ему необходимо для работы. Далее проверяем, что у нас получилось и посмотрим, какие изменения Terraform произведет. В результате мы можем видеть, что, как и в прошлый раз будет создано 2 элемента. Сервер и Группа безопасности. Далее для запуска сервера мы можем использовать стандартную команду terraform apply и на вопрос системы отвечаем утвердительно. Можно сразу увидеть, что процесс создания сервера и группы безопасности начался.
Как видите процесс занял совсем небольшое время.
В данном случае не более одной минуты. Если мы зайдем в консоль мы можем убедится, что инстанс поднялся.
Находим присвоенный амазоном белый ip адрес, который нам позволит из интернета проверить работоспособность нашего сервера и использование статического файла в качестве нашего скрипта, т.е убедится, что у нас все заработало.
И последний шаг, проверяем что наш веб сервер доступен из глобальной сети. Обращаемся к нему, через браузер по протоколу http. В данном случае - http://18.157.187.102/.
Вот мы можем увидеть вот такую картину.
Не забудьте выключить и удалить все не нужные вам ресурсы в Амазон, во избежание лишних затрат.
Статические внешние файлы играют большую роль в написание Terraform кода, потому что они используется практически во всех проектах и постоянно нужна в работе.
Говоря о сетевой информации, которая включает сетевые протоколы, IP-адреса, сетевые порты, нельзя не упомянуть о таком понятии как ASN (Autonomous System Number) - номер автономной системы.
С увеличением числа устройств, подключенных к сети и увеличиваются и уязвимости в сети. При таком раскладе, понять, что такое ASN и принципы его работы стало очень важным.
Чтобы управлять огромным повседневным потоком данных в Интернете, регулирующие органы, такие как как IANA (Internet Assigned Numbers Authority) и другие перешли от IPv4 к IPv6. Эта схема адресации располагает достаточным количеством адресов, которые можно назначить устройствам в сети.
При этом ASN является методом управления таком количеством адресов.
Что такое ASN?
Автономная система (AS) представляет собой группу из нескольких IP-сетей, имеющих отдельную политику маршрутизации. Чтобы эти автономные системы могли взаимодействовать друг с другом, им нужен уникальный номер или идентификатор.
Номер автономной системы (ASN) - это уникальный номер, доступный глобально, позволяющий соответствующим автономным системам обмениваться данными маршрутизации с другими подключенными системами. ASN может быть частным или общедоступным.
Хотя открытый ASN необходим, когда системы обмениваются данными в Интернете, частный ASN необходим для связи только с одним поставщиком через протокол пограничного шлюза (BGP).
IANA присваивает эти ASN автономным системам через региональные интернет-регистраторы (RIR), организации, отвечающей за управление номерами Интернета в конкретном регионе мира. Существует пять RIR:
Asia-Pacific Network Information Center (APNIC) - отвечает за Азию и Тихоокеанский регион
African Network Information Center (AFRINIC) - для Африки и региона Индийского океана
American Registry for Internet Numbers (ARIN) - отвечает за североамериканский регион
Latin American and Caribbean Network Information Center (LACNIC) - отвечает за Латинскую Америку и Карибский регион
Réseaux IP Européens Network Center (RIPE NCC) - для Европы, Центральной Азии и Ближнего Востока.
Далее рассмотрим некоторые из лучших сервисов поиска ASN, скрипты и API для работы с ASN. Основной целью этих инструментов является проверка ASN для получения полной информации AS.
1. UltraTools
С помощью UltraTools легко можно получить информацию о любом ASN. Для этого достаточно ввести номер автономной системы, или название компании или же IP адрес принадлежащий интересующей организации.
В ответе отображается вся необходимая информация об ASN конкретного IP-адреса, включая владельца IP-адреса, регистратора, регистрационные данные, максимальный диапазон для всех IP-адресов и т.д.
Например, если ввести Google, то получим следующую информацию:
2. APIC Whois Search
Asia Pacific Network Information Center (APNIC) - это некоммерческая, открытая и основанная на членстве организация, которая управляет и распространяет номерные ресурсы Интернета, включая ASN и IP-адреса в 56 странах Азиатско-Тихоокеанского региона.
В базе данных Whois APNIc хранятся все данные об организациях, имеющих ASN и IP-адреса в этом регионе.
Таким образом, с помощью APNIC Whois Search можно определить ASN и IP-адрес организации. Наряду с контактной информацией для каждой сети, эта база данных также показывает, когда и где были выданы ресурсы.
Для поиска нужной информации достаточно нажать "Search APNIC Whois". Браузер перенаправляет на другую страницу, где можно ввести IP-адрес и получить интересующую информацию.
3. ASNLookup
ASNLookup предоставляет удобный интерфейс для поиска IP адресов конкретной организации с помощью ASN.
Чтобы получить данные введите название организации.
ASNLookup также бесплатно предлагает конечную точку API, которую можно использовать для извлечения данных в формате JSON. Это полезно, если вы хотите интегрировать его с приложением или инструментом.
Например, мы ввели "Rostelecom" в качестве входных данных, поэтому в нем отображается следующий вывод. Можно даже загрузить результаты и сохранить их для справки.
4. Spyse ASN Lookup
Spyse ASN Lookup предлагает простую в использовании платформу без сложной терминологии. С помощью этого инструмента можно получить более широкое представление о различных уязвимостях организаций.
Spyse ASN Lookup выполняет регулярное сканирование Интернета для сбора полной информации об ASN. Он обеспечивает мгновенный доступ к данным и хранит их в своей базе данных, где эффективно организует их.
Инструмент использует набор алгоритмов ручной работы для проверки собранных данных после завершения сканирования, чтобы можно было получать точные и обновленные данные. Он также предоставляет API для получения данных AS, где также можно объединить проекты с базой данных.
Вы также можете изучить диапазоны IPv4, связанные ASN и области AS, чтобы получить больше информации для сравнительного анализа.
5. MX Toolbox
Чтобы получить информацию ASN, MX Toolbox принимает в качестве входных данных имя AS или номер AS. Также по мере ввода номера или название AS отображаются все номера AS, соответствующие введенному названию.
Таким образом, можно ввести IP-адрес, имя узла или имя домена для получения информации ASN. Если ввести ссылку, она направит вас к соответствующим данным или инструментам. Также можно просмотреть историю результатов в хронологическом порядке.
6. Hacker Target
Проверить ASN на наличие IP-адреса, чтобы получить информацию о конкретной AS можно с помощью Hacker Target. Просто введите ASN или IP-адрес организации в качестве входных данных и вернет соответствующие ASN, разделенные запятой.
В нем отображаются название организации, ее географическое положение и все связанные IP-адреса.
С помощью средства поиска Hacker Target можно быстро проверить владельца определенного IP-адреса. Тем не менее, есть уловка, которую вы не должны забывать для организаций с их AS, расположенных на разных континентах.
Таким образом, если вы получаете IP-адрес AS, показанный в США, это не всегда означает, что система физически расположена с США.
Этот инструмент создан для оперативного поиска. Если используется его бесплатная версия, можно делать 100 запросов в день.
7. IPtoASN
IPtoASN - это еще один онлайн-поиск с довольно простым способом найти ASN, принадлежащий организации. Просто введите IPv4 или IPv6 адрес и нажмите кнопку "Lookup".
Языки программирования, такие как Go и Rust, обеспечивают хорошую работу платформы IPtoASN. Операционная система OpenBSD с усовершенствованной технологией безопасности рассчитана для защиты IPtoASN в распределенной среде.
8. purplepee
Другим ресурсом, благодаря которому можно получить информацию об ASN является purplepee, сервис открытым исходным кодом. Кроме того, можно просматривать информацию о DNS-записях веб-сайта, заголовках HTTP, портах TCP и SSL-сертификатах.
Его поисковый фильтр должен включать определенные ключевые слова, чтобы система точно знала, что искать. Между названием фильтра и значением не должен быть пробелов.
Например, если нужно выполнить поиск ASN определенной организации, скажем, Digital Ocean, то запрос должен выглядеть следующим образом:
org:DIGITALOCEAN-ASN - DigitalOcean, LLC, США
Он возвращает всю информацию, включая IP-адрес, геолокацию, ASN CIDR, дату, код страны, реестр, описание, а также сертификат SSL и заголовок HTTP.
9. IPWHOIS
IPWHOIS позволяет извлекать, а затем анализировать данные whois для IPv6 и IPv4 адресов. С помощью этого скрипта можно найти ASN, название веб-сайта или IP-адреса.
Пакет написан на Python для синтаксического анализа и извлечения данных. Он может распарсить широкий диапазон полей в один стандартный словарь. Скрипт обеспечивает поддержку запросов RDAP, устаревших протоколов, интерфейса командной строки, опционально выделение цветом выходных данных.
10. IPinfo
Устали от решений на основе команд и по-прежнему нуждаются в данных ASN? К счастью, это возможно!
Используя удивительный API IPinfo можно легко получить всю информацию об ASN. Достаточно ввести ASN или IP-адрес и за считанные секунды получите всю необходимую информацию об ASN.
API возвращает выходные данные в формате JSON с информацией для префиксов IPv6 и IPv4. Эта информация состоит из идентификаторов, имен, блоков IP, стран и названий интернет-провайдеров.
Получая такие данные, вы можете получить информацию о подключении к Интернету, ограничениях данных и скорости посетителей. Можно также проверить, является ли конкретный IP-адрес бизнес-поставщиком, хостингом или потребителем.
Соберите всю эту информацию, чтобы спланировать, как вы можете расширить возможности пользователей. IPinfo является надежным, поскольку обеспечивает точные результаты и ежедневно обновляет имеющиеся данные.
Третья статья будет посвящена поиску и устранению неисправностей EtherChannels. Большинство проблем с EtherChannels происходит из-за неправильной конфигурации.
Предыдущие статьи этого цикла:
Устранение неполадок коммутации Cisco
Траблшутинг STP (Spanning tree protocol)
Case #1
В этом сценарии есть только два коммутатора и два интерфейса. Идея состоит в том, чтобы сформировать etherchannel путем объединения интерфейсов FastEthernet 0/13 и 0/14, но это не работает
Сначала мы проверим, все ли интерфейсы работают. Да они все работают.
Мы можем проверить, что port-channel interface был создан, но он не работает.
Вот хорошая команда для проверки EtherChannel. Используйте суммарную информацию от команды show etherchannel summary, чтобы увидеть ваши port-channels. Мы видим, что коммутатор A настроен для LACP и коммутатор B для PAgP, а это никогда не будет работать.
Лучшая команда для использования это show etherchannel detail. Это дает вам много информации, но нам особенно интересно узнать, настроен ли LACP для пассивного или активного режима. Интерфейсы в активном режиме будут "активно" пытаться сформировать EtherChannel. Интерфейсы в пассивном режиме будут отвечать только на запросы LACP.
Вот вывод команды show etherchannel detail на коммутаторе B. Мы видим, что он был настроен для PAgP, и интерфейсы настроены для desirable режима. Если бы они были настроены на автоматический режим, мы бы увидели флаг А.
SwitchB(config)#no interface po1
SwitchB(config)#interface fa0/13
SwitchB(config-if)#channel-group 1 mode passive
SwitchB(config-if)#exit
SwitchB(config)#interface fa0/14
SwitchB(config-if)#channel-group 1 mode passive
Давайте сначала избавимся от port-channel interface. Если мы этого не сделаем, вы увидите ошибку при попытке изменить channel-group mode на интерфейсах.
После изменения конфигурации мы видим, что port-channel1 поднялся. Задача решена!
Извлеченный урок: убедитесь, что вы используете один и тот же режим EtherChannel с обеих сторон.
Case #2
Ну что же давайте рассмотрим другую ошибку! Та же топология и EtherChannel, который не функционирует:
Мы проверяем, что port-channel interface существует, но он не работает с обеих сторон.
Мы также видим, что интерфейс FastEthernet 0/13 и 0/14 были добавлены к port-channel interface.
Интерфейсы FastEthernet рабочие, поэтому мы знаем, что проблема не в этом. Давайте углубимся в конфигурацию EtherChannel.
Мы видим, что FastEthernet 0/13 и 0/14 на коммутаторе A оба настроены на автоматический режим PAgP (из-за флага "A").
FastEthernet 0/13 и 0/14 на коммутаторе B также настроены на автоматический режим PAgP. Это никогда не сбудет работать, потому что оба коммутатора теперь пассивно ждут сообщений PAgP.
SwitchB(config)#interface fa0/13
SwitchB(config-if)#channel-group 1 mode desirable
SwitchB(config-if)#interface fa0/14
SwitchB(config-if)#channel-group 1 mode desirable
Давайте изменим один из коммутаторов, чтобы он активно отправлял сообщения PAgP.
EtherChannel сейчас работает. Проблема решена!
Извлеченный урок: при использовании PAgP убедитесь, что хотя бы один из коммутаторов использует требуемый режим, или в случае LACP убедитесь, что один коммутатор находится в активном режиме.
Case #3
Еще одна ситуация: EtherChannel настроен между коммутатором A и коммутатором B, но клиент жалуется, что соединение медленное ... что может быть не так?
Быстрая проверка говорит нам, что port-channel interface работает.
Команда show etherchannel detail дает нам много выходных данных, но она так же нам говорит, что происходит. Вы видите, что интерфейс FastEthernet 0/13 и 0/14 были настроены для port-channel, но коммутатор не смог связать их, потому что FastEthernet 0/14 настроен на 10 Мбит. Возможно, что это основная причина медленной скорости передачи данных.
Мы будем использовать один из операторов для команды show. Нас интересует только то, чтобы увидеть вероятную причину, которую команда "show etherchannel detail" покажет.
SwitchA(config)#interface fa0/14
SwitchA(config-if)#speed auto
SwitchB(config)#interface fa0/14
SwitchB(config-if)#speed auto
Давайте изменим скорость на авто. Мы должны убедиться, что FastEthernet 0/13 и 0/14 имеют одинаковую конфигурацию.
Вероятно, вы увидите пару сообщений о том, что ваши интерфейсы переходят в состояние up и down.
Теперь мы видим, что оба интерфейса были добавлены в port-channel... проблема решена!
Извлеченный урок: убедитесь, что все интерфейсы, которые будут добавлены в port-channel, имеют одинаковую конфигурацию!
