Bird2常用命令行

指导文件:

https://archive.nanog.org/meetings/nanog48/presentations/Monday/Filip_BIRD_final_N48.pdf
https://github.com/freifunkhamburg/bird/blob/master/bird.conf
http://www.kvm.la/1092.html
https://gitlab.labs.nic.cz/labs/bird/-/wikis/BGP_example_2
https://gitlab.labs.nic.cz/labs/bird/-/wikis/Related        官方wiki,很全面
http://www.cloudtacker.com/AS19133

Bird配置文件示例介绍

#配置日志
log syslog all;
log "/var/log/bird.log" { debug, trace, info, remote, warning, error, auth, fatal, bug };
debug protocols all;

#配置route ID
router id 172.20.58.193;

# Turn on internal watchdog
watchdog warning 5 s;
watchdog timeout 30 s;

#默认情况下定义了两张表,master4表对应ipv4表,master6表对应ipv6表
# ipv4 table master4;
# ipv6 table master6;

#可以定义更多的表,如策略路由表以及mrib表
# ipv4 table mrib4;
# ipv6 table mrib6;

#设备协议不是真正的路由协议,他不会产生任何的路由条目,仅用作获取有关网络信息的模块,来自内核接口,几乎所有配置中都是必须的
protocol device {
}

#直连协议不是真正的路由协议,他自动生成,直接到达所有网络接口,可以存在于您的每个实例中,
#希望是否要使用直接路由填充多个路由表(默认否)。
protocol direct {
    disabled;       # Disable by default
    ipv4;           # Connect to default IPv4 table
    ipv6;           # ... and to default IPv6 table
}

#内核协议不是真正的路由协议,他不与网络中的其他路由器通信,而是执行bird同步
#使用OS内核的路由表。 每个表一个实例。
protocol kernel {
    ipv4 {          # Connect protocol to IPv4 table by channel
#        table master4;    # 默认的IPv4表为master4
#        import all;   # 导入表,默认为全部导入
          export all;   # 导出到协议。 默认为不导出
    };
#  learn;          # 从内核中学习外来路由
#  kernel table 10;    # 要同步的内核表(默认是: main表)
}
protocol kernel {       #这个ipv6和上面ipv6默认一样
    ipv6 { export all; };
}

#静态路线,同样,对于不同的地址系列,可以有多个实例,并且可以动态禁用/启用各种静态路由组。
protocol static {
    ipv4;
#  route 0.0.0.0/0 via 198.51.100.10;      默认吓一跳
#  route 192.0.2.0/24 blackhole;       黑洞路由
#  route 10.0.0.0/8 unreachable;       不可达
#  route 10.2.0.0/24 via "eth0";       指定出接口
#  #静态路由可以使用可选属性定义
#  route 10.1.1.0/24 via 198.51.100.3 { rip_metric = 3; };
#  route 10.1.2.0/24 via 198.51.100.3 { ospf_metric1 = 100; };
#  route 10.1.3.0/24 via 198.51.100.4 { ospf_metric2 = 100; };
}


# 管道协议,连接两个路由表,即把ipv4和ipv6连起来了,小心无限循环哦
# protocol pipe {
#  table master4;      #没有像其他协议中那样的ipv4 / ipv6通道定义
#  peer table mrib4;
#  import all;     # Direction peer table -> table
#  export all;     # Direction table -> peer table
# }

# RIP示例,同时支持RIP和RIPng
# protocol rip {
#  ipv4 {
#      # Export direct, static routes and ones from RIP itself
#      import all;
#      export where source ~ [ RTS_DEVICE, RTS_STATIC, RTS_RIP ];
#  };
#  interface "eth*" {
#      update time 10;         # Default period is 30
#      timeout time 60;        # Default timeout is 180
#      authentication cryptographic;   # No authentication by default
#      password "hello" { algorithm hmac sha256; }; # Default is MD5
#  };
# }

# OSPF示例,同时支持OSPFv2和OSPFv3
# protocol ospf v3 {
#   ipv6 {
#      import all;
#      export where source = RTS_STATIC;
#  };
#  area 0 {
#      interface "eth*" {
#          type broadcast;     # Detected by default
#          cost 10;        # Interface metric
#          hello 5;        # Default hello perid 10 is too long
#      };
#      interface "tun*" {
#          type ptp;       # PtP mode, avoids DR selection
#          cost 100;       # Interface metric
#          hello 5;        # Default hello perid 10 is too long
#      };
#      interface "dummy0" {
#          stub;           # Stub interface, just propagate it
#      };
#  };
#}

# 定义简单过滤器作为BGP导入过滤器的示例
# 有关更多示例,请参见https://gitlab.labs.nic.cz/labs/bird/wikis/BGP_filtering
# filter rt_import
# {
#  if bgp_path.first != 64496 then accept;
#  if bgp_path.len > 64 then accept;
#  if bgp_next_hop != from then accept;
#  reject;
# }

# BGP示例,使用显式名称“ uplink1”代替默认的“ bgp1”
# protocol bgp uplink1 {
#  description "My BGP uplink";
#  local 198.51.100.1 as 65000;
#  neighbor 198.51.100.10 as 64496;
#  hold time 90;       # Default is 240
#  password "secret";  # MD5认证密码
#
#  ipv4 {          # regular IPv4 unicast (1/1)
#      import filter rt_import;
#      export where source ~ [ RTS_STATIC, RTS_BGP ];
#  };
#
#  ipv6 {          # regular IPv6 unicast (2/1)
#      import filter rt_import;
#      export filter { #与上面的“ where”表达式相同
#          if source ~ [ RTS_STATIC, RTS_BGP ]
#          then accept;
#          else reject;
#      };
#  };
#
#  ipv4 multicast {    # IPv4 multicast topology (1/2)
#      table mrib4;    # explicit IPv4 table
#      import filter rt_import;
#      export all;
#  };
#
#  ipv6 multicast {    # IPv6 multicast topology (2/2)
#      table mrib6;    # explicit IPv6 table
#      import filter rt_import;
#      export all;
#  };
#}

# 模板示例。 使用模板定义IBGP路由反射器客户端。
# template bgp rr_clients {
#  local 10.0.0.1 as 65000;
#  neighbor as 65000;
#  rr client;
#  rr cluster id 1.0.0.1;
#
#  ipv4 {
#      import all;
#      export where source = RTS_BGP;
#  };
#
#  ipv6 {
#      import all;
#      export where source = RTS_BGP;
#  };
# }
#
# protocol bgp client1 from rr_clients {
#  neighbor 10.0.1.1;
# }
#
# protocol bgp client2 from rr_clients {
#  neighbor 10.0.2.1;
# }
#
# protocol bgp client3 from rr_clients {
#  neighbor 10.0.3.1;
# }
#在linux终端下执行的
birdc configure             重载配置,不用重启bird2
birdc show protocol         查看BGP邻居(保护v4与v6)
birdc                       进入bird的vty虚拟终端

#在bird的vty虚拟终端下执行的
show status                 显示路由器状态,即BIRD版本,正常运行时间和上次重新配置的时间。
show interfaces             显示接口列表。对于每个接口,打印其类型,状态,MTU和分配的地址。
show interfaces summary     显示接口列表。及其接口IP,类似华为的dis ip int bir
show bfd sessions [name]                    显示有关BFD会话的信息。

show protocols      显示协议会话及状态,类似华为 dis bgp peer等命令
show protocols all  显示所有协议实例的列表以及它们连接到的表以及协议状态,如果all指定,则可能提供详细信息。
show protocols all SGP_4242422601   显示指定的SGP_4242422601邻居相关信息

show route          查看所有路由表
show route count    查看路由条目数量统计信息
show route protocol LA_4242422547   查看指定的路由表(这里的名字是show protocols所看到的name列)
show route all      查看所有路由表(能看到community等相关属性)

show route for 172.20.158.81            查看到172.20.158.81 有几条路由,什么是优选的
show route for 172.20.158.81 all        查看所有关于172.20.158.81 的路由详细信息
show route where 172.20.158.81 ~ net        看去往 172.20.158.81有几条路径,优选的是那条
 show route where  172.20.158.81 ~ net all  查看去往 172.20.158.81的所有详细信息,包括bgp community等
show route export HK_FNK                查看对某个对等体name发送了哪些路由

show static [name]                          显示有关静态路由的详细信息。
show ospf interface         查看哪些接口运行了OSPF协议
show ospf neighbors         查看OSPF有哪些邻居,及其邻居状态
show ospf topology all      根据链接状态数据库的内容显示OSPF区域的拓扑。它只是“ show ospf state”的简化版本。
show ospf lsadb             显示OSPF的lsdb数据库
show ospf lsadb [global | area id | link] [type num] [lsid id] [self | router id] [name]    显示OSPF LSA数据库的内容。选项可用于过滤条目。
show ospf state             查看OSPF状态
show ospf state [all] [name]    待定
                                            它显示了网络拓扑,存根网络,聚合网络以及其他区域的路由器和外部路由。
                                            该命令显示有关可到达的网络节点的信息,使用选项 all显示有关链接状态数据库中所有网络节点的信息。

debug 'rack0-tor1' all  调试

============
bird> show route filter bgp_out
192.175.48.0/24 dev dummy0 [direct1 Apr1] (240)

bird> show route filter {if 127.0.0.5 ~ net then accept;}
0.0.0.0/0 via 195.47.235.1 on eth0 [static1 Apr1](200)
127.0.0.0/8 dev lo [direct1 Apr1] (240)
=========================



show symbols [table|filter|function|protocol|template|roa|symbol]                           显示在配置中定义的符号列表(协议名称,路由表等)。
show route [[for] prefix|IP] [table (t | all)] [filter f|where c] [(export|preexport|noexport) p] [protocol p] [(stats|count)] [options]
    显示指定路由表的内容,即路由,其度量标准以及(如果提供了all交换机的话)所有属性。
    如果要打印特定网络的路由,可以指定前缀。如果使用,则将获得条目,该条目将用于将数据包转发

mrt dump table name|"pattern" to "filename" [filter f|where c]      将路由表的内容以MRT表转储格式转储到指定文件中。有关详细信息,请参见 MRT协议。
configure [soft] ["config file"] [timeout [num]]                    
configure confirm                           停用配置撤消计时器,然后确认当前配置。
configure undo                              撤消上一次配置更改,然后平稳地切换回上一个(存储的)配置。
configure check ["config file"]             读取并解析给定的配置文件,但不要使用它。用于检查配置文件的语法和某些语义有效性。
enable|disable|restart name|"pattern"|all   启用,禁用或重新启动与pattern或all实例匹配的给定协议实例。
reload [in|out] name|"pattern"|all          新加载给定的协议实例,这意味着从协议实例重新导入路由,并将首选路由重新导出到该实例。
debug protocol|pattern|all all|off|{ states|routes|filters|events|packets [, ...] }     控制协议调试。
dump resources|sockets|interfaces|neighbors|attributes|routes|protocols                 将内部数据结构的内容转储到调试输出。
echo all|off|{ list of log classes } [ buffer-size ]                                    控制日志消息到命令行输出的回显。请参阅 日志选项以获取日志类别的列表。
eval expr                                   评估给定的表达式。
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/1301.html
微信打赏微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2020/3/28作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何?

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注