网络接口
网络接口的命名
网络接口并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的。
例如:
- eth0: ethernet的简写,一般用于以太网接口。
- wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。
- ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口。
- lo: local的简写,一般指本地环回接口。
网络接口如何工作
- 网络接口是用来发送和接受数据包的基本设备。
- 系统中的所有网络接口组成一个链状结构,应用层程序使用时按名称调用。
- 每个网络接口在linux系统中对应于一个struct net_device结构体,包含name,mac,mask,mtu…信息。
- 每个硬件网卡(一个MAC)对应一个网络接口,其工作完全由相应的驱动程序控制。
虚拟网络接口
- 虚拟网络接口的应用范围非常广泛。最着名的当属“lo”了,基本上每个linux系统都有这个接口。
- 虚拟网络接口并不真实地从外界接收和发送数据包,而是在系统内部接收和发送数据包,因此虚拟网络接口不需要驱动程序。
- 虚拟网络接口和真实存在的网络接口在使用上是一致的
ifconfig
执行命令:ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::5054:ff:fe4d:77d3 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:4d:77:d3 txqueuelen 1000 (Ethernet)
RX packets 778 bytes 88974 (86.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 591 bytes 96182 (93.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.31.10 netmask 255.255.255.0 broadcast 192.168.31.255
inet6 fe80::a00:27ff:fef8:1597 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:f8:15:97 txqueuelen 1000 (Ethernet)
RX packets 7597 bytes 974647 (951.8 KiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 105 bytes 18050 (17.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 68 bytes 5896 (5.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 68 bytes 5896 (5.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
其他说明:
eth0 表示第一块网卡, 其中 HWaddr 表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是 00:50:56:BF:26:20
inet addr 用来表示网卡的IP地址,此网卡的 IP地址是 192.168.120.204,广播地址, Bcast:192.168.120.255,掩码地址Mask:255.255.255.0
lo 是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。
OSI参考模型、通信七层模型
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
TCP/IP模型、通信五层模型
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
对应数据类型
通信层次 | 传输数据名称 |
---|---|
应用层 | 应用数据 |
传输层 | 数据段 |
网络层 | 数据包 |
数据链路层 | 数据帧 |
物理层 | 位byte |
数据链路层
- 交换机工作基于此传输层
- vlan
交换机的两个模式:
1、access访问模式,单个vlan,连接计算机用
2、trunk模式,承载多个vlan,连接交换机用
为什么需要网络层?
理论上只有数据链路层+物理成就可以实现网络通信,只需要交换机足够多,都链接起来,每个终端都链接上交换机,交换机与交换机使用trunk模式链接在一起,再通过vlan就可以实现项目通信。
但是如果终端设备较多,当有人发出信息,就需要广播给所有人,然后在根据vlan判断,广播域太大,所有交换机链接在一起的就是同一个广播域
网络层
- 核心目的,分割广播域
- 路由器分割广播域
- ip地址具有逻辑特性,时mac地址无法做到的
- ip地址
4组8位二进制
0.0.0.0 ~ 255.255.255.255
第一组的范围区分ip类型
A类(1~126)
B类(128~191)
C类(192~223)
127回环地址:自己如127.0.0.1
子网掩码
子网掩码配合ip做逻辑与运算,得出是否在同一网段上,判断是否可以通信
192.168.54.2 & 255.255.255.0 = 192.168.54.0
192.168.54.3 & 255.255.255.0 = 192.168.54.0
所以,192.168.54.2 和 192.168.54.3在同一网段
- 子网掩码255.255.255.0吧ip地址分成两个部分,前3组8为二进制为网路部分,后1组为主机部分
- 可用主机为1~254 (0,255)被占用,0网络地址 ,255广播地址
问题,如果有260个主机,能否使用标准的C类地址通信?
答案:不能
解决方案,使用B类地址
ip:172.18.1.1
子网掩码:255.255.0.0
可用地址:172.18.0.0 ~ 172.18.255.255
两个不同网段之间的通信,中间必须要使用路由器
路由器分割网络、连接不同的网段
工作过程:192.168.1.10 -> 192.168.4.25
- 路由器识别为非同网段,需要通过路由器转发
- 路由器A发现目标网段时4.0,所以通过自己的路由表对应为S0接口发送出去
- 路由器B接收到请求,目标地址为4.0,通过自己的路由表对应为E0接口发送出去
- 目标终端接收到请求,单向通信成功
- 返回响应:192.168.4.25 -> 192.168.1.10
- 路由器B识别发送目标网段1.0,通过自己的S0接口发送出去
- 路由器A收到请求,目标地址为1.0,通过自己的路由表对应为E0接口发送出去
- 目标终端接收到请求,至此,双向通信完成
- 路由表
路由器中维护路由条目的集合
路由器根据路由表做路径选择
#查看路由表命令
show ip route
两个路由器之间的链接:
- 链接上两个路由器如:A路由器->S0接口,B路由器-> S0接口
- 配置A路由器S0接口ip:192.168.2.1,配置B路由器S0接口:192.168.2.2
- 路由器A B之间就可以完成通信
- 直连网段:配置ip地址、接口。如上述:路由器A 192.168.1.0网段,路由器B 192.168.4.0网段
- 非直连网段:需要静态路由或者动态路由,将网段添加到路由表中,如上述:路由器A 192.168.2.0网段,路由器B 192.168.2.0网段
使用cisco paket tracer模拟网络组建
- 实验一:
由一台路由器,自动生成直连网段
- 组建两组局域网(每个局域网由一台交换机和两台主机组成)
- 使用一台路由器链接两个网络
- 为路由器的接口配置本网段的ip地址
- 路由器配置完成,pc没有配置网关,不能由 192.168.1.1 ping通192.168.2.1
- 给pc端配置网关:192.168.1.1/24需要配置链接到路由器的ip 192.168.1.254 ,192.168.2.1/24需要配置链接到路由器的ip 192.168.2.253,只有配置了网关的pc机,才可能访问其他网段pc
网关:能否通信,与网关配置是无关的,但是只要电脑发现出网地址与自己不在同一网段,都需要全部交给网关来处理
- 实验二:
- 组建两组局域网(每个局域网由一台交换机和两台主机组成)
- 使用两台台路由器链接两个网络
- 为路由器的接口配置本网段的ip地址
- 每个网段能够独立通信
- 为路由器,添加静态路由(两个路由器都需要配置)
注意配置端口,屡清楚逻辑
如果出现问题,可以每段独立ping,了解哪个环节出现问题
在没有配置路由表时,路由表中只有直连网段:show ip route
ip | 接口 |
---|---|
192.168.1.0 | Fa0/0 |
192.168.3.0 | Fa0/1 |
添加静态路由:
查看路由:show ip route
进入特权:enable
进入全局:config t
配置路由:ip route 192.168.2.0 255.255.255.0 f0/1
解释:如果目标为2.0网段,就使用f0/1接口发送出去