1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。
集线器的英文称为“Hub”。主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI参考模型第一层,即“物理层”。
二层交换机工作于OSI模块的第2层(数据链路层),故称为二层交换机。可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
三层交换机就是具有路由功能的交换机。
路由器工作于OSI参考模型的第3层(网络层),是连接因特网中各局域网、广域网的设备,它根据信道的情况自动选择和设定路由,以最佳路径,按前后顺发送信号
2、IP地址的分类有哪些?子网掩码的表示形式及其作用。
A类:1-127默认子网掩码:255.0.0.0 私网地址:10.0.0.0/8
B 类:128-191默认子网掩码:255.255.0.0 私网地址:172.16.0.0/16-172.31.0.0/16
C 类:192-223默认子网掩码:255.255.255.0私网地址:192.168.0.0/24-192.168.255.0/24
D 类:223-254
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI七层模型:
应用层:提供应用程序之间通信,
表示层:处理数据格式、数据加密
会话层:建立,维护,管理会话连接涉及操作系统和网络接口和各种数据
传输层:建立主机端到端连接,涉及物理设备:四层交换机
网络层:寻址和路由选择涉及物理设备:路由器
数据链路层:提供介质访问,链路管理,将数据分帧并处理流控制。网卡,网桥,交换机
物理层:比特流传输,将数据转换为可通过物理介质传送的电子信号物理设备双绞线、同轴电缆,集线器
TCP/IP4层模型:
网络访问层:功能包括IP地址与物理硬件地址的映射,以及将IP分组封装成帧。基于不同硬件类型的网络接口,定义了和物理介质的连接。相当于OSI参考模型的物理层和数据链路层。
网际层:处理来自传输层的分组发送请求;处理输入数据报;处理ICMP报文,即处理网络的路由选择、流量控制和拥塞控制等问题。在功能上类似于ISO/OSI参考模型中的网络层。
传输层:主要功能是可靠而又准确地传输并控制源主机与目的主机之间的信息流,提供端到端的控制,通过滑动窗口机制提供流控制,通过序列号和确认机制来保证可靠性。
应用层:包括所有的高层协议,与OSI的应用层协议相差不大,包括HTTP、Telnet、FTP、SMTP、POP3、DNS等。
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
1)使用ifconfig -a命令查看是否有发现网卡,如果未发现网卡,检查网卡驱动是否正常
2)编辑/etc/sysconfig/network-script/目录下网卡对应的配置文件,如ifcfg-eth0,配置启动必要的参数,如:
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.150
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=192.168.1.1
其他参数根据需要修改,然后保存。
3)/etc/init.d/network restart重启网络,检查网络是否连通。
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash for ((i=1;i<255;i++));do ping -c 1 -w 1 "172.16.250.$i" >/dev/null if [ $? -eq 0 ];then echo -e "\033[0;32;1m 192.168.1.$i is up! \033[0m" else echo -e "\033[0;31;1m 192.168.1.$i is down! \033[0m" fi done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #设备名称,一般和NAME相同
TYPE=Ethernet #网络类型
ONBOOT=yes #系统启动时启用连接
NM_CONTROLLED=yes #接受network manager服务控制
BOOTPROTO=none #获得IP地址方式,手动选择none,自动选择dhcp
IPADDR=192.168.1.61 #设定IP地址
PREFIX=24 #掩码位数,也可使用NETMASK=255.255.255.0
GATEWAY=192.168.1.254 #网关
DNS1=192.168.1.1 #DNS
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
8、如何给网络接口配置多个地址,有哪些方式?
1)使用ipaddr/ifconfig 命令添加IP,即时生效,重启系统后IP不存在
2)使用setup命令,出现面板添加IP
3)在/etc/sysconfig/network-scripts目录下修改网卡配置文件添加IP,需重启网卡,永久有效
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法
1)ss命令
2)ifconfig命令
3)ip命令
4)netstat命令
5)route命令
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
rpm命令实现程序管理:
安装:-ivh, –nodeps, –replacepkgs
卸载:-e, –nodeps
升级:-Uvh, -Fvh, –nodeps, –oldpackage
查询:-q, -qa, -qf, -qi, -qd, -qc, -q –scripts, -q –changlog, -q –provides, -q –requires
校验:-V
导入GPG密钥:–import, -K, –nodigest, –nosignature
数据库重建:–initdb, –rebuilddb
Yum 命令实施软件包管理:
repolist [all|enabled|disabled]
显示程序包:list
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list {available|installed|updates} [glob_exp1] […]
安装程序包: install package1 [package2] […]
reinstall package1 [package2] […] (重新安装)
升级程序包:
update [package1] [package2] […]
downgrade package1 [package2] […] (降级)
检查可用升级:
check-update
卸载程序包:
remove | erase package1 [package2] […]
查看程序包information:
info […]
查看指定的特性(可以是某文件)是由哪个程序包所提供:
provides | whatprovides feature1 [feature2] […]
清理本地缓存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
构建缓存:
makecache
DNF 命令实施软件包管理:
11、如何使用发行版光盘作为yum repository,请描述该过程。
1)挂载光盘至某目录
mount /dev/sr0 /mnt/
2)创建配置文件
vim /etc/yum.repos.d/cdrom.repo
[cdrom] #仓库的名字
name=localation software #仓库的描述
baseurl=file:///mnt #repodata目录的仓库访问路径
gpgchecked=0 #使用前是否检验包
enabled=1 #是否启用此仓库
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash declare -i startsum=0,stopsum=0 for i in $(ls /etc/rc.d/rc3.d/);do string=$(echo ${i:0:1}) if [ $string == K ];then echo "$i stop" let stopsum++ elif [ $string == S ];then echo "$i start" let startsum++ fi done echo "start S:$startsum" echo "start K:$stopsum
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash declare -i sum=0 if [ $# -lt 1 ];then echo "please at least a username!" exit 2 fi for i in $*;do if id $i &>/dev/null;then sum+=$(id -u $i) else echo "the user $i is not exist!" exit 3 fi done echo "sum gid:$sum"
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
[ -d $i -a -x $i ]检查文件夹是否存在,且是否有权限读取
ls -l $i |grep ^d 取出目录
ls -l /tmp/ |grep -v ^d取出非目录
#!/bin/bash declare -i dsum=0,fsum=0 if [ $# -le 1 ];then echo "input at least a filepath!" fi for i in $*;do if [ -d $i -a -x $i ];then ls -l $i |grep ^d |awk '{print $NF}' let dsum+=$(ls -l /tmp/ |grep ^d |wc -l) let fsum+=$(ls -l /tmp/ |grep -v ^d |wc -l) else echo "The $i is not exist or Permission denied,please check it!" exit 2 fi done echo "the directories sum:$dsum" echo "the file sum:$fsum"
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash if [ $# -lt 1 ];then echo "please input a username at least!" fi for username in $*;do if id $username &>/dev/null;then if [ $(id -u $username) -gt 500 ];then echo "$username is the regular user!" fi else echo "$username is no exist!" fi done
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash declare -i sum=0 for ((i=1;i<=10;i++));do if id user$i &> /dev/null;then echo "user$i is exist!" else useradd -M -N user$i &> /dev/null let sum++ echo "user$i is create!" fi done echo "$sum users is create!"
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash for ((i=1;i<=20;i++));do ping -w 1 -c 1 172.16.250.$i &> /dev/null if [ $? -eq 0 ];then echo "172.16.250.$i is up!" fi done
18、打印九九乘法表;
#!/bin/bash for j in {1..9};do for i in $(seq 1 $j);do echo -e -n "${i}X${j}=$[$i*$j]\t" done echo done
原创文章,作者:Net20_有马,如若转载,请注明出处:http://www.178linux.com/44093