Annotation of embedaddon/bird2/doc/bird.conf.example2, revision 1.1.1.1

1.1       misho       1: /*
                      2:  *     This is an example configuration file for MB-BGP setting
                      3:  */
                      4: 
                      5: 
                      6: log "bird.log" all;
                      7: # debug protocols all;
                      8: 
                      9: router id 192.168.1.1;
                     10: 
                     11: ipv4 table master4;
                     12: ipv6 table master6;
                     13: 
                     14: ipv4 table mcast4;
                     15: ipv6 table mcast6;
                     16: 
                     17: ipv4 table mtab4;
                     18: ipv6 table mtab6;
                     19: 
                     20: vpn4 table vpntab4;
                     21: vpn6 table vpntab6;
                     22: 
                     23: vpn4 table vpn4mc;
                     24: vpn6 table vpn6mc;
                     25: 
                     26: flow4 table flowtab4;
                     27: flow6 table flowtab6;
                     28: 
                     29: 
                     30: protocol device {
                     31: }
                     32: 
                     33: protocol kernel kernel4 {
                     34:        ipv4 {
                     35:                export all;
                     36:        };
                     37: }
                     38: 
                     39: protocol kernel kernel6 {
                     40:        ipv6 {
                     41:                export all;
                     42:        };
                     43: }
                     44: 
                     45: 
                     46: protocol static static4 {
                     47:        ipv4;
                     48: 
                     49:        route 10.10.0.0/24 via 192.168.1.2;
                     50:        route 10.10.1.0/24 via 192.168.1.2 { bgp_large_community.add((10,20,30)); bgp_large_community.add((10,(20*3),10)); };
                     51: }
                     52: 
                     53: protocol static static6 {
                     54:        ipv6;
                     55: 
                     56:        route 2001:db8:10:10::/64 via 2001:db8:1:1::10;
                     57:        route 2001:db8:10:11::/64 via 2001:db8:1:1::10;
                     58: 
                     59:        route 2001:db8:1:1::/64 via fe80::ec9b:67ff:fe60:fd5d % ve1;
                     60: }
                     61: 
                     62: # VPNv4 routes with MPLS labels
                     63: protocol static statvpn4 {
                     64:        vpn4;
                     65: 
                     66:        route 10:10 10.20.0.0/24 via 192.168.1.2 mpls 210;
                     67:        route 10:10 10.20.1.0/24 via 192.168.1.2 mpls 210;
                     68:        route 10:20 10.20.0.0/24 via 192.168.1.2 mpls 220;
                     69:        route 10:20 10.20.1.0/24 via 192.168.1.2 mpls 220;
                     70: }
                     71: 
                     72: protocol static statvpn6 {
                     73:        vpn6;
                     74: 
                     75:        route 10:10 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/210;
                     76:        route 10:10 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/210;
                     77:        route 10:20 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/220;
                     78:        route 10:20 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/220;
                     79: }
                     80: 
                     81: # RFC 5575 flow specification
                     82: protocol static flowstat4 {
                     83:        flow4;
                     84: 
                     85:        route flow4 {
                     86:                dst 10.0.0.0/8;
                     87:                proto = 23;
                     88:                dport > 24 && < 30 || 40..50,60..70,80;
                     89:                sport > 24 && < 30 || = 40 || 50,60..70,80;
                     90:                icmp type 80;
                     91:                icmp code 90;
                     92:                tcp flags 0x03/0x0f;
                     93:                length 2048..65535;
                     94:                dscp = 63;
                     95:                fragment dont_fragment, is_fragment || !first_fragment;
                     96:        };
                     97: 
                     98:        route flow4 {
                     99:                dst 11.0.0.0/8;
                    100:                proto = 0x12;
                    101:                sport > 0x5678 && < 0x9abc || 0xdef0 || 0x1234,0x5678,0x9abc..0xdef0;
                    102:                dport = 50;
                    103:                tcp flags 0x000/0xf00;
                    104:        };
                    105: 
                    106:        route flow4 {
                    107:                dst 12.0.0.0/32;
                    108:                tcp flags ! 0/0x999;
                    109:        };
                    110: 
                    111:        route flow4 {
                    112:                dst 220.0.254.0/24;
                    113:                tcp flags 0x99/0x999;
                    114:        };
                    115: 
                    116:        route flow4 {
                    117:                dst 220.0.254.192/28;
                    118:                tcp flags ! 0xfff/0xfff;
                    119:        };
                    120: 
                    121:        route flow4 {
                    122:                dst 15.0.0.0/8;
                    123:                tcp flags ! 0x999/0x999;
                    124:        };
                    125: }
                    126: 
                    127: protocol static flowstat6 {
                    128:        flow6;
                    129: 
                    130:        route flow6 {
                    131:                dst fec0:1122:3344:5566::1/128;
                    132:                src 0000:0000:0000:0001:1234:5678:9800:0000/101 offset 63;
                    133:                next header = 23;
                    134:                sport 24..30, 42 || 50,60,70..80;
                    135:                dport = 50;
                    136:                tcp flags 0x03/0x0f, !0/0xff || 0x33/0x33;
                    137:                fragment !is_fragment || !first_fragment;
                    138:                label 0xaaaa/0xaaaa && 0x33/0x33;
                    139:        };
                    140: 
                    141:        route flow6 {
                    142:                dst fec0:1122:3344:5566::1/128;
                    143:                src ::1:1234:5678:9800:0/101 offset 63;
                    144:                next header = 23;
                    145:                dport = 50;
                    146:                sport > 24 && < 30 || = 40 || = 50 || = 60 || >= 70 && <= 80;
                    147:                tcp flags 0x3/0x3 && 0x0/0xc;
                    148:        };
                    149: }
                    150: 
                    151: 
                    152: protocol pipe {
                    153:        table master4;
                    154:        peer table mcast4;
                    155:        import none;
                    156:        export where source = RTS_OSPF;
                    157: }
                    158: 
                    159: protocol pipe {
                    160:        table master6;
                    161:        peer table mcast6;
                    162:        import none;
                    163:        export where source = RTS_OSPF;
                    164: }
                    165: 
                    166: protocol ospf v2 ospf4 {
                    167:        ipv4 {
                    168:                import all;
                    169: #              export where source = RTS_STATIC;
                    170:        };
                    171: 
                    172:        area 0 {
                    173:                interface "ve0" { stub; };
                    174:                interface "ve1" { hello 5; type ptp; };
                    175:                interface "ve2" { hello 5; type bcast; ttl security; };
                    176:                interface "ve3" { hello 5; type bcast; ttl security; };
                    177:        };
                    178: }
                    179: 
                    180: 
                    181: protocol ospf v3 ospf6 {
                    182:        ipv6 {
                    183:                import all;
                    184: #              export where source = RTS_STATIC;
                    185:        };
                    186: 
                    187:        area 0 {
                    188:                interface "ve0" { stub; };
                    189:                interface "ve1" { hello 5; type ptp; };
                    190:                interface "ve2" { hello 5; type bcast; };
                    191:        };
                    192: }
                    193: 
                    194: protocol bgp {
                    195:        local 192.168.11.1 as 1000;
                    196:        neighbor 192.168.11.2 as 2000;
                    197: #      local 192.168.1.1 as 1000;
                    198: #      neighbor 192.168.2.1 as 2000;
                    199: #      multihop;
                    200: #      rr client;
                    201: #      strict bind;
                    202: #      debug all;
                    203: 
                    204:        # regular IPv4 unicast (1/1)
                    205:        ipv4 {
                    206:                # connects to master4 table by default
                    207:                import all;
                    208:                export where source ~ [ RTS_STATIC, RTS_BGP ];
                    209:        };
                    210: 
                    211:        # regular IPv6 unicast (2/1)
                    212:        ipv6 {
                    213:                # connects to master6 table by default
                    214:                import all;
                    215:                export where source ~ [ RTS_STATIC, RTS_BGP ];
                    216: #              next hop address 2001:db8:1:1::1;
                    217:        };
                    218: 
                    219:        # IPv4 multicast topology (1/2)
                    220:        ipv4 multicast {
                    221:                # explicit IPv4 table
                    222:                table mcast4;
                    223:                import all;
                    224:                export all;
                    225:        };
                    226: 
                    227:        # IPv6 multicast topology (2/2)
                    228:        ipv6 multicast {
                    229:                # explicit IPv6 table
                    230:                table mcast6;
                    231:                import all;
                    232:                export all;
                    233: #              next hop address 2001:db8:1:1::1;
                    234:        };
                    235: 
                    236:        # IPv4 with MPLS labels (1/4)
                    237:        ipv4 mpls {
                    238:                # explicit IPv4 table
                    239:                table mtab4;
                    240:                import all;
                    241:                export all;
                    242:        };
                    243: 
                    244:        # IPv6 with MPLS labels (2/4)
                    245:        ipv6 mpls {
                    246:                # explicit IPv6 table
                    247:                table mtab6;
                    248:                import all;
                    249:                export all;
                    250:                # allows IPv4 next hops (6PE)
                    251:                # extended next hop;
                    252:        };
                    253: 
                    254:        # VPNv4 with MPLS labels (1/128)
                    255:         vpn4 mpls {
                    256:                # connects to vpntab4 table by default
                    257:                import all;
                    258:                export all;
                    259:        };
                    260: 
                    261:        # VPNv6 with MPLS labels (2/128)
                    262:         vpn6 mpls {
                    263:                # connects to vpntab6 table by default
                    264:                import all;
                    265:                export all;
                    266:        };
                    267: 
                    268:        # VPNv4 multicast topology (1/129)
                    269:         vpn4 multicast {
                    270:                table vpn4mc;
                    271:                import all;
                    272:                export all;
                    273:        };
                    274: 
                    275:        # VPNv6 multicast topology (2/129)
                    276:         vpn6 multicast {
                    277:                table vpn6mc;
                    278:                import all;
                    279:                export all;
                    280:        };
                    281: 
                    282:        # IPv4 Flowspec (1/133)
                    283:        flow4 {
                    284:                # connects to flowtab4 table by default
                    285:                import all;
                    286:                export all;
                    287:        };
                    288: 
                    289:        # IPv6 Flowspec (2/133)
                    290:        flow6 {
                    291:                # connects to flowtab6 table by default
                    292:                import all;
                    293:                export all;
                    294:        };
                    295: }
                    296: 
                    297: protocol bgp {
                    298:        local 192.168.1.1 as 1000;
                    299:        neighbor 192.168.3.1 as 1000;
                    300:        multihop;
                    301:        rr client;
                    302: 
                    303:        ipv4 {
                    304:                import all;
                    305:                export where source ~ [ RTS_STATIC, RTS_BGP ];
                    306:        };
                    307: 
                    308:        ipv6 {
                    309:                import all;
                    310:                export where source ~ [ RTS_STATIC, RTS_BGP ];
                    311:                next hop address 2001:db8:1:1::1;
                    312:        };
                    313: }
                    314: 
                    315: protocol bgp {
                    316:        local 2001:db8:1:1::1 as 1000;
                    317:        neighbor 2001:db8:4:1::1 as 1000;
                    318:        multihop;
                    319:        rr client;
                    320: 
                    321:        ipv4 {
                    322:                import all;
                    323:                export where source ~ [ RTS_STATIC, RTS_BGP ];
                    324:                next hop address 192.168.4.1;
                    325:        };
                    326: 
                    327:        ipv6 {
                    328:                import all;
                    329:                export where source ~ [ RTS_STATIC, RTS_BGP ];
                    330:        };
                    331: }
                    332: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>