1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥:是将广播域划分为多个小的冲突域,但广播域没有变。工作在OSI模型的数据链路层,端口很少;基于软件;可以处理上层事务。
集线器:对接收到的信号进行再生整形放大,扩大网络传输距离;属于纯硬件网络底层设备,工作在OSI模型的物理层,不具有交换机的”智能记忆”和”学习”的能力;
也不具备交换机所具有的MAC地址表,发送数据时没有针对性,采用广播方式发送。当它要向某节点发送数据时,是通过把数据包发送到与集线器相连的所有节点。
二层交换机:工作于OSI模型的第2层(数据链路层),可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
三层交换机:具有部分路由器功能的交换机,加快大型局域网内部的数据交换,能够做到一次路由,多次转发。由硬件高速实现数据包转发等规律性的功能,由软件实现路由信息更新、路由表维护、路由计算、路由确定等功能。
三层交换技术就是二层交换+三层转发。传统交换技术工作于OSI模型的数据链路层,而三层交换技术是在网络层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。
路由器:是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号;属网络层的一种互联设备。
又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。
具有判断网络地址和选择IP路径的功能,能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,只接受源站或其他路由器的信息。
路由器和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。
这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。
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
子网掩码表现形式有两种:一种与IP地址表现方法一样,即点分四组表示法,如:255.255.0.0;
另一种叫无类别域间路由(CIDR)表示法,如192.168.0.0/24
子网掩码是用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI模型分层如下:
应用层;提供应用程序之间通信;
表示层:处理数据格式、数据加密;
会话层:建立,维护,管理会话连接涉及操作系统和网络接口和各种数据;
传输层:建立主机端到端连接。涉及物理设备:四层交换机
网络层:寻址和路由选择。涉及物理设备:路由器
数据链路层:提供介质访问,链路管理,将数据分帧并处理流控制。涉及物理设备:网卡,网桥,交换机
物理层:比特流传输,将数据转换为可通过物理介质传送的电子信号。涉及物理设备:双绞线、同轴电缆,集线器
TCP/IP模型包括:应用层(对应OSI模型的应用层,会话层,表示层)、传输层、网络互连层、网络接口层(对应OSI模型的数据链路层和物理层)
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
1) 编辑/etc/sysconfig/network-script/eth0,设置IP,MAC,网关,地址分配是静态或动态
2) 编辑 /etc/hosts,添加IP
3) 编辑/etc/resolv.conf
4) 启动网络服务,service network restart
5) 测试连接网络
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
1) ifconfig eth0 IP/mask
2) ip addr add ip device eth0
3) Linux网络属性配置的tui(text user interface):system-config-network-tui
4) 使用setup;
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash for ip in 172.16.250.{1..254} do ping $ip -c 2 &>/dev/null if [ $? -eq 0 ];then echo -e "\e[1;32m $ip is alive \e[0m" sleep 1 else echo -e "\e[1;31m $ip is down \e[0m" sleep 1 fi done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值
1)网络接口配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE #网卡名
BOOTPROTO #ip地址分配方式, dhcp、static
HWADDR #MAC地址
NM_CONTROLLED="yes" #network manager参数,
ONBOOT= #网卡是否开机激活
TYPE= #网络类型
IPV6INIT=no #禁止IPV6
USERCTL=no #是否允许非root用户控制该设备,为no,只能root用户更改
IPADDR= #IP ADDR
GATEWAY= #gateway地址
NETMASK= #掩码
DNS2= #dns2地址
DNS1= #dns1地址
2)路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
3)配置当前主机的主机名:/etc/sysconfig/network HOSTNAME=
4)网络接口识别并命名相关的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules
8、如何给网络接口配置多个地址,有哪些方式?
1) ifconfig eth0 IP/mask
2) ip addr add IP device eth0
3) Linux网络属性配置的tui(text user interface):system-config-network-tui
4) 使用setup;
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
netstat:
1)、查看网络连接 netstat –tan
2)、查看路由 netstat –r
3)、 显示网络接口 netstat –i
route:
1)、查看:route -n
2)、添加:route add default gw 192.168.126.2
3)、删除:route del -net 0.0.0.0/0 gw 192.168.126.2
ip:
1)、激活或禁用指定接口:ip link set dev IFACE up /down
2)、配置IP:ip addr { add | del } IFADDR dev IFACE
3)、添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
4)、配置路由:ip route del TARGET
ss:
1)、查看端口监听状态: ss -tnl
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)编辑/etc/yum.repos.d/centos_iso.repo
[Packages]
name=centos_iso
baseurl=file:///mnt #本地iso的挂载路径
enabled=1 #可以使用yum
gpgcheck=0 #设置不检查gpgkey
gpgkey=file:///mnt/RPM-GPG-KEY-centos
2)挂载光盘至某目录,例如/mnt
# mount -r -t iso9660 /dev/cdrom /mnt
3) yum clean ; yum repolist
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash DIR=/etc/rc.d/rc3.d/ sumofk=0 sumofs=0 K="stop" S="start" cd $DIR for i in `ls |grep ^K` do echo ${i}$K let sumofk++ done for i in `ls|grep ^S` do echo ${i}$S let sumofs++ done echo "the sum of K is:" $sumofk echo "the sum of S is:" $sumofs
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash sum=0 echo "please input the username:" read p for i in $p do a=`grep ^"\b${i}\b" /etc/passwd|cut -d: -f3` let sum=${sum}+${a} done echo ${sum}
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash declare -i D=0 declare -i F=0 for d in $@ do for i in `ls $d` do FT=`file $i|cut -d: -f2` echo "$i's type is:$FT" let F++ if [ $FT == "directory" ];then let D++ fi done done echo "Directory count is $D" echo "File count is $F"
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash while true ;do read -p "please input a username:" username case $username in exit) exit 1 ;; *) echo $username uid=` grep ^"\b${username}\b" /etc/passwd|cut -d: -f3 ` echo $uid if [ $uid -gt 500 ];then echo "$username is a common user" fi ;; esac done
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash declare -i COUNT=0 for i in user{1..10} do id $i &>/dev/null if [ $? -eq 0 ];then useradd $i &>/dev/null echo $i|passwd --stdin $i &>/dev/null let COUNT++ fi done echo "The added is :$COUNT"
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来
#!/bin/bash for ip in 172.16.250.{20..100} do ping $ip -c 2 &>/dev/null if [ $? -eq 0 ];then echo -e "\e[1;32m $ip is online \e[0m" sleep 1 fi done
18、打印九九乘法表
#!/bin/bash # for i in {1..9};do for ((j=1;j<=i;j++)) ;do echo -e -n "${j}X${i}=$[$i*$j]\t" done echo done
原创文章,作者:π,如若转载,请注明出处:http://www.178linux.com/41178
评论列表(1条)
如果将上面的文字描述换成图文并茂就更好了,直观