Product SiteDocumentation Site

9.2.3. Настройка RIP

  1. Опишите (или скопируйте) конфигурационный файл для R1 в соответствующем файле виртуальной машины
    @R1:/etc/bird/bird.conf
    router id 10.0.1.1;
    
    protocol kernel {
       learn all;
       ipv4 { export all; };
    }
    
    protocol device {
       scan time 10;
    }
    
    protocol rip {
       interface "eth1", "lo0";
       ipv4 {
           import all;
           export where (net = 10.0.1.0/24) || (net = 10.0.12.0/24);
       };
    }
    
    Для работы демона необходимо указывать ключевые параметры конфигурации:
    • Описание уникального идентификатора маршрутизатора в сети, «от имени» которого будут рассылаться данные о маршрутах;
    • Структуру protocol kernel — она описывает действия, связанные с таблицами маршрутизации ядра системы. Необходимо указать сохранение получаемых данных в таблицах маршрутизации устройства (а не просто передачу этих данных), а также частоту обновления таблиц получаемыми данными;
    • Структуру protocol device — она описывает действия самого сетевого устройства. Необходимо указать периодичность сканирования портов на наличие BIRD‑данных от других устройств;
    • Структуру protocol rip — она описывает действия, связанные с маршрутизацией с помощью протокола:
      • Указание интерфейсов для приёма‑передачи данных RIP;
      • Экспорт и импорт маршрутов по IPv4 согласно описанным правилам.
  2. Аналогично опишите (или скопируйте) конфигурационные файлы для R2 и R3.
    @R2:/etc/bird/bird.conf
    router id 10.0.2.2;
    
    protocol kernel {
       learn all;
       ipv4 { export all; };
    }
    
    protocol device {
       scan time 10;
    }
    
    protocol rip {
       interface "eth*";
       ipv4 {
           import where net != 10.0.1.0/24;
           export all;
       };
    }
    
    @R3:/etc/bird/bird.conf
    router id 10.0.3.3;
    
    protocol kernel {
           learn all;
           ipv4 { export all; };
    }
    
    protocol device {
       scan time 10;
    }
    
    protocol rip {
       interface "*";
       ipv4 {
           import all;
           export all;
       };
    }
    
    Заметьте, что R2 не будет принимать данные, связанные с сетью 10.0.1.0/24, и, соответственно, не будет отправлять их далее по топологии.
  3. С помощью команды bird запустите BIRD на каждом из устройств.
    C помощью команды birdc можно посмотреть параметры работы демона.
  4. С помощью команды birdc show route посмотрите таблицу RIP‑маршрутов, передаваемых BIRD.
    [root@R1 ~]# bird
    [root@R1 ~]# birdc show route
    BIRD +detached. ready.
    Table master4:
    10.0.1.0/24          unicast [kernel1 12:25:54.420] * (10)
           dev lo0
    10.0.12.0/24         unicast [kernel1 12:25:54.420] * (10)
           dev eth1
    10.0.23.0/24         unicast [rip1 12:26:00.124] * (120/2)
           via 10.0.12.2 on eth1
    10.0.2.0/24          unicast [rip1 12:26:00.124] * (120/2)
           via 10.0.12.2 on eth1
    10.0.3.0/24          unicast [rip1 12:26:02.896] * (120/3)
           via 10.0.12.2 on eth1
    [root@R1 ~]#
    
    В таблице маршрутизации после запуска должны появиться новые записи о доступных маршрутах с указанием proto bird, означающим, что маршрут получен с помощью BIRD‑демона (поскольку маршруты не приходят мгновенно, может потребоваться время на получение всех данных).
  5. С помощью команды управления таблицами маршрутизации убедитесь, что таблицы маршрутизации на устройствах изменились в соответствии с данными от BIRD.
    [root@R1 ~]# ip route
    10.0.1.0/24 dev lo0 proto kernel scope link src 10.0.1.1 linkdown
    10.0.2.0/24 via 10.0.12.2 dev eth1 proto bird metric 32
    10.0.3.0/24 via 10.0.12.2 dev eth1 proto bird metric 32
    10.0.12.0/24 dev eth1 proto kernel scope link src 10.0.12.1
    10.0.23.0/24 via 10.0.12.2 dev eth1 proto bird metric 32
    [root@R1 ~]#
    
    [root@R2 ~]# ip route
    10.0.2.0/24 dev lo0 proto kernel scope link src 10.0.2.2 linkdown
    10.0.3.0/24 via 10.0.23.3 dev eth2 proto bird metric 32
    10.0.12.0/24 dev eth1 proto kernel scope link src 10.0.12.2
    10.0.12.0/24 via 10.0.12.1 dev eth1 proto bird metric 32
    10.0.23.0/24 dev eth2 proto kernel scope link src 10.0.23.2
    [root@R2 ~]#
    
    [root@R3 ~]# ip route
    10.0.2.0/24 via 10.0.23.2 dev eth1 proto bird metric 32
    10.0.3.0/24 dev lo0 proto kernel scope link src 10.0.3.3 linkdown
    10.0.12.0/24 via 10.0.23.2 dev eth1 proto bird metric 32
    10.0.23.0/24 dev eth1 proto kernel scope link src 10.0.23.3
    10.0.23.0/24 via 10.0.23.2 dev eth1 proto bird metric 32
    [root@R3 ~]#
    
    Заметьте, что информация о маршруте в сеть 10.0.1.0/24 не передалась на R2 и R3, поскольку не была указана как допустимая к передаче.
  6. С помощью команды ping -c3 <dstIP> проверьте достижимость отдельных сетей с разных устройств.
    [root@R1 ~]# ping -c3 10.0.23.3
    PING 10.0.23.3 (10.0.23.3) 56(84) bytes of data.
    64 bytes from 10.0.23.3: icmp_seq=1 ttl=63 time=1.00 ms
    64 bytes from 10.0.23.3: icmp_seq=2 ttl=63 time=0.872 ms
    64 bytes from 10.0.23.3: icmp_seq=3 ttl=63 time=0.854 ms
    
    --- 10.0.23.3 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2001ms
    rtt min/avg/max/mdev = 0.854/0.908/1.000/0.065 ms
    [root@R1 ~]# ping -c3 10.0.3.3
    PING 10.0.3.3 (10.0.3.3) 56(84) bytes of data.
    64 bytes from 10.0.3.3: icmp_seq=1 ttl=63 time=0.903 ms
    64 bytes from 10.0.3.3: icmp_seq=2 ttl=63 time=0.838 ms
    64 bytes from 10.0.3.3: icmp_seq=3 ttl=63 time=0.990 ms
    
    --- 10.0.3.3 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2055ms
    rtt min/avg/max/mdev = 0.838/0.910/0.990/0.062 ms
    [root@R1 ~]#
    
    [root@R3 ~]# ping -c3 10.0.1.1
    ping: connect: Network is unreachable
    [root@R3 ~]# ping -c3 10.0.2.2
    PING 10.0.2.2 (10.0.2.2) 56(84) bytes of data.
    64 bytes from 10.0.2.2: icmp_seq=1 ttl=64 time=0.591 ms
    64 bytes from 10.0.2.2: icmp_seq=2 ttl=64 time=0.448 ms
    64 bytes from 10.0.2.2: icmp_seq=3 ttl=64 time=0.567 ms
    
    --- 10.0.2.2 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2060ms
    rtt min/avg/max/mdev = 0.448/0.535/0.591/0.062 ms
    [root@R3 ~]#