По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Всем привет! В этой статье рассказываем про настройку DHCP-ретранслятора с поддержкой HSRP. Настройка DHCP-ретранслятора с поддержкой HSRP Протокол динамической конфигурации хоста DHCP обеспечивает механизм передачи информации о конфигурации хостам в сети TCP/IP. Агент ретрансляции протокола динамической конфигурации хоста (DHCP) - это хост или IP-маршрутизатор, который ретранслирует пакеты DHCP между DHCP-клиентами и DHCP-серверами. Агент ретрансляции DHCP пересылает пакеты пакеты discover, offer, reply и ack DHCP между клиентами и серверами, когда они не находятся в одной физической подсети. В случае ретрансляции DHCP маршрутизатор не просто направляет пакет в соответствии с полем DEST ID в IP-пакете, но вместо этого создает новое сообщение DHCP, которое будет отправлено на настроенный сервер имен. Агент ретрансляции также устанавливает IP-адрес шлюза (поле GIADDR пакета DHCP) и, если он настроен, добавляет к пакету опцию информации агента ретрансляции (опция 82). Ответ с сервера пересылается клиенту после удаления опции 82. Таким образом, агенты ретрансляции DHCP устраняют необходимость наличия DHCP-сервера в каждой физической сети. Эта статья описывает общее развертывание, где у нас есть маршрутизаторы, настроенные как агент ретрансляции DHCP наряду с протоколом FHRP, HSRP, используемым в сегменте клиента DHCP. Рис. 1.1 Управляемый DHCP-ретранслятор В топологии ниже маршрутизаторы ALT_1 и ORL являются узлами HSRP для подсети LAN 176.18.3.0/24. На обоих маршрутизаторах настроены интерфейсы Fa5/0 с помощью DHCP Relay Agent. Настройки на маршрутизаторах R2 и R3, показаны ниже: ALT_1 int Fa5/0 ip add 176.18.3.2 255.255.255.0 ip helper-address 3.3.2.4 standby 1 ip 176.18.3.1 standby 1 priority 120 standby 1 preempt ORL int Fa5/0 ip add 176.18.3.3 255.255.255.0 ip helper-address 3.3.2.4 standby 1 ip 176.18.3.1 standby 1 priority 100 standby 1 preempt ! Сообщение запроса Bootstrap от клиента будет поддерживаться как маршрутизаторами ALT_1, так и маршрутизаторами ORL и будет перенаправлено на DHCP-сервер, настроенный с помощью команды ip helper-address. DHCP-сервер отправляет ответ как агентам ретрансляции 176.18.3.2, так и агентам ретрансляции 176.18.3.3, которые, в свою очередь, будут перенаправлены в дальнейшем на DHCP-клиент. Если клиент недостаточно интеллектуальный, он может запутаться с этими двумя запросами, поступающими от DHCP-сервера. Чтобы преодолеть эту ситуацию, мы можем настроить DHCP Relay Agent с осведомленностью о HSRP, что выполняется добавлением следующих команд как к активным, так и к резервным маршрутизаторам HSRP: ALT_1: int Fa5/0 ip helper-address 3.3.2.4 redundancy HSRP standby 1 name HSRP ! ORL: ! int Fa5/0 ip helper-address 3.3.2.4 redundancy HSRP standby 1 name HSRP ! При приведенной выше конфигурации сообщение запроса Bootstrap будет инициировано только активным маршрутизатором HSRP ALT_1, поскольку это активный маршрутизатор HSRP (из-за более высокого настроенного приоритета HSRP). Теперь DHCP-сервер получает только одно сообщение обнаружения DHCP только от одного маршрутизатора, и он отправляет ответное сообщение только на один из двух маршрутизаторов, откуда он его получил. Следовательно, клиент теперь получит пакет DHCP OFFER только один раз, и то тоже от маршрутизатора ALT_1 router.
img
Хочу рассказать, как с минимальным даунтаймом на продакшн оборудовании настроить EtherChannel. Для начала нужно подключить оборудование, и оно начнет работать в режиме STP. На коммутаторе уровня агрегации (ядра) в зависимости от топологии нужно узнать порты к которому подключено оборудование. Для этого есть команда show cdp neighbors, которую нужно запустить на коммутаторе уровня доступа. Так удобней будет. Для мониторинга запускаем PING на IP коммутатора. После этого выключаем порт, который заблокирован по протоколу STP. Советую сделать это на коммутаторе агрегации (ядра). Далее по очереди настраиваем логический порт на обоих коммутаторах. AccSwitch-2#conf t AccSwitch-2(config)#int port-channel 1 AccSwitch-2(config-if)#switchport mode trunk CoreSW#conf t CoreSW(config)#int port-channel 10 CoreSW(config)#switchport mode trunk После этого уже настраиваем отключенный физический порт: AccSwitch-2(config-if)#int gi1/0/47 AccSwitch-2(config-if)#switchport mode trunk AccSwitch-2(config-if)#channel-group 1 mode on CoreSW (config-if)#int gi2/0/38 CoreSW (config-if)#switchport mode trunk CoreSW (config-if)#channel-group 10 mode on Для начала ставим минимальную настройку. Но если на свитчах настроен DHCP Snooping или Dynamic Arp Inspection, то под логическим и физическим транк портом нужно прописать ip dhcp snooping trust и ip arp inspection trust. После того как все настройки сделаны и проверены можно включить настроенный порт не отключая работающий. В этом случае должен потеряться максимум один PING, что совсем не критично так, как TCP сессия не обрывается. Далее выключаем уже другой порт, настраиваем аналогично и включаем. Внимание, после этого все настройки на UpLink портах нужно производить на логическом интерфейсе. Все изменения автоматически применяются на порты, которые входят в port-channel. Надеюсь статья окажется полезной!
img
Model-View-Controller - популярный шаблон программирования, где логика приложения делится на три различных компонента. В этой статье расскажем о роли компонентов архитектуры MVC, начнем с короткой истории, а далее покажем, как её можно использовать в приложении. История паттерна Model View Controller Модель MVC была впервые представлена в 1979 году учёным Трюгве Миккьелем Хейердалом Реенскаугом. Он хотел придумать решение, как разбить сложное пользовательское приложение на более мелкие управляемые компоненты. Шаблон MVC был впервые использован в языке программирования Small Talk. Изначально шаблоне хотели назвать «Model-View-Editor», но затем оно было изменено на «Model-View-Controller». В 1980-х и начале 90-х годов шаблон MVC использовался главным образом в настольных приложениях. Но к концу 1990-х годов она стала довольно популярной в разработке веб-приложений. В современных веб-приложениях шаблон MVC является популярным архитектурным дизайном для организации кода. Ниже приведен список нескольких популярных веб-фреймворков, использующих шаблон MVC: Ruby on Rails ASP.NET MVC Laravel Angular Какие три компонента включает в себя MVC? Шаблон программирования MVC состоит их трёх следующих компонентов: Model – отвечает за логику данных, лежащую в основе приложения View – это видимая часть приложения, то с чем взаимодействует пользователь Controller – работает как мозг приложения и обеспечивает связь между моделью и видом Как шаблон MVC работает в веб-приложении? Чтобы лучше понять, как работает шаблон MVC, лучше всего показать его в демонстрационном приложении. Это приложение стека MERN (MongoDB, Express, React, Node) своего рода помощник менеджера офиса и отображает таблицу недавно нанятых тренеров средней школы. Он также показывает, какие тренеры не сдали тесты на туберкулез, не прошли вакцинацию от Covid, не заполнили резюме и не прошли проверку. Менеджер может отправлять напоминания по электронной почте тем тренерам, у которых отсутствуют документы. Компонент Model Модель отвечает за логику данных нашего приложения. Мы используем MongoDB для базы данных тренеров. Для начала определяем свойства, которые будут применены к каждому тренеру в базе данных. У каждого тренера есть свойства name, email, program, application, backgroundCheck, tbTest и covidTest. const coachSchema = new Schema({ name: { type: String, trim: true, maxLength: 32, required: true }, email: { type: String, trim: true, maxLength: 32, required: true, unique: true }, program: { type: String, trim: true, maxLength: 32, required: true }, application: { type: Boolean, required: true }, backgroundCheck: { type: Boolean, required: true }, tbTest: { type: Boolean, required: true }, covidTest: { type: Boolean, required: true } }, { timestamps: true }) type: Boolean представляет значение true или false для свойств приложения, backgroundCheck, tbTest и covidTest. Если у тренера одно из этих четырех свойств, помечены как false, это означает, что они не завершили процесс найма. Создаем семь записей для нашей базы данных тренеров, и эта информация хранится в MongoDB Atlas. Ниже приведен пример одной из записей базы данных. Компонент "контроллер"" будет взаимодействовать с базой данных и получать необходимую информацию для отправки компоненту представление. Компонент View Компонент View (вид, представление или вью) отвечает за все визуальные аспекты приложения. Для отображения данных пользователю мы использовали React. При первой загрузке приложения на экране отображается приветственное сообщение. При нажатии кнопки «View Dashboard» происходит переход к таблице тренеров и списку отсутствующих документов. Компонент Вид не взаимодействует напрямую с базой данных, поскольку это делает наш контроллер. Контроллер предоставляет эту информацию компоненту представление, чтобы ее можно было отобразить на странице. Вот как выглядит код, когда представление выполняет вызов выборки (fetch) для получения данных от контроллера: await fetch('https://mvc-project-backend.herokuapp.com/coaches') Затем мы используем метод map(), чтобы пройтись по списку тренеров и отобразить их имена, адреса электронной почты и программу в виде таблицы. coachData.map(data => ( <tr key={data._id}> <td>{data.name}</td> <td>{data.email}</td> <td>{data.program}</td> </tr> )) Для отображения раздела отсутствующих документов мы отправляем запрос к бэкнэду и получием список тренеров, которые не заполнили анкету, не сдали тесты на туберкулез, не привиты от Covid и не прошли проверки. Для отображения имен для каждой категории снова используется метод map(). Если нажать кнопку «Send reminder email», эта информация будет отправлена React-ом на бэкэнд. Контролер отвечает за отправку сообщения электронной почты и обмен информацией с компонентом представление о том, отправилось ли сообщение. На основе информации, которую он получает от контроллера, во View отображается сообщение об успехе или сообщение об отказе. Компонент Controller Контроллер взаимодействует с компонентами «Модель» и «Представление» и выполняет все логические операции для нашего приложения. Этот раздел кода был построен в Node.JS и Express. Контролер получает полный список тренеров из «Модели» и отправит эту информацию в «Представление». Контролер также отвечает за фильтрацию через «Модель» и предоставление списка тренеров, которые не сдали необходимые документы. Все эти данные отправляются в «Представление», чтобы их можно было отобразить пользователю. Что касается функциональности электронной почты, то «Контролер» перед отправкой проверяет валидность адреса электронной почты. Для отправки электронных писем использована Nodemailer: transporter.sendMail(mailOptions, (err) => { if (err) { console.log(`Applications: There was an error sending the message: ${err}`) res.json({ status: 'Email failure' }) } else { console.log(`Applications Success: Email was sent`) res.json({ status: "Email sent" }); } }) Если сообщение электронной почты успешно отправлено, пользователь получает уведомление, и сообщение электронной почты отображается в почте демонстрационной учетной записи. Если при отправке сообщения возникает ошибка, то «Контроллер» посылает эту информацию в «Вид», чтобы пользователю отобразилось уведомление об ошибке. Заключение А в заключение повторим пройденное: Model-View-Controller - популярный шаблон программирования, используемый для разделения логики приложения на три различных компонента. Хотя шаблон MVC первоначально использовался в настольных приложениях, в конце 1990-х он стал популярным в разработке веб-приложений. Модель отвечает за логику данных, лежащую в основе приложения. Представление - это то, что пользователь видит в приложении и взаимодействует с ним. Контроллер действует как мозг приложения и взаимодействует с моделью и представлением. Веб-инфраструктуры, использующие шаблон MVC - это Ruby on Rails, ASP.NET MVC, Laravel и Angular.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59