Linux 什么是接口标识符
我有一台使用一个或多个网络适配器连接到公司网络的笔记本电脑。我正在尝试编写一个工具,它将持续监视每个网络的连接状态和连接质量。然而,我的网络知识有限,术语让我感到困惑 专门查找所有网络适配器。有人建议我使用命令Linux 什么是接口标识符,linux,unix,networking,network-programming,Linux,Unix,Networking,Network Programming,我有一台使用一个或多个网络适配器连接到公司网络的笔记本电脑。我正在尝试编写一个工具,它将持续监视每个网络的连接状态和连接质量。然而,我的网络知识有限,术语让我感到困惑 专门查找所有网络适配器。有人建议我使用命令ifconfig,它给了我所谓的“接口标识符” 例: ['lo0','gif0','stf0','en0','en1','en2','bridge0','p2p0'] 我不太确定这如何帮助我解决问题,因为我不知道接口标识符是什么,也不确定如何利用这些信息。我的假设是,它们代表网络中的计算机
ifconfig
,它给了我所谓的“接口标识符”
例:
['lo0','gif0','stf0','en0','en1','en2','bridge0','p2p0']
我不太确定这如何帮助我解决问题,因为我不知道接口标识符是什么,也不确定如何利用这些信息。我的假设是,它们代表网络中的计算机或路由器
如果有人能澄清这一点,或者用外行的语言向我解释,那将非常有帮助 首先,您需要了解计算机中可能存在物理网卡(或/和逻辑网络适配器),以识别连接/管理连接 接下来,您对接口标识符有一个不正确的概念。 您所谈论的(eth、virbr、lo)是接口。在IPv4寻址方案中,我们没有接口ID。我们在IPv6地址中有接口ID 如中所述 在IPv4中,IP地址与用于底层数据链路层网络技术的地址没有关系。使用以太网网络接口卡(NIC)连接到TCP/IP网络的主机具有以太网MAC地址和IP地址,但这两个数字在任何方面都是不同和不相关的 随着IPv6寻址技术的全面革新,出现了一个创建更好的映射IP单播地址和物理网络地址的方法的机会。实现这种优越的映射技术是IPv6地址变得如此庞大的原因之一。总比特数为128位,即使网络前缀保留了完整的48位,站点子网保留了16位,我们仍然剩下64位用于接口标识符,这类似于IPv4下的主机ID 有这么多的东西可供我们使用,这给了我们很大的灵活性。我们可以将接口ID基于底层数据链路层硬件地址,只要该地址的长度不超过64位,而不是为主机使用任意“组合”标识符。由于几乎所有设备都使用64位或更少的第二层地址,因此在IP地址中使用这些地址作为接口标识符是没有问题的。这提供了一个直接的好处:它使网络更易于管理,因为我们不必为每个主机记录两个任意数字。IP地址可以从MAC地址和网络标识符派生。这也意味着我们将来可以区分IP地址和MAC地址,反之亦然 访问以更清楚地了解接口ID
现在,回到这里来澄清你的困惑 所有连接(接口),如Ethernet-0、Ethernet-1、WiFi-1等,都有自己的
接口标识符
。您可以将其视为一种特殊的标识号,用于标识当时可用的接口类型
在Linux中键入ifconfig
时,它会显示当前活动接口的状态
现在,在示例部分,假设您的系统上有两个以太网连接,例如,eth0
和eth1
(这些是接口名称)——因此ifconfig将打印这两个作为其输出的结果
因此,要识别这两个独立的接口,必须有一个
接口标识符
。接口标识符(通常为64位)为
使用从接口的MAC地址自动生成
修改后的EUI-64格式,从DHCPv6服务器获取,
自动随机建立,或手动分配
此外,您提到的接口是一些最常用的接口:-
‘lo0’、‘gif0’、‘stf0’、‘en0’、‘en1’、‘en2’、‘bridge0’、‘p2p0’
lo0
——本地网络连接(0表示lan的第一次连接)en0
——以太网连接(以太网上的第一、第二和第三个连接为0,1,2)bridge0
——与此计算机的桥接连接p2p0
——对等连接不了解
gif
,stf
。请注意,存在逻辑连接/虚拟连接,而不是物理连接(使用网卡)的限制 我发现至少在OSX上有man
的gif
和stf
条目。它们分别是通用隧道接口和IPv6到IPv4隧道接口(“六到四”)。它们表示计算机中的逻辑或物理网络接口卡(NIC)。@EJP-接口ID与接口不同,因此它与您认为的不同。请访问已接受的答案以了解更多信息。我这么晚才注意到你的评论!