当我使用 ifconfig 命令时,我得到以下输出:
eth0 Link encap:Ethernet HWaddr 2C:59:E5:49:54:10
inet addr:172.16.128.132 Bcast:172.16.128.255 Mask:255.255.255.128
inet6 addr: 2405:201:fffb:87:2e59:e5ff:fe49:7410/64 Scope:Global
inet6 addr: fe80::2e59:e5ff:fe49:7410/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20268132 errors:7874 dropped:0 overruns:7874 frame:0
TX packets:6389014 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24111394418 (22.4 GiB) TX bytes:2699115198 (2.5 GiB)
Interrupt:32 Memory:f6000000-f67fffff
如您所见,以太网接口具有 IPv4 和 IPv6 地址。但是,如果您查看/etc/sysconfig/network-scripts/ifcfg-eth0
以下文件的内容:
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=172.16.128.132
NETMASK=255.255.255.128
GATEWAY=172.16.128.129
IPV6INIT=no
USERCTL=no
DNS1=172.16.46.142
它不包含 IPv6 地址。为什么会出现这种不一致的情况?IPv6 地址是在其他地方单独配置的吗?
RHEL: 6.5
答案1
除了 中的脚本之外,还有其他方法可以为接口分配 IP 地址network-scripts
,例如,ip address add ...
自系统启动以来可能已调用的命令。或者,ifcfg-eth0
脚本本身可能自启动以来已发生更改。
在这种情况下,服务器可能在收到来自其本地网络中路由器的路由器广告后动态生成该地址(又称为无状态地址自动配置 - SLAAC)。基本上,路由器会将其提示到子网地址中,然后服务器会从中选择一个随机地址并采用它(在检查重复项后)。
有点令人困惑的是,IPV6INIT=no
虽然存在,但我们仍然绑定了地址,但正如我上面所说,在初始化接口的实际时间,情况可能并非如此。此外,从粗略的搜索来看,还不能完全确定此命令是否 100% 有效 - 还涉及其他因素。