2 votes

Est-il possible d'émuler une connexion 56k en utilisant deux machines virtuelles ?

J'ai réussi à émuler une connexion série directe avec un client Windows (Windows 2000) avec un serveur dial-in CentOS 8 (mgetty+pppd) entre deux machines virtuelles (Windows 2000 est le client et CentOS 8 est le serveur), en utilisant libvirt dans Slackware Host.

Maintenant je veux émuler une ancienne connexion PPP avec un client Linux (Mandriva Linux) en utilisant kppp et le même serveur CentOS 8. Je n'ai pas de modem 56k, mais je sais qu'un projet existe pour émuler un modem et s'appelle tcpser Avec Windows, cela ne fonctionne pas car le port série est occupé par le programme tcpser, alors j'utilise Mandriva, sur Mandriva je lance le programme tcpser :

tcpser -d /dev/ttyS0 -n"010010101"

Sur Centos, je lance le programme tcpser

tcpser -d /dev/ttyS0 -n"010010102"

En utilisant kppp et en faisant le rapport "interrogation du modem" tout est ok (je vérifie avec minicom sur Centos) mais les chaînes de résultats sont toutes vides.

Lorsque j'essaie de me connecter depuis Mandriva vers le numéro, le modem est bloqué au niveau de la chaîne d'initialisation comme vous pouvez le voir sur cette sortie minicom et ne crée pas la connexion :

OK

OK
+++ATH

OK

OK
ATZ

Les deux machines virtuelles sont connectées directement par une fausse série (socket) : l'une est bind et l'autre connect. Ce sont les XML des séries des machines.

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>

MISE À JOUR 1 : Quelques progrès, tcpser fait simplement un "pont" d'une application série vers une application TCP, dans mon cas il est impossible de faire un pont de série vers mgetty (ce n'est pas TCP, il utilise la ligne série), mais il est possible de faire un pont de série vers telnet :

tcpser -d /dev/ttyS1 -s 38400 -l 7 -tsSiI -i "s0=1" -n"010010102=centos.domain.private:23" 

J'ai essayé l'HyperTerminal à partir du client Windows et cela fonctionne bien, je peux me connecter à l'aide du bon vieux modem ptsn.

Malheureusement, la connexion PPP échoue avec "loopback error" "loopback detected" erreur 17 à la fois dans Mandriva et Windows client.

PSL Je sais que Windows 2000, Mandriva Linux ne sont pas supportés et qu'ils représentent un risque pour la sécurité, mais ce ne sont que des tests.

2voto

elbarna Points 257

Solution trouvée en utilisant ce très bon "article de blog "comment faire J'ai seulement changé quelques options de PPP pour utiliser l'authentification pap.

J'ai essayé de me connecter depuis Windows et Mandriva et cela fonctionne bien, en utilisant un mot de passe faux ou vide pour refuser la connexion (options de connexion de PPP). Un bon "plus" sera de connecter un vrai modem série aux fausses lignes "tnt", ne serait-ce que pour entendre le son agréable de la poignée de main de la connexion.

/etc/ppp/options

lock
auth
login

/etc/ppp/options.tnt3

asyncmap 0 
crtscts 
local 
silent 
192.168.100.1:192.168.100.100
require-pap
115200

/etc/ppp/pap-secrets

# Secrets for authentication using PAP
#
# client    server           secret     IP addresses
*           *             ""            192.168.1.100

Enfin, je lance le démon PPP avec ces simples arguments

pppd /dev/tnt3 nodetach persist

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X