注意:第八周作业,请将以下题目整理在51cto博客当中,完成后请将对应的博文链接地址提交在答案栏中,提交格式如下:
学号+姓名+博文链接地址
eg:1+张三+
本周作业内容:
1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥:桥接两个不同的局域网的数据链路层设备。
集线器:以串联,共享一条带宽的方式,将多个端口连接在一起的物理层设备。所有端口为一个冲突域。现在很少使用。二层交换机:具有MAC地址学习,交换端口之间数据的数据链路层设备。一个端口为一个冲突域,所有端口为一个广播域。经常用于以太网局域网中。三层交换机:同时具有二层交换机的交换功能和三层路由器的路由功能的交换机。经常用于不同VLAN之间的互联互通,此时,比一般的路由器性能更高。路由器:用于不同局域网之间或广域网络上的数据路径选择的网络层设备。经常用于广域网络设备之间,企业的局域网与广域网之间的连接。2、IP地址的分类有哪些?子网掩码的表示形式及其作用
IPv4地址由四段三位点分十进制组成,0.0.0.0-255.255.255.255,分为五类
A类:
0 000 0000 - 0 111 1111: 1-127
网络数:2^7-1,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
E类:
240-255
子网掩码的格式:通过与IP地址格式相同的点分十进制表示,如255.0.0.0或者在IP地址后面加上/符号以及1-32位的网络位数字表示。
子网掩码的作用:通过IP地址的二进制与子网掩码的二进制进行与运算,确定某个设备的网络地址和主机号,也就是说通过子网掩码分辨一个网络的网络部分和主机部分。子网掩码一旦设置,网络地址和主机地址就固定了。
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSI | TCP/IP | 功能 | 协议 | 物理设备 |
application layer应用层 | application layer应用层 | 文件传输,电子邮件,文件服务,虚拟终端等 | TFTP,FTP,NFS,WAIS | |
presentation layer表示层 | 数据格式化,代码转换,数据加密等 | Telnet,rlogin,SNMP,Gopher | ||
session layer 会话层 | 解除或建立与其它接点的联系 | SMTP,DNS | ||
transprot layer传输层 | transfer layer传输层 | 提供端对端的接口 | TCP,UDP | 四层交机机,四层路由器 |
network layer网络层 | internet layer网络层 | 为数据包选择路由 | IP,ICMP,ARP,RARP,AKP,UUCP | 路由器,三层交换机 |
datalink layer数据链路层 | datalink layer数据链路层 | 传输有地址的帧,错误检测功能 | FDDI,Ethernet,Arpanet,PDN,SLP,PPP | 以太网交换机,网卡 |
physical layer物理层 | physical layer物理层 | 以二进制数据形式在物理媒体上传输数据;规定了电气性能等 | IEEE802.2--802.11 | 中继器,Hub,双绞线 |
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
判断linux主机是否已接入TCP/IP网络
(a)查看网路接口信息
$ ifconfig #查看活动的网络接口信息
$ ifconfig -a #查看所有的网络接口信息
$ ifconfig eth0 #查看指定的eth0网络接口信息
(b)查看网关,路由信息
$ route -n
(c)查看网络连通性
$ ping 192.168.239.1
$ nslookup
使用手动指定方式将主机连入TCP/IP网络
(a)临时手工配置IPV4地址
$ ifconfig eth0 192.168.239.128/24
(b)添加默认网关路由
$ rout add default gw 192.168.239.1
(c)添加DNS域名解析
编辑配置文件/etc/resolv.conf,修改增加
DNS1=192.168.239.1
DNS2=192.168.1.1
(d)修改主机名
$ hostname test
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
方式一:临时配置网络信息
(a)配置IPV4地址、子网掩码
$ ifconfig eth0 192.168.239.128/24 up
$ ip addr add 192.168.239.128/24 dev eth0
$ ip link set up dev eth0
$ nmcli connection modify eht0 192.168.239.128/24 up
(b)配置网关和路由
$ route add -net 192.168.183.0 netmask 255.255.255.0 gw 192.168.239.1 dev eth0
$ route add default gw 192.168.239.1 dev eth0
$ ip route add 192.168.183.0/24 via 192.168.239.1 dev eth0
$ ip route add default via 192.168.239.1 dev eth0
(c)配置DNS
DNS服务器指定,编辑/etc/resolv.conf,修改nameserver 192.168.1.1 DNS_SERVER_IP2 192.168.239.1
方式二:编辑配置文件
若要使配置在重启以后也生效,需手动编辑配置文件。
(a)编辑IFACE配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:F9:C1:9E
BOOTPROTO=static
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
UUID:设备的惟一标识;
IPADDR=192.168.239.128
NETMASK=255.255.255.0
GATEWAY=192.168.239.1
DNS1=192.168.1.1
DNS2=192.168.239.1
USERCTL=no
(b)编辑路由配置文件/etc/sysconfig/network-scripts/rout-eth0
192.168.183.0/24 via 192.168.239.1
default via 192.168.239.1
(c)编辑DNS配置文件/etc/resolv.conf
DNS1=192.168.1.1
DNS2=192.168.239.1
(d)重启网卡或网络服务
$ ifconfig eth0 down; ifconfig eth0 up
$ service network start
方式三:使用图形网络管理工具
system-config-network-tui,setup,nmtui
配置当前主机的主机名:
$ hostname test
编辑配置文件/etc/sysconfig/network,修改HOSTNAME=test
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash# script file is located /root/findonlinefor i in {1..254};do if $( ping 172.168.250.$i &> /dev/null );then echo -e "\033[32m 172.168.250.$i is online \033[0m" else echo -e "\033[31m 172.168.250.$i is offline \033[0m" fidone
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE:此配置文件应用到的设备;
HWADDR:对应的设备的MAC地址;
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;
ONBOOT:在系统引导时是否激活此设备;
TYPE:接口类型;常见有的Ethernet, Bridge;
UUID:设备的惟一标识;
IPADDR:指明IP地址;
NETMASK:子网掩码;
GATEWAY: 默认网关;
DNS1:第一个DNS服务器指向;
DNS2:第二个DNS服务器指向;
USERCTL:普通用户是否可控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;
/etc/sysconfig/network-scripts/route-IFACE
两种风格:
(1) TARGET via GW
(2) 每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
8、如何给网络接口配置多个地址,有哪些方式?
方式一:使用ifconfig临时配置$ ifconfig eth0:0 192.168.239.129 netmask 255.255.255.0$ ifconfig eth0:1 192.168.239.130/24
方式二:使用ip临时配置$ ip addr add 192.168.239.129/24 dev eth0$ ip addr add 192.168.239.130/24 dev eth0
方式三:使用nmcli配置$ nmcli connection modify eno16777755 +192.168.183.129/24
方式四:修改IFACE配置文件ifcfg-eth0:0,ifcfg-eth0:1$ cp /etc/sysconfig/network-scripts/ifcg-eth0 /etc/sysconfig/network-scritps/ifcfg-eth0:0$ cp /etc/sysconfig/network-scripts/ifcg-eth0 /etc/sysconfig/network-scritps/ifcfg-eth0:1
方式五:使用工具system-config-network-tui,setup,nmtui
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
(a)ifconfig
ifconfig [IFACE] #显示所有up或指定IFACE网口ifconfig IFACE up|down #启用或禁用IFACE网口ifconfig IFACE IP/MASK #配置指定网口IP/MASK(b)routeroute -n #查看当前route信息route add [-host|-net|default] TARGET/MASK [gw GW] #增加路由route del [-host|-net|default] TARGET/MASK [gw GW] #删除路由(c)netstatnetstat options-t: tcp协议相关-u: udp协议相关-w: raw socket相关-l: 处于监听状态-a: 所有状态-n: 以数字显示IP和端口;-e:扩展格式-p: 显示相关进程及PID常用组合:-tan, -uan, -tnl, -unlnetstat -rn #显示内核路由表netstat -in #显示网口的信息(d)ifup/ifdownifup/down IFACE #启用或禁用网口(e)ipip [ OPTIONS ] OBJECT { COMMAND | help }ip link set dev IFACE up|down #启用或禁用网口ip link show dev IFACE #显示网口信息ip link show dev up #显示up网口信息ip address add|del|show STRING
STRING: label LABEL]:添加地址时指明网卡别名 [scope {global|link|host}]:指明作用域 [broadcast ADDRESS]:指明广播地址添加、删除、查看路由:ip rout add|del|show TARGET [via GW dev IFACE src SOURCE_IP](f)ss [OPTION]... [FILTER]选项: -t: tcp协议相关 -u: udp协议相关 -w: 裸套接字相关 -x:unix sock相关 -l: listen状态的连接 -a: 所有 -n: 数字格式 -p: 相关的程序及PID -e: 扩展的信息 -m:内存用量 -o:计时器信息10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
rpm -i [install-options] PACKAGE_FILES #安装RPM包
rpm -U|-F [install-options] PACKAGE_FILES #升级RPM包
rpm -e|-r [unstall-options] PACKAGE_FILES #卸载RPM包
rpm -q [select-options] [query-options] #查询安装包
rpm -V [select-options] [query-options] #验证安装包
rpm --import /PATH/FROM/GPG-PUBKEY-FILE #导入公钥
常用组合选项:-ivh, --nodeps, --replacepkgs,-Uvh, -Fvh, -qa, -qf, -qi, -qd, -qc, -q --scripts, -q --changlog, -q --provides, -q --requires
11、如何使用发行版光盘作为yum repository,请描述该过程。
(1) 挂载光盘至某目录,例如/media/cdrom
# mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) 创建配置文件
[CentOS7]
name=centos7
baseurl=file:///
gpgcheck=0
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
are -i x=0delcare -i y=0for i in $(ls [KS]*);do [[ $i = K* ]] && echo "K**file : $i" && let x++ && mv $i stop.$i [[ $i = S* ]] && echo "S**file : $i" && let y++ && mv $i star.$idoneecho "K**files total is : $x"echo "S**files total is : $y"
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bashdeclare -i userID=0for i in $*;do if $(grep "^$i" /etc/passwd &> /dev/null );then userID+=$( grep "^$i" /etc/passwd | cut -d: -f3 ) else echo "$i is not a valid uesrID" fidoneecho "total of userID is : $userID"
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bashdeclare - i x=0delcare -i y=0for i in $*;do for k in $(ls -r $i);do [ -d $k ] && let x++ [ -e $k ] && let y++ donedoneecho "DIR total is : $x" echo "files total is : $y"
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bashif $(grep "^$@" /etc/passwd &> /dev/null );then userID=$( grep "^$@" /etc/passwd | cut -d: -f3 ) if [ $userID -ge 500 ];then echo "$@ is a general user" else echo "$@ is admin user" fifi
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bashdeclare -i x=0for i in {1..10};do if ! id user$i &> /dev/null;then useradd user$i | passwd --stdin user$i echo "" added user user$i let x++ fidone
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bashdeclare -i x=0for i in {20..100};do ping 172.16.250.$i &> /dev/null && echo "172.16.250.$i is online." && let x++doneecho online total is $x
18、打印九九乘法表;
#!/bin/bashfor((i=1;i<=9;++i)) ;do for((j=1;j<=i;j++)) ;do echo -ne "$i*$j=$((i*j))\t" done echo done