23
Implementação na rede da ex-UTL Jorge Matias Israel Lugo Ligação à RCTS com peering BGP sobre routers baseados em servidores Linux 11/02/2015 Jornadas FCCN 2015 1

JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Embed Size (px)

Citation preview

Page 1: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Implementação na rede da ex-UTL

Jorge Matias Israel Lugo

Ligação à RCTS com peering BGP sobre routers baseados em servidores Linux

11/02/2015 Jornadas FCCN 2015 1

Page 2: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Sumário

•  Motivação •  Computador vs router em hardware •  Implementação na rede da ex-UTL

–  Ligação à RCTS (antes e depois) •  Router Linux a 10 Gigabit •  Peering BGP com software livre (Quagga)

11/02/2015 Jornadas FCCN 2015 2

Page 3: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Motivação •  Em 2003…

–  Router Cisco 7204 (com 22.5Mbps ocupava 70% de CPU) •  Má performance em IPv4 •  Não suportava IPv6

–  Instalaram-se dois HP DL360G3 em 2013 com 2 portas Gigabit •  Projectos IPv6 a arrancarem no IST e ligação IPv6 com RCTS em 18-Jun-2003 •  Experiência anterior com routers Linux

–  Router de fronteira do IST –  Rede Wireless do IST –  Rede de serviços administrativos do IST

•  Falta de performance para o preço pago •  Implementação de firewall com ACLs muito limitada

11/02/2015 Jornadas FCCN 2015 3

Page 4: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Computador vs Router em hardware

Vantagens (1/2) •  Custo de aquisição e manutenção mais baixo •  Flexibilidade

•  Túneis de toda a espécie e feitio •  HTTP Proxy transparante

•  Funcionalidades de Firewall •  Bugs de sistema operativo diagnosticados e corrigidos mais depressa 11/02/2015 Jornadas FCCN 2015 4

Page 5: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Computador vs Router em hardware

Vantagens (2/2) •  Software de Routing actualizado mais depressa •  Diversidade de software para Routing (Quagga, OpenBGPd, BIRD,

XoRP, Vyatta) •  …e ferramentas de análise de rede (tcpdump, tshark, ifstat, iftop,

nettop) •  Também se pode usar OpenFlow, sFlow, etc… 11/02/2015 Jornadas FCCN 2015 5

Page 6: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Computador vs Router em hardware

Desvantagens •  Tempo de instalação e configuração mais demorado •  Requer escolha criteriosa dos componentes •  Necessária optimização para obter performance máxima do hardware •  Resistência a DDoS •  Não é uma solução chave na mão

11/02/2015 Jornadas FCCN 2015 6

Page 7: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Implementação na rede da ex-UTL

Hardware: •  2 computadores HP Proliant DL360G6

–  2 CPUs 64bit 4-core @ 2.66GHz –  12GB RAM –  2 portas Ethernet 10G SFP+

•  SolarFlare SFN5162F (Chip SFC9020)

11/02/2015 Jornadas FCCN 2015 7

Page 8: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Implementação na rede da ex-UTL

Software: •  Linux Debian/Wheezy

–  Linux Kernel v3.16 a 64bit (amd64 / x86_64) •  Software para Routing

–  KeepAlived – VRRP –  Quagga – MP-BGP –  XoRP – PIMSMv2 (Routing Multicast) –  Firewall – iptables / ip6tables

11/02/2015 Jornadas FCCN 2015 8

Page 9: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Implementação na rede da ex-UTL

Diagrama de Arquitectura (anterior)

11/02/2015 Jornadas FCCN 2015 9

Page 10: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Implementação na rede da ex-UTL

Arquitectura de rede (anterior) •  Comunicação entre routers da RCTS e da ex-UTL baseada em VRRP

–  Simples de implementar –  Failover muito rápido (3 ~ 6 secs) –  Mas não sabe lidar com:

•  Split brain •  NICs que deixam de receber. Não é visível no VRRP

–  Não permite encaminhar tráfego por múltiplos routers de fronteira em simultâneo –  Não tira partido de múltiplos links para optimização de tráfego –  Continua a requerer rotas estáticas

11/02/2015 Jornadas FCCN 2015 10

Page 11: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Implementação na rede da ex-UTL

Diagrama de Arquitectura (actual)

11/02/2015 Jornadas FCCN 2015 11

Page 12: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Implementação na rede da ex-UTL

Arquitectura de rede (actual) Comunicação entre routers da RCTS e da ex-UTL baseada em BGP

•  Tolerante a mais tipos de falhas dependendo da topologia •  Split-Brain na rede da ex-UTL ou da FCCN deixaram de ser um problema para estas rotas •  Permite fazer Traffic Engeneering tirando partido de múltiplos links para optimização de tráfego

No entanto,… •  Obrigou a alguma formação sobre o protocolo BGP •  Failover é mais lento (20 secs ~ 1 min)

11/02/2015 Jornadas FCCN 2015 12

Page 13: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Router Linux a 10 Gigabit

Aspectos de optimização •  1 CPU core incapaz de fazer 10Gpbs •  São necessários vários “cores” •  Não basta qualquer NIC de 10Gb e esperar milagres

–  Receive Side Scaling –  SMP IRQ to CPU affinity –  Latência interna da NIC e qualidade do driver

•  Routing Cache vs No Routing Cache –  Routing Cache “poisening” attack –  Linux 3.6 e posteriores

•  Firewall “statefull” – Problemas de coerência de cache entre CPU “cores” ou CPUs -> muito menos performance

11/02/2015 Jornadas FCCN 2015 13

Page 14: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Peering BGP com software livre

Software Quagga •  Software livre •  Ficheiros de configuração de texto •  Linha de comandos:

–  local (vtysh) –  Remota (1 porto tcp por cada módulo de routing)

•  Síntaxe Cisco “like” •  Suporta BGP, OSPF, RIP e IS-IS •  Suporta AS Numbers de 32 bits •  Suporta IPv6 através de OSPFv3, MP-BGP e RIPng •  Suporta praticamente todas as funcionalidades de operação de traffic engeneering disponíveis em routers

Cisco.

11/02/2015 Jornadas FCCN 2015 14

Page 15: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Peering BGP com software livre

Quagga: Configuração

11/02/2015 Jornadas FCCN 2015 15

router bgp 65107 bgp router-id 193.136.134.10 bgp log-neighbor-changes bgp graceful-restart aggregate-address 193.136.96.0/21 aggregate-address 193.136.128.0/20 ... aggregate-address 194.210.234.0/24 redistribute kernel redistribute connected redistribute static route-map rm-static-to-bgp timers bgp 6 20

Page 16: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Peering BGP com software livre

Quagga: Configuração

11/02/2015 Jornadas FCCN 2015 16

router bgp 65107 ... neighbor FCCN peer-group neighbor FCCN remote-as 1930 neighbor FCCN password TalvezSejaEsta neighbor FCCN capability dynamic neighbor FCCN remove-private-AS neighbor FCCN soft-reconfiguration inbound neighbor FCCN prefix-list pl-fccn-in in neighbor FCCN prefix-list pl-fccn-out out neighbor FCCN route-map rm-fccn-out out neighbor 193.136.1.93 peer-group FCCN neighbor 193.136.1.93 description "FCCN1"

Page 17: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Peering BGP com software livre

Quagga: Configuração

11/02/2015 Jornadas FCCN 2015 17

router bgp 65107 ... neighbor UTL peer-group neighbor UTL remote-as 65107 neighbor UTL capability dynamic neighbor UTL next-hop-self neighbor UTL soft-reconfiguration inbound neighbor UTL allowas-in neighbor UTL route-map rm-utl-in in ... neighbor 193.136.134.11 peer-group UTL neighbor 193.136.134.11 description "UTL2"

Page 18: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Peering BGP com software livre

Quagga: Configuração

11/02/2015 Jornadas FCCN 2015 18

router bgp 65107 ... ! address-family ipv6 aggregate-address 2001:690:2100::/48 aggregate-address 2001:690:2138::/48 redistribute kernel redistribute connected redistribute static route-map rm-static-to-bgp exit-address-family !

Page 19: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Peering BGP com software livre

Quagga: Configuração

11/02/2015 Jornadas FCCN 2015 19

router bgp 65107 ... no neighbor 2001:690:810:a::1 activate ! address-family ipv6 ... neighbor FCCN activate neighbor FCCN remove-private-AS neighbor FCCN soft-reconfiguration inbound neighbor FCCN prefix-list pl-fccn-in in neighbor FCCN prefix-list pl-fccn-out out neighbor 2001:690:810:a::1 peer-group FCCN ... exit-address-family !

Page 20: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Peering BGP com software livre

Quagga: Configuração

11/02/2015 Jornadas FCCN 2015 20

router bgp 65107 ... no neighbor 2001:690:2100:ffff::11 activate ! address-family ipv6 neighbor UTL activate neighbor UTL next-hop-self neighbor UTL soft-reconfiguration inbound neighbor UTL route-map rm-utl-in in neighbor 2001:690:2100:ffff::11 peer-group UTL exit-address-family !

Page 21: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Peering BGP com software livre

Quagga: Configuração

11/02/2015 Jornadas FCCN 2015 21

ip prefix-list pl-fccn-in description IPv4 prefixes allowed from FCCN ip prefix-list pl-fccn-in seq 10 permit 0.0.0.0/0 ip prefix-list pl-fccn-out description prefixes announced to FCCN ip prefix-list pl-fccn-out seq 10 permit 193.136.96.0/21 ... ip prefix-list pl-fccn-out seq 90 permit 194.210.156.0/22 ! ipv6 prefix-list pl-fccn-in description IPv6 prefixes allowed from FCCN ipv6 prefix-list pl-fccn-in seq 10 permit ::/0 ipv6 prefix-list pl-fccn-out description IPv6 prefixes announced to FCCN ipv6 prefix-list pl-fccn-out seq 10 permit 2001:690:2100::/48 ipv6 prefix-list pl-fccn-out seq 20 permit 2001:690:2138::/48 !

Page 22: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Referências

•  Choosing a 10G NIC for x86 server https://wpneteng.wordpress.com/2013/12/03/on-choosing-a-10g-nic-for-intel-servers/

•  Interrupts and IRQ tunning https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-cpu-irq.html

•  Removing The Linux Routing Cache http://vger.kernel.org/~davem/columbia2012.pdf

•  Quagga Routing Suite http://www.nongnu.org/quagga/

11/02/2015 Jornadas FCCN 2015 22

Page 23: JornadasFCCN2015-LigacaoRCTScomPeeringBGPv3

Questões...

11/02/2015 Jornadas FCCN 2015 23