Linux에서 빠르게 BGP를 사용하기 위한 BIRD 설정

BIRD란?



BIRD는 Linux 등에서 동작하는 BGP나 RIP 등의 라우팅 프로토콜을 구현한 프로그램입니다. 2021년 4월 시점에서 2.0계와 1.6계의 양 계열이 메인터넌스 되고 있습니다.
무료로 이용 가능한 옵션으로 OS 레벨에서 동작하는 VyOS 등이 있지만, 그쪽에 비해 성능은 뒤떨어지는 한편, 기존의 어플리케이션과 공존하는 형태로 소프트웨어로서 도입할 수 있다는 점이 장점. 개인적으로는 초간이에 BGP의 검증을 실시할 때에도 사용할 수 있을까 생각하고 있습니다.
본 기사에서는, 현재 주류의 2.0계를 이용해, Ubuntu20.04상에서 BGP를 동작시켜, 서버와 직접 접속된 세그먼트를 광고+망측으로부터의 경로를 받는 기능을 기능을 가진 간이적인 라우터를 동작시키는 곳까지 비망록적으로 정리하고 있습니다.

BIRD2.0 도입 절차



apt를 통해 BIRD 설치


$ sudo apt update
$ sudo apt install bird2

BIRD 설정



아래의 설정 예와 같이 재기록


  • local AS: 65001(Ubuntu측의 속한 AS)
  • remote AS : 65002 (대향 라우터가 속한 AS)
  • router id: 172.16.1.1(Ubuntu측의 IP 주소)
  • neighbor ip : 172.16.1.2 (대향 라우터의 IP 주소)
  • bgp:
  • (export) : 모두 (bird에서 보유하는 경로 = interface "eth0"의 direct 경로 만)
  • (import): 모두

  • $ sudo vim /etc/bird/bird.conf
    

    /etc/bird/bird.conf
    log syslog all;
    router id 172.16.1.1;
    protocol device {
        scan time 10;
    }
    protocol kernel {
        scan time 10;
        ipv4 {
            export filter {
                if proto = "direct1" then reject;
                accept;
            };
        };
    }
    protocol direct direct1 {
        ipv4;
        interface "eth0";
    }
    protocol bgp {
        ipv4 {
            import all;
            export all;
        };
        local as 65001;
        neighbor 172.16.1.2 as 65002;
    }
    
    $ sudo systemctl restart bird
    # うまく行かない場合再起動
    

    상태 확인


    $ sudo birdc
    
    >bird
    show protocol all # bgp neighborとの接続がESTABLISHEDになっているか
    show route # 経路配信、受領できているか
    [ctrl+c]
    
    $ ip route # birdによるbgpの経路がルーティングテーブルに乗っているか
    

    ip_forward 설정



    우분투에서는 기본적으로 라우팅 기능이 비활성화되어 있으므로,
    /etc/sysctl.conf의 net.ipv4.ip_forward = 0net.ipv4.ip_forward = 1로 변경

    참고 링크


  • 사이보스 엔지니어 블로그 라우팅 소프트웨어 BIRD 사용 방법
  • BIRD - User's guide 2.0
  • BIRD - Wiki
  • 패킷 포워딩 켜기
  • 좋은 웹페이지 즐겨찾기