1. 请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥负责网路桥接(network bridging),用来连接不同网段之用。链接层设备,基于MAC地址过滤。
集线器物理层设备,基本都属于半双工模式。集线器与网桥在现在的局域网中基本都不用了。
二层交换机工作在数据链路层,基本MAC转发数据,功能齐全的可支持VLAN等功能。常见的有100/1000M、16口/24口/48口。
三层交换机可以处理第三层网络层协议,用于连接不同网段,通过对缺省网关的查询学习来建立两个网段之间的直接连接。
路由器一般用于局域网的出口、不同网络之间的连接的位置,常用的功能主要有各种路由协议、VPN、NAT等功能。
交换机和集线器的区别
(1)在OSI/RM(OSI参考模型)中的工作层次不同
交换机和集线器在OSI/RM开放体系模型中对应的层次就不一样,集线器是工作在第一层(物理层),而交换机至少是工作在第二层,更高级的交换机可以工作在第三层(网络层)和第四层(传输层)。
(2)交换机的数据传输方式不同
集线器的数据传输方式是广播(broadcast)方式,而交换机的数据传输是有目的的,数据只对目的节点发送,只是在自己的MAC地址表中找不到的情况下第一次使用广播方式发送,然后因为交换机具有MAC地址学习功能,第二次以后就不再是广播发送了,又是有目的的发送。这样的好处是数据传输效率提高,不会出现广播风暴,在安全性方面也不会出现其它节点侦听的现象。用集线器组成的网络称为共享式网络,而用交换机组成的网络称为交换式网络。 共享式以太网存在的主要问题是所有用户共享带宽,每个用户的实际可用带宽随网络用户数的增加而递减。这是因为当信息繁忙时,多个用户可能同时“争用”一个信道,而一个信道在某一时刻只允许一个用户占用,所以大量的用户经常处于监测等待状态,致使信号传输时产生抖动、停滞或失真,严重影响了网络的性能。
(3)带宽占用方式不同
在带宽占用方面,集线器所有端口是共享集线器的总带宽,而交换机的每个端口都具有自己的带宽,这样就交换机实际上每个端口的带宽比集线器端口可用带宽要高许多,也就决定了交换机的传输速度比集线器要快许多。交换机在传输数据时是并行传输,多个端口对之间可以同时传输数据,或者一个端口内的各台计算机之间的交换数据不会影响到另外一个端口内的数据通信。
(4)传输模式不同
集线器只能采用半双工方式进行传输的,因为集线器是共享传输介质的,这样在上行通道上集线器一次只能传输一个任务,要么是接收数据,要么是发送数据。交换机可以是半双工操作,也可以是全双工操作。
交换机与路由器区别
交换机运行在OSI模型第二层,路由器运行在第三层。交换机对数据的转发是依托端口和MAC关系表,路由器是依托路由表。交换机主要功能是数据交换,路由器主要功能是路由选择。
三层交换机和传统路由有何区别
(1)主要功能不同
三层交换机与路由器都具有路由功能,但并不能等同。路由器的主要功能是路由功能,其目的是使设备适用面更广、使其更加实用。三层交换机仍是交换机产品,只是具备了一些基本的路由功能,它的主要功能仍是数据交换。而路由器仅具有路由转发这一种主要功能。
(2)主要适用的环境不一样
三层交换机的路由功能通常比较简单,因为它所面对的主要是简单的局域网连接。因此它的路由功能比较简单,没有路由器那么复杂。它用在局域网中的主要用途还是提供快速数据交换功能,满足局域网数据交换频繁的应用特点。而路由器则不同,它的设计初哀就是为了满足不同类型的网络连接,虽然也适用于局域网之间的连接,但它的路由功能更多的体现在不同类型网络之间的互联上,如局域网与广域网之间的连接、不同协议的网络之间的连接等,所以路由器主要是用于不同类型的网络之间。它最主要的功能就是路由转发,解决好各种复杂路由路径网络的连接就是它的最终目的,所以路由器的路由功能通常非常强大,不仅适用于同种协议的局域网间,更适用于不同协议的局域网与广域网间。它的优势在于选择最佳路由、负荷分担、链路备份及和其他网络进行路由信息的交换等等路由器所具有功能。为了与各种类型的网络连接,路由器的接口类型非常丰富,而三层交换机则一般仅同类型的局域网接口,非常简单。
(3)性能体现不一样
从技术上讲,路由器和三层交换机在数据包交换操作上存在着明显区别。路由器一般由基于微处理器的软件路由引擎执行数据包交换,而三层交换机通过硬件执行数据包交换。三层交换机在对第一个数据流进行路由后,它将会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。同时,三层交换机的路由查找是针对数据流的,它利用缓存技术,很容易利用ASIC技术来实现,因此,可以大大节约成本,并实现快速转发。而路由器的转发采用最长匹配的方式,实现复杂,通常使用软件来实现,转发效率较低。
2. IP地址的分类有哪些?子网掩码的表示形式及其作用。
IP地址根据网络ID的不同分为5种类型:A类地址、B类地址、C类地址、D类地址和E类地址。
A类地址的表示范围为:1.0.0.1~126.255.255.255,默认子网掩码为:255.0.0.0;
127.0.0.0到127.255.255.255是保留地址,用做循环测试用的;
0.0.0.0到0.255.255.255也是保留地址,用做表示所有的IP地址。
一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”,即第一段数字范围为1~127。
B类地址的表示范围为:128.0.0.1~191.255.255.255,默认子网掩码为:255.255.0.0;
169.254.0.0到169.254.255.255是保留地址。如果用户IP地址是自动获取IP地址,而在网络上又没有找到可用的DHCP服务器,这时用户将会从169.254.0.0到169.254.255.255中临时获得一个IP地址。
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,即第一段数字范围为128~191。
C类地址的表示范围为:192.0.0.1~223.255.255.255,默认子网掩码为:255.255.255.0;
一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高位必须是“110”,即第一段数字范围为192~223。
D类地址范围:224.0.0.1到239.255.255.254,D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。D类地址用于多点播送。D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。
E类地址科研使用。
子网掩码通常有以下2种格式的表示形式:
1. 通过与IP地址格式相同的点分十进制表示 如:255.0.0.0 或255.255.255.128;
2. 在IP地址后加上"/"符号以及1-32的数字,其中1-32的数字表示子网掩码中网络标识位的长度。
如:192.168.1.1/24 的子网掩码也可以表示为255.255.255.0,子网掩码一般为255.255.255.0。
子网掩码作用:
通过IP 地址的二进制与子网掩码的二进制进行与运算,确定某个设备的网络地址和主机号,也就是说通过子网掩码分辨一个网络的网络部分和主机部分。子网掩码一旦设置,网络地址和主机地址就固定了。子网一个最显著的特征就是具有子网掩码。与IP地址相同,子网掩码的长度也是32位,也可以使用十进制的形式。例如,为二进制形式的子网掩码:1111 1111.1111 1111.1111 1111.0000 0000,采用十进制的形式为:255.255.255.0。
3. 计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
4. 如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
(1)修改/etc/sysconfig/network配套文件中的hostname;
(2)修改/etc/sysconfig/network-script/ifcfg-eth0文件,手动指定IPADDR,GETWAY ,NATMARSK, DNS{1,2,3};
(3)service network restart 重启网络服务。
5. 为Linux主机配置网络信息的方式有哪些,请描述各个过程。
(1)临时修改网络地址
ip addr add 192.168.112.11/24 dev eth0 #ip命令
ifconfig eno16777736 192.168.112.11/24 #ifconfig命令
(2)修改/etc/sysconfig/network-script/ifcfg-eth0文件,手动指定IP address, getway , netmask, dns
6. 写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态。在线的主机使用绿色显示,不在线的主使用红色显示。
#!/bin/bash
#
net='172.16.250.'
echo $net
for i in {1..254}; do
ping -w 2 $net$i &>>/dev/null
if [ $? -eq 0 ]; then
echo -e "\e[1;32m $net$i is alive \e[0m"
else
echo -e "\e[1;31m $net$i is down \e[0m"
fi
done
7. 详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值。
常用的是ifcfg-eth0,表示第一个网络接口配置文件。这些参数值不区分大小写,不区分单引号和双引号,甚至可以不用引号。
TYPE=Ethernet #配置文件接口类型,有Ethernet 、IPsec等类型,网络接口类型为Ethernet。
DEVICE=eth0 #网络接口名称。
BOOTPROTO=none #系统启动地址协议(none、bootp、dhcp、static)。
ONBOOT=yes #系统启动时是否激活(yes是、no否)。
IPADDR=10.0.1.25 #IP地址。
NETMASK=255.255.255.0 #子网掩码。
GATEWAY=10.0.1.1 #网关地址。
BROADCAST=10.10.1.255 #广播地址。
HWADDR=00:0C:29:13:5D:74 #MAC地址。还有MACADDR。只需设置其中一个,同时设置时不能相互冲突。
PEERDNS=yes #是否指定DNS(yes、no)。如果使用DHCP协议,默认为yes。yes:如果DNS设置,修改/etc/resolv.conf中的DNS;no:不修改/etc/resolv.conf中的DNS。
DNS1=10.0.1.41 #DNS地址,可以有多个做备用。当PEERDNS为yes时会被写入/etc/resolv.conf中。
USERCTL=no #用户权限控制(yes、no),yes为非root用户允许控制该网络接口;no为非root用户不运行控制该网络接口。
NM_CONTROLLED=no #是否由Network Manager控制该网络接口。修改保存后立即生效,无需重启。建议一般设为no(不由Network Manager控制),反之为yes。
IPV6INIT=yes #是否支持执行IPv6(yes、no)。yes支持,no不支持。
IPV6ADDR=FD55:faaf:e1ab:1B0D:10:14:24:106/64 #IPv6地址/前缀长度。
8. 如何给网络接口配置多个地址,有哪些方式?
(1)ip addr add 192.168.100.10/24 dev eth0:1
(2)新建 /etc/sysconfig/network-script/ifcfg-eth0:1文件,在文件中配置相关信息
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.100.10
NETMASK=255.255.255.0
9. 常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
ifconfig:
-a 查看所有网络接口信息
ifconfig interface查看指定网络接口信息
ifconfig interface up|down 启用或停用指定网络接口
ifconfig interface ip/mask [up] 设定指定网络接口IP地址和掩码
route:
route [-f] [-p] [command [destination] [mask Netmask] [gateway] [metric Metric]] [if Interface]]
命令参数:
-f 清除所有网关入口的路由表。
-p 与 add 命令一起使用时使路由具有永久性。
add 添加一条新路由。
del 删除一条路由。
-net 目标地址是一个网络。
-host 目标地址是一个主机。
netmask 当添加一个网络路由时,需要使用网络掩码。
gw 路由数据包通过网关。注意,你指定的网关必须能够达到。
示例1:显示所有路由信息
执行命令route -n即可
示例2:添加到主机的路由
route add -host 192.168.1.2 dev eth0
route add -host 10.20.30.148 gw 10.20.30.40 #添加到10.20.30.148的网关
示例3:添加到网络的路由
route add -net 10.20.30.40 netmask 255.255.255.248 eth0 #添加10.20.30.40的网络
route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #添加10.20.30.48的网络
route add -net 192.168.1.0/24 eth1
示例4:添加默认路由
route add default gw 192.168.1.1
示例5:删除路由
route del -host 192.168.1.2 dev eth0:0
route del -host 10.20.30.148 gw 10.20.30.40
route del -net 10.20.30.40 netmask 255.255.255.248 eth0
route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
route del -net 192.168.1.0/24 eth1
route del default gw 192.168.1.1
DNS服务器指定:
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
netstat:
常见参数:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
注意:LISTEN和LISTENING的状态只有用-a或者-l才能看到。
示例1:列出所有端口(包括监听和未监听的):netstat –a
示例2:列出所有 tcp 端口:netstat –at
示例3:列出所有 udp 端口:netstat –au
示例4:列出所有处于监听状态的 Sockets
只显示监听端口 netstat –l
只列出所有监听 tcp 端口 netstat –lt
只列出所有监听 udp 端口 netstat –lu
只列出所有监听 UNIX 端口 netstat –lx
示例5:显示所有端口的统计信息 netstat –s
示例6:显示 TCP 或 UDP 端口的统计信息 netstat -st 或 –su
示例7:在 netstat 输出中显示 PID 和进程名称 netstat –p
示例8:在 netstat 输出中不显示主机,端口和用户名 (host, port or user)
当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。同样可以加速输出,因为不用进行比对查询 netstat -an。
如果只是不想让这三个名称中的一个被显示,则可以使用以下命令:
netsat -a --numeric-ports
netsat -a --numeric-hosts
netsat -a --numeric-users
示例9:持续输出 netstat 信息
netstat 将每隔一秒输出网络信息,netstat –c
示例10:显示系统不支持的地址族 (Address Families),netstat –verbose
示例11:显示核心路由信息 netstat –r,如果使用 netstat -rn 则显示数字格式,不查询主机名称
示例12:找出程序运行的端口:netstat -ap | grep ssh
(并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息)
找出运行在指定端口的进程:netstat -an | grep ':80'
示例13:显示网络接口列表:netstat –i,显示详细信息,使用 netstat –ie
ip:命令格式 ip [OPTIONS] OBJECT {COMMAND | help}
OBJECT={link | addr | route}
ip link用法:show [dev IFACE] [up|down]
set dev IFACE up|down 激活或禁用指定设备
ip link show up 显示所有激活状态的设备
ip link show down 显示所有禁用状态的设备
ip link show dev IFACE显示指定设备信息
ip link show 显示所有设备信息
ip addr用法:ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域;
(global全局可用;link仅链接可用;host本机可用,外部所有的计算机都无法ping通)
[broadcast ADDRESS]:指明广播地址
注意:使用ip addr add添加的地址信息,ifconfig无法查看到。
新增IP:ip addr add 192.168.0.193/24 dev eth0 (查看是否生效 ip addr show eth0)
删除IP:ip addr del 192.168.0.193/24 dev eth0
ip route:路由相关的命令
ip route add:添加路由,ip route add TARGET via GW dev IFACE src
TARGET:主机路由:IP;网络路由:NETWORK/MASK
添加网关:ip route add defalt via GW dev IFACE
ip route delete:删除路由,ip route del TARGET
ip route show:显示路由表信息
[dev DEVICE]:显示指定设备的路由信息
[via PREFIX]:显示指定网关的相关信息
示例:ip route show dev eth0 #查看指定设备的路由信息
ip route flush:擦除路由表信息
[dev IFACE]:擦除指定设备的路由信息
[via PREFIX]:擦除指定网关的相关信息
ss命令:网络状态查看命令
格式:ss [OPTION]... [FILTER]
OPTION:
-t:tcp协议相关; -u:udp协议相关;-w:裸套接字相关;
-x:unix sock相关;-l:listen状态的连接;-a:所有;
-n:数字格式;-p:相关的程序及PID;-e:扩展的信息;
-m:内存用量;-o:计时器信息;-s:列出当前socket信息
常用组合:-tan, -tanl, -tanlp, -uan
FILTER := [ state TCP-STATE ] [ EXPRESSION ]