1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
设备 | 功能 | 使用场景 | 区别 |
网桥 | 根据MAC地址来转发帧,本地通信只限本网段内, | 相当于中继器,线路比较长保证信号不变形的传输 | 工作在物理层,相当于一个物理接口 |
集线器 | 接收到的数据包进行广播转发,所有端口都能收到此数据,通过MAC确认是不是发给自己的包进行回应 | 广播形式转发数据都每个端口 | 工作在数据链路层,共享带宽 |
二层交换机 | 物理编址、网络拓扑结构、错误校验、帧序列以及流控 | 不是广播形式转发数据,对于一个目的MAC进行转发 | 工作在数据链路层,与集线器不同,不是广播形式,而是选择,同时独享带宽 |
三层交换机 | 通过IP转发数据包,不具有选路功能 | 基于IP的转发 | 工作在网络层,相当于路由器 |
路由器 | 为经过路由器的每个数据包寻找一条最佳传输路径 | 选路,转发,NAT等 | 工作在网络层,路由选路转发数据 |
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
以IPv4为例说明
-
A类地址:范围从0~127,0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的。因此,A类地址的范围其实是从1~126之间。如:10.0.0.1,第一段号码为网络号码,剩下的三段号码为本地主机号。转换为2进制来说,一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围从0.0.0.1到126.255.255.255。可用的A类网络有126个,每个网络能容纳1亿多个主机(2的24次方的主机数目)。以子网掩码来进行区别:255.0.0.0
-
B类地址:范围从128-191,如172.168.1.1,第一和第二段号码为网络号码,剩下的2段号码为本地计算机的号码。转换为2进制来说,一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机。以子网掩码来进行区别:255.255.0.0。
-
C类地址:范围从192-223,如192.168.1.1,第一,第二,第三段号码为网络号码,剩下的最后一段号码为本地计算机的号码。转换为2进制来说,一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。以子网掩码来进行区别:255.255.255.0。
-
D类地址:范围从224-239,D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
-
E类地址:范围从240-254,以“11110”开始,为将来使用保留。全零 (“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
除了以上描述的默认子网掩码我们还可以通过子网掩码划分子网:
-
首先我们介绍一下取得网络号和主机号:
例如:假设有一个 I P 地址: 192.168.0.1 子网掩码为: 255.255.255.0 化为二进制为: I P 地址 11000000.10101000.00000000.00000001 子网掩码 11111111.11111111.11111111.00000000 将两者做 ' 与 ' 运算得: 11000000.10101000.00000000.00000000 将其化为十进制得: 192.168.0.0(即网络号) 0.1中的1就是主机号
-
网络号、子网号和子网主机号:
以上面例子为例,再想划分6个子网,我们可以增加掩码长度: 子网掩码为: 255.255.255.224 去除全0和全1的,001、010、011、100、101、110 将其化为十进制得: 192.168.0.32/64/96/128/160/192(即网络号)
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些
OSI层 | 功能 | 协议 |
应用层 | 文件传输,电子邮件,文件服务,虚拟终端 | tftp,http,snmp,ftp |
表示层 | 数据格式化,代码转换,数据加密 | 无 |
会话层 | 解除或建立与其他接点的联系 | 无 |
传输层 | 提供端对端接口 | tcp,udp |
网络层 | 为数据包选择路由 | ip,icmp,rip,igmp |
数据链路层 | 传输地址帧、错误检测功能 | slip,cslip |
物理层 | 以二进制形式在物理媒介上传输数据 | 以太网,令牌网 |
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
-
通过配置文件方式:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 //接口名字 HWADDR=00:0C:29:06:1B:37 TYPE=Ethernet //以太网 UUID=eeff4c0e-9f73-4e08-b8ae-ede6eb054c32 ONBOOT=no NM_CONTROLLED=yes BOOTPROTO=dhcp //上网方式dhcp接口获取IP,
-
如果没有dhcp服务器,可以通过设置路由来上网:
ifconfig eth0 IP/MASK [root@localhost ~]# service network restart 正在关闭接口 eth0: [确定] 关闭环回接口: [确定] 弹出环回接口: [确定]
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
-
ifconfig
[root@localhost ~]# ifconfig eth0:0 192.168.9.100/24 [root@localhost ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:06:1B:37 inet addr:192.168.9.19 Bcast:192.168.9.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe06:1b37/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:371382 errors:0 dropped:0 overruns:0 frame:0 TX packets:17991 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:23095265 (22.0 MiB) TX bytes:1496195 (1.4 MiB) eth0:0 Link encap:Ethernet HWaddr 00:0C:29:06:1B:37 inet addr:192.168.9.100 Bcast:192.168.9.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
-
ip
[root@localhost ~]# ip addr add 192.168.9.101 dev eth0:1
-
修改配置文件
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示;
#!/bin/bash # for i in {1..254};do ping 172.16.250.$i -w 2 -c 2 &>/dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m 172.16.250.$i \033[0m" else echo -e "\033[31m 172.16.250.$i \033[0m" fi done [root@localhost test-scripts]# bash ping.sh 172.16.250.1 172.16.250.2 172.16.250.3 172.16.250.4 172.16.250.5
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
DEVICE=eth0 //此配置文件应用到的设备 HWADDR=00:0C:29:06:1B:37 //对应设备的MAC地址 TYPE=Ethernet //接口类型,以太网、令牌环网等 UUID=eeff4c0e-9f73-4e08-b8ae-ede6eb054c32 //设备唯一标识 ONBOOT=no //系统引导时是否加载此设备 NM_CONTROLLED=yes //NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no” BOOTPROTO=dhcp //激活此设备时地址配置协议,dhcp,static,none
8、如何给网络接口配置多个地址,有哪些方式?
[root@localhost test-scripts]# ip addr add 192.168.9.111/24 dev eth0 label eth0:3 [root@localhost test-scripts]# ifconfig eth0:1 192.168.9.110/24 [root@localhost test-scripts]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:06:1B:37 inet addr:192.168.9.19 Bcast:192.168.9.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe06:1b37/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:529771 errors:0 dropped:0 overruns:0 frame:0 TX packets:42404 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:35999514 (34.3 MiB) TX bytes:3880544 (3.7 MiB) eth0:0 Link encap:Ethernet HWaddr 00:0C:29:06:1B:37 inet addr:192.168.9.100 Bcast:192.168.9.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 eth0:1 Link encap:Ethernet HWaddr 00:0C:29:06:1B:37 inet addr:192.168.9.110 Bcast:192.168.9.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 eth0:3 Link encap:Ethernet HWaddr 00:0C:29:06:1B:37 inet addr:192.168.9.111 Bcast:0.0.0.0 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
-
ifconfig命令:接口及地址查看和管理
[root@localhost test-scripts]# ifconfig -a //显示所有接口,包括inactive状态的接口 [root@localhost test-scripts]# ifconfig eth0 192.168.9.22/24 //配置设备接口IP [root@localhost test-scripts]# ifconfig eth0 up/down //启用、禁用设备接口 注意此命令是立即送往内核中TCP/IP协议栈,并生效
-
route命令:查看和配置网络路由
路由条目类型: 主机路由:目标地址为单个IP; 网络路由:目标地址为IP网络; 默认路由:目标为任意网络,0.0.0.0/0.0.0.0 route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1 //eth1网络设备10.0.0.0网段通过网关192.168.10.1转发出去 route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1 //任何网段都从192.168.10.1转发出去 route add default gw 192.168.10.1 route del -net 10.0.0.0/8 gw 192.168.10.1 //删除本条路由 route -n //查看主机路由
-
netstat命令:查看网络连接和路由
netstat -rn //显示内核路由表 -u:UDP相关的连接 -w:raw socket相关的连接 -l:处于监听状态的连接 -a:所有状态 -n:以数字格式显示IP和Port; -e:扩展格式 -p:显示相关的进程及PID; 常用格式:-tan, -uan, -tnl, -unl, -tunlp [root@localhost test-scripts]# netstat -tnlp //显示IP地址对应的监听端口上服务程序 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1643/rpcbind tcp 0 0 0.0.0.0:48434 0.0.0.0:* LISTEN 1700/rpc.statd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2001/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1740/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2099/master tcp 0 0 :::45159 :::* LISTEN 1700/rpc.statd tcp 0 0 :::111 :::* LISTEN 1643/rpcbind tcp 0 0 :::22 :::* LISTEN 2001/sshd tcp 0 0 ::1:631 :::* LISTEN 1740/cupsd tcp 0 0 ::1:25 :::* LISTEN 2099/master
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
-
rpm:rehat package manager,红帽系列的包管理器,功能包括:安装、升级、卸载、查询、校验和数据库维护
rpm命令:rpm [OPTIONS] [PACKAGE_FILE] OPTIONS:安装:-i, --install 升级:-U, --update, -F, --freshen 卸载:-e, --erase 查询:-q, --query 校验:-V, --verify 安装:# rpm -ivh PACKAGE_FILE -v:安装的详细信息 -h:hash marks输出进度条;每个#表示2%的进度 升级:# rpm -Uvh|-Fvh PACKAGE_FILE 卸载:# rpm -e --allmatches --nodeps --test PACKAGE_FILE --allmatches:卸载所有匹配指定名称的程序包的各版本; --nodeps:忽略依赖关系 --test:测试卸载,dry run模式 查询:# rpm -ql|-qi|-qf|-qc|-qd|-qpi|-qpl|-qpc -l, --list:程序安装生成的所有文件列表; -i, --info:程序包相关的信息,版本号、大小、所属的包组,等; -c, --configfiles:查询指定的程序包提供的配置文件; -d, --docfiles:查询指定的程序包提供的文档; --provides:列出指定的程序包提供的所有的能力 -R, --requires:查询指定的程序包的依赖关系; --scripts:查看程序包自带的脚本片断; 校验:# rpm -V PACKAGE_FILE 如果校验失败,返回以下结果: S=大小改变 M=权限改变 5=MD5改变 L=连接改变 D=设备改变 U=用户改变 G=组改变 T=日期和时间改变 missing=文件丢失 数据库维护:/var/lib/rpm 通过此处数据库进行查询操作 # rpm --initdb|--rebuilddb --initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作; --rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;
11、如何使用发行版光盘作为yum repository,请描述该过程。
1、查看光盘是否挂载 [root@localhost yum.repos.d]# mount /dev/sr0 on /media/CentOS_6.8_Final type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500) 2、在/etc/yum.repos.d目录下创建一个cdrom.repo的文件 [root@localhost yum.repos.d]# touch cdrom.repo 3、vim cdrom.repo [cdrom] name=CentOS6cdrom baseurl=file:///media/CentOS_6.8_Final gpgcheck=0 enabled=1 4、清楚本地缓存,建立元数据缓存 yum clean all yum makecache cdrom | 4.0 kB 00:00 ... cdrom/group_gz | 226 kB 00:00 ... cdrom/filelists_db | 6.3 MB 00:00 ... cdrom/primary_db | 4.7 MB 00:00 ... cdrom/other_db | 2.8 MB 00:00 ... extras | 3.4 kB 00:00
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 -i j=0 for file1 in `ls /etc/rc.d/rc3.d |egrep "^K"` ;do echo "$file1 stop" let i++ done for file2 in `ls /etc/rc.d/rc3.d |egrep "^S"` ;do echo "$file2 start" let j++ done echo "k top file sum is $i" echo "s top file sum is $j" [root@localhost test-scripts]# bash file.sh K01smartd stop K02oddjobd stop K05wdaemon stop K10psacct stop K10saslauthd stop K15htcacheclean stop K15httpd stop K30spice-vdagentd stop K50dnsmasq stop K60nfs stop K61nfs-rdma stop K69rpcsvcgssd stop K73winbind stop K75ntpdate stop K75quota_nld stop K76ypbind stop K84wpa_supplicant stop K87restorecond stop K88sssd stop K89netconsole stop K89rdisc stop K92pppoe-server stop K95firstboot stop K95rdma stop K99rngd stop S01sysstat start S02lvm2-monitor start S08ip6tables start S08iptables start S10network start S11auditd start S11portreserve start S12rsyslog start S13cpuspeed start S13irqbalance start S13rpcbind start S15mdmonitor start S22messagebus start S23NetworkManager start S24nfslock start S24rpcgssd start S25blk-availability start S25cups start S25netfs start S26acpid start S26haldaemon start S26udev-post start S28autofs start S50kdump start S55sshd start S58ntpd start S80postfix start S82abrt-ccpp start S82abrtd start S90crond start S95atd start S99certmonger start S99local start k top file sum is 25 s top file sum is 33
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数; (2) 计算此些用户的ID之和; #!/bin/bash # declare -i userid=0 declare -i idsum=0 declare -a username read -p "please input username: " -a username argument=${#username[*]} if [ $argument -eq 0 ];then echo "no username,please agruments" fi for i in `seq 0 $[${#username[*]}-1]`;do userid=`id -u ${username[$i]}` let idsum+=userid done echo "idsum is $idsum" [root@localhost test-scripts]# bash useradd.sh please input username: xuc apache magedu idsum is 1049 [root@localhost test-scripts]# bash useradd.sh please input username: no username,please agruments idsum is 0
14、写一个脚本
(1) 传递一些目录给此脚本; (2) 逐个显示每个目录的所有一级文件或子目录的内容类型; (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型; #!/bin/bash # declare -i dfile=0 declare -i cfile=0 declare -i bfile=0 declare -i lfile=0 declare -i pfile=0 declare -i sfile=0 declare -i cmnfile=0 if [ $# -lt 1 ];then echo "please input arguments" exit 1 fi dfile=$(ls -l "$@" |egrep ^d |awk '{print $NF}'|wc -l) cfile=$(ls -l "$@" |egrep ^c |awk '{print $NF}'|wc -l) bfile=$(ls -l "$@" |egrep ^b |awk '{print $NF}'|wc -l) lfile=$(ls -l "$@" |egrep ^l |awk '{print $NF}'|wc -l) pfile=$(ls -l "$@" |egrep ^p |awk '{print $NF}'|wc -l) sfile=$(ls -l "$@" |egrep ^s |awk '{print $NF}'|wc -l) cmnfile=$(ls -l "$@" |egrep ^- |awk '{print $NF}'|wc -l) ls -l "$@" echo "The directory file total : $dfile" echo "The charactor file total : $cfile" echo "The block file total : $bfile" echo "The link file total : $lfile" echo "The FIFO file total : $pfile" echo "The socket file total : $sfile" echo "The common file total : $cmnfile" ....省略文件输出 The directory file total : 31 The charactor file total : 124 The block file total : 40 The link file total : 15 The FIFO file total : 0 The socket file total : 1 The common file total : 0
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名 如果用户的id号大于等于500,则显示此用户为普通用户; #!/bin.bash # id -u $1 & >/dev/null if [ $? -eq 0 ];then if [ `id -u $1` -lt 500 ];then echo "$1 is system user" else echo "$1 is common user" fi else echo "user is not exist" fi [root@localhost test-scripts]# bash usertype.sh 123 user is not exist [root@localhost test-scripts]# bash usertype.sh xuc xuc is common user [root@localhost test-scripts]# bash usertype.sh root root is system user
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名; (2) 用户不存在时才添加;存在时则跳过; (3) 最后显示本次共添加了多少用户; #!/bin/bash # declare -i j=0 for i in {1..10};do useradd use$i &>/dev/null if [ $? -eq 0 ];then let j++ echo "user$1" |passwd --stdin user$i &>/dev/null else echo "user$i is exist" fi done echo "adduser total is $j"
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
如6题
18、打印九九乘法表;
#!/bin/bash # for j in {1..9};do for i in `seq 1 $j`;do echo -n -e "${i}X${j}=$[${i}*${j}]\t" done echo done [root@localhost test-scripts]# bash 99.sh 1X1=1 1X2=2 2X2=4 1X3=3 2X3=6 3X3=9 1X4=4 2X4=8 3X4=12 4X4=16 1X5=5 2X5=10 3X5=15 4X5=20 5X5=25 1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36 1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49 1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64 1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81
原创文章,作者:N22_熊宝,如若转载,请注明出处:http://www.178linux.com/58500
评论列表(1条)
第10题判断用户存在一般使用id 看的,不是要useradd添加返回错误来判断