馬哥運維班第八週做業

一、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。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
相關文章
相關標籤/搜索