1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
主要功能: 网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。 集线器的英文称为“Hub”。主要功能是对接收到的信号进行再生×××放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI参考模型第一层,即“物理层”。 二层交换机工作于OSI模块的第2层(数据链路层),故称为二层交换机。可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。 三层交换机就是具有路由功能的交换机。 路由器工作于OSI参考模型的第3层(网络层),是连接因特网中各局域网、广域网的设备,它根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
IP地址中的前五位用于标识IP地址的类别,IP地址共分五类。 A类地址:以0开头,网络地址7位,主机地址24位 B类地址:以10开头,网络地址14位,主机地址16位 C类地址:以110开头,网络地址21位,主机地址8位 D类地址:以1110开头,组播地址 E类地址:以11110开头 子网掩码的表示形式: 1)通过与IP地址格式相同的点分十进制表示,如255.255.255.0 2)在IP地址后加上“/”符号以及1-32的数字,其中1-32的数字表示子网掩码中网络标识位的长度,如192.168.1.0/24 子网掩码的作用: 1)用于屏蔽IP地址的一部分以区别网络标识和主机标识 2)用于将一个大的IP网络划分为若干小的子网络
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI七层模型: 1)物理层:主要功能是完成相邻结点之间原始比特流的传输,控制数据怎么被放置到通信介质上。 2)数据链路层:主要功能是如何在不可靠的物理线路上进行数据的可靠传输。完成的是网络中相邻结点之间可靠的数据通信。 3)网络层:主要功能是完成网络中主机间的报文传输。 4)传输层:是整个网络的关键部分,实现两个用户进程间端到端的可靠通信,处理数据包错误、数据包次序,以及其他一些关键传输问题, 5)会话层:允许不同机器上的用户之间建立会话关系。 6)表示层:处理用户信息的表示问题,如编码、数据格式转换和加密等。 7)应用层:是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互联系,实实现各种服务 TCP/IP4层模型 1)网络访问层:功能包括IP地址与物理硬件地址的映射,以及将IP分组封装成帧。基于不同硬件类型的网络接口,定义了和物理介质的连接。相当于OSI参考模型的物理层和数据链路层。 2)网际层:处理来自传输层的分组发送请求;处理输入数据报;处理ICMP报文,即处理网络的路由选择、流量控制和拥塞控制等问题。在功能上类似于ISO/OSI参考模型中的网络层。 3)传输层:主要功能是可靠而又准确地传输并控制源主机与目的主机之间的信息流,提供端到端的控制,通过滑动窗口机制提供流控制,通过序列号和确认机制来保证可靠性。 4)应用层:包括所有的高层协议,与OSI的应用层协议相差不大,包括HTTP、Telnet、FTP、SMTP、POP3、DNS等。
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 #网卡号,和ifcfg-eth0对应就可以> TYPE=Ethernet #网络类型 UUID=b04b477a-06f1-494b-85f8-83e070dc9010 ONBOOT=yes #启动时启用连接 NM_CONTROLLED=yes #network manager参数 BOOTPROTO=none #获得IP地址方式,手动选择none,自动选择dhcp IPADDR=192.168.1.61 #设定IP地址 PREFIX=24 #掩码位数 GATEWAY=192.168.1.254 #网关 DNS1=192.168.1.1 #DNS DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" 修改完成后重启网络 /etc/init.d/network restart
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
1)可以使用ifconfig ip addr 命令来设置网卡的ip地址及网关;设置后立即生效,重启后生效。 2)可以修改网络配置文件/etc/sysconfig/network-scripts/ifcfg-接口,设置IP、MAC、网关,重启服务服务后生效。 3)使用setup图形界面设置网络信息 4)使用system-config-network-tui
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash net=172.16.250 for((i=1;i<=254;i++)) do if ping -c 1 -w 1 $net.$i &> /dev/null;then echo -e "\033[32m $net.$i\033[0m" else echo -e "\033[31m $net.$i\033[0m" fi done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 #网卡号,和ifcfg-eth0对应就可以> TYPE=Ethernet #网络类型 UUID=b04b477a-06f1-494b-85f8-83e070dc9010 ONBOOT=yes #启动时启用连接 NM_CONTROLLED=yes #network manager参数 BOOTPROTO=none #获得IP地址方式,手动选择none,自动选择dhcp IPADDR=192.168.1.61 #设定IP地址 PREFIX=24 #掩码位数 GATEWAY=192.168.1.254 #网关 DNS1=192.168.1.1 #DNS DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" 修改完成后重启网络 /etc/init.d/network restart
8、如何给网络接口配置多个地址,有哪些方式?
1)命令方式,即时生效 ip addr add 192.168.1.66/24 dev eth0:1 2)创建配置文件,重启服务后生效 cd /etc/sysconfig/network-scripts/ cp ifcfg-eth0{,:1} vim ifcfg-eth0:1 修改以下内容 DEVICE=eth0:1 IPADDR=192.168.1.66 PREFIX=24
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
1)ifconfig ifconfig -a: 查看所有网络接口信息 ifconfig interface 查看指定网络接口信息 ifconfig interface up|download 启用或停用指定网络接口 ifconfig interface ip/mask [up] 设定指定网络接口IP地址和掩码 2)route route -n查看所有路由信息 route add添加路由 route add [-net|-host] target [netmask Nm] [gw Gw][[dev] If] route add -net 192.168.0.0/24 gw 192.168.0.254 dev eth0 route add -host192.168.1.5 gw 192.168.1.254 dev eth1 route del删除路由 route del [-net|-host] target [netmask ] [gw Gw][dev] route del -net 192.168.0.0 255.255.255.0 route del -host192.168.1.5 3)netstat -t tcp协议相关的连接 -u udp协议相碰的连接 -w raw socker相关的连接 -l 处于监听状态的连接 -a 所有的连接 -n 以数字显示ip和端口 -e 扩展格式 -p 显示相关进程及PID 常用组合 -tan -uan -tln -uln 4)ip ip link ip link set DEVICE IFACE up/down 激活或禁用指定接口 ip link show up/dev 显示所有激活状态/指定接口信息 ipaddr ip addr { add | del } IFADDR dev STRING 增加或删除IP地址 ip addr show 显示网络接口信息 ip route ip route { add | del | show} 添加、删除或显示路由 5)ss -t tcp协议相关的连接 -u udp协议相碰的连接 -w raw socker相关的连接 -l 处于监听状态的连接 -a 所有的连接 -n 以数字显示ip和端口 -e 扩展格式 -p 显示相关进程及PID -x unix sock相关 -m 内存用量 -o 计时器信息
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
1)用rpm命令管理程序包 安装 rpm -ivh PACKAGE_FILE 安装包 升级 rpm -Uvh PACKAGE_FILE 升级包,无则安装此包 rpm -Fvh PACKAGE_FILE 升级包,无则无变化 查询 rpm -qa | grep FileName 查询已安装的某个软件 rpm -qf FILE 查询文件出处 rpm -qc PACKAGE_FILE 查询包的配置文件 rpm -ql PACKAGE_FILE 查询包的所有文件 rpm -qd PACKAGE_FILE 查询包的信息 rpm -qpi PACKAGE_FILE 安装之前查询包信息 rpm -qpl PACKAGE_FILE 安装之前查询包的所有文件 卸载 rpm -e PACKAGE_FILE 卸载包 验证 rpm -V PACKAGE_FIL E验证包 rpm --import PUBKEY 导入公钥 维护 rpm initdb新建数据库 rpm rebuilddb重建数据库 2)用yum仓库来管理程序包 查看 yum info PACKAGE_FILE 查看包信息 yum historylist 查看yum事务历史 yum deplistpackage1 查看包依赖 显示 yum repolist all 显示yum仓库列表 yum list installed 显示已安装列表 yum list available 显示可用包 yum list updates 显示可升级的包 yum list anaconda 显示系统安装的包 安装 yum install PACKAGE_FILE 安装包 yum localinstall rpmfile1 安装本地包 升级 yum update PACKAGE_FILE 升级包 yum downgrade PACKAGE_FILE 降级包 yum check-update 检查更新 卸载 yum remove PACKAGE_FILE 卸载包 yum providesfeature1 查看指定的特性 yum clean 清理本地缓存 yum search string1 搜索字符串 yum info PACKAGE_FILE 查看包信息 包组管理 yum groupinstall group1 [group2] [...] 安装包组 yum groupupdate group1 [group2] [...] 升级包组 yum grouplist [hidden] [groupwildcard][...] 显示包组 yum groupremove group1 [group2] [...] 卸载包组 yum groupinfo group1 [...] 查看包组信息
11、如何使用发行版光盘作为yum repository,请描述该过程。
(1)挂载光盘至某目录 mount -r /dev/sr0 /mnt/ (2)创建配置文件 vim /etc/yum.repos.d/CentOS-DVD.repo [CentOS6.6] name=CentOS cdrom #仓库的名字 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 k=0,s=0 for i in $(ls /etc/rc.d/rc3.d/K* | grep -o "[^/]*$") do echo "$i stop" let k++ done for j in $(ls /etc/rc.d/rc3.d/S* | grep -o "[^/]*$") do echo "$j start" let s++ done echo "S开头的文件有$s个,K开头的文件有$k个!"
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash declare -i sum if [ $# -lt 1 ];then echo "At least one username" exit 1 else for name in $* do if id $name &> /dev/null;then let sum+=$(grep "^\<$name\>" /etc/passwd | cut -d: -f3) fi done echo "id sum is $sum" fi
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash if [ $# -lt 1 ];then echo "At least a Directory" exit 1 fi ls -l "$@" | grep ^d | awk '{print $NF}' > directory ls -l "$@" | grep ^- | awk '{print $NF}' > files ls -l "$@" echo "Total $(wc -l directory) " echo "Total $(wc -l files) "
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash if [ $# -lt 1 ];then echo "At least one username" exit 1 fi if id $1 &> /dev/null;then uid=$(grep "^\<$1\>" /etc/passwd | cut -d: -f3) if [ $uid -ge 500 ];then echo "$1 is regular user" else echo "$1 is system user" fi else echo "$1 is not exists" fi
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash declare -i num for((i=1;i<11;i++)){ if ! id user$i &> /dev/null;then useradd user$i echo user$i:user$i | chpasswd let num++ fi } echo "Add $num users!"
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash net="172.16.250." for((i=20;i<=100;i++)){ ping -c 1 $net$i &> /dev/null if [ $? -eq 0 ];then echo $net$i fi }
18、打印九九乘法表;
#!/bin/bash for ((i=1;i<=9;i++)){ for((j=1;j<=i;j++));do echo -e -n "$j*$i=$(($i*$j))\t" done echo }
转载于:https://blog.51cto.com/sihua/1842138