• Главная
  • Карта сайта
Не найдено

Статична IP-маршрутизація

  1. Примітки:
(посібник для початківця адміністратора)
Дмитро Карпов , МИСиС

Мережа Internet з її протоколами з самого початку замислювалася як протяжна (WAN - Wide Area Network), що складається з великої кількості машин, з'єднаних за допомогою різних середовищ обміну даними (як локальних мереж, так і глобальних з'єднань). Теоретично в Internet можуть безпосередньо працювати один з одним близько чотирьох мільярдів машин (2 ^ 32 за вирахуванням деяких спеціальних номерів), а через proxy і того більше.

В силу цих причин Internet - сегментована мережу. Сегментом є або прозорий ділянку широкомовної (Ethernet) або маркерной (TokenRing) мережі, або з'єднання точка-точка (модемне).

Тепер - позначення. IP-номер - четирехбайтное число, що записується або в шістнадцятковому вигляді типу 0xC0A80E05, або в десятковому вигляді, де байти розділені крапками типу 192.168.14.5 (як приклад в обох випадках використовувався один і той же номер).

Маска - теж четирехбайтное число, але всі старші біти, починаючи з деякого, завжди встановлені в одиницю, а всі молодші - в нуль. Приклади: 255.255.255.0 - маска мережі класу C на 256 номерів; 255.255.255.192 - маска маленької мережі на 64 номери (192 = 256-64). Якщо мені треба вказати поєднання номери та маски, я буду використовувати запис номер / чісло_установленних_бітов_в_маске - так поєднання номера 192.168.14.5 і маски 255.255.255.0 буде записано у вигляді 192.168.14.5/24.

Номером мережі називають число, що отримується з номера інтерфейсу застосуванням побітової операції AND з маскою, тобто в номері інтерфейсу обнуляються біти на тих місцях, на яких стоять нульові біти в масці.

Слід пам'ятати, що IP-номер присвоюється не комп'ютера, а інтерфейсу (мережному виходу або послідовному порту). В принципі можна дати кільком інтерфейсів один номер, але це може викликати складності. Можна також присвоїти декілька адрес одному інтерфейсу.

У сегменті мережі всі машини мають IP-номери з однаковим номером мережі і однаковою маскою. В одній локальній мережі можна поєднати дві і більше різних IP-мереж, вони навіть можуть знати один про одного і нормально спілкуватися, але це все-таки будуть дві різні мережі.

Прийнято наступний розподіл в залежності від значення старшого байта IP-адреси:

  • 0..127 - мережі класу A за 2 ^ 24 адрес з маскою 0xFF000000;
  • 128..191 - мережі класу B по 2 ^ 16 адрес з маскою 0xFFFF0000;
  • 192..223 - мережі класу C по 2 ^ 8 адрес з маскою 0xFFFFFF00;
  • 224..239 - мережі класу D для multicast (груповий) розсилання;

інші поки зарезервовані.

Багато програм за адресою автоматично визначають клас мережі, хоча це можна поправити вручну. В принципі ніхто не заважає розбити мережу на дві або більше підмереж з будь-якими масками, але організаціям як правило виділяють адреси блоками, відповідними класів A, B і C - це пов'язано з системою DNS , Що дозволяє дізнатися доменне ім'я машини за її IP-адресою.

Мережа класу A з номером 127 - loopback, тобто призначена для спілкування комп'ютера з собою. У будь-якій мережі номер (IP-номер AND маска) є номером всієї мережі і не може бути присвоєно нікому конкретно. Номер (IP-номер OR NOT маска), який є останнім номером в мережі, призначений для broadcasting (широкомовних) повідомлень, які доставляються всім машинам сегмента мережі. Відповідно, при виділенні групи адрес в мережу дві адреси стають недоступні.

Розглянемо маршрутизацію в термінах FreeBSD (буде також даний переклад в нотацію System V (Linux, SCO) і Windows3.11 ). В Unix команди настройки мережі, як правило, заюпускаются з файлу / etc / rc або запускаються з нього файли, а в MS Windows - завантажувачем операційної системи у відповідність з system.ini або registry.

Головному шлюзу я завжди привласнюю перший (найменший) номер в мережі (нульовий, як я вже говорив, недоступний). Якщо в мережі присутній другий шлюз, через який приєднаний інший сегмент, то цього шлюзу (проміжного маршрутизатора) буде присвоюватися останній (найбільший) номер в мережі. Для цього немає ніяких розумних причин - так мені хочеться.

Побудуємо перший сегмент мережі:
Побудуємо перший сегмент мережі:   Сконфігуріруем робочу станцію: ifconfig ep0 inet 192 Сконфігуріруем робочу станцію: ifconfig ep0 inet 192.168.1.5 netmask 255.255.255.0 ifconfig lo0 inet 127.0.0.1 netmask 255.0.0.0 route add default 192.168.1.1 Насправді в сучасних (починаючи з 2.1. *) Версіях FreeBSD це оформляється трохи зовсім по іншому. :-) Розглянемо уважніше, що роблять ці команди: ifconfig ep0 inet 192.168.1.5 netmask 255.255.255.0 привласнила інтерфейсу ep0 номер 192.168.1.5, а також створила в таблиці маршрутизації запис про те, що всі пакети з номером мережі 192.168.1.0/24 спрямовуватимуться прямо через цей інтерфейс з використанням протоколу ARP . ifconfig lo0 localhost конфигурирует інтерфейс loopback, тобто "Петлю". Цей інтерфейс повинен мати адресу 127.0.0.1 і маску 255.0.0.0 на будь-якій машині, що має IP, тому деякі системи (наприклад, MS Windows) роблять це автоматично, не вимагаючи від адміністратора (або користувача, якщо він сам налаштовує систему) задавати параметри loopback . Так як цей інтерфейс налаштовується на кожній машині однаково, я не буду писати цей рядок кожного разу. localhost визначається по файлу / etc / hosts, в якому міститься 127.0.0.1 localhost.домен localhost а маска береться за замовчуванням - 255.0.0.0. route add default 192.168.1.1

зауважу, що маршрутизація "default" насправді є "inet 0x0 netmask 0x0" і це треба прописувати, якщо стара версія команди route не розуміє слова "default". створила запис, відповідно до якої всі пакети (все, тому що будь-який пакет підходить під 0.0.0.0/0) будуть відправлятися на машину, що має інтерфейс 192.168.1.1. Інформація про те, як можна дістатися до інтерфейсу 192.168.1.1 міститься в попередній команді, яка визначила спосіб доступу до всіх машин 192.168.1. * Через інтерфейс ep0.

Таким чином, у нас склалася приблизно така ситуація:
Таким чином, у нас склалася приблизно така ситуація:   Взагалі система маршрутизації (за винятком гранично примітивних випадків) деревоподібна, тобто  одні записи включають в себе інші Взагалі система маршрутизації (за винятком гранично примітивних випадків) деревоподібна, тобто одні записи включають в себе інші. Часткове перетин неможливо, бо кордону адресного простору, на яке діє кожна запис, вирівняти на розмір цього простору. Порядок зберігання і перегляду таблиці може бути різний, але повинен забезпечувати пріоритет записів з маленьким простором перед записами з великим простором. В даному випадку звернення до машини 192.168.1.9 потрапляє під юрисдикцію обох записів, але звертатися до неї наша робоча станція буде у відповідності з 192.168.1.0/24->ep0.

Інтерфейс шлюзу треба настроїти так:

ifconfig ed1 inet 192.168.1.1 netmask 255.255.255.0 Насправді у нашого шлюзу багато інтерфейсів і вони будуть конфигурироваться у міру потреби. Ще раз звертаю увагу на те, що номер і маска мережі збігаються для всіх машин цього сегмента. Другий сегмент містить в собі машину, до якої по послідовній лінії за допомогою протоколу SLIP під'єднаний ще один комп'ютер. ifconfig ed1 inet 192 Сконфігуріруем ws.2.1: slattach -S 0 [...] ifconfig sl0 192.168.1.81 192.168.1.82 up ifconfig ep0 inet 192.168.2.7 netmask 255.255.255.0 route add default 192.168.2.1 Сконфігуріруем ws.2.2: slattach -S 0 [. ..] ifconfig sl0 192.168.1.82 192.168.1.81 up route add default 192.168.1.81 Сконфігуріруем шлюз: ifconfig ed2 inet 192.168.2.1 netmask 255.255.255.0 route add host 192.168.2.81 192.168.2.7 route add host 192.168.2.82 192.168.2.7 Третій сегмент буде поєднувати в собі дві мережі - мережа класу C 192.168.2. * / 24 і мережа класу B 172.16. *. * / 16. Почнемо з шлюзу. Йому дамо два адреси, по одному з кожної мережі: ifconfig ed3 inet 192.168.3.1 netmask 255.255.255.0 ifconfig ed3 inet 172.16.0.1 netmask 255.255.0.0 alias ... Тепер ws.3.1 - їй дамо адресу тільки з першої мережі: ifconfig ep0 inet 192.168.3.7 netmask 255.255.255.0 route add default 192.168.3.1 У такій конфігурації ws.3.1 відмінно зможе спілкуватися з машинами з мережі 192.168.3.0/24 і з машинами поза сегмента локальної мережі. При спробі ж звернутися до машини того ж сегменту, але іншої IP-мережі, пакет буде посланий на шлюз. Шлюз знає, що пакети з цією адресою треба послати в ту локальну мережу; але деякі операційні системи працюють за алгоритмом маршрутизації, в якому заборонено посилати пакет туди, звідки він прийшов - це робиться для того, щоб уникнути зациклення пакетів. Щоб уникнути цього ws.3.2 ми налаштуємо з урахуванням того, що в локальній мережі працюють машини з адресами з іншої IP-мережі: ifconfig ep0 inet 172.16.8.14 netmask 255.255.0.0 route add -net 192.168.3.0 -netmask 255.255.255.0 172.16. 8.14 route add default 172.16.0.1 Тут ми присвоїли інтерфейсу номер з мережі 172.16. *. *, а потім оголосили, що пакети для мережі 192.168.3. * треба відправляти в ту ж локальну мережу. Маршрутизація за замовчуванням могла бути спрямована і на адресу 192.168.3.1, але наведена конструкція простіше в тому сенсі, що обидві маршрутизації спираються на інтерфейс і не залежать один від одного. Я не знаю, чи розрізняються ці варіанти по ефективності, а якщо розрізняються, то наскільки; але чим менше залежностей в конфігурації, тим простіше її налаштовувати і діагностувати при збої. І нарешті, будь-якій машині можна привласнити дві адреси - по одному з кожної IP-мережі. Як правило, це робиться в разі, коли частина машин має IP-адреси, виділені провайдером, а решта працюють з Intranet'овскімі номерами - їх завжди в надлишку.

Наступну мережа класу C сегментуємо маршрутизатором, що відокремить підмережа на 16 IP-номерів (14 машин, включаючи маршрутизатор).

Наступну мережа класу C сегментуємо маршрутизатором, що відокремить підмережа на 16 IP-номерів (14 машин, включаючи маршрутизатор)

Шлюз: ifconfig ed3 inet 192.168.4.1 netmask 255.255.255.0 route add -net 192.168.4.128 -netmask 255.255.255.240 192.168.4.254 Робоча станція ws.4.1: ifconfig ep0 inet 192.168.4.7 netmask 255.255.255.0 route add default 192.168.4.1

Я не вказав маршрутизацію

route add -net 192.168.4.128 -netmask 255.255.255.240 192.168.4.254

Її можна не вказувати і для маршрутизатора. Але! Якщо котрась із машин сегмента 192.168.4.128/28, наприклад, 192.168.4.137, звернеться до машини з основного (примикає до шлюзу) сегмента (в тому числі до шлюзу), то протокол ARP зафіксує прихід пакету з мережевої карти, маршрутизатора, виходить в основний сегмент (IP-номер 192.168.4.127) і далі буде посилати пакети на цю мережеву карту, і це буде правильно.
Окрему проблему представляє звернення машини з основного сегмента в 192.168.4.128/28. За відсутності у ARP відомостей про цьому номері буде розісланий циркулярний запит і тут все залежить від кмітливості проміжного маршрутизатора router.4 - якщо він здогадається, що пакет призначений в підмережа і транслюватиме його туди, то відповідь призведе до появи запису в таблицях ARP, не здогадається - доведеться прописувати маршрутизацію.

Маршрутизатор router.4: ifconfig ep0 inet 192.168.4.127 netmask 255.255.255.0 ifconfig ep1 inet 192.168.4.129 netmask 255.255.255.240 route add default 192.168.4.1 Робоча станція ws.4.2: ifconfig ep0 inet 192.168.4.137 netmask 255.255.255.240 route add default 192.168.4.129

А цю мережу (теж класу C) сегментуємо маршрутизатором, який розіб'є мережу на дві рівні частини.

Шлюз: ifconfig ed3 inet 192.168.5.1 netmask 255.255.255.128 route add -net 192.168.5.128 -netmask 255.255.255.128 192.168.5.127 Робоча станція ws.5.1: ifconfig ep0 inet 192.168.5.7 netmask 255.255.255.128 route add -net 192.168.5.128 -netmask 255.255.255.128 192.168.5.127 route add default 192.168.5.1 Маршрутизатор router.5: ifconfig ep0 inet 192.168.5.127 netmask 255.255.255.128 ifconfig ep1 inet 192.168.5.129 netmask 255.255.255.128 route add default 192.168.5.1 Робоча станція ws.5.2 : ifconfig ep0 inet 192.168.5.137 netmask 255.255.255.128 route add default 192.168.5.129

Різниця з попереднім випадком в тому, що мережа розділена на сегменти, що містять тільки "кугл" число IP-номерів (два в цілій степені). Це особливий випадок, коли логічніше оформити кожну мережа окремо.

Тепер зробимо дві мережі, з'єднані через послідовну лінію по протоколу PPP.

Тепер зробимо дві мережі, з'єднані через послідовну лінію по протоколу PPP

Шлюз: ifconfig ed3 inet 192.168.6.1 netmask 255.255.255.0 route add -net 172.17.14.192 -netmask 255.255.255.252 192.168.6.127 route add -net 192.168.6.128 -netmask 255.255.255.240 192.168.6.127 Маршрутизатор rt.6.1: ifconfig ep0 inet 192.168.6.127 netmask 255.255.255.128 pppd 172.17.14.193:172.17.14.194 netmask 255.255.255.252 [...] route add -net 192.168.6.128 -netmask 255.255.255.240 172.17.14.194 route add default 192.168.6.1 pppd вимагає при запуску вказати інтерфейс, через який відбувається з'єднання, і його параметри, але це не відноситься до теми і позначено [...]. Маршрутизатор rt.6.2: ifconfig ep0 inet 192.168.6.129 netmask 255.255.255.240 pppd 172.17.14.194:172.17.14.193 netmask 255.255.255.252 [...] route add default 172.17.14.193 Робоча станція ws.6.2: ifconfig ep0 inet 192.168.6.137 netmask 255.255.255.240 route add default 192.168.6.129 Підмережа на 16 машин виділена аналогічно прикладу 4. Я сподіваюся, розбивка мережі на підмережі "круглого" розміру, з'єднані по ppp, після засвоєння прочитаного виявиться під силу будь-кому.

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

  1. сервер DHCP повинен знаходитися в тому ж сегменті локальної мережі, що і його клієнти;
  2. сервер DHCP повинен коректно конфігурувати клієнтів, що знову ж таки непросто в складній сегментованої мережі.

Таким чином, я рекомендую виводити всі сегменти на один маршрутизатор (якщо він справляється з навантаженням) або користуватися можливостями, наданими динамічної маршрутизацією.

Примітки:

прозорий - Сегмент Internet сам може бути сегментований на рівні MAC, наприклад, комутатором. Прозорість проявляється в тому, що маршрутизатор, що працює на рівні IP, не повинен дбати про це; зокрема, IP-маршрутизатор ніколи не пропускає broadcast повідомлення (на відміну від multicast), але broadcast повідомлення мають вільно поширюватися по всій локальній мережі мережі - це потрібно, зокрема, для протоколу ARP .

послідовним портом в даному випадку називається будь-який порт, видає дані побайтно (асинхронний COM, синхронний RS-232, принтерний LPT) на відміну від мережевого інтерфейсу, що видає дані пакетами. Відрізняється від мережевого тим, що з поиощью послідовних інтерфейсів можна пов'язувати безпосередньо рівно два комп'ютери, а значить, такий спосіб не потребує адресації пакетів на MAC-рівні.

DNS - Domain Name Service, що дозволяє дізнатися IP-номер і деяку іншу інформацію про машину за доменним ім'ям, а також доменне ім'я по IP-номеру. Зокрема, зона визначення імені по номеру може бути делегована тільки на мережу класу A, B або C і ніяк інакше. :-(

System V: BSD: ifconfig ep0 inet адреса netmask маска Linux: ifconfig eth0 inet адреса netmask маска BSD: ifconfig інтерфейс inet адреса netmask маска alias Linux: ifconfig eth0: 1 inet адреса netmask маска BSD: route add -net номер -netmask маска шлюз Linux: route add -net номер netmask маска шлюз Відповідність між інтерфейсом eth0 і парою Port / IRQ записано в /etc/lilo.conf;після зміни треба запустити ще щось.Windows 3.11ifconfig інтерфейс inet адреса netmask маска прописується в "Властивостях TCP / IP" даного інтерфейсу.ifconfig інтерфейс inet адреса netmask маска alias прописується в "Додаткових властивості".route add default шлюз задається як "Default Gateway".route add -net номер -netmask маска шлюз вводиться з командного рядка route add номер MASK маска шлюз

Ці команди реально виконуються, проте, як правило, вони задаються інакше. У файлі / etc / sysconfig пишеться

network_interfaces = "ep0 lo0" ifconfig_ep0 = "inet 192.168.1.5 netmask 255.255.255.0" ifconfig_lo0 = "inet localhost" Ці рядки обробляються файлом / etc / netstart # Set up all the network interfaces, calling startup scripts if needed for ifn in $ { network_interfaces}; do eval ifconfig_args = \ $ ifconfig _ $ {ifn} ifconfig $ {ifn} $ {ifconfig_args} ifconfig $ {ifn} done if [-n "$ defaultrouter" -a "x $ defaultrouter"! = "xNO"]; then static_routes = "default $ {static_routes}" route_default = "default $ {defaultrouter}" fi # Set up any static routes. This should be done before router discovery. if [ "x $ {static_routes}"! = "x"]; then for i in $ {static_routes}; do eval route_args = \ $ route _ $ {i} route add $ {route_args} done fi а localhost визначається по файлу / etc / hosts, в якому міститься 127.0.0.1 localhost.домен localhost

і деякі інші адреси / імена, які машина повинна знати навіть у разі недоступності DNS-сервера ; як мінімум, там крім loopback містяться адреси решти інтерфейсів даної машини, асоційовані з її доменним ім'ям в повної і короткої формк.

протокол ARP використовується в мережах, що мають свою власну нумерацію (Ethernet, TokenRing, X.25) і потрібен для того, щоб не прописувати вручну відповідність IP-адрес номерами мережевих адаптерів. Після старту системи таблиці ARP порожні; якщо приходить IP-пакет від будь-якої станції, фіксується відповідність її IP-номера номером її мережевої карти. Якщо треба послати пакет по IP-номеру, для якого невідомий номер мережевої карти, надсилається широковещательное (в розумінні локальної мережі) повідомлення.

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

протокол DHCP (Dynamic Host Configure Protocol) за запитом машини видає їй IP-адреса, маску, номер DNS-сервера і т.д. аж до завантажується через мережу операційної системи. Як правило, застосовується у варіанті, коли запитуюча машина не знає ні своєї адреси, ні адреси DHCP-сервера; в цьому випадку вона знаходить сервер, посилаючи широкомовна запит, а значить, вони повинні бути в одному сегменті локальної мережі.

Спонсори:

Хостинг:



Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью