在 Linux 中创建界面

在 Linux 中创建界面

我与第三方计算机建立了隧道。此隧道 iface 的 IP 地址为 10.244.248.126。第三方刚刚告诉我,有一个 ACL 只允许 10.245.1.224/28 范围内的 IP。我很想使用给定范围内的 IP 地址发出 telnet -b,但我没有具有此范围内 IP 地址的接口。如何创建这样的接口以便可以正确进行 telnet?如何路由它?

提前致谢

更新:现在我可以根据响应进行绑定,但我在 telnet -b 上超时了。查看 tcpdump 似乎它正在转到错误的接口,但我对此不确定,因为我不知道 MAC 地址是否应该来自我的虚拟 iface。以下是 iface、隧道和路由表:

https://gist.github.com/847934

https://gist.github.com/847957

https://gist.github.com/847932

答案1

为您的网卡配置添加别名:

ifconfig eth0:telnet 10.245.1.225 netmask 255.255.255.240

您已经有隧道,因此路由应该可以正常工作。或者现在路由是如何定义的?您可能需要添加路由,但我们需要有关您的连接的更多信息。首先测试是否

ping 10.244.248.126

有效。然后使用“-b”启动 telnet 会话

telnet -b eth0:telnet 10.244.248.126

答案2

如果我理解正确的话,您需要定义一个虚拟接口,以便能够将新地址用作 telnet 中的绑定地址。简单来说,可以使用以下命令完成此操作:

$ sudo ifconfig eth0:0 <your_ip_address> netmask <your_mask> up

当然,您需要用适当的值替换和标记IP。

对于路由部分,它取决于您的网络设置和寻址。

答案3

此外,telnet -b 不会从接口取消引用 IP(至少在我见过的任何 Linux 机器上都不会)。您实际上需要指定所需的 IP。

(有一种观点认为应该像这样工作,我对此表示同情。我编写的任何新套接字代码都可能支持这个选项,我可能会将其修补到一些东西中。老实说,我不知道你可以做 eth0:[string],我实际上以为你必须做 eth0:[number])

答案4

我认为您可能需要一个与物理 NIC 桥接的 TUN/TAP 接口。您需要 uml-utilities 来实现这一点。我经常使用它来模拟网络。命令是隧道

或者,你可以更改现有的隧道以反映新的 IP 子网

编辑:查看您的配置,我认为您需要设置一个桥接器(brctl?)。当您创建新接口时,如何确保它们与您的物理 NIC 通信?

相关内容