Re: Problemas com SNMP sobre OSPF
Citação:
Postado originalmente por
loxxxa
Código :
/routing ospf instance
set [ find default=yes ] distribute-default=always-as-type-1 \
redistribute-connected=as-type-1 redistribute-static=as-type-1 router-id=\
1.1.1.2
/routing ospf network
add area=backbone network=10.254.254.0/24
add area=backbone network=10.254.253.0/24
Oi Diego,
Há algumas inconsistências no OSPF, mas não justificam o problema do SNMP. Muito estranho tudo isso :(
Quando me refiro às inconsistências, são a fatores como:
1) Em /routing ospf network, seu endereço de loopback não está anunciado (como passivo)[1].
2) Em /routing ospf network, seu endereço de link não está anunciado (como passivo)[1].
3) A rota padrão está sendo propagada. Essa funcionalidade deve só ser feita na RB450 que está conectada à operadora (link).
4) As rotas conectadas estão sendo anunciadas. Essa não é uma boa prática[2].
Apesar das referências serem da Cisco, o protocolo OSPF é aberto, regido pelo RFC2328[3], não havendo diferença entre as funcionalidades básicas da implementação MikroTik e Cisco, salvo as "firulas" proprietárias, se tiver. E claro, a documentação da Cisco é violentamente mais completa que os simplórios wikis da MikroTik.
Mas ainda assim, pelo fato de funcionar SSH e FTP, por ambos enlaces, o SNMP deveria também ter funcionado :(
Pergunto: Se fizer um Torch, quando você conecta em SSH e FTP, a origem da conexão (source address) também é igual à origem do SNMP, independente de qual enlace está ativo?
[1] http://www.cisco.com/en/US/docs/ios/...de/defint.html
[2] https://supportforums.cisco.com/thread/153064
[3] http://www.ietf.org/rfc/rfc2328.txt
Saudações,
Trober
-
-
-
-
-
Re: Problemas com SNMP sobre OSPF
As configs que te passei vieram da RB que está ligada a operadora + uma vpn de um cliente que fica na mesma localidade aonde pego meu link (então fiz um acordo com ele, e deixo ele utilizar a estrutura pra fazer uma vpn)
Bom... vamos para as inconsistências primeiro:
1) como deveria ficar então a interface loopback (add interface=loopback passive=yes) (sem cost, sem network-type?) e em /routing ospf network, devo acrescentar uma area especifica pra loopback?
2) mesma coisa com a interface do link? (add interface=remote0 passive=yes) e uma area especifica pro link?
3) A rota padrão que está sendo propagada é da RB que está conectada à operadora (isso mesmo... a operadora utiliza um ip não válido para rotear minhas faixas de ips reais = 172.16.8.1), e está sendo redistribuída na outra RB.
4) quais rotas que estão sendo anunciadas que não deveriam ser (lembre-se que esta é a RB que está ligada na operadora)?
Agora o torch: o src-address é sempre o mesmo, tanto no ssh, quanto no snmp, estando os 2 enlaces ativos ou apenas 1 (qualquer um deles)....
Você prefere que eu anexe as configs de cada uma RB para você ver como estou fazendo meu ospf?
Re: Problemas com SNMP sobre OSPF
Citação:
Postado originalmente por
loxxxa
1) como deveria ficar então a interface loopback (add interface=loopback passive=yes) (sem cost, sem network-type?) e em /routing ospf network, devo acrescentar uma area especifica pra loopback?
Sim. Tem um exemplo do Greg Sowell[1] que descreve o uso de loopback, em modo passivo. O parâmetro network-type não precisa ser definido, uma vez que em modo passivo, a interface não "conversará" OSPF.
Citação:
Postado originalmente por
loxxxa
2) mesma coisa com a interface do link? (add interface=remote0 passive=yes) e uma area especifica pro link?
Sim. Você declara a interface como passiva, para não correr o risco[2] de anunciar uma rede que faça sua interface pública "subir", e assim "conversar" OSPF.
"OSPF has a feature to avoid border interfaces to participate in OSPF domain - passive mode"[2]
Citação:
Postado originalmente por
loxxxa
3) A rota padrão que está sendo propagada é da RB que está conectada à operadora (isso mesmo... a operadora utiliza um ip não válido para rotear minhas faixas de ips reais = 172.16.8.1), e está sendo redistribuída na outra RB.
Sim, a redistribuição de rota padrão só ocorre na RB conectada ao link externo. As demais RBs não propagam rota padrão. A exceção seria se você tive dois links de internet, mas não é aplicável aqui. Então, na sua rede, só uma RB anunciará a rota padrão. Todas os demais roteadores (que conversam OSPF) receberão essa rota :)
Citação:
Postado originalmente por
loxxxa
4) quais rotas que estão sendo anunciadas que não deveriam ser (lembre-se que esta é a RB que está ligada na operadora)?
Abaixo o código para desativar a redistribuição (anúncio - propagação) de rotas conectadas. No seu caso, está "as-type-1".
Código :
/routing ospf instance set 0 redistribute-connected=no
Citação:
Postado originalmente por
loxxxa
Agora o torch: o src-address é sempre o mesmo, tanto no ssh, quanto no snmp, estando os 2 enlaces ativos ou apenas 1 (qualquer um deles)....
Ok. Com isso, elimina-se a possibilidade da existência de um NAT no meio do caminho.
Citação:
Postado originalmente por
loxxxa
Você prefere que eu anexe as configs de cada uma RB para você ver como estou fazendo meu ospf?
Pode ser. Use a opção "compact", para não serem exportadas sobras desnecessárias, facilitando assim a análise das configurações.
Ainda assim, se funciona com SSH e FTP, deveria funcionar o SNMP também. Acredito que logo mais desarmamos o problema :)
[1] http://gregsowell.com/?p=2493
[2] http://mum.mikrotik.com/presentations/BR11/1_Maia.pdf
Saudações,
Trober
-
-
-
-
-
2 Anexo(s)
Re: Problemas com SNMP sobre OSPF
Obrigado pela paciência e pelo material encaminhado!
No exemplo de Greg Sowell[1],não encontrei a parte que cita sobre a interface loopback setando como passiva... mas mesmo assim, já setei, como você vai poder ver na config.
Mas mesmo setando as interfaces como passivas, e desabilitando a redistribuição das rotas na RB que está ligada no link, o SNMP continua parado...
Em anexo, as configs das duas RBs para uma analise mais detalhada...
Re: Problemas com SNMP sobre OSPF
Citação:
Postado originalmente por
loxxxa
Obrigado pela paciência e pelo material encaminhado!
No exemplo de Greg Sowell[1],não encontrei a parte que cita sobre a interface loopback setando como passiva... mas mesmo assim, já setei, como você vai poder ver na config.
Mas mesmo setando as interfaces como passivas, e desabilitando a redistribuição das rotas na RB que está ligada no link, o SNMP continua parado...
Boa noite Diego.
Tenho duas notícias: Uma é boa, a outra vair depender do seu ponto de vista.
Envio para você como ficaram os scripts das RBs, contendo alguns ajustes. Redefini o nome de algumas interfaces, para eu não me perder na topologia. Faça os ajustes para seu cenário.
Fiz os teste duas MikroTik RB750G e quatro Ubiquiti AirGrid, simulando seus enlaces. Funcionou 100%. Tem uma coisa que não fiz, que foi usar bridge ao invés de atuar diretamente com OSPF nas interfaces, mas vamos deixar isso para um outro momento :)
Aqui tem o código para usar em SANTA TERESA.
Código :
#Definir nome
/system identity set name=ROUTER_STA-SRC
#Redefinir nome de interfaces
/interface ethernet set 0 name=ether1-link
/interface ethernet set 1 name=ether2-vpn-autosales
/interface ethernet set 2 name=ether3
/interface ethernet set 3 name=ether4-enlace-antigo
/interface ethernet set 4 name=ether5-enlace-novo
#Adicionar interface loopback
/interface bridge add name=loopback
#Definir enderecos IP
/ip address add interface=loopback address=1.1.1.2/32 comment="Loopback"
/ip address add interface=ether1-link address=172.16.8.2/30 comment="Gateway Remoto"
/ip address add interface=ether4-enlace-antigo address=10.254.254.253/24 comment="OSPF PTP Antigo"
/ip address add interface=ether5-enlace-novo address=10.254.253.253/24 comment="OSPF PTP Novo"
/ip address add interface=ether2-vpn-autosales address=172.27.2.1/30 comment="VPN Autosales"
#Adicionar rotas estaticas (o gateway da segunda regra eh hipotetico)
/ip route add distance=1 gateway=172.16.8.1
/ip route add distance=1 dst-address=172.27.2.4/30 gateway=100.100.100.1 comment="VPN Autosales"
#Adicionar interfaces no OSPF
/routing ospf interface add interface=loopback passive=yes
/routing ospf interface add interface=ether1-link passive=yes
/routing ospf interface add interface=ether2-vpn-autosales passive=yes
/routing ospf interface add interface=ether3 passive=yes
/routing ospf interface add interface=ether4-enlace-antigo authentication=md5 authentication-key=SenhaDiego network-type=ptmp cost=100
/routing ospf interface add interface=ether5-enlace-novo authentication=md5 authentication-key=SenhaDiego network-type=ptmp
#Definir a instancia
#Esse roteador DEVE redistribuir a rota padrao, pois estah na BORDA.
/routing ospf instance set [ find default=yes ] distribute-default=always-as-type-1 router-id=1.1.1.2
#Adicionar redes a serem anunciadas pelo OSPF (veja, loopback anunciada!!!)
/routing ospf network add area=backbone network=1.1.1.2/32
/routing ospf network add area=backbone network=10.254.254.0/24
/routing ospf network add area=backbone network=10.254.253.0/24
#Definir SNMP
/snmp community set [ find default=yes ] name=public
/snmp set contact=Loxxxa enabled=yes location="Autosales - Santa Teresa" trap-community=public trap-version=2
#Definir timezone (uma boa pratica de logs eh usar UTC, mas nem esquenta a cabeca com isso, pelo menos agora)
/system clock set time-zone-name=America/Sao_Paulo
#Definir servidor de NTP (endereco hipotetico)
/system ntp client set enabled=yes mode=unicast primary-ntp=150.150.150.1
#Desativando servicos (descomentar para desativar)
#/ip service set telnet disabled=yes
#/ip service set ftp disabled=yes
#/ip service set www disabled=yes
#/ip service set winbox disabled=yes
E aqui tem o código para usar em MORRO ARISTIDES.
Código :
#Definir nome
/system identity set name=ROUTER_SRC-STA
#Redefinir nome de interfaces
/interface ethernet set 0 name=ether1-local-0
/interface ethernet set 1 name=ether2-local-1
/interface ethernet set 2 name=ether3-local-2
/interface ethernet set 3 name=ether4-wlan0
/interface ethernet set 4 name=ether5-wlan1
#Adicionar interface loopback
/interface bridge add name=loopback
/interface bridge add name=bridge1
/interface bridge port add bridge=bridge1 interface=ether1-local-0
/interface bridge port add bridge=bridge1 interface=ether2-local-1
/interface bridge port add bridge=bridge1 interface=ether3-local-2
#Definir enderecos IP (bridge1 com endereco hipotetico)
/ip address add interface=loopback address=1.1.1.1/32 comment=Loopback
/ip address add interface=ether4-wlan0 address=10.254.254.254/24 comment="OSPF PTP Antigo"
/ip address add interface=ether5-wlan1 address=10.254.253.254/24 comment="OSPF PTP Novo"
/ip address add interface=bridge1 address=200.200.200.1/25 comment="Gateway Local"
#Adicionar rotas estaticas (todos os enderecos de gateway sao hipoteticos)
/ip route add distance=1 dst-address=172.27.2.4/30 gateway=200.200.200.3 comment="Rota vpn autosales"
/ip route add distance=1 dst-address=50.50.50.128/25 gateway=200.200.200.2 comment="Rotas Clientes"
/ip route add distance=1 dst-address=51.51.51.0/24 gateway=200.200.200.2 comment="Rotas Clientes"
/ip route add distance=1 dst-address=52.52.52.0/24 gateway=200.200.200.2 comment="Rotas Clientes"
#definir servidor DNS
/ip dns set max-udp-packet-size=512 servers=10.99.0.98
#Adicionar interfaces no OSPF
/routing ospf interface add interface=loopback passive=yes
/routing ospf interface add interface=bridge1 passive=yes
/routing ospf interface add interface=ether4-wlan0 authentication=md5 authentication-key=SenhaDiego network-type=ptmp
/routing ospf interface add interface=ether5-wlan1 authentication=md5 authentication-key=SenhaDiego network-type=ptmp cost=100
#Definir a instancia
#Esse roteador NAO redistribuir a rota padrao, pois estah na BORDA.
/routing ospf instance set [ find default=yes ] redistribute-static=as-type-1 router-id=1.1.1.1
#Adicionar redes a serem anunciadas pelo OSPF (veja, loopback anunciada!!!)
/routing ospf network add area=backbone network=1.1.1.1/32
/routing ospf network add area=backbone network=10.254.254.0/24
/routing ospf network add area=backbone network=10.254.253.0/24
/routing ospf network add area=backbone network=200.200.200.0/24
#Definir SNMP
/snmp community set [ find default=yes ] name=public
/snmp set contact=Loxxxa enabled=yes location="Morro Aristides - Sao Roque do Canaa" trap-community=public trap-target=0.0.0.0
#Definir timezone (uma boa pratica de logs eh usar UTC, mas nem esquenta a cabeca com isso, pelo menos agora)
/system clock set time-zone-name=America/Sao_Paulo
#Definir servidor de NTP (endereco hipotetico)
/system ntp client set enabled=yes mode=unicast primary-ntp=150.150.150.1
#Desativando servicos (descomentar para desativar)
#/ip service set telnet disabled=yes
#/ip service set ftp disabled=yes
#/ip service set www disabled=yes
#/ip service set winbox disabled=yes
Essa foi a notícia boa. Agora vem a notícia que depende do seu ponto de vista:
Quando uma coisa não tem solução, diz-se que "solucionado está".
Vamos lá então. Conforme rege o RFC1270[1], o SNMP é um protocolo connectionless[1], conforme a afirma a frase abaixo:
"Since the UDP is connectionless, it will generate no overhead traffic of its own (such as TCP SYNs, FINs, and ACKs)."
Veja que mais gente sofre deste mal[2].
O que significa isso? No seu caso, seu roteamento dinâmico tem uma peculiaridade. Você tem dois pesos cruzados nas interfaces, ou seja:
Para quem vai de Santa Teresa para Morro Aristides, o peso é +100 pelo enlace antigo e somente +10 pelo enlace novo.
Para quem volta de Morro Aristides para Santa Teresa, tem um novo caminho, pois o peso é inverso, sendo peso +100 pelo enlace novo, e somente +10 no enlace antigo.
Ou seja, o Diego é um cara inteligente, é está distribuindo o uso dos enlaces :)
Qual o problema disso? Não era para ser uma solução? Sim, é uma solução, mas quando você tem um serviço connectionless[1], terá esse problema.
Quais alternativas então restam?
1) Equalizar pesos em 10 novamente, mas você perde a "circularidade" nos dois enlaces.
2) Atribuir um peso maior para o enlace antigo, seja em Santa Teresa e Morro Aristides. Com isso o enlace novo será primário, somente usando o enlace antigo como backup, quando o novo falhar.
3) Usar "SNMP over TCP"[3]? Tem muitos prós e muitos contras. No MikroTik, acredito que o listen só acontece em UDP :(
Bom, por enquanto é isso. O que tem em mente sobre isso, agora, depois dessa "água fria"?
[1] http://www.ietf.org/rfc/rfc1270.txt
[2] http://stackoverflow.com/questions/7...ver-connection
[3] http://www.ietf.org/proceedings/72/slides/opsarea-2.pdf
Saudações,
Trober
-
-
-
-
-