linux學習作業-第八週

本週作業內容:

1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。


網橋是早期的兩端口二層網絡設備,用來連接不同網段。網橋的兩個端口分別有一條獨立的交換信道,不是共享一條背板總線,可隔離衝突域。

與交換機一樣可以隔離衝突域,可只有2個端口,交換機可有多個比集線器接口數少,無路由功能


集線器

是指將多條以太網雙絞線或光纖集合連接在同一段物理介質下的設備。集線器是運作在OSI模型中的物理層。它可以視作多端口的中繼器,若它偵測到碰撞,它會提交阻塞信號。無路由功能、不可隔離衝突域、較早時間的局域網連接產品


二層交換機

二層交換機工作於OSI模型的第2層(數據鏈路層),故而稱爲二層交換機。二層交換技術的發展已經比較成熟,二層交換機屬數據鏈路層設備,可以識別數據包中的MAC地址信息,根據MAC地址進行轉發,並將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。


上三個設備工作在物理層

三層交換機就是具有部分路由器功能的交換機,三層交換機的最重要目的是加快大型局域網內部的數據交換,所具有的路由功能也


是爲這目的服務的,能夠做到一次路由,多次轉發。

三層交換技術是在網絡模型中的第三層實現了數據包的高速轉發,既可實現網絡路由功能,又可根據不同網絡狀況做到最優網絡性能。

三層交換機在小企業可以做成無路由器的直接選購設備;一般用於企業的骨幹網絡,負責處理各二層交換機的快速轉發,且帶有路由功能。


路由器,是連接因特網中各局域網、廣域網的設備,它會根據信道的情況自動選擇和設定路由,以最佳路徑,按前後順序發送信號。

主要用於外網接入的第一或第二設備,用於連接不同網絡的主要設備。

與三層交換機類似,更多於路由信息更新、路由表維護、路由計算、路由確定等功能。


2、IP地址的分類有哪些?子網掩碼的表示形式及其作用

國際規定:把所有的IP地址劃分爲 A,B,C,D,E。

A類地址:範圍從0~127,0是保留的並且表示所有IP地址,而127也是保留的地址,並且是用於測試環回用的。因此,A類地址的範


圍其實是從1~126之間。

B類地址:範圍從128-191

C類地址:範圍從192-223

D類地址:範圍從224-239

D類基本爲廣播地址

E類地址:範圍從240-254

子網掩碼的表示形式有2種

10.0.0.1/8

10.0.0.1 255.0.0.0

/8等於2進制11111111轉換成10進制則爲255

子網掩碼就是用來指定某個IP地址的網絡地址的,就是用來劃分子網的。


3、計算機網絡的分成模型有哪些(OSI模型和TCPIP模型),每一層的功能及涉及到的物理設備有哪些。


應用層:TCP/IP應用層:

文件傳輸,電子郵件,文件服務,虛擬終端 

TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 

 

表示層 :TCP/IP應用層

數據格式化,代碼轉換,數據加密 

沒有協議 

 

會話層 :TCP/IP應用層

解除或建立與別的接點的聯繫 

沒有協議 

 

傳輸層 :TCP/IP傳輸層

提供端對端的接口 

TCP,UDP 

設備:四層交換機


網絡層 :TCP/IP網絡層

爲數據包選擇路由 

IP,ICMP,RIP,OSPF,BGP,IGMP 

設備:路由器


數據鏈路層 :TCP/IP 物理層

傳輸有地址的幀以及錯誤檢測功能 

SLIP,CSLIP,PPP,ARP,RARP,MTU 

設備:網卡、網橋、交換機


物理層 :TCP/IP 物理層

以二進制數據形式在物理媒體上傳輸數據 

ISO2110,IEEE802。IEEE802.2 

設備:集線器、中繼器、調制解調器、網線、雙絞線、同軸電纜


4、如何將Linux主機接入到TCPIP網絡,請描述詳細的步驟。(手動指定的方式)

流程概述:

->首先物理層必須有網卡接口,將局域網的網線連接至網卡接口

->配置ip地址與掩碼(這是內網的基礎)

->配置網關信息(關係到跨網段)

->配置DNS信息(連接外網Internet的必要手段除非路由器已配置)

linux配置IP地址的幾個方法

⑴GUI畫面配置,只要找到網絡配置,就能手動配置。

⑵ifconfig 

ifconfig eth1:1 1.1.1.1 netmask 255.0.0.0

ifconfig (設備名) IP地址 netmask 子網掩碼 (及時生效)

⑶修改/etc/sysconfig/network-scripts/ifcfg-eth0

修改接口配置文件,修改後需要重啓service network restart

CentOS7則用systemctl restart network重啓



5、爲Linux主機配置網絡信息的方式有哪些,請描述各個過程。

上題寫明白了配置IP的信息,這題就寫配置默認路由與DNS吧

默認路由:

route add default gw 網關地址

route add default gw 1.1.1.1 #設置默認網關爲1.1.1.1

添加路由:

route add -net 目標網段 netmask 掩碼 gw IP(也可以替換成dev ethX)

route add -net 11.1.1.0 netmask 255.255.255.0 gw 172.16.0.1

add 增加路由

del 刪除路由

-net 設置到某個網段的路由

-host 設置到某臺主機的路由

gw 出口網關 IP地址

dev 出口網關 物理設備名

當然也可以在4題的ip設備上添加一條:

getaway 將設置網關(網關即路由)


配置DNS:

配置文件在/etc/resolv.conf

# DNS1=xxx.xxx.xxx.xxx

# DNS2=xxx.xxx.xxx.xxx

配置方法在有顏色,把#去掉就可以填寫自己的DNS地址

操作需要重啓network服務


6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;

在線的主機使用綠色顯示;

不在線的主使用紅色顯示;

echo -e "\033[32m 綠色字 \033[0m"
echo -e "\033[31m 紅色字 \033[0m"
#!/bin/bash
i1=172.16.250
for (( i=1; i<255 ; ++i))
do
    ping -c 1 $i1.$i &>/dev/null
    case $? in
    0)
    echo "$i1.$i" >> online.txt
    ;;
    1)
    echo "$i1.$i" >> dealline.txt
    esac
done
i2=$(cat online.txt)
echo This is Online
echo -e "\033[32m$i2 \033[0m "
echo This is deline
i3=$(cat dealline.txt)
echo -e "\033[31m$i3 \033[0m "


     


7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;

TYPE=Ethernet #網卡類型 

DEVICE=eth0 #網卡接口名稱 

ONBOOT=yes #系統啓動時是否自動加載 

BOOTPROTO=static #啓用地址協議 --static:靜態協議 --bootp協議 --dhcp協議 

IPADDR=1.1.1.1 #網卡IP地址 

NETMASK=255.0.0.0 #網卡網絡地址 

GATEWAY=1.1.1.1 #網卡網關地址 

DNS1=202.96.128.86 #網卡DNS地址 

HWADDR=00:0C:29:13:5D:74 #網卡設備MAC地址 

BROADCAST=1.1.1.255 #網卡廣播地址 


8、如何給網絡接口配置多個地址,有哪些方式?

⑴使用ifconfig

ifconfig eth0:# 在網卡0,添加虛擬接口  IP地址 netmask 掩碼

⑵使用ip命令

ip addr add  1.1.1.3/16 dev eth1

ip addr (添加,刪除,修改) ip地址/掩碼 dev 設備號


9、常用的網絡管理類工具有哪些,並用示例形式描述他們的使用方法。


arp:命令用於操作主機的arp緩衝區,它可以顯示arp緩衝區中的所有條目、刪除指定的條目或者添加靜態的ip地址與MAC地址對應關係

常用直接arp

[root@localhost bin]# arp 
Address                  HWtype  HWaddress           Flags Mask            Iface
172.16.249.4                     (incomplete)                              eth1
172.16.249.6                     (incomplete)                              eth1
172.16.249.2             ether   00:50:56:c0:00:08   C                     eth
#Address :IP地址
#HWtype  :硬件類型
#HWaddress :Mac地址
#Flags Mask:記錄標誌,"C"表示arp高速緩存中的條目,"M"表示靜態的arp條目
#Iface :來自哪張網卡識別。
arping:通過ping命令檢查設備上的硬件地址
arping  -I eth1 -s 172.16.249.1 172.16.249.2 
-I 選擇硬件設備
-s 源地址 後接目標地址
Unicast reply from 172.16.249.2 [00:50:56:C0:00:08]  0.950ms



ping命令:用來測試主機之間網絡的連通性

用的最多的命令之一

-c<完成次數>
-f極限堅持
-s數據包大小(字節計算)
-t設置TTL值
ping [選項] 地址(可以是IP或者網址)
ping -c 1 -s 11111 172.16.249.2
向172.16.249.2此IP發送11111字節的包1次。
PING 172.16.249.2 (172.16.249.2) 11111(11139) bytes of data.
11119 bytes from 172.16.249.2: icmp_seq=1 ttl=64 time=1.68 ms
--- 172.16.249.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 1.686/1.686/1.686/0.000 ms



nslookup

nslookup命令是常用域名查詢工具,就是查DNS信息用的命令。

nslookup IP或者域名

由於還未安裝DNS服務,估演示不了

網上截取一份

[root@localhost ~]# nslookup www.linuxde.net 
解析www.linuxde.net 站點
Server: 202.96.104.15 
Address: 202.96.104.15#53
Non-authoritative answer: 
www.linuxde.net canonical 
name = host.1.linuxde.net. 
Name: host.1.linuxde.net 
Address: 100.42.212.8

10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。

安裝模式:rpm  {-i |--install} PACKAGE

升級模式:rpm  {-U|--upgrade}  PACKAGE

卸載(刪除)模式:rpm {-e|--erase} PACKAGE

查詢模式:rpm  {-q |--query }  PACKAGE

驗證模式:rpm  {-V |--verify} PACKAGE

-a:查詢所安裝的軟件包

--nodeps:不驗證依賴的軟件包。

--force:同--replacepkgs,--replacefiles一樣,就算要安裝的軟件版本已經安裝在系統上,或者是系統上現在的版本比要安裝的版本高,依然強制覆蓋安裝。

有依賴關係包的會報錯,error: Faileddependencies


->安裝:
[root@localhost Packages]# rpm -ivh bind-9.8.2-0.37.rc1.el6.x86_64.rpm 
warning: bind-9.8.2-0.37.rc1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:bind                   ########################################### [100%]
-i :安裝
-v :顯示詳細
-h :用#顯示完成的進度
[root@localhost Packages]# rpm -Uvh bind-9.8.2-0.37.rc1.el6.x86_64.rpm   
warning: bind-9.8.2-0.37.rc1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
        package bind-32:9.8.2-0.37.rc1.el6.x86_64 is already installed
-Uvh,如果有老版本,則升級爲新版本,否則安裝。
-F,--freshen純升級,如果沒有老版本,則不升級。
[root@localhost Packages]# rpm -e bind
-e :刪除軟件包
#刪除的話,只需要填寫包名,不需要加後綴版本號其他內容




11、如何使用發行版光盤作爲yum repository,請描述該過程。

流程
->放入CD
->檢測是否安裝yum工具(默認已安裝)
->重點來了:
->cd /etc/yum.repos.d/
->可以cp其他repo配置修改
->也可以自行創建
name 是倉庫的描述也可以說是名字
baseurl 倉庫的位置
enabled 是否啓用這個倉庫,1爲起用,0爲禁用
gpgcheck 是否檢查GPG簽名(用來驗證要安裝的包是不是REDHAT官方的)
GPGKEY 的存放地址我們需要用下面的命令導入這個簽名。才能使用這項功能
name=CentOS-$releasever - Media
baseurl=file:///media/RHEL-6.7\ Server.x86_64/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
->最後一步
->更新本地 YUM 緩存
yum clean all
yum makecache




12、寫一個腳本,完成以下功能

   (1) 假設某目錄(etc/rc.d/rc3.d)下分別有K開頭的文件和S開頭的文件若干;

   (2) 顯示所有以K開頭的文件的文件名,並且給其附加一個stop字符串;

   (3) 顯示所有以S開頭的文件的文件名,並且給其附加一個start字符串;

   (4) 分別統計S開頭和K開頭的文件各有多少;

#!/bin/bash
ls  /etc/rc.d/rc3.d/ |grep "^[k,K]"|awk -v i=stop '{print i$0}'
ls  /etc/rc.d/rc3.d/ |grep "^[s,S]"|awk -v i=start '{print i$0}'
echo "The K start have $(ls  /etc/rc.d/rc3.d/ |grep "^[k,K]"|awk 'END{print NR}' )file"
echo "The S start have $(ls  /etc/rc.d/rc3.d/ |grep "^[s,S]"|awk 'END{print NR}' )file"



13、寫一個腳本,完成以下功能

   (1) 腳本能接受用戶名作爲參數;

   (2) 計算此些用戶的ID之和;

#!/bin/bash
read -p "Please input UserName:" name
i=$(cat /etc/passwd |grep "^$name")
id1=$(grep "^$name" /etc/passwd|cut -d: -f 3  )
if grep -q "^$name" /etc/passwd ; then
    if [ $id1 -gt 500 ];then
    echo "$name is ordinary user."
        else
        echo "$name is super user."
    fi
else
    echo "error input"
fi




14、寫一個腳本

   (1) 傳遞一些目錄給此腳本;

   (2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;

   (3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;

#!/bin/bash
read -p "Please input File List :" file1
if [ -d "$file1" ]; then
    echo "This line file:"
    find $file1 -type l
    echo "This file list:"
    find $file1 -type d
    echo "This document"
    find $file1 -type f
else
echo "error input"
fi
f1=$(find $file1 -type l |wc -l)
f2=$(find $file1 -type d |wc -l)
f3=$(find $file1 -type f |wc -l)
echo -e "Have \nline file:$f1\nfile list:$f2\ndocument:$f3"


15、寫一個腳本

  通過命令行傳遞一個參數給腳本,參數爲用戶名

  如果用戶的id號大於等於500,則顯示此用戶爲普通用戶;

#!/bin/bash
read -p "Please input UserName:" name 
i=$(cat /etc/passwd |grep "$name")
id1=$(grep "^$name")
if [ $id1 -gt 500 ];then
echo "$name is ordinary user."
else 
echo "$name is super user."
fi


16、寫一個腳本

   (1) 添加10用戶user1-user10;密碼同用戶名;

   (2) 用戶不存在時才添加;存在時則跳過;

   (3) 最後顯示本次共添加了多少用戶;

#!/bin/bash
u=user
unb=0
for((i=1;i<11;i++))
do
useradd $u$i &>/dev/null
    if [ $? = 0 ];then
echo "$u$i" |passwd --stdin $u$i &>/dev/null
    ((unb=unb+1))
    fi
done
echo "creat $unb user"


17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;

#!/bin/bash
ip1=172.16.250
echo "This Online IP address:"
for ((i=20;i<101;i++))
do
    ping -c 1 $ip1.$i &>/dev/null
    if [ $? = 0 ];then
    echo "$ip1.$i"
    fi
done
echo "END"


18、打印九九乘法表;

#!/bin/bash
typeset -i i=1
typeset -i j=1
方法1:
until [ $j -gt 9 ]; do
        until [ $i -gt $j ];do
                #echo -ne  "${i}X${j}=$[$i*$j]\t"
                printf "${i}X${j}=$(($i*$j))\t"
                ((i++))
        done
方法2:
for j in {1..9};do
        for ((i=1; i<=j; ++i));do
                printf "${i}X${j}=$(($i*$j))\t"
        done
        echo
done



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章