[about] [index] [prev] [2022-08-26 17:27:28+03:00] [f1ca03bf8ac2316234ec59fd082e502fceb874a5]
Topics: [ipv6]

BIRD простота конфига

С настройкой BIRD-а (982b29ed90d9c1e8e39ebb4398e0a4b0f26ad927) у меня
изначально были мысли о том, что как-то многовато строчек в его
конфигурационном файле для такой простой задачи как у меня. Но в
документации хорошо описана его архитектура и всё встало на свои места и
пришло понимание почему kernel и direct являются протоколами точно так
же наравне с BGP и остальными. И особо то ничего лишнего уже и не видно
в нём.

Комментарий о range снова подтолкнул разобраться почему он у меня не
сработал и оказалось что у меня просто недостаточно свежая версия демона
была. С range-ем можно избавиться от явно заданного link-local адреса на
стороне "клиентов". В итоге туннельные интерфейсы на клиентах делаются
просто указывая автоматическое создание link-local-а:
    ifconfig iface inet6 -ifdisabled auto_linklocal

Конфиг на моём NUC сейчас выглядит так:

    protocol kernel {
      ipv6 {
        import none;
        export filter {
          if proto = "direct1" then reject;
          accept;
        };
      };
      learn;
    }

    protocol direct direct1 {
      ipv6;
      interface "lo0";
    }

    define our_as = 4200000000;

    template bgp gwpeers {
      local as our_as;
      neighbor fe80::1 as our_as;
      direct;
      ipv6 {
        import all;
        export filter {
          if net ~ [2000::/3+] then accept;
          reject;
        };
      };
    }

    protocol bgp gwwg from gwpeers {
      interface "wg0";
    }

    protocol bgp gwipsec from gwpeers {
      interface "gif0";
    }

А на сервере так:

    [...]
    protocol direct direct1 {
      ipv6;
      interface "lo0";
      interface "igb_lan";
    }

    template bgp peers {
      local as our_as;
      local fe80::1;
      neighbor range fe80::/64 as our_as;
      direct;
      passive on;
      ipv6 {
        import all;
        export filter {
          if net ~ [2000::/3+] then accept;
          reject;
        };
      };
    }

    protocol bgp nukewg from peers {
      interface "wg0";
    }

    protocol bgp nukeipsec from peers {
      interface "gif_nuke";
    }

    protocol bgp beta from peers {
      interface "gif_beta";
    }

[leave comment]