Para expandir a resposta de Chris, o comando que eu usei foi:
>tcpdump -i xl0 -e 'not (pppoes and ip)'
Onde
-i [interface]
especifica minha interface WAN, que para mim é xl0
-e
inclui os endereços MAC de origem e destino, para que eu possa ver quem está enviando quais pacotes para quem
'not (pppoes and ip)'
é uma expressão que diz que eu quero excluir pacotes dentro
de um pacote PPPoE S
ession.
Nota: o tcpdump tem opções para monitorar apenas os pacotes de "descoberta" PPPoE (PADI, PADO, PADR, PADS):
>tcpdump -i xl0 -e pppoed
Isso mostraria apenas os pacotes de descoberta PPPoE. Eu preferia a outra sintaxe, porque uma vez que a sessão PPPoE é estabelecida, eu consigo ver autenticação de login / senha com meu ISP, bem como informações de IP / DNS / route / MTU.
Isso me levou a descobrir que o pfSense está enviando um pacote Descoberta ativa PPPoE (PADT) fora do azul. É por isso que meu link está indo para baixo - o pfSense está desconectando aleatoriamente.
A tag PADT indica o final da sessão e ninguém tem permissão para enviar mais pacotes naquela sessão. De RFC2516 - Um método para transmitir PPP sobre Ethernet (PPPoE) :
5.5 The PPPoE Active Discovery Terminate (PADT) packet
This packet may be sent anytime
after a session is established to
indicate that a PPPoE session has been
terminated. It may be sent by
either the Host or the Access
Concentrator. The DESTINATION_ADDR
field is a unicast Ethernet address,
the CODE field is set to 0xa7 and
the SESSION_ID MUST be set to indicate
which session is to be terminated.
No TAGs are required.
When a PADT is received, no further
PPP traffic is allowed to be sent
using that session. Even normal PPP
termination packets MUST NOT be
sent after sending or receiving a
PADT. A PPP peer SHOULD use the
PPP protocol itself to bring down a
PPPoE session, but the PADT MAY be
used when PPP can not be used.
Minha próxima pergunta será, claro,
Why is pfSense hanging up randomly?
A resposta é que um comutador ATM dentro do concentrador da Bell Canada está com defeito. O cartão seria redefinido aleatoriamente, perdendo qualquer memória da minha sessão PPPoE.
Enquanto isso, meu roteador não sabe que sua sessão PPPoE não é mais válida e continua a tentar se comunicar com a mesma SessionID . O concentrador, não reconhecendo essa sessão, ignora quaisquer pacotes vindos de mim.
O pfSense, depois de detectar 10 segundos sem tráfego, começa a enviar Solicitações de eco do LCP , em intervalos de 10 segundos, para a rede remota. Após 40 segundos sem receber nenhuma resposta, o pfSense desativa a sessão PPPoE e inicia uma nova:
PADI
O concentrador, vendo uma transmissão solicitando para iniciar uma sessão, responde; e logo em seguida a nova sessão PPPoE é estabelecida.
Comutador ATM atual ( defeituoso ):
00:90:1a:a0:a1:f4
Soluções Unisphere (foi: comunicações redstone)
Novo comutador ATM MAC:
a ser instalado em 8/6/2010