马哥运维班第八周做业

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

    不是很懂网络这块,下面是我理解:node

网桥:将两个网络链接起来centos

交换机:基于mac地址链接多个网络缓存

路由器:基于ip地址链接多个网络bash

而后万能的度娘,服务器

1 中继器网络

中继器因为工做在OSI模型的物理层(第一层),因此能够成为物理层设备或者一层设备。它其实仅仅是扩大了以太网的(物理上的距离)网络范围,它从一个端口收包后(作信号放大处理)发送到其它全部端口(通常只有两个端口)。它解决了两个问题:距离远时,信号有衰减,故它能够放大;屏蔽了各类以太网电缆线的差异。app

从效果看,使用中继器两个端口链接的两个网络,就是(同)一个扩大范围了的以太网。因此,冲突域和广播域跟传统以太网同样,仍是整网。ssh

2 集线器socket

集线器其实就是多端口的中继器,也是从一个端口收包后(作信号放大处理)发送到其它全部端口。

可见,中继器和集线器都是物理层设备,是看不到二层相关信息的,仅做伸展以太网的网络距离的做用而已。

3 网桥

网桥的背板是端口隔离的,就是说每一个端口都是独立通道,再也不像中继器/集线器那样是共享性质的背板了。终于可使用独立的端口作点智能功能了。

网桥使用二层mac表去维护mac和端口的对应关系,这能够经过初期的二层广播(未知单播走广播流程)报文学习到。这样,网桥能够知道每一个端口和其下全部节点的mac的对应关系。

4.二层交换机

二层交换机属数据链路层设备,能够识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在本身内部的一个地址表中。

5.三层交换机

三层交换机用于局域网(具备频繁通讯、各个子网都是同种物理介质类型的特色),主要对大量数据作快速交换处理。

6.路由器

路由器工做在网络层,负责两个局域网之间按帧传输数据,路由器经过比对路由表将每一帧传到指定的目的地,路由器的工做模式是全双工的。

然并卵,我仍是不知道讲的是什么。。


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

A类:第一个字段为网络地址,其余三个字段为主机地址。

地址范围:0 000 0000 - 0 111 1111: 1-127   //第一字段第一位为0

默认子网掩码:255.0.0.0

B类:前两个字段为网络地址,后两个字段为主机地址。

地址范围:10 00 0000 - 10 11 1111:128-191 //第一字段前两位为10

默认子网掩码:255.255.0.0

C类:前三个字段为网络地址,最后一个地算为主机地址

110 0 0000 - 110 1 1111: 192-223         //第一字段前三位为110

默认子网掩码:255.255.255.0

D类:组播

1110 0000 - 1110 1111: 224-239 //以1110开头

E类:保留

240-255

三、计算机网络的分红模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。

TCP/IP模型:

application layer:应用层

transport layer:传输层,标记进程

internet layer:网络层,标记网络地址,跨网络通讯,网络之间通讯经过路由器解决

datalink layer:链路层,标记本地主机的地址,解决本地网络的通讯。经过交换机解决本地网络通讯

pysical layer:物理层,物理设备,解决硬件的标准:接口,电压,电气信号等。可能要用到网卡

OSI参考模型分为7层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,也就是将tcp/ip模型中的应用层分红了OSI参考模型分为7层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。


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

1.配置ip地址,修改/etc/sysconfig/network-scripts/ifcfg-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: 默认网关; (此处优先级比/etc/resolv.conf高,直接配置到网卡中)

DNS1:第一个DNS服务器指向;

DNS2:第二个DNS服务器指向;

USERCTL:普通用户是否可控制此设备;

PEERDNS:若是BOOTPROTO的值为“dhcp”,是否容许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;

eg1.

DEVICE="eth0"

BOOTPROTO="static"

IPADDR=192.168.111.2

NETMASK=255.255.255.0

GATEWAY=192.168.111.1

ONBOOT=yes

TYPE=Ethernet

2.配置路由信息,/etc/sysconfig/network-scripts/route-IFACE文件

两种风格:

(1) TARGET via GW

(2) 每三行定义一条路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

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

1.ifconfig

[root@localhost ~]# ifconfig eth0 192.168.108.137 netmask 255.255.255.0

2.ip

[root@localhost ~]# ip addr add dev eth0 192.168.108.137

3.文件配置 /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"

BOOTPROTO="dhcp"

HWADDR="00:0C:29:92:AB:FB"

IPV6INIT="yes"

NM_CONTROLLED="yes"

ONBOOT="yes"

TYPE="Ethernet"

UUID="863486f2-fe14-4b4a-946a-c79bb2e586c9"


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

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

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

[root@localhost week8]# cat six.sh

#!/bin/bash

for((i=1;i<=254;i++))

do

#ping:发包命令

#-c:次数 -w:测试时间

    ping -c 1 -w 1 172.16.250.$i &> /dev/null

    if [ $? -eq 0 ];then

#echo -e:设置颜色

#nm,m前指定颜色

#字体颜色:30 - 39

30:黑 

31:红 

32:绿 

33:黄 

34:蓝色 

35:紫色 

36:深绿 

37:白色 

echo -e "\033[32m 172.12.250.$i \033[0m"

    else

echo -e "\033[31m 172.12.250.$i \033[0m"

    fi

done

[root@localhost week8]# ./six.sh

 172.12.250.1 

 172.12.250.2 

 172.12.250.3 

 172.12.250.4 

 172.12.250.5 

 172.12.250.6 

 

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

同题4.

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

1.ifconfig命令

[root@localhost week8]# ifconfig eth0:0 192.168.111.4/24

[root@localhost week8]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:6B:80:EA  

          inet addr:192.168.111.2  Bcast:192.168.111.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe6b:80ea/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:19271 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2479 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:1786094 (1.7 MiB)  TX bytes:261884 (255.7 KiB)


eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:6B:80:EA  

          inet addr:192.168.111.4  Bcast:192.168.111.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1


lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:18 errors:0 dropped:0 overruns:0 frame:0

          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:1010 (1010.0 b)  TX bytes:1010 (1010.0 b)

2.ip命令

[root@localhost week8]# ip addr add 192.168.111.5 dev eth0:1 

[root@localhost week8]# ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:6b:80:ea brd ff:ff:ff:ff:ff:ff

    inet 192.168.111.2/24 brd 192.168.111.255 scope global eth0

    inet 192.168.111.5/32 scope global eth0

    inet 192.168.111.4/24 brd 192.168.111.255 scope global secondary eth0:0

    inet6 fe80::20c:29ff:fe6b:80ea/64 scope link 

       valid_lft forever preferred_lft forever

3: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 

    link/ether d2:8f:76:1f:86:0c brd ff:ff:ff:ff:ff:ff

3.配置文件

/etc/sysconfig/network-scripts/IFACE_ALIAS


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

1.ifconfig 显示本机的网络配置信息

  选项:

  -a:显示全部接口信息

  Interface:显示指定接口信息

  up:打开某接口,当前会话有效,永久生效修改/etc/sysconfig/network-scripts下的接口文件,root用户才有权限执行此命令

  down:关闭某接口,一样只在当前会话有效

2.ip

1.ip link 

set:设置

show:显示

2.ip addr

add :增长

del :删除

show:显示

flush:刷新

3.ip route

add :增长

del :删除

show:显示

flush:刷新

3.nmcli

nmcli dev

show:查看设备

nmcli con:ip地址等信息查看或设置

show

modify:修改

            nmcli connection modify IFACE [+|-]setting.property value

                常见的setting.property             ipv4.addresses

            ipv4.gateway

            ipv4.dns1

            ipv4.method


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

1.rpm

[select-options]

-a: 全部包

-f: 查看指定的文件由哪一个程序包安装生成

-p:针对还没有安装的程序包文件作查询操做;


[query-options]

-c: 查询程序的配置文件

-d: 查询程序的文档

-i: information

-l: 查看指定的程序包安装后生成的全部文件;

-R: 查询指定的程序包所依赖的CAPABILITY

eg.查询zip的详细信息

[root@localhost ~]# rpm -qi zip

Name        : zip                          Relocations: (not relocatable)

Version     : 3.0                               Vendor: CentOS

Release     : 1.el6                         Build Date: Thu 11 Nov 2010 07:26:40 AM PST

Install Date: Wed 24 Aug 2016 12:05:02 PM PDT      Build Host: c6b3.bsys.dev.centos.org

Group       : Applications/Archiving        Source RPM: zip-3.0-1.el6.src.rpm

Size        : 823612                           License: BSD

Signature   : RSA/8, Sat 02 Jul 2011 10:07:05 PM PDT, Key ID 0946fca2c105b9de

Packager    : CentOS BuildSystem <http://bugs.centos.org>

URL         : http://www.info-zip.org/Zip.html

Summary     : A file compression and packaging utility compatible with PKZIP

Description :

The zip program is a compression and file packaging utility.  Zip is

analogous to a combination of the UNIX tar and compress commands and

is compatible with PKZIP (a compression and file packaging utility for

MS-DOS systems).


Install the zip package if you need to compress files using the zip

program.

安装:

rpm {-i|--install} [install-options] PACKAGE_FILE ...

-v: verbose 

-h: 以#显示程序包管理执行进度;

升级:

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

卸载:

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]

           [--notriggers] [--test] PACKAGE_NAME ...

2.yum,dnf

    显示仓库列表:

    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

    搜索:以指定的关键字搜索程序包名及summary信息

    search string1 [string2] [...]

   


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

1.光盘挂载

默认会自动挂载,这里自动挂载到/media/CentOS_6.5_Final

[root@localhost media]# df

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       18339256 9590452   7817220  56% /

tmpfs             506176      84    506092   1% /dev/shm

/dev/sda1         297485   34625    247500  13% /boot

/dev/md1         2084844   68656   1910284   4% /backup

/dev/sr0         4363088 4363088         0 100% /media/CentOS_6.5_Final

若是想修改挂载目录:

1.建立挂载目录

[root@localhost media]# mkdir cdrom

2.挂载

[root@localhost media]# mount -t iso9660 /dev/cdrom1 /media/cdrom

2.建立配置文件

[root@localhost yum.repos.d]# ls

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo

#须要将CentOS-Base.repo移除,否则默认今后库安装

[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak

[root@localhost yum.repos.d]# vi CentOS-Local.repo

[Centos]

name=Centos

baseurl=file:///media/cdrom

gpgcheck=0

enabled=1

#测试

[root@localhost yum.repos.d]# yum install lftp

Loaded plugins: fastestmirror, refresh-packagekit, security

Determining fastest mirrors

Centos                                                                                            | 4.0 kB     00:00 ... 

Centos/primary_db                                                                                 | 4.4 MB     00:00 ... 

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package lftp.x86_64 0:4.0.9-1.el6 will be installed

--> Finished Dependency Resolution

...


十二、写一个脚本,完成如下功能

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

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

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

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

[root@localhost week8]# cat twelve.sh
#!/bin/bash
knum=0
snum=0
for i in $(ls /etc/rc.d/rc3.d/K*);do
    filename=$(basename $i)
    echo -n "$filename "
    let knum++
done
echo "stop"
for i in $(ls /etc/rc.d/rc3.d/S*);do
    filename=$(basename $i)
    echo -n "$filename "
    let snum++
done
echo "start"
echo "the num of start of k is $knum"
echo "the num of start of s is $snum"
[root@localhost week8]# ./twelve.sh
K01smartd K05wdaemon K10psacct K10saslauthd K15htcacheclean K15httpd K30spice-vdagentd K50dnsmasq K50netconsole K50snmpd K50snmptrapd K73winbind K74ntpd K75ntpdate K75quota_nld K84wpa_supplicant K87restorecond K89rdisc K99rngd stop
S01sysstat S02lvm2-monitor S03vmware-tools S08ip6tables S08iptables S10network S11auditd S11portreserve S12rsyslog S13cpuspeed S13irqbalance S15mdmonitor S20kdump S22messagebus S23NetworkManager S25blk-availability S25cups S25netfs S26acpid S26haldaemon S26udev-post S50bluetooth S55sshd S57vmware-tools-thinprint S80postfix S82abrt-ccpp S82abrtd S90crond S95atd S99firstboot S99local start
the num of start of k is 19
the num of start of s is 31

   

1三、写一个脚本,完成如下功能

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

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

[root@localhost week8]# cat thirteen.sh
#!/bin/bash
sum=0
for i in $@;do
     username=$i
     grep "^$username" /etc/passwd &> /dev/null
     if [ $? -eq 0 ];then
num=$(id $username | grep -o "uid=[0-9]*" | cut -d = -f 2)
let sum+=num
     fi
done
echo "sum of userid is $sum"
[root@localhost week8]# ./thirteen.sh yannic gapsv4
sum of userid is 1002


1四、写一个脚本

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

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

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

[root@localhost week8]# cat fourteen.sh
#/bin/bash
#判断参数个数
if [ $# -eq 0 ];then
     echo "input some directories"
fi
filenum=0
dirnum=0
#isfile()用来显示文件类型,由于屡次调用封装成函数
function isfile()
{
    if [ -f $1 ];then
echo "$1 is a comm file"
    elif [ -b $1 ];then
        echo "$1 is a block file"
    elif [ -c $1 ];then
       echo "$1 is a character file"
    elif [ -h $1 ];then
echo "$1 is a syblolik file"
    elif [ -p $1 ];then
echo "$1 is a pipe file"
    elif [ -S $1 ];then
echo "$1 is a socket file"
    fi
}
for i in $@;do
     if [ -d $i ];then
echo "$i:"
for j in $(ls $i);do
    if [ -d $i/$j ];then
                echo "$i/$j is a directory "
                let dirnum++
    else
let filenum++
filename=$i/$j
#调用函数
isfile $filename
      fi
done
    else
echo "it is not a directory"
done
echo "there are $filenum files,$dirnum directories"
#执行结果
/etc/wgetrc is a comm file
/etc/wpa_supplicant is a directory 
/etc/X11 is a directory 
/etc/xdg is a directory 
/etc/xinetd.d is a directory 
/etc/xml is a directory 
/etc/yum is a directory 
/etc/yum.conf is a comm file
/etc/yum.repos.d is a directory 
there are 111 files,107 directories

1五、写一个脚本

  经过命令行传递一个参数给脚本,参数为用户名
  若是用户的id号大于等于500,则显示此用户为普通用户;
[root@localhost week8]# cat fifteen.sh
#!/bin/bash
if [ $# -eq 0 ];then
    echo "please input a username"
    exit -1
fi
id $1 &> /dev/null
if [ $? -ne 0 ];then
    echo "no such user"
    exit -2
fi
userid=$(id $1 | grep -o "uid=[0-9]\+" | cut -d= -f2)
if [ $userid -ge 500 ];then
    echo "$1 is a common user"
fi
[root@localhost week8]# ./fifteen.sh yannic
yannic is a common user
[root@localhost week8]# ./fifteen.sh yannic2
no such user


1六、写一个脚本

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

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

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

[root@localhost week8]# cat sixteen.sh
#/bin/bash
count=0
for i in $(seq 1 10);do
    username=user$i
     
    grep "^$username" /etc/passwd &> /dev/null
    if [ $? -ne 0 ];then
        useradd $username
echo $username | passwd --stdin $username &>/dev/null
let count++
    fi
     
done
echo "create $count users"
[root@localhost week8]# ./sixteen.sh
create 10 users


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

[root@localhost week8]# cat seventeen.sh
#!/bin/bash
for((i=20;i<=100;i++))
do
    ping -c 1 -w 1 172.16.250.$i &> /dev/null
    if [ $? -eq 0 ];then
echo 172.16.250.$i
    fi
done


1八、打印九九乘法表;

#i表示行,j表示列
[root@localhost week8]# cat eighteen.sh
#/bin/bash
for((i=1;i<=9;i++));do
    for((j=1;j<=i;j++));do
echo -n "$j*$i=$[$j*$i] "
    done
    echo
done
[root@localhost week8]# ./eighteen.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
相关文章
相关标签/搜索