Commit beea7935 authored by root's avatar root
Browse files

new version of Netlab. For more information view README

parent 000c1611
cf-babel/
\ No newline at end of file
Postup pro manualni nastaveni:
==============================
1. Na BIRD 2.0.4. pouzijeme tool netlab-int
2. Do adr. *../netlab-int/common/* nakopirovat skripty *bird* a *birdc*
3. Tool *netns_bin* nainstalovat. Dostaneme 2 skripty *netns_new* a
*netns_run*
4. Oba predchozi skripty presunout do adr *sbin* nebo *bin*
5. Spustim skript *start* a vytvarim 4 virtualni stroje (defaultne) se svymi adresami
6. Spustim *./birdc -l* v ramci adresare virtualky. Pomoci prepinace *-l* se
podivam na *config* a *ctl* v lokalnim adresari
7. Spustim skript *stop* a prikaz kill odstrani virtualky pres jejich PID
Postup pro automaticke reseni:
==============================
1. Spustim skript *user_input
2. Zadam pocet virtualnich zarizeni
3. Spustim skript *start*
3. Muzu pracovat s virtualkami m1 az mn
4. Pro ukonceni spustim skript *stop*, ktery killne funcionalitu virtualek a smaze obsah slozky config/config
log "bird.log" all;
# debug protocols all;
router id 192.168.1.1;
ipv4 table master4;
ipv6 table master6;
vpn4 table vpntab4;
vpn6 table vpntab6;
flow4 table flowtab4;
flow6 table flowtab6;
protocol device {
scan time 10;
}
protocol kernel kernel4 {
scan time 20;
# metric 64;
# disabled;
ipv4 {
# export all;
export where source = RTS_OSPF;
};
}
protocol kernel kernel6 {
scan time 20;
# metric 64;
# disabled;
ipv6 {
# export all;
export where source = RTS_OSPF;
};
}
protocol static static4 {
ipv4;
route 10.10.0.0/24 via 192.168.1.2;
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)); };
}
protocol static static6 {
ipv6;
route 2001:db8:10:10::/64 via 2001:db8:1:1::10;
route 2001:db8:10:11::/64 via 2001:db8:1:1::10;
# route 2001:db8:1:1::/64 via fe80::ec9b:67ff:fe60:fd5d % ve1;
}
protocol static flowstat4 {
flow4;
route flow4 {
dst 127.0.0.0/8;
proto = 23;
dport > 24 && < 30 || 40..50,60..70,80;
sport > 24 && < 30 || = 40 || 50,60..70,80;
icmp type 80;
icmp code 90;
tcp flags 0x03/0x0f;
length 2048..65535;
dscp = 63;
fragment dont_fragment, is_fragment || !first_fragment;
};
route flow4 {
dst 11.0.0.0/8;
proto = 0x12;
sport > 0x5678 && < 0x9abc || 0xdef0 || 0x1234,0x5678,0x9abc..0xdef0;
dport = 50;
tcp flags 0xf80/0xfff;
};
route flow4 {
dst 12.0.0.0/32;
tcp flags ! 0 / 0xfff;
};
route flow4 {
dst 220.0.254.0/24;
tcp flags 0x8 / 0xf;
};
route flow4 {
dst 220.0.254.192/28;
tcp flags !0xfff / 0xfff;
};
route flow4 {
dst 15.0.0.0/8;
tcp flags !0x999/0x999;
};
}
protocol static flowstat6 {
flow6;
route flow6 {
dst fec0:1122:3344:5566::1/128;
src 0000:0000:0000:0001:1234:5678:9800:0000/101 offset 63;
next header = 23;
sport 24..30, 42 || 50,60,70..80;
dport = 50;
tcp flags 0x03/0x0f, !0/0xff || 0x33/0x33;
fragment !is_fragment || !first_fragment;
label 0xaaaa/0xaaaa && 0x33/0x33;
};
route flow6 {
dst fec0:1122:3344:5566::1/128;
src ::1:1234:5678:9800:0/101 offset 63;
next header = 23;
dport = 50;
sport > 24 && < 30 || = 40 || = 50 || = 60 || >= 70 && <= 80;
tcp flags 0x3/0x3 && 0x0/0xc;
};
}
protocol bgp {
local 192.168.11.1 as 10;
neighbor 192.168.11.2 as 20;
# debug all;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
ipv6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn4 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn6 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
}
protocol bgp {
local 192.168.14.2 as 10;
neighbor 192.168.14.1 as 40;
# debug all;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
ipv6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn4 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn6 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
}
log "bird.log" all;
# debug protocols all;
router id 192.168.2.1;
ipv4 table master4;
ipv6 table master6;
vpn4 table vpntab4;
vpn6 table vpntab6;
flow4 table flowtab4;
flow6 table flowtab6;
protocol device {
scan time 10;
}
protocol kernel kernel4 {
scan time 20;
# disabled;
ipv4 {
# export all;
export where source = RTS_OSPF;
};
}
protocol kernel kernel6 {
scan time 20;
# disabled;
ipv6 {
# export all;
export where source = RTS_OSPF;
};
}
protocol static static4 {
ipv4;
route 10.50.0.0/24 via 192.168.2.2;
route 10.50.1.0/24 via 192.168.2.2;
route 10.20.0.0/24 via 192.168.2.2;
route 10.20.1.0/24 via 192.168.2.2 mpls 200;
}
protocol static static6 {
ipv6;
route 2001:db8:50:1::/64 via 2001:db8:2:1::10;
route 2001:db8:50:2::/64 via 2001:db8:2:1::10;
# route 2001:db8:20:10::/64 via 2001:db8:2:1::10;
route 2001:db8:20:10::/64 via 192.168.2.2 mpls 200/200;
route 2001:db8:20:11::/64 via 2001:db8:2:1::10 mpls 200/200;
}
protocol static statvpn4 {
vpn4;
route 10:10 10.20.0.0/24 via 192.168.2.2 mpls 210;
route 10:10 10.20.1.0/24 via 192.168.2.2 mpls 210;
route 10:20 10.20.0.0/24 via 192.168.2.2 mpls 220;
route 10:20 10.20.1.0/24 via 192.168.2.2 mpls 220;
}
protocol static statvpn6 {
vpn6;
route 0:10:10 2001:db8:20:10::/64 via 2001:db8:2:1::10 mpls 200/210;
route 0:10:10 2001:db8:20:11::/64 via 2001:db8:2:1::10 mpls 200/210;
route 0:10:20 2001:db8:20:10::/64 via 2001:db8:2:1::10 mpls 200/220;
route 0:10:20 2001:db8:20:11::/64 via 2001:db8:2:1::10 mpls 200/220;
}
protocol bgp {
local 192.168.12.1 as 20;
neighbor 192.168.12.2 as 30;
# debug all;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
graceful restart;
};
ipv6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
graceful restart;
};
vpn4 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn6 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
}
protocol bgp {
local 192.168.11.2 as 20;
neighbor 192.168.11.1 as 10;
# debug all;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
graceful restart;
};
ipv6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
graceful restart;
};
vpn4 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn6 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
}
log "bird.log" all;
# debug protocols all;
router id 192.168.3.1;
ipv4 table master4;
ipv6 table master6;
vpn4 table vpntab4;
vpn6 table vpntab6;
flow4 table flowtab4;
flow6 table flowtab6;
protocol device {
scan time 10;
}
protocol kernel kernel4 {
scan time 20;
# disabled;
ipv4 {
# export all;
export where source = RTS_OSPF;
};
}
protocol kernel kernel6 {
scan time 20;
# disabled;
ipv6 {
# export all;
export where source = RTS_OSPF;
};
}
protocol static static4 {
ipv4;
route 10.30.0.0/24 via 192.168.3.2;
route 10.30.1.0/24 via 192.168.3.2 mpls 300;
}
protocol static static6 {
ipv6;
route 2001:db8:30:10::/64 via 2001:db8:3:1::10;
route 2001:db8:30:11::/64 via 2001:db8:3:1::10 mpls 300/300;
}
protocol bgp {
local 192.168.13.1 as 30;
neighbor 192.168.13.2 as 40;
# debug all;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
ipv6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn4 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn6 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
}
protocol bgp {
local 192.168.12.2 as 30;
neighbor 192.168.12.1 as 20;
# debug all;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
ipv6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn4 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn6 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
}
log "bird.log" all;
# debug protocols all;
router id 192.168.4.1;
ipv4 table master4;
ipv6 table master6;
vpn4 table vpntab4;
vpn6 table vpntab6;
flow4 table flowtab4;
flow6 table flowtab6;
protocol device {
scan time 10;
}
protocol kernel kernel4 {
scan time 20;
# disabled;
ipv4 {
# export all;
export where source = RTS_OSPF;
};
}
protocol kernel kernel6 {
scan time 20;
# disabled;
ipv6 {
# export all;
export where source = RTS_OSPF;
};
}
protocol static static4 {
ipv4;
route 10.50.0.0/24 via 192.168.4.2 { bgp_local_pref = 500; };
route 10.50.1.0/24 via 192.168.4.2 { bgp_local_pref = 500; };
route 10.40.0.0/24 via 192.168.4.2 { bgp_local_pref = 500; };
route 10.40.1.0/24 via 192.168.4.2 mpls 400 { bgp_local_pref = 500; };
}
protocol static static6 {
ipv6;
route 2001:db8:50:1::/64 via 2001:db8:4:1::10;
route 2001:db8:50:2::/64 via 2001:db8:4:1::10;
route 2001:db8:40:10::/64 via 2001:db8:4:1::10;
route 2001:db8:40:11::/64 via 2001:db8:4:1::10 mpls 400/400;
}
protocol bgp {
local 192.168.14.1 as 40;
neighbor 192.168.14.2 as 10;
# debug all;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
ipv6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn4 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
vpn6 multicast {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
flow6 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
}
protocol bgp {
local 192.168.13.2 as 40;
neighbor 192.168.13.1 as 30;
# debug all;
ipv4 {
import all;
export where source ~ [ RTS_STATIC, RTS_BGP ];
};
ipv6 {