1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 2、IP地址的分類有哪些?子網掩碼的表示形式及其作用 A類:第一段為網絡號,后三段為主機號 網絡號0 000 0000 – 0 111 1111:1-127 網絡數量:126,127 每個網絡中的主機數量:2^24-2 默認子網掩碼:255.0.0.0,/8 私網地址:10.0.0.0/255.0.0.0
B類:前兩段為網絡號,后兩段為主機號 網絡號:10 00 0000 – 10 11 1111:128-191 網絡數量:2^14 每個網絡中的主機數量:2^16-2 默認子網掩碼:255.255.0.0,/16 私網地址:172.16.0.0-172.31.0.0 C類:前三段為網絡號,最后一段為主機號 網絡號:110 0 0000 – 110 1 1111:192-223 網絡數:2^21 每個網絡中的主機數量:2^8-2 默認子網掩碼:255.255.255.0, /24 D類:組播 網絡號:1110 0000 – 1110 1111:224-239 E類:科研 240-255 3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。 4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式) 1.修改/etc/sysconfig/network-scripts/ifcfg-eth0 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0C:29:9C:52:A6 TYPE=Ethernet UUID=2d7a302b-7ce9-4b03-b021-7d7bd22c4c4f ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none IPADDR=192.168.2.1 NETMASK=255.255.255.0 GATEWAY=192.168.2.254 DNS1=192.168.2.10 2.重啟網絡服務 [root@localhost ~]# service network restart Shutting down interface eth0: Device state: 3 (disconnected) [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: Active connection state: activating Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1 state: activated Connection activated 5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。 1./etc/sysconfig/network-scripts/配置文件 DEVICE=eth0 HWADDR=00:0C:29:9C:52:A6 TYPE=Ethernet UUID=2d7a302b-7ce9-4b03-b021-7d7bd22c4c4f ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none IPADDR=192.168.2.1 NETMASK=255.255.255.0 GATEWAY=192.168.2.254 DNS1=192.168.2.10 2.setup 3.路由的相關配置文件:/etc/sysconfig/networkj-scripts/route-IFACE 2.2 ss命令 ss [options] [ FILTER ] 選項: -t:TCP協議的相關連接 -u:UDP相關的連接 -w:raw socket相關的連接 -l:監聽狀態的連接 -a:所有狀態的連接 -n:數字格式 -p:相關的程序及其PID -e:擴展格式信息 -m:內存用量 -o:計時器信息 2.3nmcli命令 nmcli [ OPTIONS ] OBJECT { COMMAND | help } device – show and manage network #nmcli device show #nmcli device status`interfaces COMMAND := { status | show | connect | disconnect | delete | wifi | wimax } connection – start, stop, and manage network connections COMMAND := { show | up | down | add | edit | modify | delete | reload | load } modify [ id | uuid | path ] <ID> [+|-] <setting>.<property> <value>
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態; 不在線的主使用紅色顯示; #!/bin/bash for i in 172.16.250.{1..254};do ping -c 2 -w 2 $i &> /dev/null if [ $? -eq 0 ];then echo -e "\e[32m $i is up \e[0m" else echo -e "\e[31m $i is down \e[0m" fi done 7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值; DEVICE:此配置文件對應的設備的名稱; ONBOOT:在系統引導過程中,是否激活此接口; UUID:此設備的惟一標識; IPV6INIT:是否初始化IPv6; BOOTPROTO:激活此接口時使用什么協議來配置接口屬性,常用的有dhcp、bootp、static、none; TYPE:接口類型,常見的有Ethernet, Bridge; DNS1:第一DNS服務器指向; DNS2:備用DNS服務器指向; DOMAIN:DNS搜索域; IPADDR: IP地址; N ETMASK:子網掩碼;CentOS 7支持使用PREFIX以長度方式指明子網掩碼; GATEWAY:默認網關; USERCTL:是否允許普通用戶控制此設備; PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向覆蓋本地手動指定的DNS服務器指向;默認為允許; HWADDR:設備的MAC地址; NM_CONTROLLED:是否使用NetworkManager服務來控制接口; 8、如何給網絡接口配置多個地址,有哪些方式? 第一種:[root@localhost ~]# ifconfig eth0:1 192.168.1.20 第二種:[root@localhost ~]# ip address add 192.16.2.1/24 dev eth0 第三種:setup 第四種:修改/etc/sysconfig/network-scripts/ifcfg-eth0:1 第五種:Linux網絡屬性配置的tui(text user interface):system-config-network-tui 9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。 1.1ifcfg命令家族 1.1 ifconfig命令 ifconfig [INTERFACE] ifconfig -a:顯示所有接口,包括inactive狀態的接口; ifconfig interface [aftype] options | address ... # ifconfig IFACE IP/MASK [up|down] # ifconfig IFACE IP netmask 1.2 route命令 路由條目的類型: 主機路由:目標地址為單個IP; 網絡路由:目標地址為IP網絡; 默認路由:目標為任意網絡,0.0.0.0/0.0.0.0 查看: # route -n 添加:route add [-net|-host] target [netmask Nm] [gw GW] [[dev] If] 刪除: route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If] 1.3 netstat命令 顯示路由表:netstat -rn -r:顯示內核路由表 -n:數字格式 顯示網絡連接: netstat [–tcp|-t] [–udp|-u] [–udplite|-U] [–sctp|-S] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p] -t:TCP協議的相關連接,連接均有其狀態;FSM(Finate State Machine); -u:UDP相關的連接 -w:raw socket相關的連接 -l:處于監聽狀態的連接 -a:所有狀態 -n:以數字格式顯示IP和Port; -e:擴展格式 -p:顯示相關的進程及PID; 常用組合:-tan, -uan, -tnl, -unl, -tunlp 傳輸層協議: tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路;通信完成后還要拆除連接; udp:無連接的協議;直接發送數據報文; 顯示接口的統計數據: netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–verbose|-v] [–program|-p] [–numeric|-n] 所有接口:netstat -i 指定接口:netstat -I<IFace> ifup/ifdown命令: 10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。 rpm命令:rpm [OPTIONS] [PACKAGE_FILE] 安裝:-i, --install 升級:-U, --update, -F, --freshen 卸載:-e, --erase 查詢:-q, --query 校驗:-V, --verify 數據庫維護:--builddb, --initdb (1)安裝 rpm {-i|--install} [install-options] PACKAGE_FILE ... rpm -ivh PACKAGE_FILE ... GENERAL OPTIONS: -v:verbose,詳細信息 -vv:更詳細的輸出 (2)升級 rpm {-U|--upgrade} [install-options] PACKAGE_FILE ... rpm {-F|--freshen} [install-options] PACKAGE_FILE ... -U:升級或安裝; -F:升級 rpm -Uvh PACKAGE_FILE ... rpm -Fvh PACKAGE_FILE ... --oldpackage:降級; --force:強制升級; (3)卸載 rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ... --allmatches:卸載所有匹配指定名稱的程序包的各版本; --nodeps:忽略依賴關系 --test:測試卸載,dry run模式 (4)查詢 rpm {-q|--query} [select-options] [query-options] [select-options] PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其版本; -a, --all:查詢所有已經安裝過的包; -f FILE:查詢指定的文件由哪個程序包安裝生成; -p, --package PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作; --whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供; --whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴; [query-options] --changelog:查詢rpm包的changlog; -l, --list:程序安裝生成的所有文件列表; -i, --info:程序包相關的信息,版本號、大小、所屬的包組,等; -c, --configfiles:查詢指定的程序包提供的配置文件; -d, --docfiles:查詢指定的程序包提供的文檔; --provides:列出指定的程序包提供的所有的CAPABILITY; -R, --requires:查詢指定的程序包的依賴關系; --scripts:查看程序包自帶的腳本片斷; 用法:-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE -qpi PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, ... 校驗: rpm {-V|--verify} [select-options] [verify-options] S file Size differs M Mode differs (includes permissions and file type) 5 digest (formerly MD5 sum) differs D Device major/minor number mismatch L readLink(2) path mismatch U User ownership differs G Group ownership differs T mTime differs P caPabilities differ 包來源合法性驗正和完整性驗正: 來源合法性驗正: 完整性驗正: 獲取并導入信任的包制作者的密鑰: 對于CentOS發行版來說:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 驗正: (1) 安裝此組織簽名的程序時,會自動執行驗正; (2) 手動驗正:rpm -K PACKAGE_FILE 數據庫重建:rpm管理器數據庫路徑:/var/lib/rpm/ 查詢操作:通過此處的數據庫進行; 獲取幫助: CentOS 6:man rpm CentOS 7:man rpmdb rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY] --initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前有時不執行任何操作; --rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建; 11、如何使用發行版光盤作為yum repository,請描述該過程。 1.將光盤進行掛載:mount -r -t iso9660 /dev/cdrom /media/cdrom 2.創建yum源中的配置文件; [root@localhost network-scripts]# cat /etc/yum.repos.d/test.repo [test] name=aa#新建yum名稱 baseurl=file:///media/cdrom#指定yum源的地址 enabled=1#是否啟用 gpcheck=0#是否需要驗證 12、寫一個腳本,完成以下功能 (1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干; (2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串; (3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串; (4) 分別統計S開頭和K開頭的文件各有多少; #!/bin/bash for i in $(find /etc/rc.d/rc3.d/K*);do echo -e "${i}.stop \n" done for j in $(find /etc/rc.d/rc3.d/S*);do echo -e "${j}.start \n" done echo "$(find /etc/rc.d/rc3.d/K*|wc -l)" echo "$(find /etc/rc.d/rc3.d/S*|wc -l)" 13、寫一個腳本,完成以下功能 (2) 計算此些用戶的ID之和; #!\bin\bash id1=$(head /etc/passwd |tail -1|cut -d: -f3) id2=$(head -20 /etc/passwd |tail -1 |cut -d: -f3) sum=$[id1 + id2] echo $sum 14、寫一個腳本 (3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型; #!/bin/bash if [ $# -lt 1 ];then echo "At least a Directory" exit 1 fi ls -l "$@" | grep ^d | awk '{print $NF}' > directory ls -l "$@" | grep ^- | awk '{print $NF}' > files ls -l "$@" echo "Total $(wc -l directory)" echo "Total $(wc -l files) 15、寫一個腳本 如果用戶的id號大于等于500,則顯示此用戶為普通用戶; #!/bin/bash a=`id -u $1` if ! grep "^$1\>" /etc/passwd &> /dev/null; then echo "no such user" elif [ $a -ge 500 ];then echo "this regular user" else echo "this no regular user" fi ~ 16、寫一個腳本 (3) 最后顯示本次共添加了多少用戶; #!/bin/bash declare -i j=0 for i in user{1..10};do if grep "^$i\>" /etc/passwd &> /dev/null; then echo "User $i exists." else useradd $i echo $i | passwd --stdin $i &> /dev/null echo "Add user $i finished." let j++ fi done echo $j 17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來; #!/bin/bash for i in 172.16.250.{20..100};do ping -c 2 -w 2 $i &> /dev/null if [ $? -eq 0 ];then echo "$i is up" fi done 18、打印九九乘法表; #!/bin/bash for i in {1..9};do for j in $(seq 1 $i);do echo -n -e "${i}x${j}=$[${i}*${j}]\t" done echo done |
原創文章,作者:a295053193,如若轉載,請注明出處:http://www.www58058.com/49751
作業總結詳細認真,尤其是網絡基礎知識的總結,這些雖是基礎的知識,但是還是很有必要認真對待,加油。