标签:第八周
1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥:实现二层的转发,端口较少。替代品为交换机
集线器:二层数据的转发但由于是广播发送故一台发送数据其他的不能发送可以接收没有安全性,已逐渐淘汰,替代品为交换机
二层交换机-也称多端口网桥。二层的快速转发依据MAC地址转发数据。是网桥和集线器的升级产品。通常用于网络的接入层
三层交换机:路由器和交换机的集合,即可用于二层的快速转发也可实现路由功能。通常布置在网络汇聚层和核心层
路由器:专门用于路由实现跨网络的数据转发。通常用于网络出口即连接ISP的部分
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
Ip地址按照使用的协议分为IPv6和IPv4
IPv4可分为 :
A类大型网络 地址范围为:0-127 掩码为255.0.0.0
B类中型网络 地址范围为:128-191 掩码为255.255.0.0
C类小型网络 地址范围为192-223 掩码为255.255.255.0
D类组播网络 地址范围为224-239
E类 保留 地址范围为240-255
掩码用来识别网络的地址范围,转换为二进制按位对应,网络地址对应为1,主机为0
掩码主要是将大网络细分为多个小网络,
掩码有两种表示方法:第一种使用十进制 即192.168.1.0 255.255.255.0 另一种为使用数值表示则为192.168.1.0/24
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI为七层
从低到高位:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP为四层
从低到高为:网络接口层、网络层、传输层、应用层
物理层为具体的电子器件,如板卡,供电设备等
数据链路层的设备为集线器、交换机、网桥
网络层的设备为路由器和三层交换机
应用层为具体的应用如HTTP DNS E-MAIL
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
第一步:申请一条线路或与别人共享同一网络
第二步:编辑配置文件,指定ip地址,DNS等信息
vim /etc/sysconfig/network-scripts/ifcfg-en0
增加一下字段
IPADDR=192.168.1.0
NETMASK=255.255.255.0
ONBOOT=yes
第三步:配置DNS服务器
vim /etc/resolve.conf
nameserver 8.8.8.8
第四步:重启网络服务
service network restart
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
命令行工具
ifconfig 配置网络接口地址
ip 配置和管理接口地址
route 配置和管理路由
hostname 配置主机名
nmcli centos 7下的配置网络地址
图形化工具nmtui setup
使用命令后将打开图形界面按照界面提示操作即可
配置文件
/etc/sysconfig/network-scripts/ifcfg-接口名 接口地址配置位置
/etc/resolv.conf 域名解析的配置文件
/etc/sysconfig/network 主机名信息
/etc/udev/rules.d/70-persistent-net.rules udev设备的配置信息
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash
#
iphost=172.16.250
for ((i=1;i<254;i++));do
ping -c 2 -t 1 $iphost.$i &> /dev/null
[ $? = 0 ] && echo -e "the host \033[31m$iphost.$i \033[0m is online" || echo -e "the host \033[32m$iphost.$i \033[0m is offline"
done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
DEVICE= 此配置文件应用到的设备;
HWADDR= 对应的设备的MAC地址;
BOOTPROTO=[dhcp|static|none|bootp] 激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
NM_CONTROLLED=[yes|no] NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;
ONBOOT=[yes|no]在系统引导时是否激活此设备;
TYPE=接口类型;常见有的Ethernet, Bridge;
UUID=设备的惟一标识;
IPADDR=指明IP地址;
NETMASK=子网掩码;
GATEWAY= 默认网关;
DNS1=第一个DNS服务器指向;(优先级高)
DNS2=第二个DNS服务器指向;
USERCTL=[yes|no] 普通用户是否可控制此设备;
PEERDNS=[yes|no] 如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;
8、如何给网络接口配置多个地址,有哪些方式?
1)、ifconfig eth0:0 192.168.0.1/24 up
2)、ip addr add 172.16.100.1/24 dev eth0 label eth0:0
3)、编辑配置文件vi /ec/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE="eth0:0" 必须改名
BOOTPROTO="static" //必须配置为
IPADDR=192.168.1.1
NETMASK=255.255.255.0
UUID一定要去掉
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
ifconfig (配置网络接口地址,立即生效)
ifconfig (没有参数时为查看接口信息)
ifconfig eth0 172.16.100.1/16
ifconfig eth0 172.16.100.1 netmask 255.255.0.0
以上两条接口配置为等效命令,
特殊用法:ifconfig eth0 - promisc 指定接口为混杂模式,则可用网络的监听。会收到该配置接口所在的或流经该网络的所有报文
ip(强大的网络管理命令)
常用的子命令
ip link 管理设备的
ip link show 显示所有的设备
ip link show dev eth0 显示指定的设备
ip link show up 显示处于启用状态的接口
ip link set dev eth0 down 使(eth0)指定设备down 恢复则使用ip link set dev eth0 up
ip addr 地址的管理
ip addr add 添加地址 (如果已经有地址则会增加一个辅助地址)
ip addr del 删除地址
ip addr add 172.16.1.1/24 dev eth0
ip addr del 172.16.1.1/24 dev eth0
ip addr show 显示地址
ip addr flush 清空地址
ip addr flush dev eth1
ip route 路由的管理
ip route show 显示路由表
ip route add 添加路由 (主机路由的添加不能加掩码)
ip route del 删除路由
ip route flush 清空路由
ip route add 10.100.0.0/16 via 10.100.1.0 dev eth0
ip route del 10.100.0.0/16 via 10.100.1.0 dev eth0
添加默认网关 ip route default via 172.16.0.1
route (配置路由)
查看本机的路由 route -n
route有两个子命令添加add、删除del;每个子命令有主机路由host、网络路由net两种
命令格式 : route [add|del] [-host|-net] 想要到达的网络地址 掩码 (主机路由默认32可不写) gw 经由的网关 dev 出去的接口
route add -host 192.168.1.100 gw 192.168.1.254 dev etho // 等效于下面的一条,就是掩码配置方式的不同
route add -net 192.168.1.0/24 gw 192.168.1.254 dev etho
route add -net 192.168.1.0/24 netmask 255.255.255.0 gw 192.168.1.254 dev etho
扩展:默认路由的配置
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.254
route add default gw 172.16.0.254
查看网络状态
netstat(网络)
netstat -tnl 显示TCP协议的处于监听状态的网络连接
nestat -tan 显示所有TCP协议的网络连接
netstat -uan 显示所有UDP协议的网络连接
netstat -rn 等效于 route -n 显示路由表
netstat -i 显示接口的信息
netstat -Ieth0 显示制定的接口的信息 这个为显示eth0 接口的信息
ss(网络繁忙时使用)
ss -tnl 显示TCP协议的处于监听状态的网络连接
ss -tan 显示所有TCP协议的网络连接
ss -uan 显示所有UDP协议的网络连接
nmcli(centos7专门用来管理网络的命令,ifconfig 在centos 7中是默认不能使用的)
nmcli device 显示和管理网络接口
nmcli device status
nmbli device show eth0
nmcli connetction 启动、停止和管理网络设备
nmcli connection down eth0
nmcli connection up eth0
nmcli connection add eth0 ipv4.address 172.16.100.1/24 配置地址
nmcli connection add eth0 ipv4.gateway 172.16.100.254/24 配置地址
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
rpm 不能自动解决数据包之间的依赖关系需要手动解决
安装软件包
rpm -i 选项 包名
rpm -ivh openssh 安装软件包并显示安装进度
rpm -ivh --oldpackage openssh 安装旧版本的包
并显示安装进度 ,这通常是由于新的不兼容所以回退
rpm -ivh --nodeps openssh 由于依赖关系的存在,在没有将依赖关系的数据包安装上区不能安装所以加选项 不检查先安装
升级软件包
rpm - U | -F同样都能升级包 但-F如果没有旧的就不升级,而 -U 有就升级没有就安装
rpm -u bind
删除软件包
rpm -e 包名
rpm -e openssh
查询包
rpm -qf /usr/bin/ls 查看LS由那个数据包生成
rpm -ql openssh 查询包生成的文件路径
rpm -qc openssh 查询包生成的配置文件路径
rpm -qi openssh 查询包的信息
数据库维护
rpm {--initdb|--rebuilddb}
initdb: 初始化
如果事先不存在数据库,则新建之;否则,不执行任何操作;
rebuilddb:重建
无论当前存在与否,直接重新创建数据库;
yum(centos 系列的前端工具能自动解决数据包之间的依赖关系)
安装软件包 yum install openssh
升级软件包 yum update openssh
删除软件包 yum remove openssh
查询包
yum lish ssh
yum search ssh
数据库维护
yum clean all
yum makecache
组包的管理
组包的安装
yum groupinstall "Development Tools"
组包的升级
yum groupupdate "Development Tools"
组包的查询
yum grouplist "Development Tools"
组包的移除
yum groupremove "Development Tools"
11、如何使用发行版光盘作为yum repository,请描述该过程。
第一步:挂载光盘到系统目录下
mount -r s /dev/cdrom /mydata/my_yum
第二步创建yum源
[MyYum]
name=my_yum
baseurl=file:///mydata/my_yum
gpgcheck=0
enable=1
第三步重建YUM缓存记录
yum clean all
yum makecache
第四布验证:
yum repolist all
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash
#
for name in `ls /tmp/rc3` ; do
if [ "${name:0:1}" == "S" ] ; then
echo "$name start"
elif [ "${name:0:1}" == "K" ] ; then
echo "$name stop "
fi
done
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash
#
declare -i id_sum=0
[ $# le 1 ] && echo "the argument must more than one " && exit 10
for i in $@;do
id $i &> /dev/null
if [ $? = 0 ];then
let id_sum += $(id $i -u)
else
echo "the user $i is not existed"
fi
done
echo "the user id sum is $id_sum"
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash
#
test_file () {
if [ -L $dir ]; then
echo -e "$dir \t is Symbolic file"
elif [ -f $dir ]; then
echo -e "$dir \t is regular file."
elif [ -b $dir ]; then
echo -e "$dir \t is Block file"
elif [ -p $dir ]; then
echo -e "$dir \t is Pipe file"
elif [ -S $dir ]; then
echo -e "$dir \t is Socket file"
elif [ -d $dir ];then
echo -e "$dir \t is Dirctory file"
else
echo -e "$dir \t is unknown."
fi
}
[ $# -lt 1 ] && echo "The arguments must more than 1 " && exit 1
for dir in $* ; do
if [ ! -e $dir ]; then
echo "$dir is file not exist."
exit 8
fi
echo "this is the $dir"
if [ -d $dir ];then
for dir in `ls $dir` ;do
test_file $dir
done
else
test_file
fi
done
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash
#
[ $# -ne 1 ] && echo "the argument must only one " && exit 10
id $1 &> /dev/null
[ $? -ne 0 ] && echo "the user $1 is not existed" && exit 10
if [ `id $1 -u ` -ge 500 ];then
echo -e "the user \t $1 \t is common user"
else
echo -e "the user \t $1 \t is system regist user"
fi
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash
#
declare -i user_num=0
for ((i=1;i<10;i++));do
id user$i &> /dev/null
if [ $? = 0 ];then
echo "the user user$i is existed"
else
useradd user$i & > /dev/null
echo "user$i" | passwd --stdin user$i
let user_num++
fi
done
echo "the user add number is $user_num"
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash
#
iphost=172.16.250
for ((i=20;i<100;i++));do
ping -c 2 -w 1 $iphost.$i &> /dev/null
if [ $? = 0];then
echo "the host $iphost is online"
fi
18、打印九九乘法表;
[root@localhost tmp]# vi ss.sh
#!/bin/bash
#
for ((i=1;i<10;i++));do
for ((j=1;j<i+1;j++));do
echo -e -n "${i}*${j}=$[ ${i}*${j} ]
done
echo
done
标签:第八周
原文地址:http://8663794.blog.51cto.com/8653794/1859688