是否可以使用两个虚拟机模拟 56k 连接?

是否可以使用两个虚拟机模拟 56k 连接?

我已经使用 Slackware Host 中的 libvirt 成功模拟了两个虚拟机(Windows 2000 是客户端,CentOS 8 是服务器)之间与 Windows 客户端(Windows 2000)的直接串行连接。

现在我想使用 kppp 和相同的 CentOS 8 服务器模拟与 Linux 客户端(Mandriva Linux)的旧 PPP 连接。我没有 56k 调制解调器,但我知道有一个模拟调制解调器的项目,叫做传输控制服务器,在 Windows 上无法工作,因为串行端口被 tcpser 程序占用,因此我使用 Mandriva,在 Mandriva 上我运行 tcpser 程序:

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

在 Centos 上我运行 tcpser 程序

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

使用 kppp 并执行“调制解调器询问”报告一切正常(我正在使用 Centos 上的 minicom 检查)..但结果字符串都是空的。

当我尝试从 Mandriva 连接到号码时,调制解调器卡在初始化字符串处,正如您从此 minicom 输出中看到的那样,并且不会创建连接:

OK

OK
+++ATH

OK

OK
ATZ

两个虚拟机通过伪串行(套接字)直接连接,一个是绑定,另一个是连接。这些是机器串行的 XML。

曼德里瓦

<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>

更新 1:有些进展,tcpser 只是从串行到 TCP 应用程序建立了一个“桥梁”,在我的例子中,不可能从串行到 mgetty 建立桥梁(不是 TCP,它使用串行线),但可以从串行到 telnet 建立桥梁:

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

我已经尝试从 Windows 客户端使用超级终端并且运行良好,我可以以旧的好的 ptsn-modem 方式登录。

不幸的是,在 Mandriva 和 Windows 客户端中,PPP 连接都失败,并出现“环回错误”、“检测到环回”错误 17

PSL 我知道 Windows 2000、Mandriva Linux 不受支持并且存在安全风险,但只是在测试。

答案1

使用这个非常好的解决方案“如何”博客文章,我只改变了PPP的一些选项以使用pap验证。

我曾尝试从 Windows 和 Mandriva 进行连接,并且工作正常,使用假密码或空密码拒绝登录(PPP 的登录选项)一个好的“加分项”是将真正的串行调制解调器连接到假的“tnt”线路,只是为了听到连接握手的悦耳声音。

/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

最后,我用这些简单的参数启动 PPP 守护进程

pppd /dev/tnt3 nodetach persist

相关内容