Linux网络与运维学习总结

Shell脚本编程

shell的特性

1.别名
alias 查看本用户下的alias配置
自定义别名:alias 别名=‘shell命令’
cat $HOME/.bashrc 在这个用户下配置着alias名的配置
2.命令替换
命令替换即单反号的使用
补充说明:ls [目录名] -l 命令行键入命令会打印目录下的文件列表
单反号`在shell中表示执行单反号中内容的意思

3.后台处理
nohup command &
一个终端可以同时运行多个程序
命令行键入 jobs -l 可以查看后台正在运行的命令
例如:tar cvf abc.tar abc > /dev/null &
tar是打包命令,参数-f表示命名新的文件,-v表示打印打包过程中的详细信息,-c创建包文件
命令"tar cvf abc.tar abc"表示将文件abc打包成abc.tar,但是由于tar参数-v的原因,会在终端上打印信息
“>” 表示重定向,"/dev/null"表示不打印在终端上,"> /dev/null"就表示将详细信息重定向到/dev/null上
"&"表示后台处理
4.管道
把一个名的输出作为另一个命令的输入
5.重定向
“<” 输入 ">"输出
与管道相关,可以改变程序运行的输入来源和输出地点
例如:sort < 1.c > 2.c 命令由左向右执行,先将1.c中的数据排序,将结果重定向到2.c
6.模式匹配
显示以txt为扩展的文件或者显示以a开头的文件,这种能力叫做模式匹配
正则表达式
7.特殊符号
双引号:用来使shell无法认出空格、制表符和其他大多数特殊字符,例如建立一个带空格的文件 touch “wang bao ming”
单引号:用来使shell无法认出所有特殊字符
单反号(`):用来替换命令
反斜杠():用来使shell无法认出特殊字符,使其后的字符失去特殊含义,转义字符。例如创建带空格的文件名 touch my\ file
分号:允许在一行上放多个命令。例如:mv 1.txt 2.txt;mv 2.txt 3.txt;
&:命令后台执行
括号():创建成组的命令
大括号{}:创建命令块
竖杠(|):管道标示符
<>:重定向表示符
*?[]:表示模式匹配
$:变量名开头
#:表示注释
空格、制表符、换行符:当作空白

shell脚本编程

1.创建shell脚本
一个shell脚本通常包含如下部分:

首行
    第一行内容在脚本的首行左侧,表示脚本将要调用的shell解释器,内容如下:

#!/bin/bash
    #!符号能够被内核识别成是一个脚本的开始,这一行必须位于脚本的首行,/bin/bash是bash程序的绝对路径,在这里表示后续的内容将通过bash程序解释执行。

注释
    注释符号# 放在需注释内容的前面

内容
    可执行内容和shell结构

2.执行
(1)输入脚本的绝对路径或相对路径
    /root/Helloworld.sh
    ./Helloworld.sh

(2)bash或sh +脚本
    bash /root/Helloworld.sh
    sh Helloworld.sh
(当脚本没有x权限时,root和文件所有者通过该方式可以正常执行。)

(3)在脚本的路径前再加". " 或source
    source /root/Helloworld.sh
    . ./Helloworld.sh

PXE自动安装Linux系统

原理

PXE即预启动执行环境,是在没有软驱、硬盘、CD-ROM的情况下引导计算机的一种方式,BIOS将使用PXE协议从网络引导。

PEX环境搭建

1.DHCP服务
Linxu DHCP服务安装:

    yum install dhcp

        用以上命令就可以安装dhcp服务了

    安装完之后dhcp服务脚本为dhcpd

2.TFTP服务
tftp服务搭建:
配置tftp server

        yum -y install tftp-server:安装tftp服务

        chkconfig tftp on:将tftp设置成开机自启动

        service xinetd restart:由于tftp服务是又xinetd服务代为监控的所以要重启xinetd服务

配置启动:
1,chkconfig SERVICE_NAME on
2,编辑配置文件,确保没有被禁用
disable = no

修改后的生效需要重启超级守护进程:
service xinetd restart

提供PXE的工作环境
        yum install syslinux:syslinux提供pxelinux.0这个启动文件
        cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/:将pxelinux.0文件复制到tftp服务目录下
        pxelinux.0:pxe启动文档
    提供引导内核等文件
         cp /media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
    复制:vmlinuz,initrd.img文件到tftp目录
    cp /media/cdrom/isolinux{splash.jpg,vesamenu.c32,boot.msg} /var/lib/tftpboot
    复制:splash.jpg,vesamenu.c32,boot.msg文件到tftp目录
     mkdir /var/lib/tftpboot/pxelinux.cfg/:新建目录pxelinux.cfg
      cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pexlinux.cfg/default
     复制:isolinux.cfg文件到tftp目录下的pxelinux.cfg目录下改名为default,
        vmlinuz:内核
        initrd.img:引导文件
        splash.jpg:启动后的背景文件
        vesamenu.c32:启动后的图像界面文件
        boot.msg:启动后提示文件
        pexlinux.cfg:pxe引导文件,主要是显示vesamenu.32的菜单

3.HTTP服务

        http服务为提供安装源
            yum -y install httpd:安装http服务           
            mkdir -pv /var/www/html/centos/6/x86_64:建立源目录,-pv代表有子目录,需要递增建
            mount --bind /media/cdrom /var/www/html/centos/6/x86_64:--bind是绑定cdrom与x86这个文件夹,代表两个文件内容一样了.

安装

1.安装syslinux,并将pxelinux.0,menu.c32(提供选单),mboot.c32(能够通过内存引导),memdisk(将内存模拟为磁盘),chain.c32(基于bootloader引导系统)复制到/var/lib/tftpboot/下

yum install syslinux -y

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cp /usr/share/syslinux/{chain.c32,memdisk,menu.c32,mboot.c32} /var/lib/tftpboot/

2.从安装光盘复制vmlinuz和initrd.img到tftp的根目录下

cp vmlinuz initrd.img /var/lib/tftpboot/

3.创建菜单加载的配置文件信息,在tftp的根目录下创建pxelinux.cfg目录,在pxelinux.cfg目录下创建default

mkdir pxelinux.cfg

default配置文件

default menu.c32

    prompt 5 (此处为选单出现后几秒内没有动作选择默认选项)

    timeout 30(设定选单超时时间)

    MENU LABEL THIS IS CENTOS(选单的大标题)

    LABEL linuxzidong (在命令行下直接输入此处定义字符能启动该选项)

    MENU LABEL install(选单的选项)

    KERNEL vmlinuz 

    APPEND initrd=initrd.img inst.repo=ftp://10.1.1.1/pub/centos (安装文件路径)ks=ftp://10.1.1.1/pub/centos7.cfg (应答文件路径)

4.在ftp的共享目录创建上面定义的目录,并将光盘挂载

mkdir centos

mount /dev/sr0 /var/ftp/pub/centos/

5.在/root下的anaconda-ks.cfg是保存了本机安装系统时选择的应答文件

本次采用的应答文件centos7.cfg,只包含了最基础的安装包

Keyboard layouts

old format: keyboard us

new format:

keyboard –vckeymap=cn –xlayouts=‘cn’

Reboot after installation

reboot

Root password

rootpw –iscrypted 1 1 1HDHf2v4i$LMo.xGHfxQDOf8e043C.g/

System timezone

timezone Asia/Shanghai

Use network installation

url –url=“ftp://10.1.1.1/pub/centos”

System language

lang zh_CN

user –groups=wheel –name=mageedu –password=$6 1 e W r O e t Y 1eWrOetY 1eWrOetYDfLZgquGiOaNkwpEF4ItMipz.1kpn7Q.s6oXyoW2bALkWesRWHCCACICkJ.2zBXDbwEw0ibR.wxSt

LI41ZhfF1 –iscrypted –gecos=“MageEdu”

Firewall configuration

firewall –disabled

Network information

network –bootproto=dhcp –device=eth0

System authorization information

auth –useshadow –passalgo=sha512

Use text mode install

text

firstboot –disable

SELinux configuration

selinux –permissive

ignoredisk –only-use=sda

System bootloader configuration

bootloader –location=mbr –boot-drive=sda

Clear the Master Boot Record

zerombr

Partition clearing information

clearpart –all –initlabel

Disk partitioning information

part /boot –asprimary –fstype=“xfs” –size=512

part swap –fstype=“swap” –size=2048

part /usr –fstype=“xfs” –size=20480

part / –fstype=“xfs” –size=20480

%packages

@base

@core

6.将应答文件复制到ftp的根所在的目录

mv centos7.cfg /var/ftp/pub/

7.将服务器和要安装系统的机器配置在同一个网络内通过网卡启动要安装系统的机器就可以完成自动安装

NFS服务器搭建与autofs自动挂载

NFS服务器搭建

1.关闭防火墙
[root@localhost wuqiong]# systemctl stop firewalld.service
[root@localhost wuqiong]# systemctl disable firewalld.service
[root@localhost wuqiong]# firewall-cmd --state
not running
2.关闭selinux
临时关闭
[root@localhost wuqiong]# setenforce 0
永久关闭
[root@localhost wuqiong]# sed -i 's/^ SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
重启后配置生效
[root@localhost wuqiong]# sestatus
SELinux status: disabled
3.服务端安装NFS软件
[root@localhost wuqiong]# yum -y install nfs-utils
4.编辑参数exports
[root@localhost wuqiong]# view /etc/exports
/backup 172.27.34.0/24(rw,sync,no_root_squash)
/backup 172.27.9.0/24(rw,sync,no_root_squash)
表示允许172.27.34.0和172.27.9.0两个网段的服务器访问,若对所有ip地址都可以访问则可设置为

/backup *(rw,sync,no_root_squash)
5.新建共享目录并修改权限
[root@localhost wuqiong]# mkdir /backup
[root@localhost wuqiong backup]# chmod -R 777 /backup/
6.启动服务并设置为开机启动
[root@localhost wuqiong]# systemctl enable rpcbind.service
[root@localhost wuqiong]# systemctl enable nfs-server.service
[root@localhost wuqiong]# systemctl start rpcbind.service
[root@localhost wuqiong]# systemctl start nfs-server.service

autofs自动挂载

1.安装autofs
[root@imxhy data]# yum -y install autofs
2. 编辑自动挂载相关配置
修改master
[root@imxhy ~]# vi /etc/auto.master
vim /etc/sysconfig/nfs

RPCNFSDARGS="-V 4.2 " #高版本才能支持keytab加密

vim /etc/exports

/protected 172.24.8.0/24(rw,sync,sec=krb5p) #设置共享,加密采用krb5p

systemctl restart nfs-server nfs-secure-server #重启相关服务

/mnt /etc/auto.nfs #auto.nfs表示另一个文件

创建挂载项
[root@imxhy ~] cp /etc/auto.misc /etc/auto.nfs
#misc为标准文件不建议直接修改,单以此为模板修改nfs

[root@imxhy ~]# vi /etc/auto.nfs

data -fstype=nfs,rw,all_squash,sync 192.168.10.10:/mywork #设置对应的挂载情况

ip-san搭载

IP-SAN的操作流程大致如下:
initiator作为服务器端去使用远程target上的一个lun(逻辑单元号),一个target即一个主机,一个主机上可以共享多个硬盘给initiator使用,我们把每一个硬盘叫做一个lun。为了使用iscsi协议,initiator上要封装scsi driven,iscsi driven和tcp/ip的报文通过网络发送给target上,target以此扯掉这些报文,发现对方发送的scsi协议,进而交给本地的硬盘驱动处理。所以target上不用必须装scsi的硬盘,像传统的sata盘都可以在这个架构中使用。从用户的角度来看,就像在使用本地的客户端一样,方便简单。
target →Lun→Server
首先存储把Lun共享给server,Server 去发现这个存储,登陆存储认证。

配置

Target 存储端
192.168.1.122的操作流程如下:
# yum install scsi-target-utils
# rpm -ql scsi-target-utils(可以查看一些包信息)
# service tgtd restart
# chkconfig tgtd on
# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2014-05.com.qiguo.node:target1
解释:–lld指定driven,–mode指定模式,–op指定模式操作,–tid指定target_id,–targetname指定target的名称,这里使用iqn的命名方式,这里就是新增了一个target,并且target_id为1,target的名称为iqn.2014-05.com.qiguo.node:target1
# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sda
解释:这里就是在target_id为1的上面增加了一个lun,其值为1,后端的存储设备为/dev/sda。
# tgtadm --lld iscsi --mode target --op show
解释:可以查看当前的target信息和lun信息
# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.1.121
解释:target_id为1的允许IP为192.168.1.121的这台主机访问

Server 端
192.168.1.121的操作流程如下:
# yum install iscsi-initiator-utils
# echo “InitiatorName=iscsi-iname -p iqn.2013-05.com.qiguo.initiator1” >/etc/iscsi/initiatorname.iscsi #生成initiator的名称
# iscsiadm -m discovery -t st -p 192.168.1.122:3260 #使用的时候会自动启动iscsid进程。意思为在192.168.1.122的3260端口以sendtargets的类型寻找iscsi target设备
显示内容如下:192.168.1.122:3260,1 iqn.2014-05.com.qiguo.node:target1
# iscsiadm -m node -d 2 -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -l #-d显示debug的级别,-T指定远程主机的targetName,-l选择登陆到远程主机
# fdisk -l

DNS服务器搭建

1、 首先给Linux主机配IP地址,本文Linux的IP地址192.168.1.25,用于访问网站的win7虚拟机的IP地址为192.168.1.50,提供网站服务的win7虚拟机的IP地址为192.168.1.100。
2、在Linux上安装Bind服务,系统光盘中自带了bind软件包,挂载后直接安装。
3、安装成功后,会自动增加一个named的系统服务,下面主要修改named服务的配置文件,主要有3个/etc/named.conf、/etc/named.rfc1912.zones、/var/named/目录下的模板文件。

4、首先修改/etc/named.conf主配置文件。

5、下面修改/etc/named.rfc1912.zones区域配置文件,添加或者直接在里面修改两块块zone区域,一块用于正向解析,另外一块用于反向解析。
在这里插入图片描述
6、 最后修改/var/named/目录下的区域配置文件模板,首先复制一份named.localhost模板文件在里面修改,这里注意,在复制时要保留原文件的属主和属组。
在这里插入图片描述
7、修改配置文件。
在这里插入图片描述
8、复制一份文件用于反向解析
在这里插入图片描述
9、配置文件修改完后,关闭防火墙和系统增强安全功能(为以后的访问做好准备),并启动named服务。
在这里插入图片描述
10、使用host工具测试一下正向和反向解析。
在这里插入图片描述
11、下面到提供网站服务的win7虚拟机中开启web服务,并到IIS管理器中绑定域名和IP地址
在这里插入图片描述
12、最后到访问网站服务的win7虚拟机中设置IP和DNS服务器地址。
在这里插入图片描述
在这里插入图片描述
13、注意一定要关闭win7的防火墙。

14、最终访问成功。
在这里插入图片描述

静态路由与BFD联动

静态路由本身没有检测网络故障的机制,网络发生故障时不能实现收敛。为了提高故障发现的及时性,可通过静态路由与BFD联动进行绑定,利用BFD会话快速检测静态路由的链路状态,实现毫秒级快速主备链路切换。
在这里插入图片描述
主要实现机制: 如果某静态路由上的BFD检测到链路中断,BFD上报系统,促使路由失效,该路由在IP路由表中消失。 如果某静态路由上的BFD检测到链路恢复,BFD上报系统,重新激活该路由,使该路由重新出现在IP路由表中。
在这里插入图片描述
PC1和PC2实现通信,要求实现毫秒级的链路故障感知,只有通过与BFD会话进行绑定,可以再R2和R3分贝创建双向BFD会话,并绑定R2到达外部网络的静态路由。
R1的配置: interface GigabitEthernet0/0/0
ip address 172.31.0.1 255.255.255.252
#interface GigabitEthernet0/0/1
ip address 172.31.1.1 255.255.255.252
#ip route-static 192.168.1.0 255.255.255.0 172.31.0.2
ip route-static 192.168.2.0 255.255.255.0 172.31.1.2
R2的配置
#interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
#interface GigabitEthernet0/0/1
ip address 172.34.2.1 255.255.255.252
#interface GigabitEthernet0/0/2
ip address 172.31.0.2 255.255.255.252
#bfd r2tor3 bind peer-ip 192.168.2.1 discriminator local 10 discriminator remote 20 commit
#ip route-static 172.31.1.0 255.255.255.252 172.31.0.1
ip route-static 192.168.2.0 255.255.255.0 172.31.0.1
ip route-static 192.168.2.0 255.255.255.0 172.34.2.2

R3的相关配置 interface GigabitEthernet0/0/0

ip address 192.168.1.1 255.255.255.0
#interface GigabitEthernet0/0/1
 ip address 172.34.2.1 255.255.255.252
 #interface GigabitEthernet0/0/2 
 ip address 172.31.0.2 255.255.255.252
 #bfd r2tor3 bind peer-ip 192.168.2.1 discriminator local 10 discriminator remote 20 commit
 #ip route-static 172.31.1.0 255.255.255.252 172.31.0.1
 ip route-static 192.168.2.0 255.255.255.0 172.31.0.1
 ip route-static 192.168.2.0 255.255.255.0 172.34.2.2

在路由器R2上执行如下操作: int g 0/0/2 shu 之后在R1上tracert 192.168.2.2的执行结果如下图所示,上半部分是执行之前的路由,下半部分是执行之后的路由,可以看到实现了路由切换
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值