一、网络设备。
1.1 什么是网络设备
网络设备是一种连接到网络的实体设备。很多时候我们能够听到,二层设备,三层设备,4层设备,7层设备。下面举例了各种类型设备的代表。
1.2 网络设备举例
| 设备类型 | 常见的设备 |
|---|---|
| 二层设备 | 二层交换机、网桥。 |
| 三层设别 | 三层交换机、路由器 |
| 四层设备 | ELB、SLB、LVS |
| 七层设备 | ELB、SLB、CDN |
二、二层设备
2.1 二层设备在网络中的角色。
二层设备工作在数据链路层,主要是针对局域网来说,因为目前所有的互联网其实是局域网相连接的网。二层设备是进行局域网内的转发。
2.2 二层设备的唯一表示
每个二层以上的网络设备都有一个二层的唯一标识,那就是MAC地址。
三、MAC地址详解
3.1 MAC地址报文结构
如下所示:
高48位的目标MAC,低48位的源MAC,2字节表示类型,接着是数据,最后是循环冗余码,确保数据传输正确。
3.2 MAC地址是如何工作的
在局域网内,A设备发送给B设备,如果知道B设备的MAC地址,那么就直接封装报文,发给B,该局域网内的所有设备都能拿到这个数据报,如果是其他设备C,拿到数据报,发现目标MAC地址不是自己,那么会直接drop。而B拿到该报文,发现MAC地址是自己的,然后会把MAC头卸载掉,然后交给上层内核协议栈去处理。平时为啥没有感知,因为这些都是网卡配合内核协议栈实现了。如果有兴趣可以打开网卡的混杂模式,然后进行抓包,这样就能知道你们家其他人正在访问什么网站,嘿嘿。
四、ARP协议详解。
4.0 MAC地址如何获取
上面说到的A设备发送给B设备,需要知道B设备的MAC地址,才能进行局域网内的传输,那么两个网络设备怎么样才能知道对方的MAC地址呢,这就需要ARP协议(Address Resolution Protocol)。
4.1 ARP协议工作原理
原理如下图所示:
通过局域网广播的方式,获取到对方的MAC地址。
4.2 ARP 缓存
如果每次发数据报文,都发送ARP请求,这样就显得效率很低下。因此每个3层以上的设备都有ARP缓存。
可以通过如下命令获取到当前的arp缓存。
arp -a
执行结果格式为:ip MAC 网络接口 作用域
网络设备是一直处于不断的上线下线的过程中的,缓存也是不可信的,所以arp缓存是有老化时间的。ARP的默认老化时间是1800s,ARP相关的配置可以在以下目录设置:
/proc/sys/net/ipv4/neigh/default/
4.3 设置静态ARP。
有的时候局域网是禁ARP的,所有的ARP都需要手动配置。
可以通过如下命令配置静态ARP:
arp -s ${ip} ${mac}
