1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥(Bridge)
就是个硬件网络协议翻译器,如今交换机也包含这个功能,操作系统也可以是网桥,现在网桥的概念已经淡出
集线器(HUB)
将网线集中到一起,对收到的信号进行同步整形放大,以扩大传输距离,是中继器的一种形式,信息是通过广播的方式传送的
交换机(Switch)
是HUB的升级换代产品,在通信系统中自动完成信息交换的设备。它具备自动寻址和交换能力,会根据内存中的地址表对照确定目标MAC的NIC所在端口,通过内部交换矩阵迅速发送到目的端口,若目的MAC不存在,才会用广播的形式。
二层交换机
原理同上,工作于数据链路层
三层交换机
在二层基础上,具有部分路由器功能,目的加快大型局域网内部的数据交换,能够实现一次路由,多次转发
路由器(route)
简单来说是将不同网络之间互相连接一起,实现相互间的通信。路由器构成了Internet的骨架。
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
IP地址分为
A类1.0.0.0到126.255.255.255
B类128.0.0.0到191.255.255.255
C类192.0.0.0到223.255.255.255
子网掩码
4个网段,每个网络数值区间为0~255
子网掩码的作用将IP地址分成网络地址和主机地址两部分
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些
OSI参考模型 TCP/IP参考模型
应用层 ———–
表示层 ———–
会话层 —————— 应用层
传输层 —————— 传输层
网络层 —————— 网络互联层
数据链路层 ——–
物理层 —————— 主机到网络层
应用层:为操作系统或网络应用程序提供访问网络服务的几口。Telenet、FTP、HTTP、SNMP等
表示层:二进制传输。将会话层的数据或信息变换成一个可以被应用层理解的格式。数据转换包括数据的加密、压缩、格式转换等
会话层:介质访问。会话层管理主机之间的绘画进程,即负责建立、管理、终止进程之间的会话。
传输层:寻址和最短路径。可靠或不可靠传输,TCP、UDP、SPX等。
网络层:端到端的连接。负责对子网间的数据包进行路由选择,还可以实现拥塞控制、网际互连等。IP、IPX、RIP、OSPF等
数据链路层:主机间通信。在不可靠的物理介质上提供可靠的传输。SDLC、HDLC、PPP、STP
物理层:数据表示。物理层规定了激活、维持、关闭通信点之间的机械特性、电气特性、功能特性以及过程特性。
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
或者
BOOTPROTO=static
IPADDR=为固定IP
NETMASK=子网掩码
GATEWAY=网管
ifup eth0
5、为Linux主机配置网络信息的方式有哪些,请打桩各个过程
vi /etc/sysconfig/network-scripts/ifcfg-eth0 ifconfig eth0 xxx.xxx.xxx.xxx route add default gw xxx.xxx.xxx.xxx
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有在线状态
在线的主机使用绿色显示
不在线的主机使用红色显示
[root@llww3317 tmp]# ip add 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:04:b7:19 brd ff:ff:ff:ff:ff:ff inet 192.168.2.107/24 brd 192.168.2.255 scope global eth0 inet 183.156.202.213/20 brd 183.156.207.255 scope global eth0 inet6 fe80::20c:29ff:fe04:b719/64 scope link valid_lft forever preferred_lft forever [root@llww3317 tmp]# cat ping.sh #!/bin/bash # ip="183.156.202." for i in {1..255};do if ping -c 1 $ip$i >/dev/null ;then echo -e "$ip$i\t[\033[32;1m Connected \033[0m]" else echo -e "$ip$i\t[\033[31;1m Disconnect \033[0m]" fi done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值
DEVICE=eth0 //设备名称 TYPE=Ethernet //网卡类型 UUID=7a8bfd73-eea3-4830-b4f8-5840b359c0a8 //网卡的UUID ONBOOT=yes //是否开机启动 NM_CONTROLLED=yes //修改配置文件后实时生效 BOOTPROTO=dhcp //启动方式,有三种dhcp、static、none HWADDR=00:0C:29:04:B7:19 //网卡MAC地址 DEFROUTE=yes //默认路由 PEERDNS=yes //dhcp默认选项,自动修改resolv.conf PEERROUTES=yes //dhcp默认选项,自动修改路由信息 IPV4_FAILURE_FATAL=yes //是否启用IPV4 IPV6INIT=no //是否启用IPV6 NAME="System eth0" //系统名称
8、如何给网络接口配置多个地址,有哪些方式?
vi /etc/sysconfig/network-scripts/ifcfg-eh0 修改网络配置文件 ip addr add 192.168.1.100/24 dev eth0 临时添加IP ifconfig eth0 192.168.10.50 netmask 255.255.255.0 临时添加IP
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法
ifconfig eth0 192.168.10.50 netmask 255.255.255.0 临时添加IP ip addr add 192.168.1.100/24 dev eth0 临时添加IP route add default gw 192.168.0.1 添加默认网关 route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 添加到主机的路由表 route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0 添加到网络段的路由表 netstat -tan ss -tul CentOS 7 nmcli c modify eth0 ipv4.addresses 172.16.100.12/16 nmcli c down eth0;nmcli c up eth0
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的
rpm 参数: -a 所有包 -f 指定的文件由哪些程序包生成 -R 查询指定的程序包的依赖关系 -q 来查询已安装软件包的数据库 -i 显示软件包信息,如描述, 发行号, 尺寸, 构建日期, 安装日期, 平台, 以及其它一些各类信息。 -l 显示软件包中的文件列表 -e 卸载 -U 有旧的程序就升级,没有就安装 -F 有旧的程序就升级,没有就不安装 可以用yum来维护管理 yum 参数: list 显示程序包 install 安装 reinstall 重新安装 update 升级 downgrade 降级 remove 卸载 info 查看程序包信息
11、如何使用发行版光盘作为yum repository,请描述该过程
vi /etc/yum.repos.d/CentOS-Media.repo 修改enalbe=1,添加cost=500,优先使用cdrom里的资源
name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=1 cost=500 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [root@llww3317 tmp]# mkdir /media/cdrom [root@llww3317 tmp]# createrepo /media/cdrom [root@llww3317 tmp]# mount /dev/cdrom /media/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only [root@llww3317 ~]# yum install tree 已加载插件:fastestmirror, refresh-packagekit, security 设置安装进程 仓库 'c6-media' 在配置文件中未指定名字,使用标识代替 Loading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * centosplus: mirrors.163.com * extras: mirrors.163.com * updates: mirrors.163.com 解决依赖关系 --> 执行事务检查 ---> Package tree.x86_64 0:1.5.3-3.el6 will be 安装 --> 完成依赖关系计算 依赖关系解决 ============================================================================================================================================================================================================ 软件包 架构 版本 仓库 大小 ============================================================================================================================================================================================================ 正在安装: tree x86_64 1.5.3-3.el6 c6-media 36 k 事务概要 ============================================================================================================================================================================================================ Install 1 Package(s) 总下载量:36 k Installed size: 65 k 确定吗?[y/N]:
12、写一个脚本,完成以下功能
(1)假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干
(2)显示所有以K开头的文件的文件名,并且给其附加一个stop字符串
(3)显示所有以S开头的文件的文件名,并且给其附加一个start字符串
(4)分别统计S开头和K开头的文件各有多少
[root@llww3317 tmp]# cat 12.sh #!/bin/bash # S=0 K=0 for i in $( ls /etc/rc.d/rc3.d/K*|egrep -o "[^/]*$");do echo "$i stop" let K+=1 done for i in $( ls /etc/rc.d/rc3.d/S*|egrep -o "[^/]*$");do echo "$i start" let S+=1 done echo "K:$K,S:$S" [root@llww3317 tmp]# bash 12.sh K01smartd stop K02oddjobd stop K05wdaemon stop K10psacct stop K10saslauthd stop K15htcacheclean stop K15httpd stop K30spice-vdagentd stop K50dnsmasq stop K50kdump stop K60nfs stop K61nfs-rdma stop K69rpcsvcgssd stop K73winbind stop K74ntpd stop K75ntpdate stop K75quota_nld stop K76ypbind stop K83named stop K84wpa_supplicant stop K87restorecond stop K88sssd stop K89netconsole stop K89rdisc stop K92pppoe-server stop K95firstboot stop K95rdma stop K99rngd stop S01sysstat start S02lvm2-monitor start S08ip6tables start S08iptables start S10network start S11auditd start S11portreserve start S12rsyslog start S13cpuspeed start S13irqbalance start S13rpcbind start S15mdmonitor start S22messagebus start S23NetworkManager start S24nfslock start S24rpcgssd start S25blk-availability start S25cups start S25netfs start S26acpid start S26haldaemon start S26udev-post start S28autofs start S50bluetooth start S55sshd start S80postfix start S82abrt-ccpp start S82abrtd start S90crond start S95atd start S99certmonger start S99local start K:28,S:32
13、写一个脚本,完成以下功能
(1)脚本能接受用户名作为参数
(2)计算此些用户的ID之和
#!/bin/bash # sum=0 function user_sum { echo -n "Enter user: " read name if [ $name = "exit" ];then exit 0 else if id $name &>/dev/null;then let sum+=$(cat /etc/passwd|grep ^$name|cut -d: -f3) echo $sum user_sum else echo "retry input user" user_sum fi fi } user_sum [root@llww3317 tmp]# bash 13.sh Enter user: root 0 Enter user: namd retry input user Enter user: named 25 Enter user: magedu 525 Enter user: exit
14、写一个脚本
(1)传递一些目录给此脚本
(2)逐个显示每个目录的所有一级文件或子目录的内容类型
(3)统计一共有多少个目录,且一共显示了多少个文件的内容类型
[root@llww3317 tmp]# more 14.sh #!/bin/bash # d=0 f=0 for i in $*;do if [ -d $i ];then for j in `ls $i`;do if [ -d $i/$j ];then let d+=1 elif [ -f $i/$j ];then let f+=1 fi done fi done echo "sum_directory:$d,sum_files:$f" [root@llww3317 tmp]# bash 14.sh /etc sum_directory:124,sum_files:133 [root@llww3317 tmp]# bash 14.sh /etc /tmp sum_directory:125,sum_files:134
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的ID号大于等于500,则显示此用户为普通用户
#!/bin/bash # if id $1 &>/dev/null;then if [ $(id -u $1) -ge 500 ];then echo "normal user" fi fi [root@llww3317 tmp]# bash 15.sh magedu normal user
16、写一个脚本
(1)添加10用户user1-user10,密码同用户名
(2)用户不存在时才添加,存在时则跳过
(3)最后显示本次共添加了多少用户
[root@llww3317 tmp]# more 16.sh #!/bin/bash # sum=0 for i in {1..10};do id user$i &>/dev/null if [ $? -ne 0 ];then useradd user$i echo "user$i"|passwd --stdin user$i >/dev/null let sum+=1 fi done echo "useradd:$sum" [root@llww3317 tmp]# bash 16.sh useradd:10
18、打印九九乘法表
#!/bin/bash # for i in {1..9};do for j in $(seq 1 $i);do echo -ne "$j*$i=$((i*j))\t" done echo -ne "\n" done 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
原创文章,作者:laiwen2007,如若转载,请注明出处:http://www.178linux.com/27277
评论列表(1条)
写的很好,排版也很棒,加油