N21_第8周_网络
作业题目:
1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥:(Bridge)也称桥接器,是连接两个局域网的存储转发设备,用它可以完成具有相同或相似体系结构网络系统的连接。
网桥和交换机一样都是工作在OSI模型的第二层(数据链路层),可以看成是一个二层路由器(真正的路由器是工作在网络层,根据IP地址进行信包转发)。
网桥可有效的将两个局域网(LAN)连起来,根据MAC地址(物理地址)来转发帧,使本地通信限制在本网段内,并转发相应的信号至另一网段,网桥通常用于连接数量不多的、同一类型的网段。
集线器:也称HUB,工作在OSI七层结构的第一层物理层,属于共享型设备,接收数据广播发出,在局域网内一般都是星型连接拓扑结构,每台工作站都连接到集线器上。
由于集线器的带宽共享特性导致网络利用效率极低,一般在大中型的网络中不会使用到集线器。
二层交换机:二层交换机工作在OSI模型的第2层(数据链路层),故而称为二层交换机。
二层交换机技术的发展已经比较成熟,二层交换机属于数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自已内部的一个地址表中。
三层交换机:三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这一目的服务的,能够做到一次路由,多次转发。
对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。
路由器:路由器跟集线器和交换机不同,是工作在OSI的第三层(网络层),根据IP进行寻址转发数据包。
路由器是一种可以连接多个网络或网段的网络设备,能将不同网络或网段之间的数据信息进行转换,并为信息包转输分配最合适的路径,使它们之间能够进行数据传输,从而构成一个更大的网络。
路由器具有最主要的两个功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背叛转发以及输出链路调试等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
区别:网桥:工作在数据链路层;
集线器:工作在物理层,所有端口共享一个MAC地址,共享带宽
二层交换机:工作在数据链路层,每个端口有自已的MAC地址,独享带宽
三层交换机:工作在数据链路层,网络层,拥有部分路由功能
路由器:工作在网络层
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
IP地址分类:
A类用于大型网络(能容纳网络126个,主机1677214台)
B类用于中型网络(能容纳网络16384个,主机65534台)
C类用于小型网络(能容纳网络2097152个,主机254台)
D类用于组播(多目的地址的发送)
E类用于实验
子网掩码的表示形式:
1,点分十进制,如255.255.255.0
2,IP地址后加'/'以及[1-32]的数字,如192.168.1.1/24
子网掩码的作用:
1,屏蔽IP地址的一部分以区别网络标识和主机标识
2,将一个大的IP网络划分为若干小的子网络
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI模型
应用层:提供应用程序之间通信;
表示层:处理数据格式、数据加密;
会话层:建立、维护,管理会话连接涉及操作系统和网络接口和各种数据;
传输层:建立主机端到端连接。涉及物理设备:四层交换机;
网络层:寻址和路由选择。涉及物理设备:路由器;
数据链路层:提供介质访问,链路管理,将数据分帧并处理流控制。涉及物理设备:网卡、网桥,交换机;
物理层:比特流传输,将数据转换为可通过物理介质传送的电子信号。涉及物理设备:双绞线、同轴电缆,集线器;
TCP/IP模型
应用层:对应OSI模型的应用层,会话层,表示层;
传输层:对应OSI模型的传输层;
网络互连层:对应OSI模型的网络层;
网络接口层:对应OSI模型的数据链路层和物理层;
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
1,使用ifconfig查看网卡配置信息,看主要使用的网卡名称
2,到/etc/sysconfig/network-scripts/目录下查找对应的网卡配置文件
3,主要配置项
DEVICE(设备名称)TYPE(设备类型。端口为Ethernet) ONBOOT(系统启动时读取) BOOTPROTO=static(ip配置协议。当前为静态ip,可设置DHCP,)
IPADDR(ip地址) NETMASK(子网掩码) GATEWAY(网关地址) DNS1(DNS服务器地址)
4,重启网络服务 service network restart
5,在CLI中输入ping baidu.com测试网络连接
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 ip='172.16.250' for i in {1..254}; do ping -c 5 w 5 $ip.$i & > /dev/null result=$? if [ $result -eq 0 ]; then echo -e "\033[32m $ip.$i \033[0m" else echo -e "\033[31m $ip.$i \033[0m" fi done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
网卡配置文件`/etc/sysconfig/network-scripts/ifcfg-网卡名` 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= #掩码 DNS1= #dns1地址 DNS2= #dns2地址
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
netstat -tan #查看当前系统网络连接情况 -t tcp协议相关连接 -u udp协议相关连接 -l 监听状态的连接 -a 所有连接 -n 以数字显示ip和端口
State状态含义: CLOSED:无连接; LISTEN:服务器在等待进入呼叫; SYN_RECV:一个连接请求已经到达,等待确认; SYS_SENT:应用已经开始,打开一个连接; ESTABLISHED:正常数据传输状态 FIN_WAIT1:应用说它已经完成; FIN_WAIT2:另一边已同意释放; ITMED_WAIT:等待所有分组死掉; CLOSING:两边同时尝试关闭; TIME_WAIT: 另一边已初始化一个释放; LAST_ACK: 等待所有分组死掉;
route
route [-nee] -n 以数字显示ip和端口 -ee 显示详细信息 route add [-net|-host] [网域或主机] netmask [mask] [gw|dev] [root@itop ~]# route add -host 192.168.100.20 netmask 255.255.255.0 dev eth0 route del [-net|-host] [网域或主机] netmask [mask] [gw|dev] [root@itop ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
ss
[root@localhost ~]# ss -tnl #与netstat类似 State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::22 :::* LISTEN 0 128 *:22 *:* LISTEN 0 100 ::1:25 :::* LISTEN 0 100 127.0.0.1:25
ifconfig
ifconfig 设备名称 up|down up 启动指定网络设备/网卡。 down 关闭指定网络设备/网卡。 ifconfig 设备名称 ip地址 #配置设备ip地址 ifconfig 设备名称 mtu <字节数> 设置网卡的最大传输单元 (bytes)
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,请描述该过程。
#mount /dev/cdrom /mnt #vim /etc/yum.repos.d/local.repo [local] name=local_repo baseurl=file:///mnt enabled=1 gpgcheck=0 #yum clean all #yum makecache
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
[root@localhost ~]# vi 201609261052.sh #!/bin/bash declare -i s=0 declare -i k=0 for i in `ls /etc/rc.d/rc3.d | grep "^S"`; do echo "$i start" let s++ done for i in `ls /etc/rc.d/rc3.d | grep "^K"`; do echo "$i stop" let k++ done echo "K开头的文件有$k个! " echo "S开头的文件有$s个!"
[root@localhost ~]# sh 201609261052.sh S08ip6tables start S08iptables start S10network start S11auditd start S12rsyslog start S22messagebus start S25netfs start S26udev-post start S55sshd start S80postfix start S90crond start S99local start K10saslauthd stop K50netconsole stop K87restorecond stop K89rdisc stop K开头的文件有4个! S开头的文件有12个!
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
[root@localhost ~]# vi 201609261101.sh #!/bin/bash declare -i idsum=0 if [ $# -le 0 ]; then echo "Usage:bash .sh user1 user2 ..." exit 1 fi for i in $*; do if id $i &> /dev/null; then idnum=`grep "$i" /etc/passwd | cut -d: -f3` idsum+=$idnum else echo "$i don't exist" fi done echo "用户ID之和为$idsum"
[root@localhost ~]# sh 201609261101.sh user1 user1 don't exist 用户ID之和为0
[root@localhost ~]# sh 201609261101.sh visitor16 用户ID之和为518
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
[root@localhost ~]# vi 201609261112.sh #!/bin/bash declare -i D=0 declare -i F=0 if [ $# -le 0 ];then echo "Usage:bash .sh directory|file ..." exit 1 fi for d in $@ do for i in `ls $d` do if [ ! -e $i ]; then echo "$i No such file!" continue elif [ -d $i ]; then echo "$i is type directory!" let D++ elif [ -f $i ]; then echo "$i is type file!" let F++ else echo "$i is Other type!" fi done done echo "Directory count is $D" echo "File count is $F"
[root@localhost ~]# sh 201609261112.sh /home abc No such file! bcd No such file! cde No such file! test1.txt No such file! test2.txt No such file! visitor1 No such file! visitor10 No such file! visitor11 No such file! visitor12 No such file! visitor13 No such file! visitor14 No such file! visitor15 No such file! visitor16 No such file! visitor17 No such file! visitor18 No such file!
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
[root@localhost ~]# vi 201609261117.sh #!/bin/bash # if [ $# -lt 1 ];then echo "Userage:bash.sh user1 user2 ..." exit 1 fi for i in $*;do if id $i &> /dev/null;then idnum=`grep "$i" /etc/passwd | cut -d: -f3` if [ $idnum -gt 500 ];then echo "$i user is ordinary user." else echo "$i is system user." fi else echo "$i don't exist" fi done
[root@localhost ~]# sh 201609261117.sh visitor16 visitor16 user is ordinary user.
[root@localhost ~]# sh 201609261117.sh root root is system user.
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
[root@localhost ~]# vi 201609261121addusers.sh #!/bin/bash for i in {1..10}; do if id user$i &> /dev/null ;then echo "user$i exists." continue 3 else useradd user$i if [ $? -eq 0 ]; then echo "user$i" | passwd --stdin user$i &> /dev/null echo "Add user$i finished." let num++ fi fi done echo "Add $num users."
[root@localhost ~]# sh 201609261121addusers.sh Add user1 finished. Add user2 finished. Add user3 finished. Add user4 finished. Add user5 finished. Add user6 finished. Add user7 finished. Add user8 finished. Add user9 finished. Add user10 finished. Add 10 users.
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
[root@localhost ~]# vi 201609261124ping.sh #!/bin/bash # ip='172.16.250' for i in {1..254};do ping -c 5 -w 5 $ip.$i &> /dev/null result=$? if [ $result -eq 0 ];then echo "$ip.$i" fi done
18、打印九九乘法表;
[root@localhost ~]# vi 201609261125_9x9.sh #!/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 }
[root@localhost ~]# sh 201609261125_9x9.sh 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
原创文章,作者:365,如若转载,请注明出处:http://www.178linux.com/48878
评论列表(1条)
在网络部分再深入点,比如怎么进行合理的子网划分相关的知识就更好了