Увидите, что по достаточно простым промтам и нескольким troubleshooting-сообщениям нейросеть внедрила логику работы протокола. 🧠
Изначальный запрос был простой:
Добавить поддержку протокола BGP.
Но для игры это означало не просто добавить команду в консоль. Нужно было, чтобы BGP стал частью настоящей сетевой логики внутри движка: с соседями, маршрутами, таблицей маршрутизации и реальной проверкой связности.
После проверки того, что нейросеть внедрила, я сделал следующий промт:
Усиль BGP IPv4, чтобы протокол работал максимально близко к RFC 4271.
Это был важный поворот. Я не хотел, чтобы протоколы в игре были просто набором команд. Нужно было, чтобы они вели себя как сетевые протоколы: строили соседства, обменивались маршрутами, устанавливали маршруты в routing table и влияли на реальную связность.
После этого BGP начал превращаться из “команды для красоты” в полноценный механизм и оказывать влияние на таблицу маршрутизации. ⚙️
Потом появился отдельный большой запрос на расширение функциональности BGP:
Улучшаем BGP: пока нет iBGP; нет route-reflector; нет update-source; нет next-hop-self; нет route-map; нет prefix-list; нет local-pref, MED, communities; нет VRF-aware BGP; нет redistribution.
После этого BGP начал развиваться уже не как одна отдельная команда, а как набор связанных механизмов: iBGP,
update-source, next-hop-self, route-map, prefix-list, атрибуты маршрутов и redistribution. То есть движок начал двигаться от базового neighbor remote-as к более реальной логике маршрутизации.Дальше пошли уже реальные кейсы траблшутинга. 🔍
Один из запросов был таким:
В iBGP маршрут появляется в BGP-таблице, но не устанавливается в таблицу маршрутизации, даже при настройке next-hop self. Проверить на конфигурации BOSS-C1-SW1 ↔️ BOSS-C1-SW3.
После этого в движке пришлось разбирать не просто факт наличия маршрута в BGP table, а почему он не попадает в routing table. То есть появилась логика, где важно не только “маршрут получен”, но и достижим ли next-hop, можно ли установить маршрут, и какой путь считается рабочим.
Потом был следующий кейс:
BGP-маршрут появился в таблице маршрутизации, но ping до сети всё равно не проходит. Проверить связность BOSS-C1-SW1 ↔️ BOSS-C1-SW3.
И это уже другой уровень симуляции. Недостаточно положить маршрут в таблицу — пакет должен реально пройти через data plane. После этого BGP начал проверяться не только через
show, а через итоговую связность: проходит ping или нет, и по какой сетевой причине.Был ещё важный запрос:
Связность не должна работать без корректного next-hop self, если по логике iBGP next-hop недостижим.
Это означало, что движок не должен “прощать” ошибки конфигурации. В реальной сети
next-hop self часто критичен, особенно в iBGP-сценариях. Поэтому пришлось усиливать логику next-hop, чтобы связность не появлялась магически там, где она не должна работать.Отдельно был запрос по диагностике:
show ip bgp summary должен показывать реальные полученные маршруты, а не всегда 0
После этого
show ip bgp summary стал не просто декоративной командой. В нём начали отображаться реальные состояния и количество полученных маршрутов, чтобы игрок мог корректно диагностировать BGP.Как вы видите, запросы были достаточно простые + потребовалась небольшая проверка работы протокола, и Chat GPT создал весьма неплохую эмуляцию BGP. Да пока достаточно базовую его реализацию, но не удивляйтесь, если скоро там появится address-family l2vpn evpn!
А вот где я действительно долго обучал нейронку- это arp/mac learning. Расскажу об этом позже. 🚀
