1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
設備 |
功能 |
使用場景 |
網橋 |
用于連接不同網段,將相似的網絡連接起來,隔離信息。 |
連接不同部門間的局域網;連接地理位置分散并且相距較遠的局域網,可以增加工作的物理距離;采用由網橋連接的多個局域網調節負載;網橋可以設置在局域網的關鍵部位,防止單點失常而破壞整個系統等。 |
集線器 |
對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。發送的數據沒有針對性,而是采用廣播方式發送。 |
局域網中 |
二層交換機 |
工作于OSI模型的第二層,可以識別數據包中的MAC地址信息,根據MAC地址進行轉發,并將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。 |
|
三層交換機 |
在OSI模型中第三層實現數據包的高速轉發,既可實現網絡路由功能,又可根據不同網絡狀態做到最優網絡性能。 |
核心骨干網 |
路由器 |
連接不同的網絡 |
局域網、廣域網中 |
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
類別 |
IP地址范圍 |
子網掩碼 |
私有IP地址范圍 |
A |
0.0.0.0-127.255.255.255 |
255.0.0.0 |
10.0.0.0-10.255.255.255 |
B |
128.0.0.0-191.255.255.255 |
255.255.0.0 |
172.16.0.0-172.31.255.255 |
C |
192.0.0.0-223.255.255.255 |
255.255.255.0 |
192.168.0.0-192.168.255.255 |
IP地址與子網掩碼按位進行“與”運算可以得出設備所在的網絡地址
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
OSI模型七層 |
功能 |
物理設備 |
應用層 Application |
網絡服務與使用者應用程序間的一個接口 |
終端設備(PC、手機、平板等) |
表示層 Presentation |
數據表示、數據安全、數據壓縮 |
終端設備(PC、手機、平板等) |
會話層 Session |
會話層連接到傳輸層的映射;會話連接的流量控制;數據傳輸;會話連接恢復與釋放;會話連接管理、差錯控制 |
終端設備(PC、手機、平板等) |
傳輸層 Transport |
用一個尋址機制來標識一個特定的應用程序(端口號) |
終端設備(PC、手機、平板等) |
網絡層 Network |
基于網絡層地址(IP地址)進行不同網絡系統間的路徑選擇 |
路由器 |
數據鏈路層 Data Link |
在物理層上建立、撤銷、標識邏輯鏈接和鏈路復用 以及差錯校驗等功能。通過使用接收系統的硬件地址或物理地址來尋址 |
網橋、交換機 |
物理層Physical |
建立、維護和取消物理連接 |
光纖、同軸電纜、 雙絞線、網卡、中繼器 |
TCP/IP模型四層 |
功能 |
應用層 |
為用戶提供所需要的各種服務,例如:FTP、Telnet、DNS、SMTP等 |
傳輸層 |
為應用層實體提供端到端的通信功能,保證了數據包的順序傳送及數據的完整性。該層定義了兩個主要的協議:傳輸控制協議(TCP)和用戶數據報協議(UDP) |
網際互聯層 |
主要解決主機到主機的通信問題。它所包含的協議設計數據包在整個網絡上的邏輯傳輸。注重重新賦予主機一個IP地址來完成對主機的尋址,它還負責數據包在多種網絡中的路由。該層有三個主要協議:網際協議(IP)、互聯網組管理協議(IGMP)和互聯網控制報文協議(ICMP) |
網絡接入層 |
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
1編輯ifcfg-eno16777736文件如下: # vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 DEVICE="eno16777736" TYPE="Ethernet" UUID="414bf4dd-3cbd-466a-b48b-da00c3f790aa" ONBOOT=yes BOOTPROTO=static DNS1=114.114.114.114 IPADDR=192.168.1.103 NETMASK=255.255.255.0 GETWAY=192.168.1.1 NETWORK=192.168.1.0 BROADCAST=192.168.1.255 2保存文件并退出 3重啟網絡服務 #service network restart 4ping網關 #ping 192.168.1.1
5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
1通過配置文件配置(/etc/sysconfig/network-scripts/ifcfg-eno16777736) 2Linux安裝時進行配置 3通過圖形化界面配置
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
#!/bin/bash #Elephant for i in {1..254} ; do ping -c 1 172.16.250.$i | grep "Unreachable" >> /dev/null if [ $? -eq 0 ] ; then echo -e "\033[31m172.16.250.$i\033[0m" else echo -e "\033[32m172.16.250.$i\033[0m" fi done
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
網絡接口配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE,IFACE:接口名稱; ifcfg-IFACE配置文件參數: DEVICE:此配置文件對應的設備的名稱; ONBOOT:在系統引導過程中,是否激活此接口; UUID:此設備的惟一標識; IPV6INIT:是否初始化IPv6; BOOTPROTO:激活此接口時使用什么協議來配置接口屬性,常用的有dhcp、bootp、static、none; TYPE:接口類型,常見的有Ethernet, Bridge; DNS1:第一DNS服務器指向; DNS2:備用DNS服務器指向; DOMAIN:DNS搜索域; IPADDR: IP地址; NETMASK:子網掩碼;CentOS 7支持使用PREFIX以長度方式指明子網掩碼; GATEWAY:默認網關; USERCTL:是否允許普通用戶控制此設備; PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向覆蓋本地手動指定的DNS服務器指向;默認為允許; HWADDR:設備的MAC地址; NM_CONTROLLED:是否使用NetworkManager服務來控制接口;
8、如何給網絡接口配置多個地址,有哪些方式?
給接口配置多個地址: ip addr之外,ifconfig或配置文件都可以; (1) ifconfig IFACE_LABEL IPADDR/NETMASK IFACE_LABEL: eth0:0, eth0:1, ... (2) 為別名添加配置文件; DEVICE=IFACE_LABEL BOOTPROTO:網上別名不支持動態獲取地址; static, none
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
ifconfig命令 #ifconfig 激活狀態 UP處于激活 #ifconfig eno1677736 #ifconfig -a 所有接口,含非激活狀態 #ifconfig eno16777736 192.168.1.103/24 up #ifconfig eno16777736 192.168.1.103 netmask 255.255.255.0 #ifconfig eth1 promisc 混雜模式 #ifconfig eth1 -promisc
route命令 #route -n 數字格式顯示路由信息 #route #route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1 #route del -net 10.0.0.0/8 #route del default 刪除默認網關
netstat命令 #netstat -rn #route -n 以上兩命令相似 #netstat -t #netstat -tn #netstat -u #netstat -un #netstat -unl #netstat -tunl #netstat -tunlp #netstat -tan TCP的所有狀態連接 #netstat -uan #netstat -tne e擴展格式 #netstat -tnl #netstat -I eth0 #netstat -i
hostname #hostnamectl status #hostnamectl set-hostname magedu.com
DNS #cat /etc/hosts #vim /etc/hosts 添加一行 172.16.10.6 www.magedu.com www magedu #ping www.magedu.com #ping www #ping magedu #dig -t A www.magedu.com #dig測試不檢查hosts,ping命令先檢查hosts 主機->IP #dig -x 101.200.188.233 IP->FQDN
——————
iproute 2家族:ip和ss命令
#rpm -qi iproute #uname -r 顯示內核版本 #rpm -ql iproute
ip命令 #ip link show 與ifconfig相似 二層設備相關屬性 #ip link list #ip link set eth1 down #ip link show #ip link set eth1 up #ip link show #ip link set eth1 multicast on #ip link show #ip link set eth1 multicast off #ip link show #ip link set eth1 down #ip link set eth1 name eno12 #ip link set eth1 down #ip link show #ip link set eth1 up
centos #ip netns add mynet網絡名稱空間 #ip link show #ip link set eno136777736 netns mynet #ip link show #ip netns exec mynet ip link show 在空間中執行命令 #ip netns del mynet #ip ad show #ip ad li #ip address add 192.168.10.100/24 dev eth1 #ifconfig eth1 0 刪地址 #ip address add 192.168.10.100/24 dev eth1 #ip addr show eth1 #ifconfig eth1 #ip address add 192.168.10.101/24 dev eth1 #ifconfig eth1 #ip addr add 10.1.1.10/8 dev eth1 #label eth1:0加別名 #ip addr show eth1 #ifconfig eth1 加別名后可顯示多ip #ip addr list eth1 #ip addr del 10.0.10.100/8 dev eth1 #ip addr flush dev eth1 #ip addr show eth1
ip route #ip route list #ip addr add 10.0.10.100/8 dev eth1 #ip addr add 10.0.20.100/8 dev eth1 #ip addr list eth1 #ip route add 192.168.0.0/24 via 10.0.0.1 dev eht1 #ip route list #ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100 #ip route list #ip route add default via 172.16.0.1 dev eth0 #ip route delete 192.168.1.0/24 #ip route show src 172.16.100.6 #ip route get 192.168.0.0/24 #ip route flush 10/8
ss命令 #ss -tnl #ss -tan #ss -tan state ESTABLISHED #ss -tan `(dport=:22 or sport=:22)·
network 命令 #chkconfig --list C6 #service network restart 修改配置文件后,重啟設備 C7 #systemctl #ip route add 10.0.0.0/8 via 192.168.10.1 立即生效 #ip route list #vim route-eno33554984 10.0.0.0 via 192.168.10.1 #systemctl restart network.service #ip route list #vim rote-en ADDRESS0=20.0.0.0 NETMASK=255.0.0.0 GETWAY=192.168.10.2
nmcli(centos7) #nmcli device status #nmcli device connect eno33554984 #nmcli device disconnect eno33554984 #nmcli conn show #nmcli conn modify eno33554984 t ipv4.address 192.168.30.100 #nmcli conn down eno33594984 #nmcli conn up eno33594984 配置生效
10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
rpm命令:rpm [OPTIONS] [PACKAGE_FILE] 安裝:-i, --install 升級:-U, --update, -F, --freshen 卸載:-e, --erase 查詢:-q, --query 校驗:-V, --verify 數據庫維護:--builddb, --initdb
安裝: rpm {-i|--install} [install-options] PACKAGE_FILE ... rpm -ivh PACKAGE_FILE ... GENERAL OPTIONS: -v:verbose,詳細信息 -vv:更詳細的輸出 [install-options]: -h:hash marks輸出進度條;每個#表示2%的進度; --test:測試安裝,檢查并報告依賴關系及沖突消息等; --nodeps:忽略依賴關系;不建議; --replacepkgs:重新安裝 --nosignature:不檢查包簽名信息,不檢查來源合法性; --nodigest:不檢查包完整性信息; 注意:rpm可以自帶腳本; 四類:--noscripts preinstall:安裝過程開始之前運行的腳本,%pre , --nopre postinstall:安裝過程完成之后運行的腳本,%post , --nopost preuninstall:卸載過程真正開始執行之前運行的腳本,%preun, --nopreun postuninstall:卸載過程完成之后運行的腳本,%postun , --nopostun
11、如何使用發行版光盤作為yum repository,請描述該過程。
如何使用光盤當作本地yum倉庫: (1) 掛載光盤至某目錄,例如/media/cdrom # mount -r -t iso9660 /dev/cdrom /media/cdrom (2) 創建配置文件 [CentOS7] name= baseurl= gpgcheck= enabled= yum的命令行選項: --nogpgcheck:禁止進行gpg check; -y: 自動回答為“yes”; -q:靜默模式; --disablerepo=repoidglob:臨時禁用此處指定的repo; --enablerepo=repoidglob:臨時啟用此處指定的repo; --noplugins:禁用所有插件; 例,centos7使用本地光盤yum倉庫 #cd /etc/yum.repos.d/ #vim local.repo [base] name=CentOS 7 Release ... baseurl=file:\\\media/cdrom enabled=1 gpgcheck=0 #yum repolist
12、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash #Elephant ls -l /etc/rc.d/rc3.d | awk ' { if (substr($9,1,1)=="K") {printf $9" stop \n";statek[$NF]++;} else if (substr($9,1,1)=="S") {printf $9" start \n";states[$NF]++;} } END {printf "S total " length(states)"\n"; printf "K total " length(statek)"\n";} '
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
#!/bin/bash #Elephant if [ $# -eq 0 ];then echo "At least one user" exit 2 else declare -i sumid=0 for user in $@;do userid=$(grep "^$1\>" /etc/passwd | cut -f 3 -d:) sumid=$sumid+$userid shift done echo "user(s) total id is $sumid" fi
14、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash #Elephant if [ $# -eq 0 ] ;then echo "At least one dir" exit 2 else for dir in $@ ; do e="" export e declare -i countfiles=0 export countfile declare -i countdirs=0 export countdirs ls -l $dir | awk '{if(substr($1,1,1)=="-") { a="'$dir'"; b="/"; d=$9; c=(a""b); e=(c""d); ENVIRON["e"]=e; system("cat "e""); ENVIRON["countfiles"]++; printf "=============>"ENVIRON["e"] " is NO."ENVIRON["countfiles"]" file in ""'$dir'""\n---------------------------------------------\n"; } else if(substr($1,1,1)=="d") {a="'$dir'"; b="/"; d=$9; c=(a""b) e=(c""d) ENVIRON["e"]=e; ENVIRON["countdirs"]++; system("ls -l "e""); printf "==============>"ENVIRON["e"]" is NO."ENVIRON["countdirs"]" dir in ""'$dir'""\n---------------------------------------------\n"; }' done fi
15、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash #Elephant if ! [ $# -eq "1" ];then echo "We only need one user" exit 2 else declare -i userid userid=$(grep "^$1\>" /etc/passwd | cut -f3 -d:) if [ $userid -ge 500 ];then echo "$1 is a common user" fi fi
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
#!/bin/bash #Elephant declare -i tt=0 for i in {1..10};do id user$i &> /dev/null if [ $? -eq 0 ] ; then echo "user$i exits " else useradd user$i let tt++ echo "user$i" | passwd --stdin user$i fi done echo "We created $tt user(s)"
17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
#!/bin/bash #Elephant for i in {20..100} ; do ping -c 1 172.16.250.$i | grep "Unreachable" >> /dev/null if ![ $? -eq 0 ] ; then echo "172.16.250.$i" fi done
18、打印九九乘法表;
#!/bin/bash #Elephant for i in {1..9};do j=1 while [ $j -le $i ];do printf "$i*$j=$[$i*$j] \t" let j++ done printf "\n" done
運行結果: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
原創文章,作者:N22_Elephant,如若轉載,請注明出處:http://www.www58058.com/50113
對于TCP/IP的相關知識希望能有對建連和斷開有全面的認知,整個過程還是要很熟練的,加油。
@luoweiro:嗯嗯,看到那塊視頻了,有了深入理解