注意:第八週作業,請將以下題目整理在51cto博客當中,完成後請將對應的博文鏈接地址提交在答案欄中,提交格式如下:
學號+姓名+博文鏈接地址
eg:1+張三+http://mageedu.blog.51cto.com/4265610/1794420
本週作業內容:
1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
網橋:橋接兩個不同的局域網的數據鏈路層設備。
集線器:以串聯,共享一條帶寬的方式,將多個端口連接在一起的物理層設備。所有端口爲一個衝突域。現在很少使用。
二層交換機:具有MAC地址學習,交換端口之間數據的數據鏈路層設備。一個端口爲一個衝突域,所有端口爲一個廣播域。經常用於以太網局域網中。
三層交換機:同時具有二層交換機的交換功能和三層路由器的路由功能的交換機。經常用於不同VLAN之間的互聯互通,此時,比一般的路由器性能更高。
路由器:用於不同局域網之間或廣域網絡上的數據路徑選擇的網絡層設備。經常用於廣域網絡設備之間,企業的局域網與廣域網之間的連接。
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
IPv4地址由四段三位點分十進制組成,0.0.0.0-255.255.255.255,分爲五類
A類:
0 000 0000 - 0 111 1111: 1-127
網絡數:2^7-1,127
每個網絡中的主機數:2^24-2
默認子網掩碼:255.0.0.0
私網地址:10.0.0.0/8
B類:
10 00 0000 - 10 11 1111:128-191
網絡數:2^14
每個網絡中的主機數:2^16-2
默認子網掩碼:255.255.0.0
私網地址:172.16.0.0/16-172.31.0.0/16
C類:
110 0 0000 - 110 1 1111: 192-223
網絡數:2^21
每個網絡中的主機數:2^8-2
默認子網掩碼:255.255.255.0
私網地址:192.168.0.0/24-192.168.255.0/24
D類:組播
1110 0000 - 1110 1111: 224-239
E類:
240-255
子網掩碼的格式:通過與IP地址格式相同的點分十進制表示,如255.0.0.0或者在IP地址後面加上/符號以及1-32位的網絡位數字表示。
子網掩碼的作用:通過IP地址的二進制與子網掩碼的二進制進行與運算,確定某個設備的網絡地址和主機號,也就是說通過子網掩碼分辨一個網絡的網絡部分和主機部分。子網掩碼一旦設置,網絡地址和主機地址就固定了。
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
OSI | TCP/IP | 功能 | 協議 | 物理設備 |
application layer應用層 | application layer應用層 | 文件傳輸,電子郵件,文件服務,虛擬終端等 | TFTP,FTP,NFS,WAIS | |
presentation layer表示層 | 數據格式化,代碼轉換,數據加密等 | Telnet,rlogin,SNMP,Gopher | ||
session layer 會話層 | 解除或建立與其它接點的聯繫 | SMTP,DNS | ||
transprot layer傳輸層 | transfer layer傳輸層 | 提供端對端的接口 | TCP,UDP | 四層交機機,四層路由器 |
network layer網絡層 | internet layer網絡層 | 爲數據包選擇路由 | IP,ICMP,ARP,RARP,AKP,UUCP | 路由器,三層交換機 |
datalink layer數據鏈路層 | datalink layer數據鏈路層 | 傳輸有地址的幀,錯誤檢測功能 | FDDI,Ethernet,Arpanet,PDN,SLP,PPP | 以太網交換機,網卡 |
physical layer物理層 | physical layer物理層 | 以二進制數據形式在物理媒體上傳輸數據;規定了電氣性能等 | IEEE802.2--802.11 | 中繼器,Hub,雙絞線 |
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
判斷linux主機是否已接入TCP/IP網絡
(a)查看網路接口信息
$ ifconfig #查看活動的網絡接口信息
$ ifconfig -a #查看所有的網絡接口信息
$ ifconfig eth0 #查看指定的eth0網絡接口信息
(b)查看網關,路由信息
$ route -n
(c)查看網絡連通性
$ ping 192.168.239.1
$ nslookup www.163.com
使用手動指定方式將主機連入TCP/IP網絡
(a)臨時手工配置IPV4地址
$ ifconfig eth0 192.168.239.128/24
(b)添加默認網關路由
$ rout add default gw 192.168.239.1
(c)添加DNS域名解析
編輯配置文件/etc/resolv.conf,修改增加
DNS1=192.168.239.1
DNS2=192.168.1.1
(d)修改主機名
$ hostname test
5、爲Linux主機配置網絡信息的方式有哪些,請描述各個過程。
方式一:臨時配置網絡信息
(a)配置IPV4地址、子網掩碼
$ ifconfig eth0 192.168.239.128/24 up
$ ip addr add 192.168.239.128/24 dev eth0
$ ip link set up dev eth0
$ nmcli connection modify eht0 192.168.239.128/24 up
(b)配置網關和路由
$ route add -net 192.168.183.0 netmask 255.255.255.0 gw 192.168.239.1 dev eth0
$ route add default gw 192.168.239.1 dev eth0
$ ip route add 192.168.183.0/24 via 192.168.239.1 dev eth0
$ ip route add default via 192.168.239.1 dev eth0
(c)配置DNS
DNS服務器指定,編輯/etc/resolv.conf,修改nameserver 192.168.1.1 DNS_SERVER_IP2 192.168.239.1
方式二:編輯配置文件
若要使配置在重啓以後也生效,需手動編輯配置文件。
(a)編輯IFACE配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:F9:C1:9E
BOOTPROTO=static
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
UUID:設備的惟一標識;
IPADDR=192.168.239.128
NETMASK=255.255.255.0
GATEWAY=192.168.239.1
DNS1=192.168.1.1
DNS2=192.168.239.1
USERCTL=no
(b)編輯路由配置文件/etc/sysconfig/network-scripts/rout-eth0
192.168.183.0/24 via 192.168.239.1
default via 192.168.239.1
(c)編輯DNS配置文件/etc/resolv.conf
DNS1=192.168.1.1
DNS2=192.168.239.1
(d)重啓網卡或網絡服務
$ ifconfig eth0 down; ifconfig eth0 up
$ service network start
方式三:使用圖形網絡管理工具
system-config-network-tui,setup,nmtui
配置當前主機的主機名:
$ hostname test
編輯配置文件/etc/sysconfig/network,修改HOSTNAME=test
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
#!/bin/bash # script file is located /root/findonline for i in {1..254};do if $( ping 172.168.250.$i &> /dev/null );then echo -e "\033[32m 172.168.250.$i is online \033[0m" else echo -e "\033[31m 172.168.250.$i is offline \033[0m" fi done
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE:
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:普通用戶是否可控制此設備;
PEERDNS:如果BOOTPROTO的值爲“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中;
/etc/sysconfig/network-scripts/route-IFACE
兩種風格:
(1) TARGET via GW
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
8、如何給網絡接口配置多個地址,有哪些方式?
方式一:使用ifconfig臨時配置 $ ifconfig eth0:0 192.168.239.129 netmask 255.255.255.0 $ ifconfig eth0:1 192.168.239.130/24
方式二:使用ip臨時配置 $ ip addr add 192.168.239.129/24 dev eth0 $ ip addr add 192.168.239.130/24 dev eth0
方式三:使用nmcli配置 $ nmcli connection modify eno16777755 +192.168.183.129/24
方式四:修改IFACE配置文件ifcfg-eth0:0,ifcfg-eth0:1 $ cp /etc/sysconfig/network-scripts/ifcg-eth0 /etc/sysconfig/network-scritps/ifcfg-eth0:0 $ cp /etc/sysconfig/network-scripts/ifcg-eth0 /etc/sysconfig/network-scritps/ifcfg-eth0:1
方式五:使用工具system-config-network-tui,setup,nmtui
9、常用的網絡管理類工具有哪些,並用示例形式描述他們的使用方法。
(a)ifconfig
ifconfig [IFACE] #顯示所有up或指定IFACE網口
ifconfig IFACE up|down #啓用或禁用IFACE網口
ifconfig IFACE IP/MASK #配置指定網口IP/MASK
(b)route
route -n #查看當前route信息
route add [-host|-net|default] TARGET/MASK [gw GW] #增加路由
route del [-host|-net|default] TARGET/MASK [gw GW] #刪除路由
(c)netstat
netstat options
-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處於監聽狀態
-a: 所有狀態
-n: 以數字顯示IP和端口;
-e:擴展格式
-p: 顯示相關進程及PID
常用組合:-tan, -uan, -tnl, -unl
netstat -rn #顯示內核路由表
netstat -in #顯示網口的信息
(d)ifup/ifdown
ifup/down IFACE #啓用或禁用網口
(e)ip
ip [ OPTIONS ] OBJECT { COMMAND | help }
ip link set dev IFACE up|down #啓用或禁用網口
ip link show dev IFACE #顯示網口信息
ip link show dev up #顯示up網口信息
ip address add|del|show STRING
STRING:
label LABEL]:添加地址時指明網卡別名
[scope {global|link|host}]:指明作用域
[broadcast ADDRESS]:指明廣播地址
添加、刪除、查看路由:
ip rout add|del|show TARGET [via GW dev IFACE src SOURCE_IP]
(f)
ss [OPTION]... [FILTER]
選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀態的連接
-a: 所有
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
rpm -i [install-options] PACKAGE_FILES #安裝RPM包
rpm -U|-F [install-options] PACKAGE_FILES #升級RPM包
rpm -e|-r [unstall-options] PACKAGE_FILES #卸載RPM包
rpm -q [select-options] [query-options] #查詢安裝包
rpm -V [select-options] [query-options] #驗證安裝包
rpm --import /PATH/FROM/GPG-PUBKEY-FILE #導入公鑰
常用組合選項:-ivh, --nodeps, --replacepkgs,-Uvh, -Fvh, -qa, -qf, -qi, -qd, -qc, -q --scripts, -q --changlog, -q --provides, -q --requires
11、如何使用發行版光盤作爲yum repository,請描述該過程。
(1) 掛載光盤至某目錄,例如/media/cdrom
# mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) 創建配置文件
[CentOS7]
name=centos7
baseurl=file:///
gpgcheck=0
12、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,並且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,並且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
are -i x=0 delcare -i y=0 for i in $(ls [KS]*);do [[ $i = K* ]] && echo "K**file : $i" && let x++ && mv $i stop.$i [[ $i = S* ]] && echo "S**file : $i" && let y++ && mv $i star.$i done echo "K**files total is : $x" echo "S**files total is : $y"
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作爲參數;
(2) 計算此些用戶的ID之和;
#!/bin/bash declare -i userID=0 for i in $*;do if $(grep "^$i" /etc/passwd &> /dev/null );then userID+=$( grep "^$i" /etc/passwd | cut -d: -f3 ) else echo "$i is not a valid uesrID" fi done echo "total of userID is : $userID"
14、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash declare - i x=0 delcare -i y=0 for i in $*;do for k in $(ls -r $i);do [ -d $k ] && let x++ [ -e $k ] && let y++ done done echo "DIR total is : $x" echo "files total is : $y"
15、寫一個腳本
通過命令行傳遞一個參數給腳本,參數爲用戶名
如果用戶的id號大於等於500,則顯示此用戶爲普通用戶;
#!/bin/bash if $(grep "^$@" /etc/passwd &> /dev/null );then userID=$( grep "^$@" /etc/passwd | cut -d: -f3 ) if [ $userID -ge 500 ];then echo "$@ is a general user" else echo "$@ is admin user" fi fi
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最後顯示本次共添加了多少用戶;
#!/bin/bash declare -i x=0 for i in {1..10};do if ! id user$i &> /dev/null;then useradd user$i | passwd --stdin user$i echo "" added user user$i let x++ fi done
17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
#!/bin/bash declare -i x=0 for i in {20..100};do ping 172.16.250.$i &> /dev/null && echo "172.16.250.$i is online." && let x++ done echo online total is $x
18、打印九九乘法表;
#!/bin/bash for((i=1;i<=9;++i)) ;do for((j=1;j<=i;j++)) ;do echo -ne "$i*$j=$((i*j))\t" done echo done