首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用接口选项的SOCAT上的PPPd

使用接口选项的SOCAT上的PPPd
EN

Stack Overflow用户
提问于 2016-03-14 21:53:16
回答 1查看 3.9K关注 0票数 3

我的目标是使用pppd而不是套接字。我有两个eth0连接的Ubuntu盒(物理上的)。我可以同时打开两个IP地址。我在每个Ubuntu框上做下面的操作。

  1. 创建一个伪串行设备并将其链接到我的网络接口"eth0“。 socat,link=/dev/ttyp10 10接口:eth0
  2. 在这个伪串行设备上使用pppd。 装置A: pppd noauth /dev/ttyp10 10 10.10.10.10:20.20.20.20 装置B: pppd noauth /dev/ttyp10 10 20.20.20.20:10.10.10.10

我看到我的ppp0接口被创建了很短的时间,但是我不能同时选择两个IP地址(10.10.10.10或20.20.20)。我知道我的解决方案是不完整的,因为我需要指定我的pppd数据包必须如何从我的eth0接口路由,但不知道如何做(我在eth0接口上使用了tcpdump并找到了一些数据)。

通过将socat绑定到TCP服务器/客户端,我尝试了同样的实验,它起了作用。

装置A:

  1. socat,link=/dev/ttyp10 10,raw,echo=0 TCP4 4-听:7001,reuseaddr &
  2. pppd noauth /dev/ttyp10 10 10.10.10.10:20.20.20.20

装置B:

  1. socat,link=/dev/ttyp10 10,raw,echo=0,waitslave 4:20.1.1.2:7001 &
  2. pppd noauth /dev/ttyp10 10 20.20.20.20:10.10.10.10

注意:20.1.1.2是设备A的"eth0“IP地址。这样,我的ppp0接口就打开了,我可以同时平分两个IP地址(10.10.10.10和20.20.20)。

为什么我需要使用伪串行设备,当我有一个工作的eth0接口是一个不同的问题,让我们不讨论这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-15 08:58:00

您可能希望修改取自socat手册页的示例:

socat PTY,link=/var/run/ppp,rawer接口:hdlc0 0 避免了pppd需要串行设备的问题,因此可能无法在由网络设备表示的同步线路上工作。socat创建一个PTY来使pppd快乐,绑定到网络接口hdlc0,并且可以在两个设备之间传输数据。然后在设备/var/run/ppp上使用pppd。

在本例中,接口是同步行(操作系统将其视为HDLC接口)。pppd使用(默认情况下)一个类HLDC框架,因此将原始数据从pppd输送到HDLC设备是有意义的。

在您的例子中,您使用的是以太网设备,这对做同样的事情没有多大意义。

在第二个示例中,您设法通过TCP传输PPP会话,这是一个非常简单和可行的选项。在您的情况下,另一个解决方案是使用PPPoE,它是为在以太网上传输PPP而设计的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35998803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档