Product SiteDocumentation Site

10.2.3. Настройка OSPF

  1. Опишите (или скопируйте) конфигурационный файл для R1 в соответствующем файле виртуальной машины.
    @R1:/etc/bird/bird.conf
    router id 10.0.1.1;
    
    protocol kernel {
           scan time 20;
           ipv4 { export all; };
    }
    
    protocol device {
           scan time 10;
    }
    
    protocol ospf SIMPLE {
           ipv4 { export all; };
           area 0.0.0.0 {
                   interface "eth1" {
                   };
                   interface "eth2" {
                   };
                   interface "lo0" {
                   };
           };
    }
    
    Конфигурационный файл включает в себя:
    • описание уникального идентификатора маршрутизатора в сети, «от имени» которого будут рассылаться данные о маршрутах;
    • структуру protocol kernel — она описывает действия, связанные с таблицами маршрутизации ядра системы;
    • структуру protocol device — она описывает действия самого сетевого устройства;
    • структуру protocol ospf — она описывает действия, связанные с маршрутизацией с помощью протокола:
      • экспорт всей OSPF‑информации о доступных маршрутах по IPv4;
      • экспорт данных всем устройствам за указанными интерфейсами.
  2. Аналогично опишите (или скопируйте) конфигурационные файлы для R2 и R3.
    @R2:/etc/bird/bird.conf
    router id 10.0.2.2;
    
    protocol kernel {
           scan time 20;
           ipv4 { export all; };
    }
    
    protocol device {
           scan time 10;
    }
    
    protocol ospf SIMPLE {
           ipv4 { export all; };
           area 0.0.0.0 {
                   interface "eth1" {
                   };
                   interface "lo0" {
                   };
           };
    }
    
    @R3:/etc/bird/bird.conf
    router id 10.0.3.3;
    
    protocol kernel {
           scan time 20;
           ipv4 { export all; };
    }
    
    protocol device {
           scan time 10;
    }
    
    protocol ospf SIMPLE {
           ipv4 { export all; };
           area 0.0.0.0 {
                   interface "eth1" {
                   };
                   interface "eth2" {
                   };
                   interface "lo0" {
                   };
                   interface "lo2" {
                   };
           };
    }
    
  3. С помощью команды bird запустите BIRD на каждом из устройств.
    C помощью команды birdc можно посмотреть параметры работы демона.
  4. С помощью команды birdc show route посмотрите список OSPF‑данных, передаваемых BIRD.
    [root@R1 ~]# bird
    [root@R1 ~]# birdc
    BIRD +detached. ready.
    bird> show route
    Table master4:
    10.0.12.0/24         unicast [SIMPLE 01:41:40.630] * I (150/10) [10.0.1.1]
           dev eth1
    10.0.13.0/24         unicast [SIMPLE 01:41:40.631] * I (150/10) [10.0.1.1]
           dev eth2
    10.0.1.1/32          unicast [SIMPLE 01:41:40.631] * I (150/0) [10.0.1.1]
           dev lo0
    bird>
    
    В таблице маршрутизации после запуска должны появиться новые записи о доступных маршрутах с указанием 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.1.1 dev lo0 proto bird scope link metric 32 linkdown
    10.0.2.2 via 10.0.12.2 dev eth1 proto bird metric 32
    10.0.3.3 via 10.0.13.3 dev eth2 proto bird metric 32
    10.0.12.0/24 dev eth1 proto kernel scope link src 10.0.12.1
    10.0.12.0/24 dev eth1 proto bird scope link metric 32
    10.0.13.0/24 dev eth2 proto kernel scope link src 10.0.13.1
    10.0.13.0/24 dev eth2 proto bird scope link metric 32
    172.16.0.1 via 10.0.13.3 dev eth2 proto bird metric 32
    
    [root@R2 ~]# ip route
    10.0.2.0/24 dev lo0 proto kernel scope link src 10.0.2.2 linkdown
    10.0.2.2 dev lo0 proto bird scope link metric 32 linkdown
    10.0.12.0/24 dev eth1 proto kernel scope link src 10.0.12.2
    10.0.12.0/24 dev eth1 proto bird scope link metric 32
    
    <Some time later>
    
    [root@R2 ~]# ip route
    10.0.1.1 via 10.0.12.1 dev eth1 proto bird metric 32
    10.0.2.0/24 dev lo0 proto kernel scope link src 10.0.2.2 linkdown
    10.0.2.2 dev lo0 proto bird scope link metric 32 linkdown
    10.0.3.3 via 10.0.12.1 dev eth1 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 dev eth1 proto bird scope link metric 32
    10.0.13.0/24 via 10.0.12.1 dev eth1 proto bird metric 32
    172.16.0.1 via 10.0.12.1 dev eth1 proto bird metric 32
    
    [root@R3 ~]# ip route
    10.0.1.1 via 10.0.13.1 dev eth1 proto bird metric 32
    10.0.2.2 via 10.0.13.1 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.3.3 dev lo0 proto bird scope link metric 32 linkdown
    10.0.12.0/24 via 10.0.13.1 dev eth1 proto bird metric 32
    10.0.13.0/24 dev eth1 proto kernel scope link src 10.0.13.3
    10.0.13.0/24 dev eth1 proto bird scope link metric 32
    172.16.0.0/24 dev lo2 proto kernel scope link src 172.16.0.1 linkdown
    172.16.0.1 dev lo2 proto bird scope link metric 32 linkdown
    
  6. С помощью команды ping -c3 <dstIP> проверьте достижимость отдельных сетей с разных устройств.
    [root@R1 ~]# 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.348 ms
    64 bytes from 10.0.2.2: icmp_seq=2 ttl=64 time=0.409 ms
    64 bytes from 10.0.2.2: icmp_seq=3 ttl=64 time=0.392 ms
    
    --- 10.0.2.2 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2024ms
    rtt min/avg/max/mdev = 0.348/0.383/0.409/0.025 ms
    [root@R1 ~]#
    
    [root@R2 ~]# ping -c3 172.16.0.1
    PING 172.16.0.1 (172.16.0.1) 56(84) bytes of data.
    64 bytes from 172.16.0.1: icmp_seq=1 ttl=63 time=0.665 ms
    64 bytes from 172.16.0.1: icmp_seq=2 ttl=63 time=0.489 ms
    64 bytes from 172.16.0.1: icmp_seq=3 ttl=63 time=0.711 ms
    
    --- 172.16.0.1 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2067ms
    rtt min/avg/max/mdev = 0.489/0.621/0.711/0.095 ms
    [root@R2 ~]#