1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道, 不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。 后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch)所取代。 集线器:线器的英文称为“Hub”。“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大, 以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。 二层交换机:二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机。 二层交换技术的发展已经比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息, 根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。 三层交换机:三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换, 所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。 路由器:路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由, 以最佳路径,按前后顺序发送信号。
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
1. A类IP地址 一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个, 每个网络能容纳1亿多个主机。 2. B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。 可用的B类网络有16382个,每个网络能容纳6万多个主机 。 3. C类IP地址 一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。 C类网络可达209万余个,每个网络能容纳254个主机。 4. D类地址用于多点广播(Multicast)。 D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。 多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 5. E类IP地址 以“llll0”开始,为将来使用保留。 子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网, 以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用, 就是将某个IP地址划分成网络地址和主机地址两部分。
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI参考模型是计算机网路体系结构发展的产物。它的基本内容是开放系统通信功能的分层结构。这个模型把开放系统的通信功能划分为七个层次, 从邻接物理媒体的层次开始,分别赋于1,2,……7层的顺序编号,相应地称之为物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。 每一层的功能是独立的。它利用其下一层提供的服务并为其上一层提供服务,而与其他层的具体实现无关。这里所谓的“服务”就是下一层向上一层提 供的通信功能和层之间的会话规定,一般用通信原语实现。两个开放系统中的同等层之间的通信规则和约定称之为协议。通常把1~4层协议称为下层协议, 5~7层协议称为上层协议。 国际标准化组织ISO在1979年建立了一个分委员会来专门研究一种用于开放系统的体系结构,提出了开放系统互连OSI模型,这是一个定义连接异种计算机 的标准主体结构。 OSI简介:OSI采用了分层的结构化技术,共分七层,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 OSI参考模型的特性:是一种异构系统互连的分层结构;提供了控制互连系统交互规则的标准骨架;定义一种抽象结构,而并非具体实现的描述; 不同系统中相同层的实体为同等层实体;同等层实体之间通信由该层的协议管理;相信层间的接口定义了原语操作和低层向上层提供的服务; 所提供的公共服务是面向连接的或无连接的数据服务;直接的数据传送仅在最低层实现;每层完成所定义的功能,修改本层的功能并不影响其他层。 1、物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性; 有关的物理链路上传输非结构的位流以及故障检测指示。(网卡) 2、数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。(IEEE802.3,IEEE802.11) 3、网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。(路由器,交换机) 4、传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和 流量控制。(TCPIP) 5、会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时 会话模式 。 6、表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。 7、应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
1.用ifconfig -a查看机器上有几块网卡 2.编辑/etc/sysconfig/network-scripts/ifcfg-eth0 3.DEVICE=eth0 TYPE=Ethernet UUID=048d9dc0-2dfc-4535-bfd9-8ee8f6a357fa ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" HWADDR=08:00:27:A3:E1:99 IPADDR=192.168.56.252 PREFIX=24 GATEWAY=192.168.56.1 LAST_CONNECT=1476760809 根据实际需要设置,主要是ONBOOT=yes,IPADDR 4.service network restart重启网卡设置
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
1. ifconfig eth0:0 192.168.56.104/24 2.ip addr add 192.168.56.105/24 broadcast 192.168.56.1 dev eth0:0 3.vi /etc/sysconfig/network-scripts/ifcfg-eth0 4.利用图形界面
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash ip="172.16.250" for((i=1;i<=254;i++));do ping -c 3 -w 3 $ip.$i > /dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m $ip.$i is online \033[0m" else echo -e "\033[31m $ip.$i is offline \033[0m" fi done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
/etc/sysconfig/network-scripts/ifcfg-IFACE: DEVICE:此配置文件应用到的设备 HWADDR:对应的设备的MAC地址 BOOTPROTO:激活此设备时使用的地址配置协议,常用的有dhcp,static,none NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no” ONBOOT:在系统引导时是否激活此设备 TYPE:接口类型;常见的有Ethernet,Bridge UUID:设备的惟一标识 IPADDR:指明IP地址 NETMASK:子网掩码 GATEWAY:默认网关 DNS1:第一个DNS服务器指向 DNS2:第二个DNS服务器指向 USERCTL:普通用户是否可控制此设备 PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
8、如何给网络接口配置多个地址,有哪些方式?
ifconfig eth0:0 192.168.56.204 ip addr add 192.168.56.205/24 dev eth0 label eth0:1
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
1. ifconfig ifconfig主要是能手动启动、观察和修改网络接口的相关参数,能修改的参数非常多,包括IP参数及MTU等都能修改,他的语法如下: [root@linux ~]# ifconfig {interface} {up|down} 一 般来说,直接输入ifconfig就会列出目前已被启动的卡,不论这个卡是否有设置IP,都会被显示出来。而如果是输入ifconfig eth0, 则会显示出这个接口的相关数据,而不管该接口是否启动。所以,如果你想要知道某个网卡的Hardware Address,直接输入“ifconfig"网络接口代 号"”即可。至于上述代码中出现的各项数据是这样的(数据排列由上而下、由左而右)。 eth0:网卡的代号,也有lo这个loopback。 HWaddr:网卡的硬件地址,习惯称为MAC。 inet addr:IPv4的IP地址,后续的Bcase、Mask分别代表的是Broadcast和Netmask。 inet6 addr:是IPv6的版本的IP,我们没有使用,所以略过。 RX:那一行代表的是网络由启动到目前为止的数据包接收情况,packets代表数据包数、errors代表数据包发生错误的数量、dropped代表数据包 由于有问题而遭丢弃的数量等。 TX:和RX相反,为网络由启动到目前为止的传送情况。 collisions:代表数据包碰撞的情况,如果发生太多次,表示你的网络状况不太好。 txqueuelen:代表用来传输数据的缓冲区的储存长度。 RX Bytes、TX Bytes:总传送、接收的字节总量。 Interrupt、Memory:网卡硬件的数据,IRQ岔断和内存地址。 通过观察上述的资料,大致上能了解到你的网络情况,尤其是RX、TX内的error数量,及是否发生严重的collision情况,都是需要注意的。 ifconfig eth0 192.168.100.100 # 如果不加所有其他参数,则系统会依照该 IP 所在的 class 范围, # 自动地计算出 netmask 及 network, broadcast 等 IP 参数 ifconfig eth0 192.168.100.100 netmask 255.255.255.128 MTU 8000 2. ifup、ifdown 实时地手动修改一些网络接口参数,能利用ifconfig来实现,如果是要直接以设置文件,亦即是在 /etc/sysconfig/network-scripts里面的 ifcfg-ethx等文件的设置参数来启动的话,那就得要通过ifdown或ifup来实现了。 [root@linux ~]# ifup {interface} [root@linux ~]# ifdown {interface} [root@linux ~]# ifup eth0 ifup 和ifdown真是太简单了。这两个程式其实是script而已,他会直接到 /etc/ sysconfig/network-scripts目录下搜索对应的设置文件, 例如ifup eth0,他会找出ifcfg-eth0这个文件的内容,然后加以设置。关于ifcfg-eth0的设置请参考前一章连上Internet的说明。 不 过,由于这两个程式主要是搜索设置文件(ifcfg-ethx)来进行启动和关闭的,所以在使用前请确定ifcfg-ethx是否真的存在于正确的目录内, 否则会启动失败。另外,如果以ifconfig eth0来设置或是修改了网络接口后,就无法再以ifdown eth0的方式来关闭了。因为ifdown会分析比较 目前的网络参数和ifcfg-eth0是否相符,不符的话,就会放弃这次操作。因此,使用 ifconfig修改完毕后,应该要以ifconfig eth0 down才能 够关闭该接口。 3.route route命令用于查询和设置路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。 在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需 要将这台机器的IP地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器 重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。 格式 :route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]] [root@CentOS6 tmp]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.56.1 0.0.0.0 UG 0 0 0 eth0
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
11、如何使用发行版光盘作为yum repository,请描述该过程。
1.[root@CentOS6 tmp]# vim /etc/yum.repos.d/CentOS-install.repo 2.[rhel-oracle] name=Red Hat Enterprise Linux $releasever - $basearch - Source baseurl=file:///media/ enabled=1 gpgcheck=0 3.wq保存退出 4.把光盘放到光驱里 5.mount /dev/cdrom /media 6.yum clean 7.yum 安装
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash declare -i i=0 declare -j j=0 for str in /etc/rc.d/rc3.d/K*;do echo $str "stop" i=$[$i+1] done echo $i for str in /etc/rc.d/rc3.d/S*;do echo $str "start" j=$[$j+1] done echo $j
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#1/bin/bash
declare -i sum=0 for user in $*;do id $user > /dev/null result=$? if [ $result -eq 0 ];then sum=$[$sum+$(id -u $user)] else echo "$user is not exists." fi done
echo "userid sum is $sum."
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash declare -i dfile=0 declare -i cmnfile=0 declare -i lfile=0 declare -i bfile=0 declare -i cfile=0 declare -i sfile=0 declare -i ufile=0 if [ $# -lt 1 ];then echo "At least input one directory" exit 1 fi dfile=$(ls -l "$@" |grep ^d |awk '{print $NF}'|wc -l) cmnfile=$(ls -l "$@" |grep ^- |awk '{print $NF}' |wc -l) lfile=$(ls -l "$@" |grep ^l |awk '{print $NF}' |wc -l) bfile=$(ls -l "$@" |grep ^b |awk '{print $NF}'|wc -l) cfile=$(ls -l "$@" |grep ^c |awk '{print $NF}' |wc -l) sfile=$(ls -l "$@" |grep ^s |awk '{print $NF}' |wc -l) ufile=$(ls -l "$@" |grep -v ^[-dlbcst/]|grep ^[^[:space:]] |awk '{print $NF}' |wc -l) ls -l "$@" echo "The directory file total: $dfile" echo "The common file total:$cmnfile" echo "The symbolic link file total:$lfile" echo "The block special file total:$bfile" echo "The character special file total:$cfile" echo "The socket file total:$sfile" echo "The unkown file total:$ufile"
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash
id $1 &> /dev/null result=$? if [ $result -eq 0 ];then if [ $(id -u $1) -lt 500 ];then echo "system user." else echo "common user." fi else echo "user not fonud!" fi
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash
declare -i sum=0 for((i=1;i<=10;i++));do id user$i > /dev/null result=$? if [ $result -eq 0 ];then echo "user$i is extits!" else useradd user$i; echo "user$i" | passwd --stdin user$i sum=$[$sum+1] fi done echo "total add $sum users."
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash ip="172.168.250" for((i=20;i<=100;i++));do ping -c 3 -w 3 $ip.$i &> /dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m $ip.$i is up \033[0m". fi done
18、打印九九乘法表;
#!/bin/bash for((i=1;i<=9;i++));do for((j=1;j<=i;j++));do echo -e -n "$i*$j=$[$i*$j] " done echo "" done
原创文章,作者:lihuisjsq,如若转载,请注明出处:http://www.178linux.com/53660
评论列表(1条)
作业完成的很好