马哥教育网络21期+第八周练习博客 #
1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
集线器:工作于ISO模型的物理层,防止由于距离远,信号衰减;
网桥:用来连接不同网段,隔离冲突域;
二层交换机:二层交换机一般做为了三层交换机以下,利用设备mac地址进行通信,可以划分vlan,隔离广播域;
三层交换机:用于核心数据转发,不仅可以划分广播域,也可以实现路由转发功能;
路由器:实现路由转发功能,并且可以对路由进行优化以及限制功能,通常部署在边界或三层交换机之上;
2、IP地址的分类有哪些?子网掩码的表示形式及其作用;
IP地址分为5类:A类,B类,C类,D类,E类;
A类:
0 000 0000 - 0 111 1111: 1-127
网络数:126, 127
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0
私网地址:10.0.0.0/8
B类:
10 00 0000 - 10 11 1111:128-191
网络数:2^14
每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0
私网地址:172.16.0.0/16-172.31.0.0/16
C类:
110 0 0000 - 110 1 1111: 192-223
网络数:2^21
每个网络中的主机数:2^8-2
默认子网掩码:255.255.255.0
私网地址:192.168.0.0/24-192.168.255.0/24
D类:组播
1110 0000 - 1110 1111: 224-239
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI七层模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层;
物理层:网线,集线器
数据链路层:网卡,网桥
网络层:路由器
传输层:四层交换机
应用层:计算机的各种数据
TCP/IP四层模型:物理层,网络层,传输层,应用层;
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
1,首先物理层需要将网线或ip地址与互联网配置在同一个网段当中;
2,使用ifconfig命令配置ip地址,这里请注意ifconfig配置命令在系统重新启动之后需要重新配置;
3,如上层没有网络转发功能,需要使用route -n配置路由转发;
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
Liunx网络属性配置的相关配置文件:/etc/sysconfig/network-scripts/文件下;
DEVICE:此配置文件应用到的设备;
HWADDR:对应的设备的MAC地址;
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;
ONBOOT:在系统引导时是否激活此设备;
TYPE:接口类型;常见有的Ethernet, Bridge;
UUID:设备的惟一标识;
下面看一下具体的配置:
[root@localhost network-scripts]# cat ifcfg-eth0
DEVICE=eth0-->设备名称
TYPE=Ethernet-->设备名称
UUID=840aafa6-9d45-43a1-ba88-dd3be9f3ff1e-->设备的唯一标识
ONBOOT=no-->系统引导时是否激活此设备
NM_CONTROLLED=yes-->此网卡是是否接受NM控制;
BOOTPROTO=none-->激活此设备使用的ip地址配置协议;
HWADDR=08:00:27:B5:54:45
IPADDR=192.168.1.5-->ip地址
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
这里要注意配置完此配置文件需要使用service network restart重新激活此网络功能!
这里的路由配置文件:/etc/sysconfig/network-scripts/route-IFACE
网络接口识别并命名相关的udev配置文件:/etc/udev/rules.d/70-persistent-net.rules
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
[root@wanghongkai bin]# cat ping.sh
#!/bin/bash
declare -i i=1
net="192.168.56"
declare -i j=0
declare -i k=0
while [ $i -le 254 ];do
ping -c 1 -w 1 $net.$i &> /dev/null
if [ $? -eq 0 ]; then
echo -e "\033[32m $net.$i is up. \033[0m"
let j++
else
echo -e "\033[31m $net.$i is down. \033[0m"
let k++
fi
let i++
done
echo -e "\033[32m up is $j \033[0m"
echo -e "\033[31m down is $i \033[0m"
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
Liunx网络属性配置的相关配置文件:/etc/sysconfig/network-scripts/文件下;
DEVICE:此配置文件应用到的设备;
HWADDR:对应的设备的MAC地址;
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;
ONBOOT:在系统引导时是否激活此设备;
TYPE:接口类型;常见有的Ethernet, Bridge;
UUID:设备的惟一标识;
下面看一下具体的配置:
[root@localhost network-scripts]# cat ifcfg-eth0
DEVICE=eth0-->设备名称
TYPE=Ethernet-->设备名称
UUID=840aafa6-9d45-43a1-ba88-dd3be9f3ff1e-->设备的唯一标识
ONBOOT=no-->系统引导时是否激活此设备
NM_CONTROLLED=yes-->此网卡是是否接受NM控制;
BOOTPROTO=none-->激活此设备使用的ip地址配置协议;
HWADDR=08:00:27:B5:54:45
IPADDR=192.168.1.5-->ip地址
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
这里要注意配置完此配置文件需要使用service network restart重新激活此网络功能!
8、如何给网络接口配置多个地址,有哪些方式?
1) ifconfigetho IP/mask
2) ipaddr add ip device etho
3) Linux网络属性配置的tui(text user interface):system-config-network-tui
4) 使用setup找到;
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
netstat:-r显示内核路由信息
-n数字格式
ss: -t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
常用组合:-tan,-tanl,tanlp,-uan
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
rpm:-v:显示详细信息
-vv:显示更多丑陋的调试信息
-h:以#显示程序包管理执行进度,每个#表示2%的进度
-U:升级
--oldpackage:降级
--force:强行升级
-a:查询当前系统已安装的程序包
-f:查询指定的文件由那个程序安装生成
--changelog:查询rpm包的changlog
-c: 查询程序的配置文件
-d: 查询程序的文档
-i: information
-l: 查看指定的程序包安装后生成的所有文件;
--scripts:程序包自带的脚本片断
-R: 查询指定的程序包所依赖的CAPABILITY;
--provides: 列出指定程序包所提供的CAPABILITY;
这里使用man rpm查看各个命令使用方式;
yum:解决了程序包的依赖关系;
这里我已经安装了新的操作系统,并将系统中的yum源更改为阿里云的yum源:
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Media.repo epel.repo
CentOS-Base.repo.bach CentOS-Vault.repo epel-testing.repo
CentOS-Debuginfo.repo epel-release-latest-6.noarch.rpm
11、如何使用发行版光盘作为yum repository,请描述该过程。
这里先挂载新的光盘并创建目录:
将光盘进行挂载:mount -r -t iso9660 /dev/cdrom /media/cdrom
创建yum源中的配置文件;
这里给yum源中的配置文件逐一解释:
name=新建yum名称
baseurl:指定yum源的地址
enabled:是否启用
gpgcheck:是否需要验证
这里有必要说一下编译安装:
因为有的软件是无法通过yum,rpm等方法进行安装,这时候我们就需要进行源代码的编译安装;
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
[root@localhost bin]# cat rc.sh
#!/bin/bash
#
#
cd $1
for i in $(ls K*);do
echo "$i.stop"
let t++
done
for j in $(ls S*);do
echo "$j.start"
let u++
done
echo "K is $t"
echo "S is $u"
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
[root@wanghongkai bin]# cat sum6.sh
#!/bin/bash
#
read -p "input your user name " nameuser
while [ ${nameuser} != "quit" ];do
id ${nameuser} &> /dev/null && result=0 ||result=1
if [ ${result} -eq 1 ];then
read -p "Please input your user name again,your user name is not exist: " nameuser
continue
fi
userid=$(id -u ${nameuser})
let sumid+=$userid
read -p "input your user name again:" nameuser
done
echo "the sum of these user's ID is ${sumid}."
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
[root@localhost bin]# cat file2.sh
#!/bin/bash
#
cd $@
for file in $(ls ); do
if [ -f $file ]; then
echo "Common file."
let i++
elif [ -L $file ]; then
echo "Symbolic file."
let j++
elif [ -d $file ]; then
echo "Directory."
let y++
elif [ -S $file ];then
echo "The socket file."
let u++
elif [ -c $file ];then
echo "Character device file."
let o++
else
echo "Other type."
let p++
fi
done
#
echo "Common file $i."
echo "Symbolic file $j."
echo "Directory $y."
echo "The socket file $u."
echo "Character device file $o."
echo "Other type $p."
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
[root@wanghongkai bin]# cat yonghu.sh
#!/bin/bash
#
read -p "shu ru yong hu ming:" user
function ID {
i=`cat /etc/passwd | grep "^$user" | cut -d':' -f3`
while true; do
if [ $i -le 500 ];then
echo "$user is adminhuser."
else
echo "$user is hellouser."
fi
break
done
}
#
while true; do
ID
break
done
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
使用while方法:
[root@wanghongkai bin]# cat user.sh
#!/bin/bash
declare i=1
while [ $i -le 10 ]; do
if id user$i &> /dev/null; then
echo "user$i cun zai."
else
useradd user$i &> /dev/null && echo "user$i" | passwd --stdin user$i &> /dev/null
echo "user$i yi jing chuangjian."
fi
let i++
done
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
使用while方法实现:
[root@wanghongkai bin]# cat ping.sh
#!/bin/bash
declare -i i=1
net="192.168.56"
declare -i j=0
declare -i k=0
while [ $i -le 20 ];do
ping -c 1 -w 1 $net.$i &> /dev/null
if [ $? -eq 0 ]; then
echo "$net.$i is up."
let j++
else
let k++
fi
let i++
done
echo "up is $j"
18、打印九九乘法表;
for方法实现:
[root@wanghongkai bin]# cat for99.sh
#!/bin/bash
for i in {1..9};do
for j in {1..9};do
if [ $j -le $i ]; then
echo -n -e "${i}X${j}=$[$i*$j]\t"
fi
done
echo
done
[root@wanghongkai bin]# cat 1.sh
#!/bin/bash
#
for ((i=1;i<=9;i++));do
for ((j=1;j<=i;j++));do
echo -n -e "${j}X${i}=$[$j*$i]\t"
done
echo
done
原创文章,作者:wostop,如若转载,请注明出处:http://www.178linux.com/43091


评论列表(1条)
完成的非常好,其中还用几种方法实现,非常的棒