linux学习作业-第八周

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习作业-第八周相关的知识,希望对你有一定的参考价值。

本周作业内容:

1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。


网桥是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。

与交换机一样可以隔离冲突域,可只有2个端口,交换机可有多个比集线器接口数少,无路由功能


集线器

是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。集线器是运作在OSI模型中的物理层。它可以视作多端口的中继器,若它侦测到碰撞,它会提交阻塞信号。无路由功能、不可隔离冲突域、较早时间的局域网连接产品


二层交换机

二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机。二层交换技术的发展已经比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。


上三个设备工作在物理层

三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也


是为这目的服务的,能够做到一次路由,多次转发。

三层交换技术是在网络模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。

三层交换机在小企业可以做成无路由器的直接选购设备;一般用于企业的骨干网络,负责处理各二层交换机的快速转发,且带有路由功能。


路由器,是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。

主要用于外网接入的第一或第二设备,用于连接不同网络的主要设备。

与三层交换机类似,更多于路由信息更新、路由表维护、路由计算、路由确定等功能。


2、IP地址的分类有哪些?子网掩码的表示形式及其作用

国际规定:把所有的IP地址划分为 A,B,C,D,E。

A类地址:范围从0~127,0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的。因此,A类地址的范


围其实是从1~126之间。

B类地址:范围从128-191

C类地址:范围从192-223

D类地址:范围从224-239

D类基本为广播地址

E类地址:范围从240-254

子网掩码的表示形式有2种

10.0.0.1/8

10.0.0.1 255.0.0.0

/8等于2进制11111111转换成10进制则为255

子网掩码就是用来指定某个IP地址的网络地址的,就是用来划分子网的。


3、计算机网络的分成模型有哪些(OSI模型和TCPIP模型),每一层的功能及涉及到的物理设备有哪些。


应用层:TCP/IP应用层:

文件传输,电子邮件,文件服务,虚拟终端 

TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 

 

表示层 :TCP/IP应用层

数据格式化,代码转换,数据加密 

没有协议 

 

会话层 :TCP/IP应用层

解除或建立与别的接点的联系 

没有协议 

 

传输层 :TCP/IP传输层

提供端对端的接口 

TCP,UDP 

设备:四层交换机


网络层 :TCP/IP网络层

为数据包选择路由 

IP,ICMP,RIP,OSPF,BGP,IGMP 

设备:路由器


数据链路层 :TCP/IP 物理层

传输有地址的帧以及错误检测功能 

SLIP,CSLIP,PPP,ARP,RARP,MTU 

设备:网卡、网桥、交换机


物理层 :TCP/IP 物理层

以二进制数据形式在物理媒体上传输数据 

ISO2110,IEEE802。IEEE802.2 

设备:集线器、中继器、调制解调器、网线、双绞线、同轴电缆


4、如何将Linux主机接入到TCPIP网络,请描述详细的步骤。(手动指定的方式)

流程概述:

->首先物理层必须有网卡接口,将局域网的网线连接至网卡接口

->配置ip地址与掩码(这是内网的基础)

->配置网关信息(关系到跨网段)

->配置DNS信息(连接外网Internet的必要手段除非路由器已配置)

linux配置IP地址的几个方法

⑴GUI画面配置,只要找到网络配置,就能手动配置。

⑵ifconfig 

ifconfig eth1:1 1.1.1.1 netmask 255.0.0.0

ifconfig (设备名) IP地址 netmask 子网掩码 (及时生效)

⑶修改/etc/sysconfig/network-scripts/ifcfg-eth0

修改接口配置文件,修改后需要重启service network restart

CentOS7则用systemctl restart network重启



5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。

上题写明白了配置IP的信息,这题就写配置默认路由与DNS吧

默认路由:

route add default gw 网关地址

route add default gw 1.1.1.1 #设置默认网关为1.1.1.1

添加路由:

route add -net 目标网段 netmask 掩码 gw IP(也可以替换成dev ethX)

route add -net 11.1.1.0 netmask 255.255.255.0 gw 172.16.0.1

add 增加路由

del 删除路由

-net 设置到某个网段的路由

-host 设置到某台主机的路由

gw 出口网关 IP地址

dev 出口网关 物理设备名

当然也可以在4题的ip设备上添加一条:

getaway 将设置网关(网关即路由)


配置DNS:

配置文件在/etc/resolv.conf

# DNS1=xxx.xxx.xxx.xxx

# DNS2=xxx.xxx.xxx.xxx

配置方法在有颜色,把#去掉就可以填写自己的DNS地址

操作需要重启network服务


6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;

在线的主机使用绿色显示;

不在线的主使用红色显示;

echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
#!/bin/bash
i1=172.16.250
for (( i=1; i<255 ; ++i))
do
    ping -c 1 $i1.$i &>/dev/null
    case $? in
    0)
    echo "$i1.$i" >> online.txt
    ;;
    1)
    echo "$i1.$i" >> dealline.txt
    esac
done
i2=$(cat online.txt)
echo This is Online
echo -e "\033[32m$i2 \033[0m "
echo This is deline
i3=$(cat dealline.txt)
echo -e "\033[31m$i3 \033[0m "


     


7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;

TYPE=Ethernet #网卡类型 

DEVICE=eth0 #网卡接口名称 

ONBOOT=yes #系统启动时是否自动加载 

BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议 

IPADDR=1.1.1.1 #网卡IP地址 

NETMASK=255.0.0.0 #网卡网络地址 

GATEWAY=1.1.1.1 #网卡网关地址 

DNS1=202.96.128.86 #网卡DNS地址 

HWADDR=00:0C:29:13:5D:74 #网卡设备MAC地址 

BROADCAST=1.1.1.255 #网卡广播地址 


8、如何给网络接口配置多个地址,有哪些方式?

⑴使用ifconfig

ifconfig eth0:# 在网卡0,添加虚拟接口  IP地址 netmask 掩码

⑵使用ip命令

ip addr add  1.1.1.3/16 dev eth1

ip addr (添加,删除,修改) ip地址/掩码 dev 设备号


9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。


arp:命令用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系

常用直接arp

[[email protected] bin]# arp 
Address                  HWtype  HWaddress           Flags Mask            Iface
172.16.249.4                     (incomplete)                              eth1
172.16.249.6                     (incomplete)                              eth1
172.16.249.2             ether   00:50:56:c0:00:08   C                     eth
#Address :IP地址
#HWtype  :硬件类型
#HWaddress :Mac地址
#Flags Mask:记录标志,"C"表示arp高速缓存中的条目,"M"表示静态的arp条目
#Iface :来自哪张网卡识别。
arping:通过ping命令检查设备上的硬件地址
arping  -I eth1 -s 172.16.249.1 172.16.249.2 
-I 选择硬件设备
-s 源地址 后接目标地址
Unicast reply from 172.16.249.2 [00:50:56:C0:00:08]  0.950ms



ping命令:用来测试主机之间网络的连通性

用的最多的命令之一

-c<完成次数>
-f极限坚持
-s数据包大小(字节计算)
-t设置TTL值
ping [选项] 地址(可以是IP或者网址)
ping -c 1 -s 11111 172.16.249.2
向172.16.249.2此IP发送11111字节的包1次。
PING 172.16.249.2 (172.16.249.2) 11111(11139) bytes of data.
11119 bytes from 172.16.249.2: icmp_seq=1 ttl=64 time=1.68 ms
--- 172.16.249.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 1.686/1.686/1.686/0.000 ms



nslookup

nslookup命令是常用域名查询工具,就是查DNS信息用的命令。

nslookup IP或者域名

由于还未安装DNS服务,估演示不了

网上截取一份

[[email protected] ~]# nslookup www.linuxde.net 
解析www.linuxde.net 站点
Server: 202.96.104.15 
Address: 202.96.104.15#53
Non-authoritative answer: 
www.linuxde.net canonical 
name = host.1.linuxde.net. 
Name: host.1.linuxde.net 
Address: 100.42.212.8

10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。

安装模式:rpm  {-i |--install} PACKAGE

升级模式:rpm  {-U|--upgrade}  PACKAGE

卸载(删除)模式:rpm {-e|--erase} PACKAGE

查询模式:rpm  {-q |--query }  PACKAGE

验证模式:rpm  {-V |--verify} PACKAGE

-a:查询所安装的软件包

--nodeps:不验证依赖的软件包。

--force:同--replacepkgs,--replacefiles一样,就算要安装的软件版本已经安装在系统上,或者是系统上现在的版本比要安装的版本高,依然强制覆盖安装。

有依赖关系包的会报错,error: Faileddependencies


->安装:
[[email protected] Packages]# rpm -ivh bind-9.8.2-0.37.rc1.el6.x86_64.rpm 
warning: bind-9.8.2-0.37.rc1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:bind                   ########################################### [100%]
-i :安装
-v :显示详细
-h :用#显示完成的进度
[[email protected] Packages]# rpm -Uvh bind-9.8.2-0.37.rc1.el6.x86_64.rpm   
warning: bind-9.8.2-0.37.rc1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
        package bind-32:9.8.2-0.37.rc1.el6.x86_64 is already installed
-Uvh,如果有老版本,则升级为新版本,否则安装。
-F,--freshen纯升级,如果没有老版本,则不升级。
[[email protected] Packages]# rpm -e bind
-e :删除软件包
#删除的话,只需要填写包名,不需要加后缀版本号其他内容




11、如何使用发行版光盘作为yum repository,请描述该过程。

流程
->放入CD
->检测是否安装yum工具(默认已安装)
->重点来了:
->cd /etc/yum.repos.d/
->可以cp其他repo配置修改
->也可以自行创建
name 是仓库的描述也可以说是名字
baseurl 仓库的位置
enabled 是否启用这个仓库,1为起用,0为禁用
gpgcheck 是否检查GPG签名(用来验证要安装的包是不是REDHAT官方的)
GPGKEY 的存放地址我们需要用下面的命令导入这个签名。才能使用这项功能
name=CentOS-$releasever - Media
baseurl=file:///media/RHEL-6.7\ Server.x86_64/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
->最后一步
->更新本地 YUM 缓存
yum clean all
yum makecache




12、写一个脚本,完成以下功能

   (1) 假设某目录(etc/rc.d/rc3.d)下分别有K开头的文件和S开头的文件若干;

   (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;

   (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;

   (4) 分别统计S开头和K开头的文件各有多少;

#!/bin/bash
ls  /etc/rc.d/rc3.d/ |grep "^[k,K]"|awk -v i=stop ‘{print i$0}‘
ls  /etc/rc.d/rc3.d/ |grep "^[s,S]"|awk -v i=start ‘{print i$0}‘
echo "The K start have $(ls  /etc/rc.d/rc3.d/ |grep "^[k,K]"|awk ‘END{print NR}‘ )file"
echo "The S start have $(ls  /etc/rc.d/rc3.d/ |grep "^[s,S]"|awk ‘END{print NR}‘ )file"



13、写一个脚本,完成以下功能

   (1) 脚本能接受用户名作为参数;

   (2) 计算此些用户的ID之和;

#!/bin/bash
read -p "Please input UserName:" name
i=$(cat /etc/passwd |grep "^$name")
id1=$(grep "^$name" /etc/passwd|cut -d: -f 3  )
if grep -q "^$name" /etc/passwd ; then
    if [ $id1 -gt 500 ];then
    echo "$name is ordinary user."
        else
        echo "$name is super user."
    fi
else
    echo "error input"
fi




14、写一个脚本

   (1) 传递一些目录给此脚本;

   (2) 逐个显示每个目录的所有一级文件或子目录的内容类型;

   (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;

#!/bin/bash
read -p "Please input File List :" file1
if [ -d "$file1" ]; then
    echo "This line file:"
    find $file1 -type l
    echo "This file list:"
    find $file1 -type d
    echo "This document"
    find $file1 -type f
else
echo "error input"
fi
f1=$(find $file1 -type l |wc -l)
f2=$(find $file1 -type d |wc -l)
f3=$(find $file1 -type f |wc -l)
echo -e "Have \nline file:$f1\nfile list:$f2\ndocument:$f3"


15、写一个脚本

  通过命令行传递一个参数给脚本,参数为用户名

  如果用户的id号大于等于500,则显示此用户为普通用户;

#!/bin/bash
read -p "Please input UserName:" name 
i=$(cat /etc/passwd |grep "$name")
id1=$(grep "^$name")
if [ $id1 -gt 500 ];then
echo "$name is ordinary user."
else 
echo "$name is super user."
fi


16、写一个脚本

   (1) 添加10用户user1-user10;密码同用户名;

   (2) 用户不存在时才添加;存在时则跳过;

   (3) 最后显示本次共添加了多少用户;

#!/bin/bash
u=user
unb=0
for((i=1;i<11;i++))
do
useradd $u$i &>/dev/null
    if [ $? = 0 ];then
echo "$u$i" |passwd --stdin $u$i &>/dev/null
    ((unb=unb+1))
    fi
done
echo "creat $unb user"


17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;

#!/bin/bash
ip1=172.16.250
echo "This Online IP address:"
for ((i=20;i<101;i++))
do
    ping -c 1 $ip1.$i &>/dev/null
    if [ $? = 0 ];then
    echo "$ip1.$i"
    fi
done
echo "END"


18、打印九九乘法表;

#!/bin/bash
typeset -i i=1
typeset -i j=1
方法1:
until [ $j -gt 9 ]; do
        until [ $i -gt $j ];do
                #echo -ne  "${i}X${j}=$[$i*$j]\t"
                printf "${i}X${j}=$(($i*$j))\t"
                ((i++))
        done
方法2:
for j in {1..9};do
        for ((i=1; i<=j; ++i));do
                printf "${i}X${j}=$(($i*$j))\t"
        done
        echo
done



本文出自 “11619161” 博客,请务必保留此出处http://11629161.blog.51cto.com/11619161/1862234

以上是关于linux学习作业-第八周的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习第八周作业

2017-2018-2 20179209《网络攻防》第八周作业

2017-2018-2 20179215《网络攻防实践》第八周作业

2017-2018-1 20179203 《Linux内核原理与分析》第八周作业

《网络攻防第八周作业》

马哥2016全新Linux+Python高端运维班第八周作业