1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
網橋:網橋(Bridge)是早期的兩端口二層網絡設備,用來連接不同網段。網橋的兩個端口分別有一條獨立的交換信道, 不是共享一條背板總線,可隔離沖突域。網橋比集線器(Hub)性能更好,集線器上各端口都是共享同一條背板總線的。 后來,網橋被具有更多端口、同時也可隔離沖突域的交換機(Switch)所取代。 集線器:線器的英文稱為“Hub”?!癏ub”是“中心”的意思,集線器的主要功能是對接收到的信號進行再生整形放大, 以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。 二層交換機:二層交換機工作于OSI模型的第2層(數據鏈路層),故而稱為二層交換機。 二層交換技術的發展已經比較成熟,二層交換機屬數據鏈路層設備,可以識別數據包中的MAC地址信息, 根據MAC地址進行轉發,并將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。 三層交換機:三層交換機就是具有部分路由器功能的交換機,三層交換機的最重要目的是加快大型局域網內部的數據交換, 所具有的路由功能也是為這目的服務的,能夠做到一次路由,多次轉發。 路由器:路由器(Router),是連接因特網中各局域網、廣域網的設備,它會根據信道的情況自動選擇和設定路由, 以最佳路徑,按前后順序發送信號。
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
1. A類IP地址 一個A類IP地址由1字節的網絡地址和3字節主機地址組成,網絡地址的最高位必須是“0”, 地址范圍從1.0.0.0 到126.0.0.0。可用的A類網絡有126個, 每個網絡能容納1億多個主機。 2. B類IP地址 一個B類IP地址由2個字節的網絡地址和2個字節的主機地址組成,網絡地址的最高位必須是“10”,地址范圍從128.0.0.0到191.255.255.255。 可用的B類網絡有16382個,每個網絡能容納6萬多個主機 。 3. C類IP地址 一個C類IP地址由3字節的網絡地址和1字節的主機地址組成,網絡地址的最高位必須是“110”。范圍從192.0.0.0到223.255.255.255。 C類網絡可達209萬余個,每個網絡能容納254個主機。 4. D類地址用于多點廣播(Multicast)。 D類IP地址第一個字節以“lll0”開始,它是一個專門保留的地址。它并不指向特定的網絡,目前這一類地址被用在多點廣播(Multicast)中。 多點廣播地址用來一次尋址一組計算機,它標識共享同一協議的一組計算機。 5. E類IP地址 以“llll0”開始,為將來使用保留。 子網掩碼(subnet mask)又叫網絡掩碼、地址掩碼、子網絡遮罩,它是一種用來指明一個IP地址的哪些位標識的是主機所在的子網, 以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼只有一個作用, 就是將某個IP地址劃分成網絡地址和主機地址兩部分。
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
OSI參考模型是計算機網路體系結構發展的產物。它的基本內容是開放系統通信功能的分層結構。這個模型把開放系統的通信功能劃分為七個層次, 從鄰接物理媒體的層次開始,分別賦于1,2,……7層的順序編號,相應地稱之為物理層、數據鏈路層、網絡層、運輸層、會話層、表示層和應用層。 每一層的功能是獨立的。它利用其下一層提供的服務并為其上一層提供服務,而與其他層的具體實現無關。這里所謂的“服務”就是下一層向上一層提 供的通信功能和層之間的會話規定,一般用通信原語實現。兩個開放系統中的同等層之間的通信規則和約定稱之為協議。通常把1~4層協議稱為下層協議, 5~7層協議稱為上層協議。 國際標準化組織ISO在1979年建立了一個分委員會來專門研究一種用于開放系統的體系結構,提出了開放系統互連OSI模型,這是一個定義連接異種計算機 的標準主體結構。 OSI簡介:OSI采用了分層的結構化技術,共分七層,物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。 OSI參考模型的特性:是一種異構系統互連的分層結構;提供了控制互連系統交互規則的標準骨架;定義一種抽象結構,而并非具體實現的描述; 不同系統中相同層的實體為同等層實體;同等層實體之間通信由該層的協議管理;相信層間的接口定義了原語操作和低層向上層提供的服務; 所提供的公共服務是面向連接的或無連接的數據服務;直接的數據傳送僅在最低層實現;每層完成所定義的功能,修改本層的功能并不影響其他層。 1、物理層:提供為建立、維護和拆除物理鏈路所需要的機械的、電氣的、功能的和規程的特性; 有關的物理鏈路上傳輸非結構的位流以及故障檢測指示。(網卡) 2、數據鏈路層:在網絡層實體間提供數據發送和接收的功能和過程;提供數據鏈路的流控。(IEEE802.3,IEEE802.11) 3、網絡層:控制分組傳送系統的操作、路由選擇、擁護控制、網絡互連等功能,它的作用是將具體的物理傳送對高層透明。(路由器,交換機) 4、傳輸層:提供建立、維護和拆除傳送連接的功能;選擇網絡層提供最合適的服務;在系統之間提供可靠的透明的數據傳送,提供端到端的錯誤恢復和 流量控制。(TCPIP) 5、會話層:提供兩進程之間建立、維護和結束會話連接的功能;提供交互會話的管理功能,如三種數據流方向的控制,即一路交互、兩路交替和兩路同時 會話模式 。 6、表示層:代表應用進程協商數據表示;完成數據轉換、格式化和文本壓縮。 7、應用層:提供OSI用戶服務,例如事務處理程序、文件傳送協議和網絡管理等。
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
1.用ifconfig -a查看機器上有幾塊網卡 2.編輯/etc/sysconfig/network-scripts/ifcfg-eth0 3.DEVICE=eth0 TYPE=Ethernet UUID=048d9dc0-2dfc-4535-bfd9-8ee8f6a357fa ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" HWADDR=08:00:27:A3:E1:99 IPADDR=192.168.56.252 PREFIX=24 GATEWAY=192.168.56.1 LAST_CONNECT=1476760809 根據實際需要設置,主要是ONBOOT=yes,IPADDR 4.service network restart重啟網卡設置
5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
1. ifconfig eth0:0 192.168.56.104/24 2.ip addr add 192.168.56.105/24 broadcast 192.168.56.1 dev eth0:0 3.vi /etc/sysconfig/network-scripts/ifcfg-eth0 4.利用圖形界面
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
#!/bin/bash ip="172.16.250" for((i=1;i<=254;i++));do ping -c 3 -w 3 $ip.$i > /dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m $ip.$i is online \033[0m" else echo -e "\033[31m $ip.$i is offline \033[0m" fi done
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
/etc/sysconfig/network-scripts/ifcfg-IFACE: DEVICE:此配置文件應用到的設備 HWADDR:對應的設備的MAC地址 BOOTPROTO:激活此設備時使用的地址配置協議,常用的有dhcp,static,none 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文件中
8、如何給網絡接口配置多個地址,有哪些方式?
ifconfig eth0:0 192.168.56.204 ip addr add 192.168.56.205/24 dev eth0 label eth0:1
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
1. ifconfig ifconfig主要是能手動啟動、觀察和修改網絡接口的相關參數,能修改的參數非常多,包括IP參數及MTU等都能修改,他的語法如下: [root@linux ~]# ifconfig {interface} {up|down} 一 般來說,直接輸入ifconfig就會列出目前已被啟動的卡,不論這個卡是否有設置IP,都會被顯示出來。而如果是輸入ifconfig eth0, 則會顯示出這個接口的相關數據,而不管該接口是否啟動。所以,如果你想要知道某個網卡的Hardware Address,直接輸入“ifconfig"網絡接口代 號"”即可。至于上述代碼中出現的各項數據是這樣的(數據排列由上而下、由左而右)。 eth0:網卡的代號,也有lo這個loopback。 HWaddr:網卡的硬件地址,習慣稱為MAC。 inet addr:IPv4的IP地址,后續的Bcase、Mask分別代表的是Broadcast和Netmask。 inet6 addr:是IPv6的版本的IP,我們沒有使用,所以略過。 RX:那一行代表的是網絡由啟動到目前為止的數據包接收情況,packets代表數據包數、errors代表數據包發生錯誤的數量、dropped代表數據包 由于有問題而遭丟棄的數量等。 TX:和RX相反,為網絡由啟動到目前為止的傳送情況。 collisions:代表數據包碰撞的情況,如果發生太多次,表示你的網絡狀況不太好。 txqueuelen:代表用來傳輸數據的緩沖區的儲存長度。 RX Bytes、TX Bytes:總傳送、接收的字節總量。 Interrupt、Memory:網卡硬件的數據,IRQ岔斷和內存地址。 通過觀察上述的資料,大致上能了解到你的網絡情況,尤其是RX、TX內的error數量,及是否發生嚴重的collision情況,都是需要注意的。 ifconfig eth0 192.168.100.100 # 如果不加所有其他參數,則系統會依照該 IP 所在的 class 范圍, # 自動地計算出 netmask 及 network, broadcast 等 IP 參數 ifconfig eth0 192.168.100.100 netmask 255.255.255.128 MTU 8000 2. ifup、ifdown 實時地手動修改一些網絡接口參數,能利用ifconfig來實現,如果是要直接以設置文件,亦即是在 /etc/sysconfig/network-scripts里面的 ifcfg-ethx等文件的設置參數來啟動的話,那就得要通過ifdown或ifup來實現了。 [root@linux ~]# ifup {interface} [root@linux ~]# ifdown {interface} [root@linux ~]# ifup eth0 ifup 和ifdown真是太簡單了。這兩個程式其實是script而已,他會直接到 /etc/ sysconfig/network-scripts目錄下搜索對應的設置文件, 例如ifup eth0,他會找出ifcfg-eth0這個文件的內容,然后加以設置。關于ifcfg-eth0的設置請參考前一章連上Internet的說明。 不 過,由于這兩個程式主要是搜索設置文件(ifcfg-ethx)來進行啟動和關閉的,所以在使用前請確定ifcfg-ethx是否真的存在于正確的目錄內, 否則會啟動失敗。另外,如果以ifconfig eth0來設置或是修改了網絡接口后,就無法再以ifdown eth0的方式來關閉了。因為ifdown會分析比較 目前的網絡參數和ifcfg-eth0是否相符,不符的話,就會放棄這次操作。因此,使用 ifconfig修改完畢后,應該要以ifconfig eth0 down才能 夠關閉該接口。 3.route route命令用于查詢和設置路由表。要實現兩個不同的子網之間的通信,需要一臺連接兩個網絡的路由器,或者同時位于兩個網絡的網關來實現。 在Linux系統中,設置路由通常是為了解決以下問題:該Linux系統在一個局域網中,局域網中有一個網關,能夠讓機器訪問Internet,那么就需 要將這臺機器的IP地址設置為Linux機器的默認路由。要注意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啟或者機器 重啟之后,該路由就失效了;可以在/etc/rc.local中添加route命令來保證該路由設置永久有效。 格式 :route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]] [root@CentOS6 tmp]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.56.1 0.0.0.0 UG 0 0 0 eth0
10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
rpm命令實現程序管理: 安裝:-ivh, –nodeps, –replacepkgs 卸載:-e, –nodeps 升級:-Uvh, -Fvh, –nodeps, –oldpackage 查詢:-q, -qa, -qf, -qi, -qd, -qc, -q –scripts, -q –changlog, -q –provides, -q –requires 校驗:-V 導入GPG密鑰:–import, -K, –nodigest, –nosignature 數據庫重建:–initdb, –rebuilddb Yum 命令實施軟件包管理 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
11、如何使用發行版光盤作為yum repository,請描述該過程。
1.[root@CentOS6 tmp]# vim /etc/yum.repos.d/CentOS-install.repo 2.[rhel-oracle] name=Red Hat Enterprise Linux $releasever - $basearch - Source baseurl=file:///media/ enabled=1 gpgcheck=0 3.wq保存退出 4.把光盤放到光驅里 5.mount /dev/cdrom /media 6.yum clean 7.yum 安裝
12、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash declare -i i=0 declare -j j=0 for str in /etc/rc.d/rc3.d/K*;do echo $str "stop" i=$[$i+1] done echo $i for str in /etc/rc.d/rc3.d/S*;do echo $str "start" j=$[$j+1] done echo $j
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
#1/bin/bash
declare -i sum=0 for user in $*;do id $user > /dev/null result=$? if [ $result -eq 0 ];then sum=$[$sum+$(id -u $user)] else echo "$user is not exists." fi done
echo "userid sum is $sum."
14、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash declare -i dfile=0 declare -i cmnfile=0 declare -i lfile=0 declare -i bfile=0 declare -i cfile=0 declare -i sfile=0 declare -i ufile=0 if [ $# -lt 1 ];then echo "At least input one directory" exit 1 fi dfile=$(ls -l "$@" |grep ^d |awk '{print $NF}'|wc -l) cmnfile=$(ls -l "$@" |grep ^- |awk '{print $NF}' |wc -l) lfile=$(ls -l "$@" |grep ^l |awk '{print $NF}' |wc -l) bfile=$(ls -l "$@" |grep ^b |awk '{print $NF}'|wc -l) cfile=$(ls -l "$@" |grep ^c |awk '{print $NF}' |wc -l) sfile=$(ls -l "$@" |grep ^s |awk '{print $NF}' |wc -l) ufile=$(ls -l "$@" |grep -v ^[-dlbcst/]|grep ^[^[:space:]] |awk '{print $NF}' |wc -l) ls -l "$@" echo "The directory file total: $dfile" echo "The common file total:$cmnfile" echo "The symbolic link file total:$lfile" echo "The block special file total:$bfile" echo "The character special file total:$cfile" echo "The socket file total:$sfile" echo "The unkown file total:$ufile"
15、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash
id $1 &> /dev/null result=$? if [ $result -eq 0 ];then if [ $(id -u $1) -lt 500 ];then echo "system user." else echo "common user." fi else echo "user not fonud!" fi
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
#!/bin/bash
declare -i sum=0 for((i=1;i<=10;i++));do id user$i > /dev/null result=$? if [ $result -eq 0 ];then echo "user$i is extits!" else useradd user$i; echo "user$i" | passwd --stdin user$i sum=$[$sum+1] fi done echo "total add $sum users."
17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
#!/bin/bash ip="172.168.250" for((i=20;i<=100;i++));do ping -c 3 -w 3 $ip.$i &> /dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m $ip.$i is up \033[0m". fi done
18、打印九九乘法表;
#!/bin/bash for((i=1;i<=9;i++));do for((j=1;j<=i;j++));do echo -e -n "$i*$j=$[$i*$j] " done echo "" done
原創文章,作者:lihuisjsq,如若轉載,請注明出處:http://www.www58058.com/53660
作業完成的很好