[FUG-BR] Dois links de internet, um inacessível de fora

Welkson Renny de Medeiros welkson em focusautomacao.com.br
Quinta Agosto 21 12:52:13 BRT 2008


Realmente tem fundamento!

Alguém sabe como resolver isso?

Welkson

----- Original Message ----- 
From: "Lucas Mocellin" <lucasmocellin em gmail.com>
To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)" 
<freebsd em fug.com.br>
Sent: Thursday, August 21, 2008 12:35 PM
Subject: Re: [FUG-BR]Dois links de internet, um inacessível de fora


Amigo,

acho que o seu problema eh o seguinte, quando alguma conexão chega pela
bge2, a volta do pacote sai pela bge1, por ser o gateway default.

faca o teste com o tcpdump, rode um tcpdump nas duas interfaces e tente
pingar ou algo assim.

Ja passei por esse problema, mas infelizmente a solucao para freebsd eu
desconheco, hoje trabalho muito mais com linux que gfreebsd.

Se for isso, o que vc precisa fazer eh controlar as rotas mesmo(quem sabe o
colega que falou antes esteja correto sobre o source routing). "Dizer" ao
freebsd que tudo que entra pela bge2, TEM que sair pela bge2.(e nao pelo gw
padrao). Conheco essa implementacao somente para linux.

um abraco

Lucas.


Em 21/08/08, Welkson Renny de Medeiros <welkson em focusautomacao.com.br>
escreveu:
>
> Também tenho esse problema...
>
> Tenho um link do velox e outro da jetcom... internamente uso os dois
> (route-to do pf)... mas externo só consigo acessar pelo velox (que é o
> default gateway)... nada funciona pelo ip do jetcom.
>
> Welkson
>
> ----- Original Message -----
> From: "Aline de Freitas" <aline em bsd.com.br>
> To: <freebsd em fug.com.br>
> Sent: Thursday, August 21, 2008 11:39 AM
> Subject: Re: [FUG-BR]Dois links de internet, um inacessível de fora
>
>
> Citando Giancarlo Rubio <gianrubio em gmail.com>:
>
> > 2008/8/20 Aline de Freitas <aline em bsd.com.br>:
> >> Citando Gule # <gule.cps em gmail.com>:
> >>
> >>> 2008/8/20 Aline de Freitas <aline em bsd.com.br>
> >>>
> >>>> Boa tarde!
> >>>>
> >>>> Estou com dois links de internet:
> >>>>
> >>>> (bge1) Virtua = 12 megas, IP Dinâmico
> >>>> (bge2) Ajato = 2 megas, IP fixo
> >>>>
> >>>> (bge0) Rede interna
> >>>>
> >>>> A prioridade para uso interno é a bge2, por conta da banda alta.
> >>>> Apenas para alguns
> >>>> acessos que exigem autenticação por IP criei rotas via bge1. Pela 
> >>>> rede
> >>>> interna tenho os
> >>>> dois gateways das duas interfaces acessíveis, mas o gateway default é
> >>>> o via bge2. O
> >>>> problema é que externamente, apenas o IP da bge2 (dinâmico) é
> >>>> acessível. O IP da bge1
> >>>> (fixo) nem pinga. Quando eu seto a bge2 como default, então ela passa
> >>>> a ser acessível
> >>>> externamente. Alguém conhece alguma forma de fazer com que ambas as
> >>>> interfaces sejam
> >>>> acessíveis externamente?
> >>>>
> >>>> Aline
> >>>> -------------------------
> >>>> Histórico: http://www.fug.com.br/historico/html/freebsd/
> >>>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >>>>
> >>>
> >>> Firewall ? PF ?
> >>> Caso seja, basta liberar a porta que quer que seja acessivel na
> >>> interface
> >>> desejada.
> >>> -------------------------
> >>> Histórico: http://www.fug.com.br/historico/html/freebsd/
> >>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >>>
> >>
> >> Não me parece ser uma questão de portas, uma vez que de fora o IP nem
> >> pinga.
> >>
> >> Minhas regras no pf.conf:
> >>
> >> # Interfaces
> >> EXT_IF1 = "bge1"
> >> EXT_IF2 = "bge2"
> >> INT_IF = "bge0"
> >> VPN_IF = "tun0"
> >>
> >> # Redes
> >> LAN_NETWORK = "192.168.0.0/24"
> >> VPN_NETWORK = "10.8.0.0/24"
> >>
> >> # Portas publicas (abertas para Internet)
> >> # 4222 = SSH
> >> # 4280 = Apache (HTTP)
> >> # 42443 = Apache (HTTPS)
> >> # 8180 = Tomcat (HTTP)
> >> # 8443 = Tomcat (HTTPS)
> >> # 41194 = OpenVPN
> >> PUB_PORTS = "{ 4222, 4280, 42443, 8180, 8443, 41194 }"
> >>
> >> # Logar eventos em interface externa
> >> set loginterface $EXT_IF1
> >> set loginterface $EXT_IF2
> >>
> >> # Politica padrao de envio de rst em block
> >> set block-policy return
> >>
> >> # Ignorando loopback
> >> set skip on lo
> >>
> >> # Normalizacao
> >> scrub in all
> >>
> >> # NAT de VPN
> >> nat on $EXT_IF1 from $VPN_NETWORK to any -> ($EXT_IF1)
> >>
> >> # NAT de LAN
> >> nat on $EXT_IF1 from $LAN_NETWORK to any -> ($EXT_IF1)
> >> nat on $EXT_IF2 from $LAN_NETWORK to any -> ($EXT_IF2)
> >>
> >> # Bloqueando toda entrada por padrao
> >> block in
> >>
> >> # Saida livre
> >> pass out keep state
> >>
> >> # Comunicacao livre com VPN
> >> pass quick on $VPN_IF keep state
> >>
> >> # Comunicacao livre com LAN
> >> pass quick on $INT_IF keep state
> >>
> >> # Permitiondo acesso a portas publicas
> >>                                        pass in on $EXT_IF1 proto tcp
> >> from any to
> >> ($EXT_IF1)
> >>     port $PUB_PORTS flags S/SA keep state
> >> pass in on $EXT_IF2 proto tcp from any to ($EXT_IF2)
> >>     port $PUB_PORTS flags S/SA keep state
> >>
> >> # Permitindo Ping
> >> pass in inet proto icmp all icmp-type echoreq keep state
> >>
> >> # Faz balanceamento de carga no trafego da rede interna
> >> pass in on $INT_IF route-to { $EXT_IF1, $EXT_IF2 } round-robin
> >> proto tcp from
> >> $LAN_NETWORK to any flags S/SA modulate state
> >> pass in on $INT_IF route-to { $EXT_IF1, $EXT_IF2 } round-robin proto {
> >> udp, icmp } from
> >> $LAN_NETWORK to any keep state
> >>
> >> # Regras gerais "pass out" para as interfaces externas
> >> pass out on $EXT_IF1 proto tcp from any to any flags S/SA modulate 
> >> state
> >> pass out on $EXT_IF1 proto { udp, icmp } from any to any keep state
> >> pass out on $EXT_IF2 proto tcp from any to any flags S/SA modulate 
> >> state
> >> pass out on $EXT_IF2 proto { udp, icmp } from any to any keep state
> >>
> >> # Roteia pacotes de qualquer IP na $EXT_IF1 para $EXT_Gw1 e o mesmo 
> >> para
> >> # $EXT_IF2 e $EXT_GW2
> >> pass out on $EXT_IF1 route-to ( $EXT_IF2 ) from $EXT_IF2 to any
> >> pass out on $EXT_IF2 route-to ( $EXT_IF1 ) from $EXT_IF1 to any
> >> -------------------------
> >> Histórico: http://www.fug.com.br/historico/html/freebsd/
> >> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >>
> >
> > O que seu pflog diz quando é bloqueado o ping por exemplo?
> >
> > --
> > Giancarlo Rubio
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
>
> Eu ainda não estou certa de que seja uma questão de firewall. Não se
> trata de bloqueio de pings, no meu entender, mas de invisibilidade
> total do IP por fora (100% packet loss)
>
> Digamos que
> ip_bge1 = aaa.aaa.aaa.aaa
> ip_bge2 = bbb.bbb.bbb.bbb
>
> gw_bge1 = xxx.xxx.xxx.xxx
> gw_bge2 = yyy.yyy.yyy.yyy
>
> Como minha prioridade é pela bge2 eu tenho o gateway yyy.yyy.yyy.yyy
> como default na
> tabela de rotas (netstat -rn)
>
> Se eu fizer
>
> route change default yyy.yyy.yyy.yyy
>
> então de fora eu pingo e acesso os serviços pelas portas externas via
> $ip_bge1 mas não
> pingo $ip_bge2, e vice-versa. Não existiria uma forma de solucionar
> isso (tornar
> acessível externamente os dois IPs de ambas interfaces) por meio de rotas?
>
> No meu netstat -rn o que eu tenho de relevante é (sendo abc, cba e bca
> são rotas que
> exigem o $ip_bge1 (IP fixo):
>
> default            yyy.yyy.yyy.yyy       UGS         0  4451783   bge2
> yyy.yyy.yyy/20      link#3             UC          0        0   bge2
> yyy.yyy.yyy.yyy    00:01:5c:24:f8:42  UHLW        2        0   bge2   1200
> xxx.xxx.xxx/23      link#2             UC          0        0   bge1
> xxx.xxx.xxx.xxx       00:14:f1:e4:6c:5d  UHLW        3        6   bge1
> 1200
> abc.abc.abc.abc      xxx.xxx.xxx.xxx       UGHS        0       10 bge1
> bca.bca.bca.bca      xxx.xxx.xxx.xxx      UGHS        0      914   bge1
> cab.cab.cab.cab      xxx.xxx.xxx.xxx       UGHS        0    18591   bge1
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd



Mais detalhes sobre a lista de discussão freebsd