第2章 网络访问层
网络访问层是TCP/IP协议栈的最底层。它提供物理网络的接口,实现对复杂数据的发送和接收。网络访问层协议为网络接口、数据传输提供了对应的技术规范。本章将详细讲解网络访问层的构成和相关协议。
2.1 网络访问层的构成
在TCP/IP协议中,网络访问层对应OSI七层网络模型的物理层和数据链路层。下面依次介绍这两个层的作用。
2.1.1 物理层
物理层是OSI七层网络模型中的第1层,它虽然处于最底层,却是整个开放系统的基础。在进行数据传输时,物理层的作用是提供传送数据的通路和可靠的环境。对于计算机来说,物理层对应的就是网络适配器。
根据网络适配器的存在方式,可以分为两类。第一类是物理网络适配器,如有线网卡、无线网卡;第二类是虚拟网络适配器,如宽带拨号连接、VPN连接等。
【实例2-1】显示计算机上的网络适配器信息,执行命令如下:
root@daxueba:~# netwox 169
输出信息如下:
Lo0 127.0.0.1 notether
Lo0 ::1 notether
Eth0 192.168.59.131 00:0C:29:CA:E4:66
Eth0 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466 00:0C:29:CA:E4:66
Eth0 fd15:4ba5:5a2b:1008:61f8:89cd:3207:9d0 00:0C:29:CA:E4:66
Eth0 fe80::20c:29ff:feca:e466 00:0C:29:CA:E4:66
从输出信息可以看到,该计算机中存在两类网络适配器,分别为Lo和Eth。其中,Lo表示回环接口,它是虚拟网络适配器;Eth为以太网网络适配器。如果同类型设备有多个,会在后面添加数字编号。编号从0开始,表示该类型的网络接口的第一个设备。
2.1.2 数据链路层
数据链路层是OSI七层网络模型中的第2层,介于物理层与网络层之间,用来为网络层提供数据传送服务。它定义了数据传输的起始位置,并且通过一些规则来控制这些数据的传输,以保证数据传输的正确性。由于数据链路层完成以上两个独立的任务,所以相应地划分为两个子层,其含义如下:
介质访问控制(Media Access Control,MAC):提供与网络适配器连接的接口。实际上,网络适配器驱动程序通常被称为MAC驱动,而网卡在工厂固化的硬件地址通常被称为MAC地址。
逻辑链路控制(Logical Link Control,LLC):这个子层对经过子网传递的帧进行错误检查,并且管理子网上通信设备之间的链路。
2.2 网 络 体 系
网络体系定义了物理网络的构成,以及对应的通信协议。例如,有线网络和无线网络是两种不同的网络体系。本节将详细讲解网络体系的构成和类型。
2.2.1 体系的构成
由于网络体系不仅定义了网络构成,还规定了通信方式,所以它包括以下4个方面。
访问方法:定义了计算机使用传输介质的规则。通过这些规则,可以避免数据传输的各种冲突。
数据帧格式:定义了数据传输的格式。所有要传输的数据必须按照该格式进行传输。
布线类型:定义了网络适配器和其他网络设备的连接方式。例如,每台计算机都通过电缆连接到网络设备,从而形成星型网络。
布线规则:定义网络适配器和网络设备连接规范,如网络适配器接口类型和连线长度等。
2.2.2 类型
由于网络使用的场景和数据传输所使用的终端设备不同,在物理层中识别的网络接口设备也会不同。网络体系主要分为4大类型,每种类型及使用范围如下:
IEEE 802.3(以太网):在大多数办公室和家庭中使用的基于线缆的网络,就是常见的有线局域网。
IEEE 802.11(无线网络):在办公室、家庭和咖啡厅使用的无线网络技术,如Wi-Fi网络。
IEEE 802.16(WiMAX):用于移动通信长距离无线连接的技术。
点到点协议(PPP):使用Modem通过电话线进行连接的技术,如通过拨号方式建立的网络连接。
2.3 物 理 地 址
物理地址是一种标识符,用来标记网络中的每个设备。同现实生活中收发快递一样,网络内传输的所有数据包都会包含发送方和接收方的物理地址。由于网络设备对物理地址的处理能力有限,物理地址只在当前局域网内有效。所以,接收方的物理地址都必须存在于当前局域网内,否则会导致发送失败。本节将详细讲解物理地址的使用。
2.3.1 MAC地址是预留的
由于数据包中都会包含发送方和接收方的物理地址,数据包从起始地发送到目的地,为了能够正确地将数据包发送出去,就必须要求MAC地址具有唯一性。因此MAC地址都是由生产厂家在生产时固化在网络硬件中,是硬件预留的地址。
2.3.2 MAC地址格式
硬件的MAC地址是厂家按照一定的规则,进行设置所产生的。因此,MAC地址拥有自己的格式。它采用十六进制数表示,共6个字节(48位),长度为48bit。整个地址可以分为前24位和后24位,代表不同的含义。
前24位称为组织唯一标识符(Organizationally Unique Identifier,OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。
后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。
2.3.3 查询MAC厂商
由于MAC地址的前24位是生产厂商的标识符,因此可以根据前24位标识符判断出硬件的生产厂商和生产地址。用户可以在一些网站上查询,如http://mac.51240.com/ 。
【实例2-2】查询MAC地址00:0C:29:CA:E4:66所对应的厂商。
(1)在浏览器中输入网址http://mac.51240.com/ ,如图2.1所示。
(2)在“MAC地址”文本框中输入MAC地址00-0C-29-CA-E4-66。然后单击“查询”按钮,查询结果如图2.2所示。
从图2.2显示的信息中,可以看到MAC地址00-0C-29-CA-E4-66的厂商是VMware,Inc,由此可以推断出这是一台虚拟机设备,并且可以看到厂家对应的省份、街道、邮编等信息。
2.3.4 查看网络主机MAC地址信息
一个局域网或公司中往往存在多台计算机,这些计算机都有自己的MAC地址和IP地址。其中,IP地址是可变的,而MAC地址一般是不可变的。为了准确地识别主机,用户可以获取计算机对应的MAC地址。
【实例2-3】显示网络主机MAC地址信息。
(1)显示局域网中指定主机的MAC地址信息。例如,显示主机192.168.59.133的MAC地址。执行命令如下:
root@daxueba:~# netwox 5 -i 192.168.59.133
输出信息如下:
192.168.59.133 00:0C:29:D0:21:23
输出信息表示主机192.168.59.133的MAC地址为00:0C:29:D0:21:23。
(2)显示局域网中所有主机的MAC地址,执行命令如下:
root@daxueba:~# netwox 5 -i 192.168.59.0/24
输出所有主机的MAC地址如下:
192.168.59.1 00:50:56:C0:00:08
192.168.59.2 00:50:56:EA:F3:A1
192.168.59.131 00:0C:29:CA:E4:66
192.168.59.132 00:0C:29:C4:8A:DE
192.168.59.133 00:0C:29:D0:21:23
192.168.59.254 00:50:56:F0:69:32
以上输出信息显示了局域网中所有启用主机的IP地址和对应的MAC地址。
(3)在显示局域网中所有主机的MAC地址信息时,有时由于暂时没有发现主机,等待较长的时间,也不会有任何输出信息。为了能够更好地了解当前的进度,可以使用-u选项,显示未发现主机的MAC地址的信息,进而可以查看扫描进度。执行命令如下:
root@daxueba:~# netwox 5 -i 192.168.59.0/24 -u
输出信息如下:
192.168.59.0 unresolved
192.168.59.1 00:50:56:C0:00:08
192.168.59.2 00:50:56:EA:F3:A1
192.168.59.3 unresolved
… #省略其他信息
192.168.59.131 00:0C:29:CA:E4:66
192.168.59.132 00:0C:29:C4:8A:DE
192.168.59.133 00:0C:29:D0:21:23
192.168.59.134 unresolved
192.168.59.135 unresolved
… #省略其他信息
192.168.59.254 00:50:56:F0:69:32
192.168.59.255 unresolved
从输出信息可以看到,程序对局域网中的所有主机进行了扫描,主机IP地址为192.168.59.0到192.168.59.255。如果扫描的主机存在,则给出对应的MAC地址;如果主机不存在,则显示为unresolved。
2.3.5 根据MAC地址获取主机其他信息
进行数据传输的主机不仅拥有MAC地址,还拥有路由器分配的IP地址,有的还会有自己的主机名、标题等信息。如果知道了主机的MAC地址信息,那么就可以使用netwox工具获取该主机的这些信息。
【实例2-4】已知一主机的MAC地址为00:0C:29:CA:E4:66,显示该主机的其他信息。
(1)显示该主机相关信息,执行命令如下:
root@daxueba:~# netwox 4 -e 00:0C:29:CA:E4:66
输出信息如下:
IP address: 192.168.59.131
Hostname: localhost
Hostnames: localhost
从输出信息可以看到,该主机的IP地址为192.168.59.131,主机名为localhost。
(2)如果在显示信息时只想显示IP地址信息,可以使用--ip选项,执行命令如下:
root@daxueba:~# netwox 4 -e 00:0C:29:CA:E4:66 --ip
输出信息只有IP地址信息,如下:
192.168.59.131
(3)如果在显示信息时只想显示主机名信息,可以使用--host选项,执行命令如下:
root@daxueba:~# netwox 4 -e 00:0C:29:CA:E4:66 --host
输出信息只有主机名信息,如下:
localhost
(4)如果在显示信息时只想显示标题信息,可以使用--title选项,执行命令如下:
root@daxueba:~# netwox 4 -e 00:0C:29:CA:E4:66 --title
执行命令后,如果没有输出信息,表示该主机没有标题信息。
2.4 以 太 网
以太网是现有局域网最常用的通信协议标准,其网络结构通常为星型结构。在网络中,计算机使用传输介质进行连接,网络数据通过传输介质进行传输来完成整个通信。本节将详细讲解以太网中的相关概念。
2.4.1 以太网连接
以太网是目前最为广泛的局域网技术,下面具体讲解网络设备之间连接和数据传输的方法,以及以太网中的两个网络设备进行连接的方法。
1.拓扑结构
计算机网络的拓扑结构是引用拓扑学中研究与大小、形状无关的点、线关系的方法。它把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,而由点和线组成的几何图形就是计算机网络的拓扑结构。以太网结构主要分为总线型和星型两种。
总线型:是指所有计算机通过一条同轴电缆进行连接。
星型:是指所有计算机都连接到一个中央网络设备上(如交换机)。
2.传输介质
不论是总线型还是星型,计算机和通信设备之间进行数据传输都需要有传输介质。以太网采用了多种连接介质,如同轴缆、双绞线和光纤等。其中,双绞线多用于从主机到集线器或交换机的连接,而光纤则主要用于交换机间的级联和交换机到路由器间的点到点链路上。同轴缆作为早期的主要连接介质,现在已经逐渐被淘汰。
3.工作机制
有了传输介质以后,以太网中的数据就可以借助传输介质进行传输了。以太网采用附加冲突检测的载波帧听多路访问(CSMA/CD)机制,以太网中所有节点都可以看到在网络中发送的所有信息。因此,以太网是一种广播网络。它需要判断计算机何时可以把数据发送到访问介质。通过使用CSMA/CD,所有计算机都可以监视传输介质的状态,在传输之前等待线路空闲。如果两台计算机尝试同时发送数据,就会发生冲突,计算机会停止发送,等待一个随机的时间间隔,然后再次尝试发送。
当以太网中的一台主机要传输数据时,工作过程如下:
(1)监听信道上是否有信号在传输。如果有,表示信道处于忙状态,则继续帧听,直到信道空闲为止。
(2)若没有监听到任何信号,就传输数据。
(3)传输数据的时候继续监听。如果发现冲突,则执行退避算法。随机等待一段时间后,重新执行步骤(1)。当冲突发生时,涉及冲突的计算机会返回监听信道状态。若未发现冲突,则表示发送成功。
2.4.2 以太帧结构
以太网链路传输的数据包称做以太帧。在以太网中,网络访问层的软件必须把数据转换成能够通过网络适配器硬件进行传输的格式。
1.工作机制
当以太网软件从网络层接收到数据报之后,需要完成如下操作:
(1)根据需要把网际层的数据分解为较小的块,以符合以太网帧数据段的要求。以太网帧的整体大小必须在64~1518字节之间(不包含前导码)。有些系统支持更大的帧,最大可以支持9000字节。
(2)把数据块打包成帧。每一帧都包含数据及其他信息,这些信息是以太网网络适配器处理帧所需要的。
(3)把数据帧传递给对应于OSI模型物理层的底层组件,后者把帧转换为比特流,并且通过传输介质发送出去。
(4)以太网上的其他网络适配器接收到这个帧,检查其中的目的地址。如果目的地址与网络适配器的地址相匹配,适配器软件就会处理接收到的帧,把数据传递给协议栈中较高的层。
2.以太帧结构
以太帧起始部分由前同步码和帧开始定界符组成。后面紧跟着一个以太网报头,以MAC地址说明目的地址和源地址。帧的中部是该帧负载的包含其他协议报头的数据包,如IP协议。以太帧由一个32位冗余校验码结尾,用于检验数据传输是否出现损坏。以太帧结构如图2.3所示。
图2.3中每个字段含义如下:
前同步码:用来使接收端的适配器在接收MAC帧时能够迅速调整时钟频率,使它和发送端的频率相同。前同步码为7个字节,1和0交替。
帧开始定界符:帧的起始符,为1个字节。前6位1和0交替,最后的两个连续的1表示告诉接收端适配器:“帧信息要来了,准备接收”。
目的地址:接收帧的网络适配器的物理地址(MAC地址),为6个字节(48比特)。作用是当网卡接收到一个数据帧时,首先会检查该帧的目的地址,是否与当前适配器的物理地址相同,如果相同,就会进一步处理;如果不同,则直接丢弃。
源地址:发送帧的网络适配器的物理地址(MAC地址),为6个字节(48比特)。
类型:上层协议的类型。由于上层协议众多,所以在处理数据的时候必须设置该字段,标识数据交付哪个协议处理。例如,字段为0x0800时,表示将数据交付给IP协议。
数据:也称为效载荷,表示交付给上层的数据。以太网帧数据长度最小为46字节,最大为1500字节。如果不足46字节时,会填充到最小长度。最大值也叫最大传输单元(MTU)。在Linux中,使用ifconfig命令可以查看该值,通常为1500。
帧检验序列FCS:检测该帧是否出现差错,占4个字节(32比特)。发送方计算帧的循环冗余码校验(CRC)值,把这个值写到帧里。接收方计算机重新计算CRC,与FCS字段的值进行比较。如果两个值不相同,则表示传输过程中发生了数据丢失或改变。这时,就需要重新传输这一帧。
2.4.3 构建以太帧
通过上一节的学习了解了以太帧的结构。用户可以根据需要设置以太帧的字段值,从而构建以太帧。netwox工具中编号为32的模块提供了以太帧构建功能。
【实例2-5】构建以太网数据帧。
(1)查看以太网数据帧,执行命令如下:
root@daxueba:~# netwox 32
输出信息如下:
Ethernet________________________________________________________.
| 00:0C:29:CA:E4:66->00:08:09:0A:0B:0C type:0x0000 |
|____________________________________________________________|
上述输出信息中的00:0C:29:CA:E4:66为源MAC地址,是当前主机的MAC地址;00:08:09:0A:0B:0C为目标MAC地址,0x0000为以太网类型。
(2)构建以太帧,设置源MAC地址为00:0c:29:c4:8a:de,目标MAC地址为01:02:03: 04:05:06,执行命令如下:
root@daxueba:~# netwox 32 -a 00:0c:29:c4:8a:de -b 01:02:03:04:05:06
输出信息如下:
Ethernet________________________________________________________.
| 00:0C:29:C4:8A:DE->01:02:03:04:05:06 type:0x0000 |
|_____________________________________________________________|
从输出信息可以看到,源MAC地址由原来的00:0C:29:CA:E4:66变为了00:0C:29: C4:8A:DE;目标MAC地址由原来的00:08:09:0A:0B:0C变为了01:02:03:04:05:06。
(3)为了验证构建的以太帧,通过Wireshark工具进行抓包。在链路层中可以看到伪造的源MAC地址和目标MAC地址,信息如下:
Ethernet II, Src: Vmware_c4:8a:de (00:0c:29:c4:8a:de), Dst: Woonsang_04:05:
06(01:02:03:04:05:06)
(4)为了不被其他主机发现,在构造数据包时,可以指定假的源MAC地址。但是,每构造一次只能发送一个数据包。如果需要发送多个数据包,就需要构造多次。为了方便,可以使用macchanger工具临时修改MAC地址,这样就不需要每次构造假的源MAC地址了。例如,将当前主机的MAC地址修改为00:0c:29:aa:e0:28,执行命令如下:
Current MAC: 00:0c:29:ca:e4:66 (VMware, Inc.)
Permanent MAC: 00:0c:29:ca:e4:66 (VMware, Inc.)
New MAC: 00:0c:29:aa:e0:28 (VMware, Inc.)
以上输出信息表示当前主机原来的MAC地址为00:0c:29:ca:e4:66,修改后的MAC地址为00:0c:29:aa:e0:28。
(5)再次使用netwox工具进行发包,默认使用修改后的MAC地址作为源MAC地址,如下:
root@daxueba:~# netwox 32
输出信息如下:
Ethernet_________________________________________________
| 00:0C:29:AA:E0:28->00:08:09:0A:0B:0C type:0x0000 |
|_______________________________________________________ |
2.4.4 以太帧洪水攻击
交换机为了方便数据传输,通常会存储每个端口所对应的MAC地址,形成一张表。当交换机收到计算机发来的以太帧时,就会查看帧中的源MAC地址,并查找存储的表。如果表中存在该MAC地址,就直接转发数据。如果没有,则将该MAC地址存入该表中。
当其他计算机向这个MAC地址发送数据时,可以快速决定向哪个端口发送数据。由于该表不可能是无穷大的,所以当达到一定数量时,将不会储存其他新的MAC地址。再有新的主机发来数据帧时,部分交换机将不再查找对应的端口,而是以广播的形式转发给所有的端口。这样,就使其他主机可以接收到该数据帧了。
netwox工具提供编号为75的模块,用来实现以太帧洪水攻击功能。它可以伪造大量的以太网数据包,填满交换机的存储表,使交换机失去正确的转发功能。
【实例2-6】实施以太帧洪水攻击,执行命令如下:
root@daxueba:~# netwox 75
执行命令后没有任何输出信息,但是会发送大量的以太网数据包。使用Wireshark工具进行抓包,如图2.4所示。图中捕获的数据包为以太帧洪水攻击产生的数据包。
2.5 网络配置信息
计算机的网络配置信息包含网络设备接口、IP地址、MAC地址和掩码等信息。为了方便用户查看计算机中的这些信息,netwox工具提供了对应的模块,用于获取网络配置信息。
2.5.1 显示网络配置信息
为了了解当前网络的相关信息,netwox工具提供了编号为1的模块。它可以显示当前主机的网络接口信息、主机的IP地址信息,以及路由表等信息。
【实例2-7】显示网络配置信息,执行命令如下:
root@daxueba:~# netwox 1
执行命令后将显示当前网络设备信息。由于信息较多,下面对每个部分进行讲解。
(1)显示网络设备接口列表信息如下:
############################## Devices ###############################
nu dev ethernet_hwtype mtu real_device_name
1 Lo0 loopback 65536 lo
2 Eth0 00:0C:29:CA:E4:66 1500 eth0
以上输出信息中每列含义如下:
nu:设备编号。
dev:设备接口名称的简单形式。
ethernet_hwtype:以太网地址或硬件类型。
mtu:MTU值。
real_device_name:设备接口名称的真正形式。
(2)显示IP地址列表信息如下:
################################# IP #################################
nu ip /netmask ppp point_to_point_with
1 127.0.0.1 /255.0.0.0 0
1 ::1/128 0
2 192.168.59.131 /255.255.255.0 0
2 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466/64 0
2 fe80::20c:29ff:feca:e466/64 0
2 fd15:4ba5:5a2b:1008:4c3c:fda9:c3dc:499a/64 0
以上输出信息中每列含义如下:
nu:与此地址关联的设备编号。
ip:IP地址。
netmask:子网掩码。
ppp:点对点的地址。
point_to_point_with:远程端点的地址。
(3)IP4 ARP缓存或IP6 邻居信息如下:
######################### ArpCache/Neighbor ##########################
nu ethernet ip
2 00:0C:29:C4:8A:DE 192.168.59.132
2 00:0C:29:CA:E4:66 192.168.59.131
2 00:0C:29:CA:E4:66 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466
2 00:0C:29:CA:E4:66 fd15:4ba5:5a2b:1008:4c3c:fda9:c3dc:499a
2 00:0C:29:CA:E4:66 fe80::20c:29ff:feca:e466
2 00:50:56:EA:F3:A1 192.168.59.2
2 00:50:56:EA:F3:A1 fe80::250:56ff:fec0:2222
2 00:50:56:F0:69:32 192.168.59.254
以上输出信息中每列含义如下:
nu:与此条目关联的设备编号。
ethernet:计算机的以太网地址。
ip:计算机的IP地址。
(4)显示路由信息如下:
############################## Routes ################################
nu destination /netmask source gateway metric
1 127.0.0.1 /255.255.255.255 local 0
2 192.168.59.131 /255.255.255.255 local 0
2 192.168.59.0 /255.255.255.0 192.168.59.131 100
1 127.0.0.0 /255.0.0.0 127.0.0.1 0
2 0.0.0.0 /0.0.0.0 192.168.59.131 192.168.59.2 100
1 ::1/128 local 0
2 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466/128 local 0
2 fe80::20c:29ff:feca:e466/128 local 0
2 fd15:4ba5:5a2b:1008:4c3c:fda9:c3dc:499a/128 local 0
2 fd15:4ba5:5a2b:1008::/64 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466 0
2 fe80::/64 fe80::20c:29ff:feca:e466 0
2 fd15:4ba5:5a2b:1008::/64 fd15:4ba5:5a2b:1008:4c3c:fda9:c3dc:499a 0
2 fd15:4ba5:5a2b:1008::/64 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466
fe80::250:56ff:fec0:2222 100
2 ::/0 fe80::20c:29ff:feca:e466 fe80::250:56ff:fec0:2222 100
以上输出信息中每列含义如下:
nu:与此条目关联的设备编号。
destination:目标地址。
netmask:掩码。
source:源IP地址或本地路由。
gateway:网关。
metric:路线度量。
2.5.2 显示网络调试信息
如果想了解更多的网络信息,netwox工具还提供了编号为2的模块,用于显示网络调试信息。
【实例2-8】显示网络调试信息,执行命令如下:
root@daxueba:~# netwox 2
执行命令后可以看到,不仅显示了网络配置信息,还显示了调试信息:
Netwox toolbox version 5.39.0. #版本信息
Netwib library version 5.39.0.
####****####****####****####****####
NETWIBDEF_SYSNAME="Linux"
NETWIBDEF_SYSARCH="amd64"
NETWIBDEF_ARCH_ENDIAN=0
NETWIBDEF_ARCH_BITS=64
NETWIBDEF_ARCH_ALIGN=1
#省略其他信息
NETWIBDEF_HAVEVAR_SC_GETPW_R_SIZE_MAX=1
NETWIBDEF_HAVEVAR_SC_GETGR_R_SIZE_MAX=1
Error 0 : ok #0个错误
####****####****####****####****####
############################## Devices ################################
nu dev ethernet_hwtype mtu real_device_name
1 Lo0 loopback 65536 lo
2 Eth0 00:0C:29:CA:E4:66 1500 eth0
################################# IP ##################################
nu ip /netmask ppp point_to_point_with
1 127.0.0.1 /255.0.0.0 0
1 ::1/128 0
2 192.168.59.131 /255.255.255.0 0
2 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466/64 0
2 fe80::20c:29ff:feca:e466/64 0
2 fd15:4ba5:5a2b:1008:4c3c:fda9:c3dc:499a/64 0
########################## ArpCache/Neighbor ##########################
nu ethernet ip
2 00:0C:29:C4:8A:DE 192.168.59.132
2 00:0C:29:CA:E4:66 192.168.59.131
2 00:0C:29:CA:E4:66 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466
2 00:0C:29:CA:E4:66 fd15:4ba5:5a2b:1008:4c3c:fda9:c3dc:499a
2 00:0C:29:CA:E4:66 fe80::20c:29ff:feca:e466
2 00:50:56:EA:F3:A1 192.168.59.2
2 00:50:56:EA:F3:A1 fe80::250:56ff:fec0:2222
2 00:50:56:F0:69:32 192.168.59.254
############################## Routes #################################
nu destination /netmask source gateway metric
1 127.0.0.1 /255.255.255.255 local 0
2 192.168.59.131 /255.255.255.255 local 0
2 192.168.59.0 /255.255.255.0 192.168.59.131 100
1 127.0.0.0 /255.0.0.0 127.0.0.1 0
2 0.0.0.0 /0.0.0.0 192.168.59.131 192.168.59.2 100
1 ::1/128 local 0
2 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466/128 local 0
2 fe80::20c:29ff:feca:e466/128 local 0
2 fd15:4ba5:5a2b:1008:4c3c:fda9:c3dc:499a/128 local 0
2 fd15:4ba5:5a2b:1008::/64 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466 0
2 fe80::/64 fe80::20c:29ff:feca:e466 0
2 fd15:4ba5:5a2b:1008::/64 fd15:4ba5:5a2b:1008:4c3c:fda9:c3dc:499a 0
2 fd15:4ba5:5a2b:1008::/64 fd15:4ba5:5a2b:1008:20c:29ff:feca:e466
fe80::250:56ff:fec0:2222 100
2 ::/0 fe80::20c:29ff:feca:e466 fe80::250:56ff:fec0:2222 100
Error 0 : ok
hint: errno = 19 = No such device
hint: this is not an IPv4 address: fe80::250:56ff:fec0:2222
####****####****####****####****####
:::: After devices_ioctl :::: # devices_ioctl信息
$$$ devices $$$
d=0,lo, m=65536 t=loopback
d=0,eth0, m=1500 t=ethernet>00:0C:29:CA:E4:66
d=0,lo, m=65536 t=loopback
d=0,eth0, m=1500 t=ethernet>00:0C:29:CA:E4:66
$$$ ip $$$
d=0,lo i=127.0.0.1/255.0.0.0 p=false
d=0,eth0 i=192.168.59.131/255.255.255.0 p=false
$$$ arpcache $$$
$$$ routes $$$
:::: After procnetifinet6 :::: # procnetifinet6信息
$$$ devices $$$
d=0,lo, m=65536 t=loopback
d=0,eth0, m=1500 t=ethernet>00:0C:29:CA:E4:66
d=0,lo, m=65536 t=loopback
d=0,eth0, m=1500 t=ethernet>00:0C:29:CA:E4:66
$$$ ip $$$
d=0,lo i=127.0.0.1/255.0.0.0 p=false
d=0,eth0 i=192.168.59.131/255.255.255.0 p=false
d=0,lo i=::1/128 p=false
d=0,eth0 i=fd15:4ba5:5a2b:1008:20c:29ff:feca:e466/64 p=false
d=0,eth0 i=fe80::20c:29ff:feca:e466/64 p=false
d=0,eth0 i=fd15:4ba5:5a2b:1008:4c3c:fda9:c3dc:499a/64 p=false
… #省略其他信息
$$$ routes $$$
d=1,lo i=127.0.0.1/255.255.255.255 s=false g=false m=0
d=2,eth0 i=192.168.59.131/255.255.255.255 s=false g=false m=0
d=2,eth0 i=192.168.59.0/255.255.255.0 s=true,192.168.59.131 g=false m=100
d=1,lo i=127.0.0.0/255.0.0.0 s=true,127.0.0.1 g=false m=0
d=2,eth0 i=::/0 s=true,fe80::20c:29ff:feca:e466 g=true,fe80::250:56ff:
fec0:2222 m=100
Error 0 : ok
hint: errno = 19 = No such device
hint: this is not an IPv4 address: fe80::250:56ff:fec0:2222
####****####****####****####****####
END