Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 多个接口上的相同IP大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

网络大师你好, 我有一个Linux(内核3.14)服务器,它充当一个消费电子设备(机顶盒 – 机顶盒)农场的TFTP,NFS和http服务器.设备使用TFTP从其引导内核,然后从我们机器上的NFS服务器等安装它们的根FSes等. 现在,由于一个深奥的技术原因,我不打算在这里钻研(只相信我:),每个STB必须在它自己的,物理上分开的局域网. 因此,建立网络的方式是ATM: 服务器有1个网卡,用于访问
网络大师你好,

我有@L_874_1@Linux(内核3.14)服务器,它充当@L_874_1@消费电子设备(机顶盒 – 机顶盒)农场的TFTP,NFS和http服务器.设备使用TFTP从其引导内核,然后从我们机器上的NFS服务器等安装它们的根FSes等.

现在,由于@L_874_1@深奥的技术原因,我不打算在这里钻研(只相信我:),每个STB必须在它自己的,物理上分开的局域网.
因此,建立网络的方式是ATM:

服务器有1个网卡,用于访问世界其他地方.
它还为每个服务的STB提供1个网卡 – 每个STB都连接到@L_874_1@小型路由器,STB其他设备连接到该路由器并形成LAN.

目前有3个STB连接,局域网为172.16.50.0/24,172.16.51.0/24和172.16.52.0/24.一切都很好.

但是:我们有3个不同的LAN,这意味着必须从STB1访问172.16.50.1,从STB2访问172.16.51.1,从STB3访问172.16.52.1 – 这意味着我们的环境有点不同每个STB,每次我们 – 比如说 – 上传要在STB上使用的新RootFS,我们需要手动编辑一些配置文件并放置正确的IP服务器必须从这个特定的STB访问.不是很方便,@R_682_10197@!

这让我想到:如果我们简单地将这三个局域网配置为完全相同的172.16.50.0/24怎么办?从STB(以及局域网中其他设备)的角度来看,一切都应该没问题,但服务器的观点呢?

Linux服务器可以有N个不同的以太网接口,所有接口都配置了相同的静态IP,但是每个接口都连接到物理上独立的LAN?

解决方法

是的,这是可能的,使用@L_874_1@称为网络命名空间的功能(参见man ip-netns(8)).它基本上为您提供了多个不同的网络堆栈,每个堆栈都有自己的接口,路由等.

您需要为每个STB创建@L_874_1@命名空间,然后可以在每个命名空间中单独运行所需的服务.

对于名称空间,您需要按如下方式继续:

>创建@L_874_1@名为net1的命名空间:

ip netns add net1

>将您的接口ethX分配给新命名空间并配置您的IP地址172.16.50.1:

ip link set dev ethX netns net1
ip netns exec net1 ip link set dev ethX up
ip netns exec net1 ip address add 172.16.50.1/24 dev ethX

现在,名称空间中不显示IP地址172.16.50.1.@L_874_1@简单的ping 172.16.50.1不起作用,首先需要切换到net1命名空间并在那里执行命令:

ip netns exec net1 <command>

通过这种方式,您现在可以在每个命名空间中运行每个服务.

如果您喜欢冒险,您甚至可以尝试以某种方式将所有来自您的STB的请求重定向到中央服务.为此,您需要从每个命名空间到认命名空间的隧道(请参阅ip link Help veth)和相当一些iptables魔术……

大佬总结

以上是大佬教程为你收集整理的linux – 多个接口上的相同IP全部内容,希望文章能够帮你解决linux – 多个接口上的相同IP所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。