我有一台笔记本电脑使用一个或多个网络适配器连接到我的组织网络。我正在尝试编写一个工具,它将持续监控每个网络的连接状态和连接质量。然而,我的网络知识限制和术语混淆了我。
专门查找所有网络适配器。有人建议我使用命令ifconfig
,它给了我所谓的"接口标识符"。
例如:
['lo0', 'gif0', 'stf0', 'en0', 'en1', 'en2', 'bridge0', 'p2p0']
我不太确定这有助于我解决我的问题,因为我不知道接口标识符是什么,我不知道如何利用这些信息。我的假设是它们代表网络中的计算机或路由器。
如果有人能够清楚地解释这个问题,或者通过非常有用的术语向我解释。
答案 0 :(得分:4)
首先,您需要了解计算机中可能存在物理网卡(OR / AND逻辑网络适配器)以识别连接/管理连接。
接下来,您有 关于接口标识符的错误概念 。 你所谈论的(eth,virbr,lo)是接口。在IPv4寻址方案中,我们没有接口ID。我们在IPv6地址中有接口ID。
正如The Payoff of IPv6’s Very Large Address Size
中所述在IPv4中,IP地址与用于底层数据链路层网络技术的地址无关。使用以太网网络接口卡(NIC)连接到TCP / IP网络的主机具有以太网MAC地址和IP地址,但这两个数字在任何方面都是不同且无关的。
随着IPv6中寻址的彻底改革,有机会创建一种更好的映射IP单播地址和物理网络地址的方法。实现这种卓越的映射技术是IPv6地址变得如此之大的原因之一。总共128位,即使为网络前缀保留了完整的48位,为站点子网保留了16位,我们仍然留下64位用于接口标识符,这类似于IPv4下的主机ID。
拥有如此多的位可以为我们提供极大的灵活性。我们可以将接口ID基于底层数据链路层硬件地址,而不是为主机使用任意“组合”标识符,只要该地址的长度不超过64位。由于几乎所有设备都使用64位或更少的第二层地址,因此将这些地址用于IP地址中的接口标识符没有问题。这提供了直接的好处:它使网络更易于管理,因为我们不必为每个主机记录两个任意数字。 IP地址可以从MAC地址和网络标识符导出。这也意味着我们将来可以从MAC地址告诉IP地址,反之亦然。
访问this link以更清楚地了解接口ID。
现在,回过头来清除你的困惑,
所有连接(接口),如Ethernet-0,Ethernet-1,WiFi-1等。拥有自己的interface identifier
。您可以将它们视为一种特殊的识别号码,用于识别当时可用的接口类型!
在Linux中键入ifconfig
时,它会显示当前活动接口的状态。
现在,来自示例部分,假设您的系统上有两个以太网连接,例如eth0
和eth1
(这些是接口名称)---所以ifconfig将打印这两个由于它的输出!
因此,要识别这两个独立的接口,必须有一个
interface identifier
。接口标识符(通常为64位)是 或者使用自动从接口的MAC地址生成 修改后的EUI-64格式,从DHCPv6服务器获取, 随机自动建立或手动分配。
此外,您提到的接口是一些最常用的接口: -
'lo0','gif0','stf0','en0','en1','en2','bridge0','p2p0'
lo0
---本地网络连接(局域网第一次连接为0)en0
---以太网连接(以太网上第1,第2和第3连接的0,1,2)bridge0
---与此机器的桥接连接p2p0
---点对点连接不了解gif
,stf
。请注意,有逻辑连接/虚拟连接,而不是物理连接的限制(使用NIC卡)!
答案 1 :(得分:1)
我发现至少在OSX上有man
和gif
的{{1}}个条目。它们分别是通用隧道接口和IPv6到IPv4隧道接口(“Six To Four”)。