第八周
1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
一個好的鏈接,主要的參考
http://www.cnblogs.com/imapla/archive/2013/03/12/2955931.html
簡單的總結和自己的理解
橋接器(network bridge),又稱網橋,一種網絡設備,負責網絡橋接(network bridging)之用。
橋接器將網絡的多個網段在數據鏈路層(OSI模型第2層)連接起來(即橋接)。
以上是維基百科的, 實際上網橋不是一個具體設備而是一種設備用途,
交換機,路由器,pc等都可以做網橋只要它做到了橋接的功能。
集線器(hub):是指將多條以太網雙絞線或光纖集合連接在同一段物理介質下的設備。
集線器是運作在OSI模型中的物理層。它可以視作多端口的中繼器,若它偵測到碰撞,它會提交阻塞信號。
集線器屬于純硬件網絡底層設備,基本上不具有類似于交換機的"智能記憶"能力和"學習"能力
它也不具備交換機所具有的MAC地址表,所以它發送數據時都是沒有針對性的,而是采用廣播方式發送。
與路由器不同的是,集線器主要用于分割局域網而不是萬維網, 位于OSI第一層,屬于純硬件網絡底層設備。
二層交換機: 與集線器簡單的廣播式發送數據,交換機有MAC地址表,可以定向發送數據包去指定MAC地址,當然第一次獲得MAC地址
依然是使用集線器的廣播式發送數據,并記錄下回應并存入MAC地址表。位于OSI第二層,主要應用于底層子網絡中,即接入層中
你可以理解為懂得找端口的集線器。
三層交換機:三層交換機有IP:MAC表,所以具有路由功能懂得快速尋求通訊路徑,所以可以說高達OSI第三層,不會反復廣播尋求路徑所以速度較快。
三層交換機的最重要目的是加快大型局域網內部的數據交換,所具有的路由功能也是為這目的服務的,能夠做到一次路由,多次轉發。
在企業網中,一般會將三層交換機用在網絡的核心層,用三層交換機上的千兆端口或百兆端口連接不同的子網或VLAN。
簡單的說是懂得找路勁的交換機。
路由器:路由器(Router)是用于連接多個邏輯上分開的網絡,所謂邏輯網絡是代表一個單獨的網絡或者一個子網。
當數據從一個子網傳輸到另一個子網時,可通過路由器來完成。
路由器的主要工作就是為經過路由器的每個數據幀尋找一條最佳傳輸路徑,并將該數據有效地傳送到目的站點。
經常作為內網和外網之間的網關。 位于OSI模型的第3層
可以理解為一個內網和外網之間的交換機,當然這個外網實際上更大范圍的網絡而言又是一個內網。
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
IP地址中的前五位用于標識IP地址的類別,IP地址共分五類。
A類地址的特點是:以( 0 )開頭,網絡地址共( 7 )位,主機地址共( 24 )位;
B類地址的特點是:以( 10 )開頭,網絡地址共( 14 )位,主機地址共( 16 )位;
C類地址的特點是:以( 110 )開頭,網絡地址共( 21 )位,主機地址共( 8 )位;
D類地址的特點是:以( 1110 )開頭,不標識網絡,用于特殊用途;
E類地址的特點是:以( 11110 )開頭,地址暫時保留,用于某些實驗和將來使用。
子網掩碼的表示形式:
1)通過與IP地址格式相同的點分十進制表示 如:255.255.255.0
2)在IP地址后加上"/"符號以及1-32的數字,其中1-32的數字表示子網掩碼中網絡標識位的長度 如192.168.100.0/24
子網掩碼的作用:
1)是用于屏蔽IP地址的一部分以區別網絡標識和主機標識,并說明該IP地址是在局域網上,還是在遠程網上。
2)是用于將一個大的IP網絡劃分為若干小的子網絡
特殊地址
127.0.0.0
127是一個保留地址,該地址是指電腦本身,主要作用是預留下作為測試使用,用于網絡軟件測試以及本地機進程間通信。
應用與此地址交互,一般系統不會真正訪問網絡
10.x.x.x、172.16.x.x~172.31.x.x、192.168.x.x
默認內網使用的私有網絡地址
0.0.0.0
表示本機的時候,0.0.0.0代表本機所有可用地址;當外部地址用的時候,表示所有網絡地址
255.255.255.255
受限制的廣播地址,對本機來說,這個地址指本網段內(同一 個廣播域)的所有主機。
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
1)物理層:利用傳輸介質為數據鏈路層提供物理連接,實現比特流的透明傳輸。
2)數據鏈路層:通過各種控制協議,將有差錯的物理信道變為無差錯的、能可靠傳輸數據幀的數據鏈路。
3)網絡層:該層控制數據鏈路層與傳輸層之間的信息轉發,建立、維持和終止網絡的連接。eg IP
4)傳輸層:向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸。eg TCP
5)會話層:向兩個實體的表示層提供建立和使用連接的方法。
6)表示層:處理用戶信息的表示問題,如編碼、數據格式轉換和加密解密等。
7)應用層:應用層是用戶與網絡,以及應用程序與網絡間的直接接口,使得用戶能夠與網絡進行交互式聯系,并實現各種服務
TCP/IP4層模型
1)網絡接口層:用于協作IP數據在已有網絡介質上傳輸的協議。對應于OSI七層模型的物理層和數據鏈路層。
2)網際層:負責數據的包裝、尋址和路由,還包含網間控制報文協議。對應于OSI七層模型的網絡層。
3)傳輸層:提供兩種端到端的通信服務,TCP協議和UDP協議。對應于OSI七層模型的傳輸層。
4)應用層:包括Finger、Whois、FTP、Gopher、HTTP、Telent、SMTP、IRC、NNTP等協議。對應于OSI七層模型的應用層,會話層和表示層。
對應的物理設備:
物理層:HUB集線器,網卡,網橋、中繼器、調制解調器
鏈路層:2層交換機
網絡層:3層交換機,路由器
此文引用 http://www.www58058.com/19679
確實也就是我想說的,也沒有啥好補充的
只想說會話層和表示層,一般為終端操作系統所完成,應用層為應用實現已實現用戶的需求。
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
不知道手動指定指的是什么這里舉兩種
1, 編輯配置文件方法
cd /etc&&find -name ifcfg* #找到網卡驅動對應配置文件
舉例我的配置文件為 /sysconfig/network-scripts/ifcfg-eno16777736
編輯此文件 修改 IPADDR NETMASK 即可
重啟網卡
ifconfig eno16777736 down ifconfig eno16777736 up
2. ifconfig命令修改法
設置IP
ifconfig eno1677773 172.16.25.125
設置子網掩碼
ifconfig eno1677773 netmask 255.255.255.224
5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
法一 使用ifconfig命令:ifconfig eno1677773 IP/mask 如上題
法二 使用IP命令:ip addr add IP/mask dev eno16777736:1
法三 編輯網卡配置文件/etc/sysconfig/network-scripts/ifcfg-eno16777736
改 BOOTPROTO="static"
設置地址例如:
IPADDR=198.51.100.5
PREFIX="24"
重啟網路
sudo systemctl restart network
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
#!/bin/bash for i in $(seq 1 254); do ping -c 1 -W 1 172.16.250.$i &> /dev/null if [ $? -eq 0 ]; then echo "\033[0;32m 172.16.250.$i is online" else echo "\033[0;31m 172.16.250.$i is offline" fi done
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
對于網卡接口 /etc/sysconfig/ifcfg-{網卡} 的參數
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:普通用戶是否可控制此設備;
權威英文文檔
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-networkscripts-interfaces.html
8、如何給網絡接口配置多個地址,有哪些方式?
命令方式:
ifconfig eno16777736:1 192.168.213.132 ip addr add 192.168.213.137/24 dev eno16777736:2
文件方式
編輯網卡配置文件/etc/sysconfig/network-scripts/ifcfg-eno16777736
改 BOOTPROTO="static"
添加一個地址
IPADDR0=198.51.100.5
PREFIX0="24"
重啟網路
sudo systemctl restart network
一個很好的文檔
https://www.linode.com/docs/networking/linux-static-ip-configuration
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
ping 常用測試命令,發送icmp數據包到指定主機
-c 指定發送包的次數
-i 指定發送包的間隔(秒)
-s 指定發送包的大?。ㄗ止潱?br />-w 指明超時時間
例子:
ping -c 3 -i 5 -s 640 #向百度每隔5秒發送大小為648字節(含8字節head數據)的數據包,共發送3次
ifconfig
最常用的命令, 可用來查看和管理網卡(network interface)信息。
用法為 ifconfig [web interface] [options]
eg:
ifconfig -a 顯示所有網卡的IP地址
ifconfig eno16777736 顯示指定的網卡IP地址,這里eth1
ifconfig eno16777736 down/up 關閉或啟用指定的網卡,這里eth1
ifconfig eno16777736:1 ip_address/mask 配置子接口的IP地址
官方文檔 http://linuxcommand.org/man_pages/ifconfig8.html
好的中文文檔 http://linux.51yip.com/search/ifconfig
route
用于設置系統內核的路由表, 路由表指導系統到目標地址或者網段所需要尋找的網關
用法為 route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
例如添加網關
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
好的英文解釋 https://www.lifewire.com/route-linux-command-4095161
好的中文解釋 http://blog.csdn.net/chenlycly/article/details/52141854
ss [options] 用于查看系統套接字狀態, 非常簡單的命令,不多說了
例如顯示所有tcp套接字
ss -t
https://linux.die.net/man/8/ss
ip 這個命令好強大,今天才知道是ifconfig,route, netstat的替代品,可以管理網卡以及管理路由,網絡這塊幾乎全包
這個我就多寫一點
用法為 ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
利用 OBJECT 子類 ip可以實現多個不同種類的網絡管理
例如
ip link組用于管理網卡設備
ip link set dev eno1677773 ip up 啟動網卡
ip link set dev eno1677773 address 00:01:4f:00:15:f1 設置網卡MAC地址
ip -s link ls 列出網絡設備
ip address 用于管理地址協議
ip addr add 192.168.4.2/24 brd + dev eno1677773 label eno1677773:1 為網卡添加ip地址
ip -s addr ls 顯示地址信息
ip neighbour 查看接入你所在的局域網的設備的MAC地址(ARP協議所得)
ip route 路由管理組
sudo ip route add default via 192.168.0.196 更改默認路由
https://linux.die.net/man/8/ip 好的英文文檔
http://www.cnblogs.com/bamboo-talking/archive/2013/01/10/2855306.html 好的中文文檔
netstat 命令用于顯示各種網絡相關信息,如網絡連接,路由表,接口狀態,多播成員等
一般用法 netstat [options]
例如 netstat -t 顯示所有tcp連接的網絡狀態
netstat -s 對各個協議進行統計
10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
rpm命令實現程序管理:
rpm -i 安裝指定rpm程序包
rpm -e 卸載指定程序
rpm -test 測試安裝
rpm -nodeps 忽略依賴關系
rpm -U 升級程序包
rpm –replacepkgs 重新安裝
rpm –nosignature:不檢查來源的合法性
rpm –upgrage 安裝有舊程序包,則升級,如果不存在舊版程序包,則安裝
rpm –freshen:安裝有舊程序包時,則升級,如果不存,則不執行升級操作
rpm -q[l|f|i] 顯示指定程序安裝生成的文件\某文件是因為哪個包被安裝\指定程序的說明信息
rpm -V 通過對包元數據的檢驗判斷包的合法性
rpm –initdb,–rebuilddb 包數據庫重建
可有選項 -v -vv 表示輸出詳細信息和超詳細信息
yum 可以理解為一個通過對rpm包管理工具的延伸而更自動化的工具
(官方解釋是yum是rpm的前端),幫助用戶自動解決包依賴問題,
很多功能也更人性化
yum install 安裝指定程序
yum remove 卸載指定程序
yum update 升級指定程序
yum groupinstall 安裝組程序包
yum groupupdate 升級組程序
yum groupremove 卸載組程序
yum info 查看指定程序的信息
yum命令實現程序管理:
顯示程序包:
yum list {all|available|installed|available} [glob_exp1] […]
顯示倉庫列表:
yum repolist [all|enabled|disabled]
安裝程序包:
yum install package
升級程序包:
yum update [package]
查看是否有可用更新
yum check-update [package]
卸載程序包:
yum remove package1 [package2] […]
查看程序包信息
yum info package
查看程序提供特性(可以是某文件)是由哪個程序包所提供:
yum provides filename|feature
清理本地緩存:
yum clean [options]
構建緩存:
yum makecache
關鍵字搜索包:
yum search keyword
查看指定程序包所依賴的capabilities:
yum deplist package
包組管理的相關命令(見名知意):
yum groupinstall group
yum groupupdate group
yum grouplist
yum groupremove group
yum groupinfo group
11、如何使用發行版光盤作為yum repository,請描述該過程。
默認centOS光盤已被系統識別為/dev/sr0
只讀掛載光盤 mount -n /dev/sr0 /mnt/centsCD
創建新的倉庫配置文件
vim /etc/yum.repo.d/centsCD.repo
[localfile]
name=CDrepo
baseurl=file:///mnt/centsCD
enable=1
gpgcheck=0
12、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash declare -i kstart=0; declare -i sstart=0; cd /etc/rc.d/rc3.d for x in $(ls K*); do echo ${x}stop; let kstart+=1; done; for x in $(ls S*); do echo ${x}stop; let sstart+=1; done; echo "${sstart} files start with S" echo "${kstart} files start with K"
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
#!/bin/bash declare -i id_sum=0 for x in $@; do let id_sum+=$(id -u $x) done echo "the id sum of input users are ${id_sum}"
14、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash declare -i files=0; declare -i directories=0; for d in $@; do cd $d; for x in $(ls); do echo "${x} in $mwqzmvz is $(file -b ${x})" if [ -d ${x} ]; then let directories+=1; else let files+=1; fi done; done; echo "directories total ${directories}"; echo "files total ${files}";
15、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash declare user=$1; declare -i user_id=$(id -u $user); if [ $user_id -ge 500 ]; then echo "$user is a normal user"; fi
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
#!/bin/bash declare -i useradded=0; for i in $(seq 1 10); do id user${i} 1> /dev/null 2> /dev/null if [ $? -ne 0 ]; then useradd -n user${i} -p user${i} > /dev/null 2>&1 let useradded+=1; echo "add user ${i}" else echo "skip user${i}"; fi done echo "added ${useradded} users";
17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
#!/bin/bash for i in $(seq 20 250); do ping -c 1 172.16.250.$i &> /dev/null if [ $? -eq 0 ]; then echo "172.16.250.$i is online" fi done
18、打印九九乘法表;
#!/bin/bash for i in $(seq 1 9); do for j in $(seq 1 $i); do printf " $j * $i = $[$i*$j] " done printf "\n" done
原創文章,作者:chengyu,如若轉載,請注明出處:http://www.www58058.com/63999