05 Rote Amen To Avancado Linux
Transcript of 05 Rote Amen To Avancado Linux
-
8/8/2019 05 Rote Amen To Avancado Linux
1/30
Hlio Loureiro
Roteamento avanadoe controle de banda
em Linux
17 REUNIO GTER Roteamento avanado
Controle de banda
-
8/8/2019 05 Rote Amen To Avancado Linux
2/30
17 REUNIO GTER Roteamento avanado
Controle de bandaSumrio
Roteamento avanado Sintaxe Exemplo
Controle de banda Sintaxe Exemplo
NOTA: os exemplos so baseados na distribuio Debianmas funcionam similarmente em todas as demais.
-
8/8/2019 05 Rote Amen To Avancado Linux
3/30
17 REUNIO GTER Roteamento avanado
Controle de bandaCenrio tpico
Internet
Router
Usurios
(NAT) Servidores
ADSL
Firewall
-
8/8/2019 05 Rote Amen To Avancado Linux
4/30
17 REUNIO GTER Roteamento avanado
Controle de bandaBusca de informaes
Linux - iptables/ipchains/iproute2 - 8.030 linksFreeBSD - ipfw/ipfw2/ipfilter - 2.290 links
OpenBSD - ipfilter/pf - 1.430 linksSolaris - ipfilter - 2.048 linksNetBSD - ipfilter - 1.320 links
SCO (Unixware) - ? - 1.440 linksWindows - ? - 5.200 links
"policy routing"
O termo policy routing utilizando em roteadores,
enquanto que source routing em Linux/BSD.
-
8/8/2019 05 Rote Amen To Avancado Linux
5/30
17 REUNIO GTER Roteamento avanado
Controle de bandaSource routing Linux/BSD
iptables - sintaxe muito flexvel (complexa) iptables - difcil padronizao para criao script iproute2 - fcil configurao para roteamento iproute2 - estvel!
pf - sintaxe simples (BSD)pf - roteamento atravs delepf - recm lanado na verso 3.0
Linux
OpenBSD
-
8/8/2019 05 Rote Amen To Avancado Linux
6/30
-
8/8/2019 05 Rote Amen To Avancado Linux
7/30
17 REUNIO GTER Roteamento avanado
Controle de bandaPreparando o kernel
[*] Prompt for development and/or incomplete
code/drivers---[*] TCP/IP Networking[*] Networking packet filtering (replaces ipchains)[*] Networking packet filtering debugging[*] Socket Filtering---[*] IP: advanced router[*] IP: policy routing[*] IP: use netfilter MARK value as routing key[*] IP: fast network address translation
[*] IP: equal cost multipath[*] IP: use TOS value as routing key[*] IP: verbose route monitoring[*] IP: large routing tables[*] IP: GRE tunnels over IP
J disponvel no kernel2.4.20 ou superior
-
8/8/2019 05 Rote Amen To Avancado Linux
8/30
17 REUNIO GTER Roteamento avanado
Controle de bandaiproute2
Soluo desenvolvida para o kernel 2.4.Substitui os comandos arp , ifconfig e route .Sintaxe semelhante cli de roteadores.Permite criar regras de roteamento.No interage com os comandos legados.Inclui o programa de controle de banda ( tc ).
Usa o sistema de filtros e filas.
apt-get install iproute
-
8/8/2019 05 Rote Amen To Avancado Linux
9/30
17 REUNIO GTER Roteamento avanado
Controle de bandaip link
router:~# ip link show1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:04:75:7a:73:63 brd ff:ff:ff:ff:ff:ff3: eth1: mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:04:75:7a:73:8e brd ff:ff:ff:ff:ff:ff4: eth2: mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:04:75:7a:73:31 brd ff:ff:ff:ff:ff:ff5: eth3: mtu 1500 qdisc pfifo_fast qlen 100
Usado para verificar e/ou configurar o endereo fsico (MAC) dasinterfaces de rede. Aceita as opes show e set .
-
8/8/2019 05 Rote Amen To Avancado Linux
10/30
17 REUNIO GTER Roteamento avanado
Controle de banda
17 REUNIO GTER Roteamento avanado
Controle de bandaip addr
router~# ip addr list1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo2: eth0: mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:10:5a:9b:1e:fd brd ff:ff:ff:ff:ff:ffinet 192.168.254.200/24 brd 192.168.254.255 scope global eth0
router~# ip addr add 192.168.253.200/24 dev eth0router~# ip addr list dev eth02: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:10:5a:9b:1e:fd brd ff:ff:ff:ff:ff:ffinet 192.168.254.200/24 brd 192.168.254.255 scope global eth0inet 192.168.253.200/24 scope global eth0
router~# ifconfig eth0eth0 Link encap:Ethernet HWaddr 00:10:5A:9B:1E:FD
inet addr:192.168.254.200 Bcast:192.168.254.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Usado para interagir com as interfaces de rede. Aceita as opes list , add e del entre outras.
-
8/8/2019 05 Rote Amen To Avancado Linux
11/30
17 REUNIO GTER
-
8/8/2019 05 Rote Amen To Avancado Linux
12/30
17 REUNIO GTER Roteamento avanado
Controle de banda /etc/iproute2/rt_tables
Arquivo onde as tabelas (de regras) de roteamento so definidas.Cada tabela definida por seu nmero identificador e nome.A ordenao vai de 0 255 (256 valores = 8 bits) e a faixa de 253 255 reservada s tabelas do sistema (local, main e default).Uma entrada na arquivo mas sem regra definida no apresentada no comando "ip rule list ". Para forar okernel a ler a nova entrada, o comando "ip route flushcache " necessrio.
router ~# echo "200 dmznet" >> /etc/iproute2/rt_tablesrouter ~# cat /etc/iproute2/rt_tables# reserved
255 local254 main253 default0 unspec# local1 inr.ruhep200 dmznet
17 REUNIO GTER
-
8/8/2019 05 Rote Amen To Avancado Linux
13/30
17 REUNIO GTER Roteamento avanado
Controle de bandaip rule
Usado para criar regras especficas de roteamento.Existem algumas tabelas iniciais que no podem ser removidas:local (loopback), main e default . Cria-se uma ou mais tabelas para oroteamento desejado. No caso apresentado, somente a tabela
dmznet foi adicionada, deixando todos os demais dentro databela main . Aceita as opes list , add e del .
router:~# ip rule list0: from all lookup local32762: from 10.0.0.11 lookup dmznet32763: from 192.168.0.0/24 to 200.1.2.0/26 lookup dmznet
32764: from 200.100.10.0/26 lookup dmznet32765: from 192.168.0.0/24 lookup dmznet32766: from all lookup main
32767: from all lookup default
17 REUNIO GTER
-
8/8/2019 05 Rote Amen To Avancado Linux
14/30
17 REUNIO GTER Roteamento avanado
Controle de bandaSituao inicial (uma sada)
Internet
Router
Usurios(NAT)
Servidores
17 REUNIO GTER
-
8/8/2019 05 Rote Amen To Avancado Linux
15/30
17 REUNIO GTER Roteamento avanado
Controle de bandaSituao desejada
Router
Internet
Usurios(NAT)
Servidores
192.168.0.0/24
200.100.10.1
200.1.2.1
10.0.0.0/24
-
8/8/2019 05 Rote Amen To Avancado Linux
16/30
17 REUNIO GTERAl d
-
8/8/2019 05 Rote Amen To Avancado Linux
17/30
17 REUNIO GTER Roteamento avanado
Controle de banda Alterando rotas
#! /bin/shcase $1 in
start|adsl)echo "Roteando Intranet pelo link ADSL"ip route del default via 200.1.2.1 table dmznetip route add default via 200.100.10.1 table dmznetecho "Iniciando regras de firewall"/etc/init.d/firewall start
;;stop|frame-relay)
echo "Roteando Intranet pelo link FR"ip route del default via 200.100.10.1 table dmznetip route add default via 200.1.2.1 table dmznetecho "Desligando regras de firewall"/etc/init.d/firewall stop;;
restart)$0 stop$0 start;;
*)
echo "Use: $0 {start|adsl|stop|frame-relay|restart}"
-
8/8/2019 05 Rote Amen To Avancado Linux
18/30
17 REUNIO GTERAt ib i d t
-
8/8/2019 05 Rote Amen To Avancado Linux
19/30
17 REUNIO GTER Roteamento avanado
Controle de banda Atribuindo peso s rotas
ip route add default scope global nexthop \via 200.100.10.1 dev eth0 weight 1 \nexthop via 200.1.2.1 dev eth1 weight 1
17 REUNIO GTERT l GRE
-
8/8/2019 05 Rote Amen To Avancado Linux
20/30
17 REUNIO GTER Roteamento avanado
Controle de bandaTnel GRE
Internet
192.168.0.0/24
200.100.10.20
200.1.2.1
192.168.100.0/24
200.1.2.20
17 REUNIO GTERT l GRE
-
8/8/2019 05 Rote Amen To Avancado Linux
21/30
17 REUNIO GTER Roteamento avanado
Controle de bandaTnel GRE
ip tunnel add netgre mode gre remote 200.100.10.20 \local 200.1.2.20 ttl 255
ip link set netgre upip addr add 10.0.1.1 dev netgreip route add 192.168.100.0/24 dev netgre
17 REUNIO GTER
-
8/8/2019 05 Rote Amen To Avancado Linux
22/30
Roteamento avanadoControle de banda
Controle de banda
17 REUNIO GTER Controle de banda
-
8/8/2019 05 Rote Amen To Avancado Linux
23/30
Roteamento avanadoControle de banda
Controle de banda
Dois tipos bsicos: classless e classfull.Ambos fazem re-priorizao de pacotes.Permitem configurao de parmetros como:latency, burst, rate, peakrate, etc .
Em geral funcionam somente na interface egressDo sistema (existe uma classe especfica para aIngress ).Pode ser utilizado para dar maior prioridade por host ou por servio ou ambos.
17 REUNIO GTER Classless
-
8/8/2019 05 Rote Amen To Avancado Linux
24/30
Roteamento avanadoControle de banda
Classless
Faz controle sobre interface inteira.No permite sub-divises de classe.Configura o comportamento da fila da interface.Ex: pfifo_fast, TBF (Token Bucket Filter) eSQF (Stochastic Fairness Queueing).
tc qdisc add dev ppp0 root tbf rate 220kbit
17 REUNIO GTER Classfull
-
8/8/2019 05 Rote Amen To Avancado Linux
25/30
Roteamento avanadoControle de banda
Classfull
Utiliza estrutura de rvore.Permite criao de tipos de trfego com limitaopor classe (classless) ou por filho.Permite garantia de banda mnima.
Permite compartilhamento de banda.1:
1:1
1:10 1:20
10: 20:
10:1 10:2
17 REUNIO GTER Preparando o kernel
-
8/8/2019 05 Rote Amen To Avancado Linux
26/30
Roteamento avanadoControle de banda
Preparando o kernel
Networking options --->
QoS and/or fair queueing --->[*] QoS and/or fair queueing HTB packet scheduler CBQ packet scheduler CSZ packet scheduler The simplest PRIO pseudoscheduler RED queue TEQL queue TBF queue GRED queue Diffserv field marker
Ingress Qdisc[*] QoS support[*] Rate estimator[*] Packet classifier API
TC index classifier Routing table based classifier Firewall based classifier U32 classifier
Special RSVP classifier[*] Traffic policing (needed forin/egress)
17 REUNIO GTER HTB3
-
8/8/2019 05 Rote Amen To Avancado Linux
27/30
Roteamento avanadoControle de banda
HTB3
Hierarchical Token Bucket.Controle preciso (diferente do CBQ).Comportamento semelhante ao ALTQ (BSDs).Geralmente utiliza outra disciplina de filas dentro
de suas classes filhos.
1:
1:10
1:20
1:30
rate
burst
burst
ceil
17 REUNIO GTER dExemplo
-
8/8/2019 05 Rote Amen To Avancado Linux
28/30
Roteamento avanadoControle de banda
Exemplo
tc qdisc add dev eth0 root handle 1: htb default 1000tc class add dev eth0 parent 1: classid 1:1 htb \
rate 256 kbit ceil 256 kbittc class add dev eth0 parent 1:1 classid 1:10 htb \
rate 56 kbit ceil 128 kbit burst 6ktc class add dev eth0 parent 1:1 classid 1:1000 htb \
rate 32 kbit ceil 56 kbit burst 6ktc qdisc add dev eth0 parent 1:10 handle 10: sfq pertub 10tc qdisc add dev eth0 parent 1:1000 handle 1000: sfq \
pertub 10tc filter add dev eth0 parent 1: protocol ip prio 1 \
u32 match ip src $IP flowid 1:1tc filter add dev eth0 parent ffff: protocol ip prio 50 \
u32 match ip src $IP police rate 32 kbit burst 6k \drop flowid :1
17 REUNIO GTER R dBibliografia
-
8/8/2019 05 Rote Amen To Avancado Linux
29/30
Roteamento avanadoControle de banda
Bibliografia
Roteamento avanado com o Linux; Allan Edgard SilvaFreitas ; News Generation; Boletim bimestralsobre tecnologia de redes; 4 de fevereiro de 2002 | volume 6,nmero 1;http://www.rnp.br/newsgen/0201/roteamento_linux.html
Linux Advanced Routing & Traffic Control HOWTO;Bert Hubert e outros; Netherlabs BV ;http://lartc.org/howto/index.html
IP Command Reference ; Alexey N. Kuznetsov;/usr/share/doc/iproute-2.4.7/ip-cref.ps
-
8/8/2019 05 Rote Amen To Avancado Linux
30/30