«Живі» приклади адресації і маршрутизації IPv4

Теорія штука хороша, але без реального застосування — безглузда і непотрібна. Перечитуючи третю частину серії «лікбезів» я зрозумів, що без ілюстрації її реальними прикладами, вона залишиться надто сухою і майже непридатною до використання. Писати просто «в ефір» я ніколи не збирався, тому пропоную декілька конфігурацій, які, сподіваюся, наочно покажуть що і як робиться.

  • Приклад 1. З’єднуємо дві мережі. Припустимо вам дали задачу: є мережа підприємства, потрібно з неї виділити в окрему мережу бухгалтерію, щоб до них ніхто сторонній не мав доступу. Фізичне розділення і обмеження прав нас зараз не цікавлять, а цікавить адресація. Вважатимемо, що велика мережа A має адресу 192.168.0.0/24. Для тих, хто звик до довгих масок — замість 24 пишуть 255.255.255.0 . Це означає, що вузли (комп’ютери, мережеві принтери, тощо) мережі мають адреси вигляду 192.168.0.X з маскою 255.255.255.0 (або 24), де замість Х можна підставляти число від 1 до 254. Також припустимо, що для виходу в інтернет використовується вузол ab 192.168.0.1, що означає, що на всіх решта він вказаний як шлюз за замовчуванням.

    Новій мережі B ми дамо адресу 192.168.1.0/24, а основним шлюзом буде ще один інтерфейс (мережна картка) вузла ab, а адресою буде 192.168.1.1, що заодно дозволить не заморочуватися з доступом в інтернет з мережі B.

    Таким чином матимемо наступні маршрути:На комп’ютері з мережі A:
    192.168.0.0/24 безпосередньо через мережний інтерфейс
    0.0.0.0/0 через вузол 192.168.0.1
    На комп’ютері з мережі B:
    192.168.1.0/24 безпосередньо через мережний інтерфейс
    0.0.0.0/0 через вузол 192.168.1.1
    На комп’ютері ab:
    192.168.0.0/24 безпосередньо через інтерфейс №1
    192.168.1.0/24 безпосередньо через інтерфейс №2
    ще щось на інтерфейсі до провайдера
    0.0.0.0/0 через основний шлюз провайдера
    Перевіряємо що буде, якщо комп’ютер з мережі A відправить пакет комп’ютеру з мережі B. Пакет адресований не «своїй» мережі буде направлений через вузол 192.168.0.1 — наш ab. Там запис в таблиці маршрутизації каже, що мережа 192.168.1.0/24 знаходиться безпосередньо на інтерфейсі №2 і пакет перешлеться туди. Відповідь прийде аналогічним чином. Це все, звісно, якщо ви не налаштуєте на вузлі ab якогось фаєрвола і не забороните такі пересилки.

  • Приклад 2. «Віддаємо» частину мережі. Суть задачі: Ви провайдер або просто маєте «на ґосподарці» (і звичайно ж, використовуєте) величенький діапазон IP-адрес (наприклад 195.5.29.0/24), а тут до вас приходить клієнт і просить відлити йому, скажімо, 16 адрес.

    На пальцях легко порахувати, що необхідна маска — 28 (255.255.255.240). Щоб недовго рахувати віддаватимемо останній підходящий кусок — 195.5.29.240/28. Клієнт в себе налаштовує все як звичайно, а от у вас додається проблем: для того щоб комунікація з мережею клієнта була можливою зі всієї великої мережі потрібно на кожному її вузлі прописати маршрут до клієнтської підмережі. Якщо клієнт з’єднаний через вузол цієї ж мережі — слід вказати цей вузол, якщо ж ні — слід вказати основний шлюз (для простоти вважатимемо, що це знову перший вузол мережі: 195.5.29.1), а вже на ньому — подальший напрямок.

    Таким чином на основному шлюзі цікаві для нас маршрути матимуть вигляд:195.5.29.0/24 безпосередньо через відповідний інтерфейс
    195.5.29.240/28 через вузол-шлюз до клієнта

    Коли запит ітиме до адресного простору клієнта, то в таблиці маршрутизації вибереться запис з найбільшою маскою і пакет переспрямується в мережу клієнта, коли ж запит ітиме до іншої адреси 195.5.29.x — все пройде як завжди. Ще раз нагадаю, що маршрути слід прописувати на всіх ваших вузлах даної мережі, бо якщо цього не зробити, то такий вузол вважатиме, що вузли мережі клієнта досяжні без посередників і, відповідно, не зможе з ними зв’язатися, бо це не так.

  • Приклад 3. «Економістський». Насправді ілюструє точно ті ж механізми, що і попередній, але адресація дуже специфічна, тому, як на мене, заслуговує окремого пункту. Задача: до певного моменту вам достатньо було однієї реальної адреси, а тепер потрібно ще 2-3-4 (суть в тому щоб небагато, бо при великому діапазоні так заморочуватися не варто).

    Після «лікбезу» і попередніх прикладів ви б могли підрахувати, що треба брати діапазон з восьми адрес: дві службових на мережу і бродкаст, ще одну на шлюз в цю мережу і потрібні 2-3-4 перетворюються на 5-6-7. Якщо не хочете пояснювати начальству чому для підключення двох серверів потрібно оплачувати вісім адрес, то я розкажу як.

    Ідея полягає в тому, щоб замість того, щоб робити з цілого наданого вам діапазону мережу, зробити купку мереж — кожна з однієї IP-адреси. Тобто вузли між собою з’єднуєте «сірими» адресами, наприклад 192.168.0.1/24 — шлюз, 192.168.0.2/24 перший сервер і т.д., і на шлюзі пишете отакі маршрути:195.5.29.252/32 через 192.168.0.2
    195.5.29.253/32 через 192.168.0.3
    195.5.29.254/32 через 192.168.0.4
    195.5.29.255/32 через 192.168.0.5

    На вузлі адресу можна «повішати» на той же інтерфейс, що і «сіру», хоча мені більше до вподоби для цих цілей використовувати loopback-пристрій (але то в Linux'i, а в вінді він так просто не доступний).

    З власного досвіду: якщо на роутері вже є маршрут на якусь мережу, а ви схочете адресу цієї мережі з маскою 32 віддати якомусь вузлу — нічого у вас не вийде — доведеться переконфігуровувати всю мережу (хоча по-ідеї маска 32 мала б забезпечувати перевагу такого маршруту, проте на практиці перевагу має службова адреса мережі).

Сподіваюся тепер біганина пакетів між мережами стане для вас зрозумілішою і при потребі ви зможете все порахувати і налаштувати.




 

Працює на AutoGenCMS 0.2.6

А чому це всі вирішили, що в сайта має бути шапка?