https://wiki.initlab.org/api.php?action=feedcontributions&user=Hackman&feedformat=atominitLab - User contributions [en]2024-03-29T08:13:15ZUser contributionsMediaWiki 1.37.2https://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=410Workshop/BGP-configs2016-03-14T13:14:10Z<p>Hackman: /* Commands cheat sheet */</p>
<hr />
<div>This page is created to help with the [[Workshop/BGP|bgp workshop]] that is organized in the lab.<br />
= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show protocol all bgp_up2 - get full status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route all export bgp_up2 - list all exported networks to peer bgp_up2 and their additional parameters<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route all for 185.117.82.104 - get the routes for 185.117.82.104 and its path info<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
show memory - get the memory usage of Bird<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors configuration ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
allow all prefixes except the one I'm advertising<br />
ip prefix-list in_filter seq 1 deny 185.117.82.112/29<br />
ip prefix-list in_filter seq 10 permit any<br />
Export only my directly connected prefix<br />
ip prefix-list out_filter seq 1 permit 185.117.82.112/29<br />
ip prefix-list out_filter seq 10 deny any<br />
<br />
== Commands cheat sheet ==<br />
show ip bgp neighbors - list all configured neighbors and full information about them<br />
show ip prefix-list - list all prefix lists<br />
show memory - get a memory usage info<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash<br />
<br />
= iproute2 commands =<br />
* Add a VLAN 111 to eth0<br />
# ip link add link eth0 name eth0.111 type vlan id 111 <br />
* Bring a device UP<br />
# ip link set up dev eth0<br />
* Bring a device DOWN<br />
# ip link set down dev eth0<br />
* Check the route to a destination<br />
# ip route get 8.8.8.8<br />
* Create a new virtual ethernet pair. Useful for communication with containers.<br />
# ip link add veth0 type veth peer name veth1<br />
* Create a new network namespace called '''bgp'''<br />
# ip netns add bgp<br />
* Move device '''veth1''' into network namespace '''bgp'''<br />
# ip link set veth1 netns bgp<br />
* Execute a command inside netns '''bgp'''. Its easiest if the command is a shell<br />
# ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=409Workshop/BGP2016-03-13T22:48:26Z<p>Hackman: /* Задачи */</p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /64 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
== Задачи ==<br />
* Setup upstream1 & upstream2<br />
## Add vlans for both upstreams<br />
## Add IPv4 /30 configuration. On your machine the IP ends with .2, the neighbor is with .1<br />
## Add IPv6 /120 configuration. On your machine the IP ends with .2, the neighbor is with .1<br />
## Setup BGP sessions with both upstreams<br />
## Create filters for your own /29 netwok (185.117.82.xxx/29). You should export only your directly connected prefixes to your upstreams and you should accept everything except your own prefixes.<br />
* Setup ix1 & ix2<br />
## Add vlan 400<br />
## Add your IPv4 IX ip 10.128.0.USER_NUM /24<br />
## Add your IPv6 IX ip 2001:67c:21bc:5::USER_NUM /64<br />
## Setup BGP sessions with both IX nodes<br />
## Create filter for your own /29 network (185.117.82.xxx/29). You should export all 185.117.82.xxx/29 prefixes to the IX peers and accept all 185.117.82.xxx/29 prefixes from the IX peers<br />
* Peer with your peers<br />
** each USER has two VLANs trough which he can access two peers. If you are USER_NUM 11, then your VLANs would be 110(left peer) and 111(right peer)<br />
*# choose an IP range with your peers. Do not use the same range for different peers.<br />
*# configure the agreed addresses with your peers<br />
*# configure the new BGP sessions with your peers<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 02.04.2016 ==<br />
# HackMan - laptop Xubuntu (Bird + Quagga)<br />
# Иван Карпов - лаптоп<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство (RPi, лаптоп)<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
# Петър Христов - laptop<br />
<br />
= Configuration = <br />
* [[Workshop/BGP-configs#Bird|Bird related settings]]<br />
* [[Workshop/BGP-configs#Quagga|Quagga related settings]]<br />
* [[Workshop/BGP-configs#Client_container|Client container]]<br />
* [[Workshop/BGP-configs#iproute2_commands|Basic iproute2 commands]]<br />
<br />
<br />
<br />
<br />
[[Category:Project]]</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=408Workshop/BGP2016-03-13T22:45:51Z<p>Hackman: /* Протичане */</p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /64 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
== Задачи ==<br />
# Setup upstream1 & upstream2<br />
## Add vlans for both upstreams<br />
## Add IPv4 /30 configuration. On your machine the IP ends with .2, the neighbor is with .1<br />
## Add IPv6 /120 configuration. On your machine the IP ends with .2, the neighbor is with .1<br />
## Setup BGP sessions with both upstreams<br />
## Create filters for your own /29 netwok (185.117.82.xxx/29). You should export only your directly connected prefixes to your upstreams and you should accept everything except your own prefixes.<br />
# Setup ix1 & ix2<br />
## Add vlan 400<br />
## Add your IPv4 IX ip 10.128.0.USER_NUM /24<br />
## Add your IPv6 IX ip 2001:67c:21bc:5::USER_NUM /64<br />
## Setup BGP sessions with both IX nodes<br />
## Create filter for your own /29 network (185.117.82.xxx/29). You should export all 185.117.82.xxx/29 prefixes to the IX peers and accept all 185.117.82.xxx/29 prefixes from the IX peers<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 02.04.2016 ==<br />
# HackMan - laptop Xubuntu (Bird + Quagga)<br />
# Иван Карпов - лаптоп<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство (RPi, лаптоп)<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
# Петър Христов - laptop<br />
<br />
= Configuration = <br />
* [[Workshop/BGP-configs#Bird|Bird related settings]]<br />
* [[Workshop/BGP-configs#Quagga|Quagga related settings]]<br />
* [[Workshop/BGP-configs#Client_container|Client container]]<br />
* [[Workshop/BGP-configs#iproute2_commands|Basic iproute2 commands]]<br />
<br />
<br />
<br />
<br />
[[Category:Project]]</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=407Workshop/BGP2016-03-13T22:35:00Z<p>Hackman: /* Участници */</p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /64 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 02.04.2016 ==<br />
# HackMan - laptop Xubuntu (Bird + Quagga)<br />
# Иван Карпов - лаптоп<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство (RPi, лаптоп)<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
# Петър Христов - laptop<br />
<br />
= Configuration = <br />
* [[Workshop/BGP-configs#Bird|Bird related settings]]<br />
* [[Workshop/BGP-configs#Quagga|Quagga related settings]]<br />
* [[Workshop/BGP-configs#Client_container|Client container]]<br />
* [[Workshop/BGP-configs#iproute2_commands|Basic iproute2 commands]]<br />
<br />
<br />
<br />
<br />
[[Category:Project]]</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=406Workshop/BGP2016-03-13T22:33:42Z<p>Hackman: /* Какво даваме */</p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /64 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство (RPi, лаптоп)<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
# Петър Христов - laptop<br />
<br />
= Configuration = <br />
* [[Workshop/BGP-configs#Bird|Bird related settings]]<br />
* [[Workshop/BGP-configs#Quagga|Quagga related settings]]<br />
* [[Workshop/BGP-configs#Client_container|Client container]]<br />
* [[Workshop/BGP-configs#iproute2_commands|Basic iproute2 commands]]<br />
<br />
<br />
<br />
<br />
[[Category:Project]]</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=405Workshop/BGP-configs2016-03-13T22:33:02Z<p>Hackman: /* Bird */</p>
<hr />
<div>This page is created to help with the [[Workshop/BGP|bgp workshop]] that is organized in the lab.<br />
= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
show memory - get the memory usage of Bird<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors configuration ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
allow all prefixes except the one I'm advertising<br />
ip prefix-list in_filter seq 1 deny 185.117.82.112/29<br />
ip prefix-list in_filter seq 10 permit any<br />
Export only my directly connected prefix<br />
ip prefix-list out_filter seq 1 permit 185.117.82.112/29<br />
ip prefix-list out_filter seq 10 deny any<br />
<br />
== Commands cheat sheet ==<br />
show ip bgp neighbors - list all configured neighbors and full information about them<br />
show ip prefix-list - list all prefix lists<br />
show memory - get a memory usage info<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash<br />
<br />
= iproute2 commands =<br />
* Add a VLAN 111 to eth0<br />
# ip link add link eth0 name eth0.111 type vlan id 111 <br />
* Bring a device UP<br />
# ip link set up dev eth0<br />
* Bring a device DOWN<br />
# ip link set down dev eth0<br />
* Check the route to a destination<br />
# ip route get 8.8.8.8<br />
* Create a new virtual ethernet pair. Useful for communication with containers.<br />
# ip link add veth0 type veth peer name veth1<br />
* Create a new network namespace called '''bgp'''<br />
# ip netns add bgp<br />
* Move device '''veth1''' into network namespace '''bgp'''<br />
# ip link set veth1 netns bgp<br />
* Execute a command inside netns '''bgp'''. Its easiest if the command is a shell<br />
# ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=404Workshop/BGP-configs2016-03-13T22:30:56Z<p>Hackman: /* Commands cheat sheet */</p>
<hr />
<div>= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
show memory - get the memory usage of Bird<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors configuration ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
allow all prefixes except the one I'm advertising<br />
ip prefix-list in_filter seq 1 deny 185.117.82.112/29<br />
ip prefix-list in_filter seq 10 permit any<br />
Export only my directly connected prefix<br />
ip prefix-list out_filter seq 1 permit 185.117.82.112/29<br />
ip prefix-list out_filter seq 10 deny any<br />
<br />
== Commands cheat sheet ==<br />
show ip bgp neighbors - list all configured neighbors and full information about them<br />
show ip prefix-list - list all prefix lists<br />
show memory - get a memory usage info<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash<br />
<br />
= iproute2 commands =<br />
* Add a VLAN 111 to eth0<br />
# ip link add link eth0 name eth0.111 type vlan id 111 <br />
* Bring a device UP<br />
# ip link set up dev eth0<br />
* Bring a device DOWN<br />
# ip link set down dev eth0<br />
* Check the route to a destination<br />
# ip route get 8.8.8.8<br />
* Create a new virtual ethernet pair. Useful for communication with containers.<br />
# ip link add veth0 type veth peer name veth1<br />
* Create a new network namespace called '''bgp'''<br />
# ip netns add bgp<br />
* Move device '''veth1''' into network namespace '''bgp'''<br />
# ip link set veth1 netns bgp<br />
* Execute a command inside netns '''bgp'''. Its easiest if the command is a shell<br />
# ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=403Workshop/BGP-configs2016-03-13T22:30:08Z<p>Hackman: /* Commands cheat sheet */</p>
<hr />
<div>= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors configuration ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
allow all prefixes except the one I'm advertising<br />
ip prefix-list in_filter seq 1 deny 185.117.82.112/29<br />
ip prefix-list in_filter seq 10 permit any<br />
Export only my directly connected prefix<br />
ip prefix-list out_filter seq 1 permit 185.117.82.112/29<br />
ip prefix-list out_filter seq 10 deny any<br />
<br />
== Commands cheat sheet ==<br />
show ip bgp neighbors - list all configured neighbors and full information about them<br />
show ip prefix-list - list all prefix lists<br />
show memory - get a memory usage info<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash<br />
<br />
= iproute2 commands =<br />
* Add a VLAN 111 to eth0<br />
# ip link add link eth0 name eth0.111 type vlan id 111 <br />
* Bring a device UP<br />
# ip link set up dev eth0<br />
* Bring a device DOWN<br />
# ip link set down dev eth0<br />
* Check the route to a destination<br />
# ip route get 8.8.8.8<br />
* Create a new virtual ethernet pair. Useful for communication with containers.<br />
# ip link add veth0 type veth peer name veth1<br />
* Create a new network namespace called '''bgp'''<br />
# ip netns add bgp<br />
* Move device '''veth1''' into network namespace '''bgp'''<br />
# ip link set veth1 netns bgp<br />
* Execute a command inside netns '''bgp'''. Its easiest if the command is a shell<br />
# ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=402Workshop/BGP-configs2016-03-13T22:29:24Z<p>Hackman: /* prefix lists */</p>
<hr />
<div>= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors configuration ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
allow all prefixes except the one I'm advertising<br />
ip prefix-list in_filter seq 1 deny 185.117.82.112/29<br />
ip prefix-list in_filter seq 10 permit any<br />
Export only my directly connected prefix<br />
ip prefix-list out_filter seq 1 permit 185.117.82.112/29<br />
ip prefix-list out_filter seq 10 deny any<br />
<br />
== Commands cheat sheet ==<br />
show ip bgp neighbors - list all configured neighbors and full information about them<br />
show ip prefix-list - list all prefix lists<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash<br />
<br />
= iproute2 commands =<br />
* Add a VLAN 111 to eth0<br />
# ip link add link eth0 name eth0.111 type vlan id 111 <br />
* Bring a device UP<br />
# ip link set up dev eth0<br />
* Bring a device DOWN<br />
# ip link set down dev eth0<br />
* Check the route to a destination<br />
# ip route get 8.8.8.8<br />
* Create a new virtual ethernet pair. Useful for communication with containers.<br />
# ip link add veth0 type veth peer name veth1<br />
* Create a new network namespace called '''bgp'''<br />
# ip netns add bgp<br />
* Move device '''veth1''' into network namespace '''bgp'''<br />
# ip link set veth1 netns bgp<br />
* Execute a command inside netns '''bgp'''. Its easiest if the command is a shell<br />
# ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=401Workshop/BGP2016-03-13T22:20:25Z<p>Hackman: /* Configuration */</p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /62 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство (RPi, лаптоп)<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
# Петър Христов - laptop<br />
<br />
= Configuration = <br />
* [[Workshop/BGP-configs#Bird|Bird related settings]]<br />
* [[Workshop/BGP-configs#Quagga|Quagga related settings]]<br />
* [[Workshop/BGP-configs#Client_container|Client container]]<br />
* [[Workshop/BGP-configs#iproute2_commands|Basic iproute2 commands]]<br />
<br />
<br />
<br />
<br />
[[Category:Project]]</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=400Workshop/BGP-configs2016-03-13T22:20:05Z<p>Hackman: </p>
<hr />
<div>= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors configuration ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
allow all prefixes except the one I'm advertising<br />
ip prefix-list in_filter seq 1 deny 185.117.82.112/29<br />
ip prefix-list in_filter seq 10 permit any<br />
Export only my directly connected prefix<br />
ip prefix-list out_filter seq 1 permit 185.117.82.112/29<br />
ip prefix-list out_filter seq 10 deny any<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash<br />
<br />
= iproute2 commands =<br />
* Add a VLAN 111 to eth0<br />
# ip link add link eth0 name eth0.111 type vlan id 111 <br />
* Bring a device UP<br />
# ip link set up dev eth0<br />
* Bring a device DOWN<br />
# ip link set down dev eth0<br />
* Check the route to a destination<br />
# ip route get 8.8.8.8<br />
* Create a new virtual ethernet pair. Useful for communication with containers.<br />
# ip link add veth0 type veth peer name veth1<br />
* Create a new network namespace called '''bgp'''<br />
# ip netns add bgp<br />
* Move device '''veth1''' into network namespace '''bgp'''<br />
# ip link set veth1 netns bgp<br />
* Execute a command inside netns '''bgp'''. Its easiest if the command is a shell<br />
# ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=399Workshop/BGP2016-03-13T22:12:26Z<p>Hackman: /* 13.03.2016 */</p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /62 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство (RPi, лаптоп)<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
# Петър Христов - laptop<br />
<br />
= Configuration = <br />
* [[Workshop/BGP-configs#Bird|Bird related settings]]<br />
* [[Workshop/BGP-configs#Quagga|Quagga related settings]]<br />
* [[Workshop/BGP-configs#Client_container|Client container]]<br />
* [[Workshop/BGP-configs#iproute2|iproute2 commands]]<br />
<br />
<br />
<br />
<br />
[[Category:Project]]</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=398Workshop/BGP-configs2016-03-13T22:09:09Z<p>Hackman: </p>
<hr />
<div>= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors configuration ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
allow all prefixes except the one I'm advertising<br />
ip prefix-list in_filter seq 1 deny 185.117.82.112/29<br />
ip prefix-list in_filter seq 10 permit any<br />
Export only my directly connected prefix<br />
ip prefix-list out_filter seq 1 permit 185.117.82.112/29<br />
ip prefix-list out_filter seq 10 deny any<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=397Workshop/BGP-configs2016-03-13T22:08:40Z<p>Hackman: /* basic configuration */</p>
<hr />
<div>= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
allow all prefixes except the one I'm advertising<br />
ip prefix-list in_filter seq 1 deny 185.117.82.112/29<br />
ip prefix-list in_filter seq 10 permit any<br />
Export only my directly connected prefix<br />
ip prefix-list out_filter seq 1 permit 185.117.82.112/29<br />
ip prefix-list out_filter seq 10 deny any<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=396Workshop/BGP-configs2016-03-13T22:08:21Z<p>Hackman: /* prefix lists */</p>
<hr />
<div>= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
allow all prefixes except the one I'm advertising<br />
ip prefix-list in_filter seq 1 deny 185.117.82.112/29<br />
ip prefix-list in_filter seq 10 permit any<br />
Export only my directly connected prefix<br />
ip prefix-list out_filter seq 1 permit 185.117.82.112/29<br />
ip prefix-list out_filter seq 10 deny any<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=395Workshop/BGP-configs2016-03-13T22:06:00Z<p>Hackman: /* neighbors */</p>
<hr />
<div>= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors ==<br />
neighbor 10.125.11.1 remote-as 65535<br />
neighbor 10.125.11.1 description "Upstream 1 (cassie) via eth0.111"<br />
neighbor 10.125.11.1 update-source 10.125.11.2<br />
neighbor 10.125.11.1 soft-reconfiguration inbound<br />
neighbor 10.125.11.1 prefix-list in_filter in<br />
neighbor 10.125.11.1 prefix-list out_filter out<br />
<br />
neighbor 10.126.11.1 remote-as 59851<br />
neighbor 10.126.11.1 description "Upstream 2 (beta) via eth0.211"<br />
neighbor 10.126.11.1 update-source 10.125.11.2<br />
neighbor 10.126.11.1 soft-reconfiguration inbound<br />
neighbor 10.126.11.1 prefix-list in_filter in<br />
neighbor 10.126.11.1 prefix-list out_filter out<br />
<br />
== prefix lists ==<br />
<br />
<br />
<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP-configs&diff=394Workshop/BGP-configs2016-03-13T22:02:57Z<p>Hackman: Created page with "= Bird = == basic configuration == Enable the direct protocol. This will make Bird to learn all of your directly attached routes. protocol direct { export all; } In..."</p>
<hr />
<div>= Bird =<br />
== basic configuration ==<br />
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.<br />
protocol direct {<br />
export all;<br />
}<br />
In the kernel protocol, uncomment the following line:<br />
# learn; # Learn all alien routes from the kernel<br />
== filter configuration ==<br />
filter in_filter {<br />
# do not accept routes for our directly connected network<br />
if ( net = 185.117.82.112/29 ) then reject;<br />
accept;<br />
}<br />
filter out_filter {<br />
# do not export anything that is not our directly connected network<br />
if ( net = 185.117.82.112/29 ) then accept;<br />
reject;<br />
}<br />
== bgp template ==<br />
template bgp PEERS {<br />
debug { states, events };<br />
local as myas;<br />
startup hold time 0;<br />
import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered<br />
import filter in_filter;<br />
export filter out_filter;<br />
gateway direct;<br />
}<br />
== neighbor configuration ==<br />
protocol bgp bgp_up1 from lab {<br />
description "Upstream 1 (cassie) via eth0.111";<br />
neighbor 10.125.11.1 as 65535;<br />
source address 10.125.11.2;<br />
}<br />
protocol bgp bgp_up2 from lab {<br />
description "Upstream 2 (beta) via eth0.211";<br />
neighbor 10.126.11.1 as 59851;<br />
source address 10.126.11.2;<br />
}<br />
<br />
== Commands cheat sheet ==<br />
show protocols - list all configured protocols<br />
show protocol bgp_up2 - get the status information for protocol bgp_up2<br />
show route export bgp_up2 - list all exported networks to peer bgp_up2<br />
show route for 185.117.82.104 - get the routes for 185.117.82.104<br />
show route filtered - list all prefixes that are filtered <br />
show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2<br />
<br />
= Quagga =<br />
== basic configuration ==<br />
router bgp 65011<br />
bgp router-id 185.117.82.113<br />
bgp log-neighbor-changes<br />
bgp graceful-restart<br />
network 185.117.82.112/29<br />
<br />
== neighbors ==<br />
== prefix lists ==<br />
<br />
<br />
<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=393Workshop/BGP2016-03-13T21:52:41Z<p>Hackman: /* Client container */</p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /62 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство (RPi, лаптоп)<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
# Петър Христов - laptop<br />
<br />
<br />
<br />
<br />
<br />
[[Category:Project]]</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=392Workshop/BGP2016-03-13T10:45:45Z<p>Hackman: </p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /62 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство (RPi, лаптоп)<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
# Петър Христов - laptop<br />
<br />
= Client container = <br />
<br />
sysctl net.ipv4.ip_forward=1<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash<br />
<br />
<br />
<br />
[[Category:Project]]</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=391Workshop/BGP2016-03-13T10:44:36Z<p>Hackman: </p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /62 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство (RPi, лаптоп)<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
# Петър Христов - laptop<br />
<br />
= Client container = <br />
<br />
ip netns add bgp<br />
ip link add veth0 type veth peer name veth1<br />
ip link set veth1 netns bgp<br />
ip netns exec bgp /bin/bash<br />
<br />
<br />
<br />
[[Category:Project]]</div>Hackmanhttps://wiki.initlab.org/index.php?title=Workshop/BGP&diff=388Workshop/BGP2016-03-07T13:41:27Z<p>Hackman: /* 13.03.2016 */</p>
<hr />
<div>''' BGP Workshop '''<br />
<br />
= Цел =<br />
<br />
Целта на workshop-а е хората да се научат да подкарват BGP и основни неща около него. Ще научим:<br />
<br />
* Как се пуска bgp с upstream, peer и exchange;<br />
* Как и защо се филтрират пътища<br />
* Как правилно да си анонсираме собствените мрежи към света.<br />
<br />
Може да свалите да видите [https://vasil.ludost.net/initlab/bgp-workshop.pdf примерната схема на мрежата].<br />
<br />
= Записване =<br />
<br />
Пишете на vasil(at)ludost(dot)net или на Мариян Маринов. Трябва да сте записани в тази страница, за да знаем, че ще участвате и с какво.<br />
<br />
= Setup =<br />
<br />
== Каквo ви трябва ==<br />
<br />
Всеки участник трябва да има едно устройство, което да има ethernet порт, да поддържа vlan-и и да може да пусне BGP. Вършат работа laptop-и, raspberry PI-та и тихи сървъри.<br />
<br />
== Наличен хардуер ==<br />
<br />
Също така организаторите могат да осигурят за желаещите:<br />
* 2 бр. cisco 2600<br />
* 2 бр. pvx (малки сървъри с 512mb памет)<br />
* няколко flash-ки с linux с bird/quagga<br />
<br />
== Какво даваме ==<br />
<br />
На всеки участник се дава:<br />
* автономна система<br />
* /29 IPv4 адреси<br />
* /62 ipv6 адреси<br />
* един ethernbet порт с няколко VLAN-а на него:<br />
** vlan-и uplink1, uplink2<br />
** vlan-и peer1, peer2<br />
** vlan LIX (lab internet exchange)<br />
<br />
== Типове peer-и ==<br />
<br />
Всеки участник ще трябва да настрои:<br />
* 2 сесии с upstream доставчици<br />
* 2 сесии с peer-и (съседи)<br />
* 1 сесия с internet exchange<br />
<br />
= Типове peer-и =<br />
<br />
== Upstream ==<br />
<br />
Това е интернет доставчик, който ви дава свързаност (транзит) към целия internet. Към него се анонсират вашите собствени мрежи. Oт него се приема всичко, на по-нисък приоритет от останалите, без вашите собствени мрежи.<br />
<br />
== Peer ==<br />
<br />
Това е ваш съсед, с който имате пряка връзка и обменяте трафик за вашите мрежи, по желание и трафик до други ваши peer-и (или ако имате такова споразумение, транзит до internet в специфични случаи). По принцип трябва да приемате само пътищата, за които сте се разбрали, и те трябва да имат най-висок приоритет (peer връзките се водят най-евтини).<br />
<br />
== Exchange ==<br />
<br />
Exchange може да се обясни най-просто като VLAN, в който се виждат всички участници, и един route server, през който обменят пътища. Към exchange се announce-ват само собствените мрежи, а приоритетът на получените пътища е м/у този на peer-ите и този на upstream-ите.<br />
<br />
= Протичане =<br />
<br />
* Идване<br />
* Setup на крайните станции<br />
* Малко обяснения<br />
* config-ване докато ни писне<br />
<br />
= Информационен лист =<br />
<br />
Всеки ще получи лист на който ще са описани:<br />
* неговите prefix-и<br />
* неговата AS<br />
* информация за неговите PEERS<br />
* peering<br />
* upstream-и<br />
* LIX<br />
<br />
= Участници =<br />
<br />
== 13.03.2016 ==<br />
<br />
# Недко - ще си носи olinuxino<br />
# Slackware - ще си носи устройство<br />
# dragast - един стар dell, който виси в лаба<br />
# eniac_petrov - ще си носи лаптоп<br />
# Атанас Владимиров - лаптоп с openbsd/openbgpd<br />
# kiliev - лаптоп с freebsd/openbgpd<br />
# Mircho - лаптоп с JunOS VM-и<br />
# zeridon - лаптоп с arch linux<br />
# Васил Илиев - собствено устройство<br />
# Димитър Янакиев - лаптоп<br />
# Иван Карпов - лаптоп<br />
# Драго - ще си носи устройство<br />
# Painkiller - лаптоп<br />
# Иван Бекяров - лаптоп<br />
# Ilian Kostandiov - Fortigate <br />
# Presian Yankulov - Laptop x64 bit, Raspberry Pi2<br />
# Александър Хайредински - Laptop x64 bit<br />
<br />
[[Category:Project]]</div>Hackman