共计 13212 个字符,预计需要花费 34 分钟才能阅读完成。
网络小白一个,针对网络的基础知识无从下手,因此本文引用了鸟哥私房菜中的众多概念性知识,在此谢过,本文主要从 OSI 七层协议,TCP 协议和一些网络中专业词汇进行解析,并通过子网掩码的划分,网络接口的配置、路由配置等实例来加深对网络的理解。
一、OSI 七层协议:
OSI 七层协议的由来:
由于网络链接过程相当复杂,包括硬件数据封装与应用程序的相互链接等,如果想要写一个网络链接的全部功能都集中在一起的程序,那么任何一个环节出错,整个程序都要改写,非常麻烦,因此我们将整个网络链接过程分成多个层次来处理,且每层数据传递是顺序传递的,这就是 OSI 七层协议。
七层协议的特点:
每个层次都有特定独立的功能
每个层次的代码可以独立编写
层与层之间的功能互不干扰
每一层次只认识对方同一层的数据
在七层协议中,每层都会有自己独特的头部数据(header):告知对方这里面的信息是什么,而真正的数据在后面
下面来详细介绍七层协议中每一层的含义:
Layer1 物理层:由于网络传输介质传输的是比特位(01),因此物理层必须定义所使用的传输设备的电压和信号等,同时还必须了解数据帧转换成比特流的编码方式,最后链接实际传输介质并发送 / 接收比特信号。
Layer2 数据链路层:硬件部分,主要处理 MAC 数据帧,传递给物理层转换成比特流;软件部分主要处理来自上层的数据表转换成 MAC 的格式。相关协议:PPP
Layer3 网络层:定义 IP 地址,定义计算机之间的链接建立,终止维护等,数据包的传输路径选择等。相关协议:IP、ICMP、ARP、RARP
Layer4 传输层:定义发送端与接收端的链接技术(TCP,UDP),同时包括该技术的数据包格式,数据包的发送,流程的控制等,以确保各个资料数据可以正确无误的到达目的端。相关协议:TCP、UDP
Layer5 会话层:确定网络服务建立链接的确认。
Layer6 表示层:定义网络服务(或程序)之间的数据格式的转换,使数据格式标准化,也包括数据的加密解密也是在这层上处理
Layer7 应用层:将数据发送给应用程序,并最终展示给用户。相关协议:HTTP、FTP、SMIP 等
二、TCP/IP 及其他协议
虽然 OSI 七层协议的架构非常严谨,但是由于太过严谨导致程序编写相当不容易,因此产生了 TCP/IP 协议。
TCP/IP 的网络接口层的相关协议
广域网使用的设备
传统电话拨号链接:通过 PPP 协议
整合服务数字网络(ISDN)
非对称数字用户环路(ADSl):使用 PPPoE 协议
电缆调制解调器(Cable Modem)
局域网使用的设备—以太网
CAT5 等级的网线大概可以支持 100 米的长度
以太网的网络接头:分为交叉和直连 RJ-45,又因为每条芯线的对应不同,而分为 568A 和 568B 接头,这两款芯线内部的顺序为:
事实上,虽然目前的以太网线有 8 芯且两两成对,但实际使用只有 1、2、3、6 芯而已,其他的则时某些特殊用途的场合才会使用,但是由于主机与主机链接以及主机与集线器链接时,所使用的网线线序定义并不相同,因此有由于接头的行不同网线有可分为两种:
交叉线:一边为 568A 一边为 568B 的接头时称为交叉线,用在直接链接两台主机的网卡。
直连线:两边接头同为 568A 或 568B 时称为直连线,用在链接主机网卡与集线器之间的线缆。
以太网的传输协议:CSMA/CD
带冲突检测的载波侦听多路访问的数据传输的工作方式,其工作原理为:检测线路是否空闲,空闲则发包,并且边发边检测侦听,一旦冲突就立即停止发送,只要符合 CSMA/CD 机制的网络就称为以太网。
交换机可以有效的避免冲突,交换机可以自动选择路线,,每一个端口就是一个冲突域,且每个端口有收发两根线实现全双工功能,交换机可以链接多个不同的多个冲突域,路由器可以链接多个不同的广播域。
MAC 的封装格式
数据链路层的工作是基于 MAC 地址工作的,CSMA/CD 发送出去的数据帧就是 MAC,该数据帧上面存储了两个非常重要的数据,就是目标与来源的网卡卡号,因此我们又称网卡卡号为 MaC 地址。下图中目的地址和来源地址就指的网卡卡号。
MTU
以太网中数据帧能够存储数据的最大单位,标准定义为 1500bytes,这就时 MUT 的最大传输单元。(IP 数据包最大可达到 65535bytes),可以增大 MTU 来提高网络使用率,但是无法确认所有网络设备都支持更大的 MTU,如果不支持则可能导致数据包丢失等问题。所以 MTU 设定 9000bytes 可以设置在内部网络的环境中部署,外网还是应该保持原有的 1500 标准。
集线器、交换器与相关机制
集线器(hub):Hub 并不记忆该信息包是由哪个 MAC 地址发出,哪个 MAC 地址在 Hub 的哪个端口,且每个端口共享带宽,半双工工作机制,因为 CSMA/CD 的缘故,在很忙的网络环境中,集线器(Hub)这个网络共享设备就可能发生冲突的情况。工作与物理层。
交换机:在交换机内部有一个特别的内存,这个内存可以记录每个 Switch port 与其链接的 PC 的 MAC 地址,所以当来自 Switch 两端的 PC 要相互传输时,每个数据帧将通过交换机内存数据而传送到目标主机上,且每个端口有独立的带宽,全双工工作机制,工作于数据链路层,如果是三层交换机(具有路由功能),则工作于网络层。
TCP/IP 的网络层相关数据包与数据
IP 数据包的封装
了解 IP 数据包的封装,才能知道 IP 到底时如何产生的,IP 数据包可达到 65536bytes
Ver:声明这个 IP 数据包的版本
IHL:数据包的包头长度,4 个字节一个单位
Service:服务类型
PPP:表示 IP 数据包的优先级,很少使用;
D:若为 0 表示一般延迟,若为 1 表示为低延迟;
T:若为 0 表示一般传输量,若为 1 表示高传输量;
R:若为 0 表示为一般可靠度,若为 1 表示高可靠度。
Packet Length:IP 总长度,包括包头和数据部分,最大可达到 65535bytes
Identification:识别码,上面介绍过帧的默认最大传输单元为 1500bytes,而 IP 包最大可以到 65536bytes,那么要想将 IP 包封装到数据帧中就必须将其分割成更小的 IP 包,那个这个识别码就是用于识别这此小的 IP 分段是否来自同一个 IP 包。
Flag:D:若为 0 表示可以分段,若为 1 表示不可分段;
M:若为 0 表示此 IP 为最后分段,若为 1 表示非最后分段。
Frag Offset:表示目前这个 IP 分段在原始的 IP 包中所处的位置,相当于这个 IP 分段的序号。通过包的总长度、识别码、特殊标志、分段偏移就可以将小的 IP 分段在接收端组合成完整的 IP 数据包。
Time to Live:范围 0 -255。当数据包通过一个路由器时就会减 1,当 TTL 为 0 时数据包被丢弃,Linux 中 可通过修改 /etc/sys/net/ipv4/ip_default_ttl 来设置 ttl 的大小,默认 64 windows 128
Protocol:记录来自传输层和网络层本身的协议信息。常见代码如下:
1:ICMP
4:IP
6:TCP
17:UDP
Header Checksum(报头校验码):用于检查 IP 报头是否存在错误。
Source Address(源 IP 地址):发送端的 IP 地址。
Destination Address(目标 IP 地址):接收端的 IP 地址。
Options(其它参数):包括安全处理机制、路由记录、时间戳等
ICMP 协议:因特网信息控制协议
ping 与 traceroute 就是利用 ICMP 来检验网络的状态的。—–探测网络状态的
禁用 ping 命令:root@cenots6.8 ~ # cat /proc/sys/net/ipv4/icmp_echo_ignore_all
0 —–将该位置为 1
启用 ping 广播地址 root@cenots6.8 ~ # cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
1 ——–将该为置为 0 可用于探测网络中有哪些主机启动,哪些主机处于关机状态
补脑:Dos 攻击 Ping –f 10.1.250.95 –s 65507 泛洪 发送大量数据包给该 ip,查看网卡利用率会很高,DDOS 成千上万台计算机给指定计算机发送大量数据包
ARP 网络地址解析协议
RARP 反向网络地址解析协议
当我们想要了解某个 IP 配置于哪张以太网卡上面,我们主机会对整个局域网发送出 ARP 数据包,对方接收到 ARP 数据包后就会返回他们的 MAC 给我们,知道对方的网卡地址后就可以传递数据了,当 ARP 协议取得目标 IP 与它的网卡卡号后,就会将其记录到 ARPtable(内存中)中记录 20 分钟,Linux 中对应命令 arp –n.
TCP/IP 的传输层相关数据包与数据
面向链接的可靠的 TCP 协议
在网络的 IP 之上是传输层,在传输层数据被打包层 TCP 数据包。
源端口:端口是用来标记应用程序的,源端口是连接发起端使用的端口,通常为随机端口。
目的端口:常用的应用都会规定有固定的端口号,如 http 使用 80 端口,ssh 使用 22 端口。
顺序号:当 IP 包过太时,需要对包进行分段。顺序号就是记录每个数据包的顺序,以方便接收端将包重新组合。
确认号:当接收端收到数据包后会向发送端发送确认号,告诉发送端数据包被正确传递。
TCP 头长:用于调整整个 TCP 数据包的大小,说明整个数据包字段的起始位置。
控制标志码:
URG:为 1 代码为紧急数据包,接收端应紧急处理。
ACK:为 1 代表这人数据包为响应数据包。
PSH:为 1 代表要求对方立即传送缓冲区的其他对应数据包,而无须等待缓冲区满了才送。
RST:为 1 代表连接会被马上结束,强制结束连接。
SYN:为 1 代表发送端希望双方建立同步连接,表示主动连接对方。
FIN:为 1 代表传送结束。
窗口大小:用于控制数据包流量,表示缓冲区是否还可以接收数据,为 0 表示无法接收数据。
校验和:发送端首先会计算一个检验码,接收端收到数据包后会再次计算这个值,如果两个值相符合就接受数据包,否则就认为此数据包已损坏。
紧急指针:URG 为 1 时才有作用,告知紧急数据所在的位置。
可选项:表示接收端可以接收的最大数据段容量。为 1 代表连接会被马上结束,强制结束连接。
TCP 的三次握手
A:数据包发起。
发起端随机使用一个大于 1024 的端口发起请求,在 TCP 报头中标记 SYN 为 1。
B:数据包接收并确认。
接收端收到数据包后,回自复一个带有 SYN=1,ACK= 1 的数据包,告诉发送方已接收到数据包,并等发起端的回复。
C:回复确认数据包。
发起端收到确认数据包后再次发送一个确认数据包(ACK=1),告诉接收端可以建立连接。
D:建立连接。
接收端收到 ACK= 1 的确认数据包后,就可以建立起连接了
无连接的 UDP 协议
UDP 全程的全程是用户数数据报协议,UDP 与 TCP 不一样,UDP 不提供可靠的传输模式,因为它不是面向链接的机制,这是因为 UDP 传送过程中,接收端在接收到数据包之后,不会回复相应数据包给发送端,所以数据包并没有像 TCP 数据包有严谨的检查机制。(一直在发送信息,你有没收到我不知道,我也不等待你给我回应,我就是一直发)
三、IP 的组成与分级
IP 地址:它可以唯一表示 IP 网络中的每台设备,每台主机(计算机、网络设备、外围设备)必须有唯一的地址。
Net_ID 与 Host_ID
在同一网段内,Net_Id 是不变的,而 Host_ID 是不可重复的,此外,Host_ID 在二进制的表示法中,可以同时为 0,也不可同时为 1,例如:192.168.0.0/255.255.255.0 就是属于网络地址,192.168.0.255/255.255.255.0 就属于广播地址
Host_ID 同时为 0 表示网络地址(Network_IP)
Net_ID 同时为 1 表示广播地址(BroadcastIP)
在局域网内通过 IP广播传递数据
在相同物理网段的主机如果使用相同的网络 IP 范围,则这些主机都可以通过 CSMA/CD 的功能直接在局域网内用广播进行网络的链接,即直接通过 MAC 数据来进行数据传递
IP 的分级
IP 的种类与取得方式
在 IPV4 中两种 IP 类别:
Public IP:公共 IP,经由 InterNIC 统一规划的 IP,只有这种 IP 才可链接到 Internet
Private IP:私有 IP 或保留 IP,不能直接连上 Internet 的 IP,主要用于局域网络内的主机链接规划
私有 IP 网段:
Class A:10.0.0.0/8~10.255.255.255/8
Class B:172.16.0.0/16~172.31.255.255/16 CIDR 格式:172.16.0.0/12
Class C:192.168.0.0/24~192.168.255.255/24 CIDR 格式:192.168.0.0/16
由于这三段 Class 的 IP 是预留使用的,所以并不能直接作为 Internet 上面的连接使用,否则会导致到处都有相同的 IP。
Netmask、子网与 CIDR
Netmask:子网掩码
将 Net_ID 处全部标记为 1,Host_ID 处全部标记为 0 就可计算出 netmask 的值。–与 ip 地址相与得到网络地址。
划分子网:一个大网络分成若干个子网
网络 ID 向主机 ID 借位 n 位 n,子网数为 2^n,
损失 IP 数 =(2^n-1)*2
划分超网:合并多个小的子网成一个大的超网
主机 ID 向网络位 ID 借位,划分超网时,需要注意不网络的范围,如果合并范围包含其他公司的网络则不能划分。
应用举例:
1、某公司申请到一个 C 类 IP 地址,但要连接 6 个的子公司,最大的一个子公司有 26 台计算机,每个子公司在一个网段中,则子网掩码应设为?
分析:由于 6 个子公司,每个子公司要在一个单独的网段中,因此至少需要 2^n>=6,因此能够得到 n =3,最大主机数 2^(8-3)-2=30 个网络,满足大于等于 26 的需求
192.168.0.000 00001
192.168.0.000 11110
…….
192.168.0.101 00001
192.168.0.101 11110 第 6 个网络的地址
因此能够得到:
192.168.0.1/27 – 192.168.0.161/27 第一网络的地址及范围
…….
192.168.0.1/27 – 192.168.0.190/27 第六个网络的地址及范围
2、一家集团公司有 12 家子公司,每家子公司又有 4 个部门。上级给出一个 172.16.0.0/16 的网段,让给每家子公司以及子公司的部门分配网段。
分析:因为有 12 个子公司,因此至少要划分 2^n>=12 个子网,因此能够得到 n =4,因此需要向主机位借 4 个,能够划分 16 个子网,但是只用 12 个,剩余 4 个闲置,因此划分后得到:
172.16.0.0/16 划分 16 个子网
172.16.0000 0000.00000001 ——— 172.16.0.1/20
172.16.0000.1111.11111110 ——— 172.16.15.254/20 第一个网络的地址及范围
………
172.16.1011 0000.00000001 ——— 172.16.176.1/20
172.16.1011 1111.11111110 ——— 172.16.191.254/20 第十二个网络地址及范围
………
172.16.1111 0000.00000001 ——— 172.16.240.1/20
172.16.1111 1111.11111110 ——— 172.16.255.254/20 最后一个网络地址及范围
又因为每个公司又有 4 个部分,因为要在 12 个子网的基础上再次划分子网,所以还需要在向主机位借 2 位即可,下面以第一个子公司划分为 4 个子网为例,因此又能够得到:
172.16.0000 00 00.00000001 ——— 172.16.0.1/22
172.16.0000 00 00.11111110 ——— 172.16.0.254/22 第一个网络地址及范围
………
172.16.0000 11 00.00000001 ——— 172.16.12.1/20
172.16.0000 11 00.11111110 ——— 172.16.12.254/20 第四个网络地址及范围
特殊地址:
0.0.0.0:不是一个真正意义上的 IP 地址。它表示一个集合:所有不清楚的主机和目的网络。
255.255.255.255:限制广播地址。对本机来说,这个地址指本网段内 (同一广播域) 的所有主机
127.0.0.1~127.255.255.254:本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为“127.0.0.1”的 数据包。
224.0.0.0 到 239.255.255.255:组播地址,224.0.0.1 特指所有主机,224.0.0.2 特指所有路由器。
224.0.0.5:指 OSPF 路由器,地址多用于一些特定的程序以及多媒体程序
169.254.x.x:如果 Windows 主机使用了 DHCP 自动分配 IP 地址,而又无法从 DHCP 服务器获取地址,系统会为主机分配这样地址。
四、路由
路由的功能:跨网络通信时选择传输路径。
路由的分类:
主机路由:目标地址为单个 IP
网络路由:目标地址为 IP 网络
默认路由:目标为任意主机 0.0.0.0/0.0.0.0.0
接口:自己路由器上面一个能够指向目标地址的端口
root@cenots6.8 ~ # dmesg | grep -i eth 查看网卡驱动模块信息
e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:c4:17:61
e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
root@cenots6.8 ~ # rmod e1000 或 modprobe -r e1000
root@cenots6.8 ~ # lsmod |grep e1000 查看模块信息
root@cenots6.8 ~ # modprobe e1000 在把模块加载回来
网关:指向目标地址的下一个路由器的临近接口,这里需要注意的是主机与你的主机配置的 gateway 一定要在同一网段内。
DNS:将主机名解析为 IP 地址
配置文件:/etc/resolv.conf
本地 dns 数据库:/etc/hosts 里面可以自行指定 ip 地址和主机名,且主机名可以有多个别名,然后 ping 主机名就可以看到对应的 ip 地址
将主机名解析为 ip 地址
dig -t A www.magedu.com((dig 测试时,是不会查看 /etc/hosts 的,而是通过 DNS 服务器查看的)
dig-t A FQDN 解析主机名为 ip
FQDN–> IP
dig -x IP 解析 ip 为主机名 但是互联网上面大多数服务器都不支持反解
DNS 服务器地址:
114.114.114.114(china)
8.8.8.8(谷歌)
网络配置文件:/etc/sysconfig/network-scripts/ifcfg- 接口名称
DEVICE= 接口名称 定义接口名称:/etc/udev/rules.d/70-persistent-net.rules 需要注意的是两个文件中接口名称必须一致,否则会报错
TYPE=Ethernet
UUID: 设备唯一标识
ONBOOT: 是否开机自动连接
NM_CONTORLLED=yes 是否接受 NetworkManager 控制 service NetworkManager status,该服务在 centos6 中不稳定,建议 no
BOOTPROTO=static none dhcp 或者把这行干掉直接写 IPADDR
IPADDR=ipv4 地址
NETMASK= 子网掩码
PREFIX= 子网掩码的简单格式
GATEWAY= 网关
DNS1=8.8.8.8(谷歌的网关)
DNS2=114.114.114.114(中国的网关)网关可以加三个
DNS3=8.8.4.4(谷歌的)
HWADDR= 网卡地址 如果要改 mac 地址需要用 MACADDR 名字
PEERDNS=yes 如果 BOOTPROTO 的值为“dhcp”,是否允许 dhcp server 分配的 dns 服务器指向信息直接覆盖至
ONPARENT=yes 物理网卡启动就启动别名
最省略写法:2 行
DEVICE=eth1
BOOTPROTO=dhcp
静态配置 IP 地址:
DEVICE=eth1
IPADDR=10.1.1.1
PREFIX=16
GATEWAY=10.1.1.254
DNS1=8.8.8.8
注意:配置完成后要重新启动服务 service network restart
网络接口设备别名:为每个设备别名生成独立的接口配置文件,在启用之前首先要关闭 NetworkManager 服务,且必须使用静态 IP。
service NetworkManager stop(临时关闭)/chkconfig NetworkManager off(下次开机时关闭)
网络接口配置 bonding:
将多块网卡绑定同一个 IP 地址对外提供服务,可以实现高可用和负载均衡,直接给两块网卡绑定一个 IP 是不可能的,通过 bonding 虚拟一块网卡对外提供链接,但是需要两块网卡修改为同一个 MAC 地址。
bonding 的工作模式:
Mode 0 (balance-rr) 轮询模式
轮转(Round-robin)策略:从头到尾顺序的在每一个 slave
接口上面发送数据包。本模式提供负载均衡和容错的能力
——轮流的往网卡上面发数据包,两个网卡都走数据,第一个用户来了请求第一个快网卡,第二个用户来了请求第二块网卡,如果二块网卡坏了,来了第一个用户,第一个网卡,来了第二个就可能走第二块网卡,因此能够实现均匀负载,但容错能力较差。
Mode 1 (active-backup)
活动 - 备份(主备)策略:在绑定中,只有一个 slave 被激活。
当且仅当活动的 slave 接口失败时才会激活其他 slave。为了避免交换机发生混乱此时绑定的 MAC 地址只有一个外部端口上可见
—–主备模式,两块网卡,默认第二块是不工作的,只有第一块网卡坏了才工作,性能不好,有容错性
Mode 3 (broadcast)
广播策略:在所有的 slave 接口上传送所有的报文。本模式提供容错能力。
配置方法:
root@cenots6.8 /etc/sysconfig/network-scripts # cat ifcfg-eth1 ifcfg-eth2
DEVICE=eth1
SLAVE=yes
MASTER=bond0
DEVICE=eth2
SLAVE=yes
MASTER=bond0
root@cenots6.8 /etc/sysconfig/network-scripts # cat ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.1.105
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
BONDING_OPTS=”miimon=100 mode=1″
miimon:是用来进行链路监测的。如果 miimon=100,那么系统每 100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
cat /proc/net/bonding/bond0 可以查看绑定信息
如需卸载:先 ifconfig bond0 down 然后 rmmod bonding 卸载掉该模块
实验时,IP 地址可以配置与自己 windows 中的 IP 在一个网段,在虚拟机图形界面右下角,网卡图标点击断开连接进行测试,在 windows 界面 ping 配置的 IP 地址即可。
路由功能实例:现有路由 R1 和 R2,R1 有两个接口分别是 R1- 0 和 R1-1,R1- 0 链接网络 192.168.0.1/24,R1- 1 连接网络 10.0.0.1/8 且与路由 R2 路由的 R2- 1 接口相连,R2- 1 的接口地址为 10.0.0.2/8,R2- 0 的接口连接网络 172.16.0,1/16.
因此可以得到
R1 的路由表为:
网络地址 接口 网关
172.16.0.0/16 R1-1 10.0.0.2 注意在添加路由表的时候不用添加相邻网段的,加不相邻的就可以,因此 配置路由表示 添加此网络即可
192.168.0.0/24 R1-0 192.168.0.1
10.0.0.0/8 R1-1 10.0.0.1
R2 的路由表
网络地址 接口 网关
192.168.0.0/24 R2-1 10.0.0.1 注意在添加路由表的时候不用添加相邻网段的,加不相邻的就可以,因此 配置路由表示 添加此网络即可
10.0.0.0/8 R2-1 10.0.0.2
172.16.0.0/16 R2-0 172.16.0.1
模拟实例:分别用两个 centos6 虚拟机,模仿两个路由,每个虚拟机要用有两个虚拟网卡,模拟两个接口,具体设置如下:
R1 的网卡中的配置文件:
ifcfg-eth0
DEVICE=eth0
IPADDR=192.168.0.1
PREFIX=24
ifcfg-eth1
DEVICE=eth1
IPADDR=10.0.0.1
PREFIX=8
配置完成后重启网络服务:service network restart 该步一定要放在 route add 之前,否则 route add 添加的内容会被刷掉
route add -net 172.16.0.0/16 gw 10.0.0.2 dev eth1
配置完成后截图如下:
当做路由器使用必须要启用:echo 1 > /proc/sys/net/ipv4/ip_forward 启用路由转发功能
关闭防火墙:iptables -F
R2 的网卡中的配置文件:
ifcfg-eth0
DEVICE=eth16777736
IPADDR=172.16.0.1
PREFIX=16
ifcfg-eth1
DEVICE=eth33554984
IPADDR=10.0.0.2
PREFIX=8
配置完成后重启网络服务:service network restart
route add -net 192.168.0.0/24 gw 10.0.0.1 dev eth33554984
配置完成后截图如下:
当做路由器使用必须要启用:echo 1 > /proc/sys/net/ipv4/ip_forward 启用路由转发功能
关闭防火墙:iptables -F
找两个主机分别配置 192.168.0.100/24 gw 192.168.1.1
172.16.0.100/16 gw 172.16.0.1
两个主机相互 ping 对方主机地址 根据 ttl 经过路由的状态,查看工作是否正常。
也可以根据 tracert 172.16.0.100 查看跳数
注意:echo 1 > /proc/sys/net/ipv4/ip_ipforward 由于是内核文件存不住盘,因此可以修改 /etc/sysctl.conf 使其永久有效,sysctl -p 重新读改过的文件