LINUX.ORG.RU

История изменений

Исправление Vlad-76, (текущая версия) :

Поднимайте linux, настраивайте сетевые интерфейсы - к оператору и в ЦОД , качайте bird компилите

в /etc/sysctl.conf нужно разрешить Linux форвардить пакеты с интерфейса на интерфейс

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

Собрал конфиг для bird, может с ошибками, тестить надо. Но суть попытался отразить.

#  решетка в начале строки - отключает действие строки в конфиге, получается типа комментарий

log syslog all;

#router id 192.168.1.5;    

protocol device {
        scan time 10;
}

debug commands 2;

timeformat route "%F %T";

#здесь поправите на интерфейсы какие необходимы для работы bird c учетом того какой и куда смотрит интерфейс в системе. Возможно у Вас будут интерфейсы в linux которые не нужно здесь указывать вовсе
protocol direct {
    interface "eth0";      #   Допустим этот интерфейс к провайдеру
    interface "eth1";      #   Допустим этот интерфейс к физическому порту в ЦОД
#   interface "eth2.120";  # это для пирмера если будете использовать VLANы 
#   interface "eth2.121";
}

protocol kernel {
        export all; #  Запихнем все маршруты известные bird (в таблице master) в TM linux в т.ч. default 
        scan time 15;
}

protocol static static1 {
#       disabled;               # Disable by default
#       table testable;         # Connect to a non-default table
        preference 254; # Default preference of routes
#       debug { states, routes, filters, interfaces, events, packets };
#       debug all;
        route 192.168.200.1.0/24 via "lo";  #  В таблицу с маршрутами master (которая внутри bird) будет воткнут маршрут 
}


filter BGP_ISP1_in {
        if  net =  0.0.0.0/0  then {# Разрешаем получать default route
	    print "BGP_ISP1 : default route accepted:", net;
            accept;
        }
        reject; # остальные маршруты отбрасываем
};

filter BGP_ISP1_out {
        if net = 192.168.200.1.0/24 then { # Разрешаем объявить сеть
            accept;
        }
        reject;  #остальные маршруты отбрасываем
};

protocol bgp BGP-ISP1{ # BGP-ISP1  - имя оператора внутри bird
        table master; # Таблица с маршрутами внутри bird с которой будет взаимодействовать данный протокол. Вообще master это название по умолчанию в bird если не указывать
        router id 192.168.1.5;
#       disabled;
        description "BGP-ISP1";
        local as 50500;             # AS Ваша
        neighbor W.X.Y.Z as YYYY;   # IP провайдера и AS Провайдера
#       bfd;
        hold time 240;
        startup hold time 240;
        connect retry time 120;
        keepalive time 80;      # defaults to hold time / 3
#        keepalive time 10;      # defaults to hold time / 3
        connect delay time 5;     # How long do we wait before initial connect
        error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
                                # errors occur, we increase the delay exponentially ...
        error forget time 300;  # ... until this timeout expires)
#       disable after error;    # Disable the protocol automatically when an error occurs
        next hop self;          # Disable next hop processing and always advertise our local address as nexthop
        path metric 1;          # Prefer routes with shorter paths (like Cisco does)
        default bgp_med 0;      # MED value we use for comparison when none is defined
#        default bgp_local_pref 100;       # The same for local preference
        source address 192.168.1.5;    # What local address we use for the TCP connection
        export filter BGP_ISP1_out; # фильтр на объявление маршрутов оператору
        import filter BGP_ISP1_in;  # фильтр на получение маршрутов от оператора
}

Исправление Vlad-76, :

Поднимайте linux, настраивайте сетевые интерфейсы - к оператору и в ЦОД , качайте bird компилите
Собрал конфиг для bird, может с ошибками, тестить надо. Но суть попытался отразить.

#  решетка в начале строки - отключает действие строки в конфиге, получается типа комментарий

log syslog all;

#router id 192.168.1.5;    

protocol device {
        scan time 10;
}

debug commands 2;

timeformat route "%F %T";

#здесь поправите на интерфейсы какие необходимы для работы bird c учетом того какой и куда смотрит интерфейс в системе. Возможно у Вас будут интерфейсы в linux которые не нужно здесь указывать вовсе
protocol direct {
    interface "eth0";      #   Допустим этот интерфейс к провайдеру
    interface "eth1";      #   Допустим этот интерфейс к физическому порту в ЦОД
#   interface "eth2.120";  # это для пирмера если будете использовать VLANы 
#   interface "eth2.121";
}

protocol kernel {
        export all; #  Запихнем все маршруты известные bird (в таблице master) в TM linux в т.ч. default 
        scan time 15;
}

protocol static static1 {
#       disabled;               # Disable by default
#       table testable;         # Connect to a non-default table
        preference 254; # Default preference of routes
#       debug { states, routes, filters, interfaces, events, packets };
#       debug all;
        route 192.168.200.1.0/24 via "lo";  #  В таблицу с маршрутами master (которая внутри bird) будет воткнут маршрут 
}


filter BGP_ISP1_in {
        if  net =  0.0.0.0/0  then {# Разрешаем получать default route
	    print "BGP_ISP1 : default route accepted:", net;
            accept;
        }
        reject; # остальные маршруты отбрасываем
};

filter BGP_ISP1_out {
        if net = 192.168.200.1.0/24 then { # Разрешаем объявить сеть
            accept;
        }
        reject;  #остальные маршруты отбрасываем
};

protocol bgp BGP-ISP1{ # BGP-ISP1  - имя оператора внутри bird
        table master; # Таблица с маршрутами внутри bird с которой будет взаимодействовать данный протокол. Вообще master это название по умолчанию в bird если не указывать
        router id 192.168.1.5;
#       disabled;
        description "BGP-ISP1";
        local as 50500;             # AS Ваша
        neighbor W.X.Y.Z as YYYY;   # IP провайдера и AS Провайдера
#       bfd;
        hold time 240;
        startup hold time 240;
        connect retry time 120;
        keepalive time 80;      # defaults to hold time / 3
#        keepalive time 10;      # defaults to hold time / 3
        connect delay time 5;     # How long do we wait before initial connect
        error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
                                # errors occur, we increase the delay exponentially ...
        error forget time 300;  # ... until this timeout expires)
#       disable after error;    # Disable the protocol automatically when an error occurs
        next hop self;          # Disable next hop processing and always advertise our local address as nexthop
        path metric 1;          # Prefer routes with shorter paths (like Cisco does)
        default bgp_med 0;      # MED value we use for comparison when none is defined
#        default bgp_local_pref 100;       # The same for local preference
        source address 192.168.1.5;    # What local address we use for the TCP connection
        export filter BGP_ISP1_out; # фильтр на объявление маршрутов оператору
        import filter BGP_ISP1_in;  # фильтр на получение маршрутов от оператора
}

Исправление Vlad-76, :

Поднимайте linux, настраивайте сетевые интерфейсы - к оператору и в ЦОД , качайте bird компилите
Собрал конфиг для bird, может с ошибками, тестить надо. Но суть попытался отразить.

#  решетка в начале строки - отключает действие строки в конфиге, получается типа комментарий

log syslog all;

#router id 192.168.1.5;    

protocol device {
        scan time 10;
}

debug commands 2;

timeformat route "%F %T";

#здесь поправите на интерфейсы какие необходимы для работы bird c учетом того какой и куда смотрит интерфейс в системе. Возможно у Вас будут интерфейсы в linux которые не нужно здесь указывать вовсе
protocol direct {
    interface "eth0";      #   Допустим этот интерфейс к провайдеру
    interface "eth1";      #   Допустим этот интерфейс к физическому порту в ЦОД
#   interface "eth2.120";  # это для пирмера если будете использовать VLANы 
#   interface "eth2.121";
}

protocol kernel {
        export all; #  Запихнем все маршруты известные bird (в таблице master) в TM linux в т.ч. default 
        scan time 15;
}

protocol static static1 {
#       disabled;               # Disable by default
#       table testable;         # Connect to a non-default table
        preference 254; # Default preference of routes
#       debug { states, routes, filters, interfaces, events, packets };
#       debug all;
        route 192.168.200.1.0 via "lo";  #  В таблицу с маршрутами master (которая внутри bird) будет воткнут маршрут 
}


filter BGP_ISP1_in {
        if  net =  0.0.0.0/0  then {# Разрешаем получать default route
	    print "BGP_ISP1 : default route accepted:", net;
            accept;
        }
        reject; # остальные маршруты отбрасываем
};

filter BGP_ISP1_out {
        if net = 192.168.200.1.0/24 then { # Разрешаем объявить сеть
            accept;
        }
        reject;  #остальные маршруты отбрасываем
};

protocol bgp BGP-ISP1{ # BGP-ISP1  - имя оператора внутри bird
        table master; # Таблица с маршрутами внутри bird с которой будет взаимодействовать данный протокол. Вообще master это название по умолчанию в bird если не указывать
        router id 192.168.1.5;
#       disabled;
        description "BGP-ISP1";
        local as 50500;             # AS Ваша
        neighbor W.X.Y.Z as YYYY;   # IP провайдера и AS Провайдера
#       bfd;
        hold time 240;
        startup hold time 240;
        connect retry time 120;
        keepalive time 80;      # defaults to hold time / 3
#        keepalive time 10;      # defaults to hold time / 3
        connect delay time 5;     # How long do we wait before initial connect
        error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
                                # errors occur, we increase the delay exponentially ...
        error forget time 300;  # ... until this timeout expires)
#       disable after error;    # Disable the protocol automatically when an error occurs
        next hop self;          # Disable next hop processing and always advertise our local address as nexthop
        path metric 1;          # Prefer routes with shorter paths (like Cisco does)
        default bgp_med 0;      # MED value we use for comparison when none is defined
#        default bgp_local_pref 100;       # The same for local preference
        source address 192.168.1.5;    # What local address we use for the TCP connection
        export filter BGP_ISP1_out; # фильтр на объявление маршрутов оператору
        import filter BGP_ISP1_in;  # фильтр на получение маршрутов от оператора
}

Исправление Vlad-76, :

Поднимайте linux, настраивайте сетевые интерфейсы - к оператору и в ЦОД , качайте bird компилите
Собрал конфиг для bird, может с ошибками, тестить надо. Но суть попытался отразить.

#  решетка в начале строки - отключает действие строки в конфиге, получается типа комментарий

log syslog all;

#router id 192.168.1.5;    

protocol device {
        scan time 10;
}

debug commands 2;

timeformat route "%F %T";

#здесь поправите на интерфейсы какие необходимы для работы bird c учетом того какой и куда смотрит интерфейс в системе
protocol direct {
    interface "eth0";      #   Допустим этот интерфейс к провайдеру
    interface "eth1";      #   Допустим этот интерфейс к физическому порту в ЦОД
#   interface "eth2.120";  # это для пирмера если будете использовать VLANы 
#   interface "eth2.121";
}

protocol kernel {
        export all; #  Запихнем все маршруты известные bird (в таблице master) в TM linux в т.ч. default 
        scan time 15;
}

protocol static static1 {
#       disabled;               # Disable by default
#       table testable;         # Connect to a non-default table
        preference 254; # Default preference of routes
#       debug { states, routes, filters, interfaces, events, packets };
#       debug all;
        route 192.168.200.1.0 via "lo";  #  В таблицу с маршрутами master (которая внутри bird) будет воткнут маршрут 
}


filter BGP_ISP1_in {
        if  net =  0.0.0.0/0  then {# Разрешаем получать default route
	    print "BGP_ISP1 : default route accepted:", net;
            accept;
        }
        reject; # остальные маршруты отбрасываем
};

filter BGP_ISP1_out {
        if net = 192.168.200.1.0/24 then { # Разрешаем объявить сеть
            accept;
        }
        reject;  #остальные маршруты отбрасываем
};

protocol bgp BGP-ISP1{ # BGP-ISP1  - имя оператора внутри bird
        table master; # Таблица с маршрутами внутри bird с которой будет взаимодействовать данный протокол. Вообще master это название по умолчанию в bird если не указывать
        router id 192.168.1.5;
#       disabled;
        description "BGP-ISP1";
        local as 50500;             # AS Ваша
        neighbor W.X.Y.Z as YYYY;   # IP провайдера и AS Провайдера
#       bfd;
        hold time 240;
        startup hold time 240;
        connect retry time 120;
        keepalive time 80;      # defaults to hold time / 3
#        keepalive time 10;      # defaults to hold time / 3
        connect delay time 5;     # How long do we wait before initial connect
        error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
                                # errors occur, we increase the delay exponentially ...
        error forget time 300;  # ... until this timeout expires)
#       disable after error;    # Disable the protocol automatically when an error occurs
        next hop self;          # Disable next hop processing and always advertise our local address as nexthop
        path metric 1;          # Prefer routes with shorter paths (like Cisco does)
        default bgp_med 0;      # MED value we use for comparison when none is defined
#        default bgp_local_pref 100;       # The same for local preference
        source address 192.168.1.5;    # What local address we use for the TCP connection
        export filter BGP_ISP1_out; # фильтр на объявление маршрутов оператору
        import filter BGP_ISP1_in;  # фильтр на получение маршрутов от оператора
}

Исходная версия Vlad-76, :

Поднимайте linux, настраивайте сетевые интерфейсы - к оператору и в ЦОД , качайте bird компилите
Собрал конфиг для bird, может с ошибками, тестить надо. Но суть попытался отразить.

#  решетка в начале строки - отключает действие строки в конфиге, получается типа комментарий

log syslog all;

#router id 192.168.1.5;    

protocol device {
        scan time 10;
}

debug commands 2;

timeformat route "%F %T";

#здесь поправите на интерфейсы какие необходимы для работы bird c учетом того какой и куда смотрит интерфейс в системе
protocol direct {
    interface "eth0";      #   Допустим этот интерфейс к провайдеру
    interface "eth1";      #   Допустим этот интерфейс к физическому порту в ЦОД
#   interface "eth2.120";  # это для пирмера если будете использовать VLANы 
#   interface "eth2.121";
}

protocol kernel {
        export all;       #  Запихнем все маршруты известные bird (в таблице master) в TM linux в т.ч. default 
        scan time 15;
}

protocol static static1 {
#       disabled;               # Disable by default
#       table testable;         # Connect to a non-default table
        preference 254; # Default preference of routes
#       debug { states, routes, filters, interfaces, events, packets };
#       debug all;
        route 192.168.200.1.0 via "lo";  #  В таблицу с маршрутами master (которая внутри bird) будет воткнут маршрут 
}


filter BGP_ISP1_in {
        if  net =  0.0.0.0/0  then {# Разрешаем получать default route
	    print "BGP_ISP1 : default route accepted:", net;
            accept;
        }
        reject; #  остальные маршруты отбрасываем
};

filter BGP_ISP1_out {
        if net = 192.168.200.1.0/24 then { # Разрешаем объявить сеть
            accept;
        }
        reject;  #  остальные маршруты отбрасываем
};

protocol bgp BGP-ISP1{    # BGP-ISP1  - имя оператора внутри bird
        table master;   # Таблица с маршрутами внутри bird с которой будет взаимодействовать данный протокол. Вообще master это название по умолчанию в bird если не указывать
        router id 192.168.1.5;
#       disabled;
        description "BGP-ISP1";
        local as 50500;             # AS Ваша
        neighbor W.X.Y.Z as YYYY;   # IP провайдера и AS Провайдера
#       bfd;
        hold time 240;
        startup hold time 240;
        connect retry time 120;
        keepalive time 80;      # defaults to hold time / 3
#        keepalive time 10;      # defaults to hold time / 3
        connect delay time 5;     # How long do we wait before initial connect
        error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
                                # errors occur, we increase the delay exponentially ...
        error forget time 300;  # ... until this timeout expires)
#       disable after error;    # Disable the protocol automatically when an error occurs
        next hop self;          # Disable next hop processing and always advertise our local address as nexthop
        path metric 1;          # Prefer routes with shorter paths (like Cisco does)
        default bgp_med 0;      # MED value we use for comparison when none is defined
#        default bgp_local_pref 100;       # The same for local preference
        source address 192.168.1.5;    # What local address we use for the TCP connection
        export filter BGP_ISP1_out; # фильтр на объявление маршрутов оператору
        import filter BGP_ISP1_in;  # фильтр на получение маршрутов от оператора
}