🌐 Інтернет-маршрутизація
Як маршрутизатори знаходять шляхи: дистанційно-векторна (Беллман–Форд/RIP) обмінюється таблицями й може рахувати до нескінченності, а станів каналів (Дейкстра/OSPF) поширює карту. Розірвіть канал і дивіться реконвергенцію.
Схожі симуляції
Про цю симуляцію
Ця симуляція дозволяє порівняти дві родини алгоритмів, які визначають, як пакети насправді подорожують мережею маршрутизаторів: дистанційно-векторний, заснований на алгоритмі Беллмана–Форда й історично використовуваний протоколами на кшталт RIP, та стану каналів, заснований на алгоритмі найкоротшого шляху Дейкстри й використовуваний протоколами на кшталт OSPF. Кожен маршрутизатор знає лише свої безпосередньо під'єднані канали та їхню вартість; ці два підходи відрізняються тим, як ця локальна інформація поширюється, доки кожен маршрутизатор не погодиться щодо найкращого шляху до кожного пункту призначення.
🔬 Що показано
Дистанційно-векторні маршрутизатори обмінюються повними таблицями відстаней із сусідами кожен раунд, поступово збігаючись через Беллмана–Форда — і якщо ви розірвете канал, застарілі маршрути можуть підстрибувати вгору до штучної межі «нескінченності» у 16 переходів, відтворюючи класичну проблему рахування до нескінченності. Натомість маршрутизатори стану каналів поширюють всю топологію всім, а потім кожен незалежно запускає алгоритм Дейкстри для обчислення дерева найкоротших шляхів за один прохід.
🎮 Як користуватися
Оберіть Distance-Vector або Link-State перемикачами алгоритму, виберіть маршрутизатори Source і Destination у випадних списках і завантажте пресет топології Ring, Mesh, Star або Random. Використовуйте Step round, щоб просуватися на один обмін за раз, або Auto-run, щоб дозволити самостійну збіжність, потім натисніть Send packet, щоб анімувати пакет, що йде поточним найкращим шляхом. Перемкніться в режим редагування Add node, Add link або Cut link, щоб змінити мережу прямо на полотні й спостерігати за відновленням маршрутизації.
💡 Чи знали ви?
Оригінальний дизайн RIP обмежив «нескінченність» лише 16 переходами спеціально для того, щоб проблема рахування до нескінченності вирішувалася швидко, а не тривала довго, ціною обмеження мереж RIP до 15 придатних переходів. Реальні протоколи стану каналів на кшталт OSPF повністю уникають цього, оскільки кожен маршрутизатор будує ідентичну карту всієї мережі перед будь-якими обчисленнями, що також пояснює, чому OSPF збігається за секунди, тоді як маршрутизація у стилі BGP через ширший інтернет може займати хвилини.
Часті запитання
У чому справжня різниця між дистанційно-векторною маршрутизацією та маршрутизацією за станом каналів у цій симуляції?
Дистанційно-векторні маршрутизатори обмінюються лише узагальненими таблицями відстаней зі своїми прямими сусідами і запускають Беллмана–Форда раунд за раундом, тому збіжність займає кілька раундів і залежить від того, як з'єднана мережа. Маршрутизатори стану каналів спочатку поширюють повну інформацію про топологію кожному іншому маршрутизатору, тож кожен з них отримує ідентичну карту й може обчислити дерево найкоротших шляхів алгоритмом Дейкстри за один прохід, без потреби в подальших раундах обміну.
Що таке проблема рахування до нескінченності, яка показана при розриванні каналу?
Коли канал, що був частиною маршруту, виходить з ладу, дистанційно-векторний маршрутизатор, який ще не почув погану новину, може продовжувати рекламувати маршрут через розірваний шлях своїм сусідам, які додають власну вартість і рекламують його далі, повільно роздуваючи здавану відстань замість негайного визнання пункту призначення недосяжним. Симуляція обмежує це зростаюче число значенням «нескінченності» у 16, що відповідає тому, як RIP історично обмежував мережі 15 придатними переходами саме для того, щоб обмежити тривалість цієї проблеми.
Як пресети топології Ring, Mesh, Star і Random змінюють поведінку маршрутизації?
Топології Ring і Star мають мало альтернативних шляхів, тому розрив каналу може ненадовго залишити деякі вузли недосяжними, доки не буде знайдено інший шлях. Топології Mesh і Random мають більше надлишкових каналів, тому Distance-Vector і Link-State зазвичай збігаються швидше після збою, оскільки доступно більше альтернативних маршрутів, на які алгоритми можуть покластися.
Що відбувається, коли я використовую режими редагування Add node, Add link чи Cut link?
Add node розміщує новий маршрутизатор там, де ви клацнете; Add link дозволяє клацнути на двох наявних маршрутизаторах, щоб з'єднати їх каналом з випадковою вагою; Cut link перемикає клацнутий канал між робочим і розірваним станом. Будь-яка з цих змін змушує обидва алгоритми маршрутизації повторно збігтися з нуля, тож ви можете спостерігати, як Distance-Vector повторно запускає Беллмана–Форда або Link-State заново поширює інформацію та повторно запускає Дейкстру на новій топології.
Як Send packet показує прокладений маршрут?
Він бере той шлях, який поточний обраний алгоритм обчислив як найкращий маршрут від Source до Destination, і анімує маленький синій маркер, що рухається вздовж нього, ребро за ребром, з поточною швидкістю анімації. Якщо дійсного шляху не існує — наприклад, якщо розірваний канал залишив пункт призначення недосяжним — індикатор статусу показує «Unreachable» замість маршрутизації пакета.
Часті запитання
Що таке автономна система (AS) і чому це важливо?
Автономна система — це мережа або група мереж під єдиним адміністративним керуванням, що ідентифікується ASN (номером автономної системи). Маршрутизація в інтернеті ієрархічна: всередині AS маршрутизацію обробляють внутрішні протоколи; між AS маршрутизацію між доменами обробляє BGP. Такий поділ дозволяє інтернету масштабуватися до мільярдів пристроїв.
Як BGP обирає найкращий маршрут до пункту призначення?
BGP застосовує детермінований ланцюжок правил для розв'язання нічиїх: спершу перемагає найвища локальна перевага (local preference); потім найменша кількість переходів AS-шляху; потім найнижчий MED (multi-exit discriminator); потім перевага маршрутів eBGP над iBGP; потім найнижча метрика IGP до наступного переходу; і, нарешті, різні додаткові правила. Оператори мереж налаштовують локальну перевагу та політики маршрутів відповідно до комерційних і продуктивнісних цілей.
Що таке витік маршруту BGP (route leak) або перехоплення BGP (hijack)?
Витік маршруту BGP відбувається, коли AS випадково або зловмисно рекламує маршрути, які не повинна, перенаправляючи трафік через непередбачені шляхи. Перехоплення BGP — це навмисне оголошення більш конкретних префіксів для залучення трафіку, призначеного для іншої мережі. Гучні випадки перехоплення перенаправляли інтернет-трафік через росію, Китай та інші країни, розкриваючи вразливості безпеки в моделі довіри BGP.
Що таке OSPF і чим він відрізняється від BGP?
OSPF — це IGP на основі стану каналів, який використовується всередині однієї автономної системи. Кожен маршрутизатор поширює оголошення про стан каналів усім іншим, будує повну карту топології й запускає алгоритм Дейкстри для обчислення найкоротших шляхів. BGP — це EGP на основі path-vector, який використовується між AS, з вибором на основі політик, а не чистого найкоротшого шляху. OSPF збігається за секунди; BGP може займати хвилини.
Що таке MPLS і які переваги він надає?
MPLS додає короткі мітки фіксованої довжини до пакетів на межі мережі. Магістральні маршрутизатори пересилають пакети на основі міток (прості пошуки в таблиці), а не за найдовшим збігом IP-префіксів, що забезпечує швидшу пересилку, інжиніринг трафіку (спрямування трафіку конкретними шляхами), віртуальні приватні мережі (MPLS VPN) та гарантії якості обслуговування. Це відокремлює площину пересилання від площини IP-маршрутизації.