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.178linux.com/49751
评论列表(1条)
作业总结详细认真,尤其是网络基础知识的总结,这些虽是基础的知识,但是还是很有必要认真对待,加油。