Emulei com sucesso uma conexão serial direta com um cliente Windows (Windows 2000) com um servidor de discagem CentOS 8 (mgetty+pppd) entre duas máquinas virtuais (Windows 2000 é cliente e CentOS 8 é servidor), usando libvirt no Slackware Host .
Agora quero emular uma conexão PPP antiga com cliente Linux (Mandriva Linux) usando kppp e o mesmo servidor CentOS 8. Eu não tinha nenhum modem de 56k, mas sei que existe um projeto para emular um modem e se chama tcpser , com Windows não funciona porque a porta serial está ocupada pelo programa tcpser, então eu uso o Mandriva, no Mandriva eu executo o programa tcpser:
tcpser -d /dev/ttyS0 -n"010010101"
No Centos eu executo o programa tcpser
tcpser -d /dev/ttyS0 -n"010010102"
Usando o kppp e fazendo "interrogatório do modem", tudo bem (estou verificando com o minicom no Centos).. mas as strings de resultado estão todas vazias.
Quando tento conectar do Mandriva ao número, o modem fica preso na string de inicialização, como você pode ver nesta saída do minicom, e não cria a conexão:
OK
OK
+++ATH
OK
OK
ATZ
As duas máquinas virtuais são conectadas diretamente por um falso serial (socket) uma é bind e a outra é connect Esses são os XML's de serial das máquinas.
mandriva
<serial type="unix">
<source mode="connect" path="/tmp/ppp.sock"/>
<target type="isa-serial" port="0">
<model name="isa-serial"/>
</target>
<alias name="serial0"/>
</serial>
CentOS
<serial type="unix">
<source mode="bind" path="/tmp/ppp.sock"/>
<target type="isa-serial" port="0">
<model name="isa-serial"/>
</target>
<alias name="serial0"/>
</serial>
ATUALIZAÇÃO 1 : Algum progresso, tcpser simplesmente faz uma “ponte” de uma aplicação serial para TCP, no meu caso é impossível fazer uma ponte de serial para mgetty (não é TCP, usa linha serial), mas é possível fazer uma ponte de serial para telnet:
tcpser -d /dev/ttyS1 -s 38400 -l 7 -tsSiI -i "s0=1" -n"010010102=centos.domain.private:23"
Eu tentei o HyperTerminal do cliente Windows e funciona bem, posso fazer o login como o bom e velho modo ptsn-modem.
Infelizmente, a conexão PPP falhou com o erro "loopback error" "loopback detectado" 17 no cliente Mandriva e Windows
PSL Eu conheço Windows 2000, Mandriva Linux não são suportados e são um risco de segurança, mas está apenas testando.
Solução encontrada usando esta postagem de blog "como fazer" muito boa , alterei apenas algumas opções de PPP para usar a autenticação pap.
Eu tentei conectar do Windows e Mandriva e funcionou bem, usando uma senha falsa ou vazia negar login (opções de login do PPP) Um bom "plus" será conectar um modem serial real às linhas falsas "tnt" apenas para ouça o som agradável do aperto de mão da conexão.
/etc/ppp/options
/etc/ppp/options.tnt3
/etc/ppp/pap-secrets
Finalmente eu lanço o daemon PPP com estes argumentos simples