我最近在专用服务器上安装了 Gentoo。我有 6 个 IP,在删除 CentOS 安装之前我忘记记下一个配置。
我应该有
eth0 = ip1
eth0:0 = ip2
eth0:1 = ip3
eth0:2 = ip4
eth0:3 = ip5
eth0:4 = ip6
或者我应该让 eth0:0 共享主 IP?
eth0 = ip1
eth0:0 = ip1
eth0:1 = ip2
eth0:2 = ip3
eth0:3 = ip4
eth0:4 = ip5
eth0:5 = ip6
答案1
你不需要接口别名才能为同一服务器提供多个 IP 地址。如果您要处理单独的子网并且需要在地址之间路由,则应该主要使用接口别名,但事实似乎并非如此。
对于 Linux(从 2.2 或 2.4 开始,我不记得了),单个接口可以有多个地址。这是首选的设置方式。多个别名设置存在问题,例如,如果多个别名位于同一子网上,则不清楚应如何处理广播消息。
我不知道如何在 Gentoo 配置中设置它,但使用标准ip
界面,很简单:
ip addr add ip1/prefix brd + dev eth0
ip addr add ip2/prefix dev eth0
ip addr add ip3/prefix dev eth0
ip addr add ip4/prefix dev eth0
ip addr add ip5/prefix dev eth0
ip addr add ip6/prefix dev eth0
注1:广播只会被第一个地址接收。如果您的地址位于不同的子网,您可能还想在其他 IP 上设置广播。
笔记2: ifconfig
可能不会显示附加地址,反正它已经过时了。用于ip addr show
检查每个网络接口分配了哪些地址。
无论如何,回答你的问题:不。每个别名都被视为系统的不同接口。因此,eth0 将是一个接口,具有一个地址,eth0:0 将是另一个接口,具有另一个地址,依此类推。
答案2
每个条目都应该是唯一的。
eth0 = ip1
eth0:0 = ip2
eth0:1 = ip3
eth0:2 = ip4
eth0:3 = ip5
eth0:4 = ip6
答案3
我同意 Juliano 的观点。在 Gentoo 中,您可以使用 /etc/conf.d/net 进行配置,然后使用多个空格分隔的 IP 设置 config_eth0。该行应如下所示:config_eth0=( "192.168.0.1/24" "192.168.0.2/24" "192.168.0.3/24" )
答案4
每个都必须是唯一的。冒号后的数字是任意的,数字不必是连续的。事实上,它们甚至不必是数字。来自Documentation/networking/alias.txt
Linux 源代码:
别名是在运行 ifconfig 时添加一个冒号和一个字符串形成的。
这个字符串通常是数字,但这不是必须的。