Hi,
有钱终成眷属
没钱亲眼目睹

技术文章 第3页

Dynamic Routing OSPF CLI 配置

伊阳阅读(1457)

本文最后更新于2021年3月31日,已超过 3 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

A 路由配置
user:admin
Power:private
(Router)>enable
(Router)#configure
(Router)(Config)#interface 2/1
(Router)(Interface 2/1)#ip address 10.0.1.1 255.255.255.0
(Router)(Interface 2/1)#routing
(Router)(Interface 2/1)#exit
(Router)(Config)#interface 2/2
(Router)(Interface 2/2)#ip address 10.0.2.1 255.255.255.0
(Router)(Interface 2/2)#routing
(Router)(Interface 2/2)#ip ospf
(Router)(Interface 2/2)#exit
(Router)(Config)#router ospf
(Router)(Config router)#enable
(Router)(Config router)#router-id 10.0.2.1
(Router)(Config router)#redistribute connected subnets
(Router)(Config router)#exit
(Router)(Config)#ip routing
(Router)(Config)#exit
(Router)#show ip ospf
B 路由配置
user:admin
Power:private
(Router)>enable
(Router)#configure
(Router)(Config)#interface 2/2
(Router)(Interface 2/1)#ip address 10.0.3.1 255.255.255.0
(Router)(Interface 2/1)#routing
(Router)(Interface 2/1)#exit
(Router)(Config)#interface 2/1
(Router)(Interface 2/2)#ip address 10.0.2.2 255.255.255.0
(Router)(Interface 2/2)#routing
(Router)(Interface 2/2)#ip ospf
(Router)(Interface 2/2)#exit
(Router)(Config)#router ospf
(Router)(Config router)#enable
(Router)(Config router)#router-id 10.0.2.2
(Router)(Config router)#redistribute connected subnets
(Router)(Config router)#exit
(Router)(Config)#ip routing
(Router)(Config)#exit
(Router)#show ip ospf

群晖系统上给Nextcloud安装Imagick

伊阳阅读(3239)

本文最后更新于2022年9月17日,已超过 2 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
php7.4已自带imagick扩展,不需要在自行安装

去年趁着蜗牛热,入手了一台A款,之后给装上了黑群系统。再之后呢,又通过WebStation安装了Nextcloud私人网盘,登录系统后台,在安全与设置警告中,总是提示缺失imagick模块,作为一个强迫症患者,提示这样的警告信息,对于我而言,是无法忍受的。好在经过高人的指点,终于给成功了,今天我就在这里介绍下方法,以备广大有需之士有所帮助。

一、PHP imagick扩展模块的安装。

1、下载PHP imagick扩展模块。
2、通过Winscp软件登陆到你的群晖,并将imagick上传到如图所示位置。

经测试,此方法只能配合PHP7.2使用

3、修改imagick文件的权限。

4、在/volume1/@appstore/PHP7.2/misc下的php-fpm.ini文件最后一行添加如下代码。

extension = imagick.so
二、安装ImageMagick套件

1、安装第三方套件源

http://packages.synocommunity.com/


2、在第三方套件源里安装ImageMagick套件。

如果ImageMagick套件无法安装,可手动进行安装,套件附后。

三、在WebStation中,Nextcloud选择PHP7.2。


自此,Nextcloud中将不会再提示imagick模块了。

群晖系统上如何切换PHP版本

伊阳阅读(6395)

本文最后更新于2022年9月17日,已超过 2 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

前段时间,给我的黑裙上安装了Nextcloud,在后台安全与设置警告提示:数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。您可以在 Nextcloud 运行时通过命令行手动执行 “occ db:add-missing-indices” 命令修复丢失的索引。索引修复后会大大提高相应表的查询速度。

通过SSH执行”sudo -u http php occ db:add-missing-indices”命令后,提示”This version of Nextcloud requires at least PHP 7.2
You are currently running 5.6.11. Please update your PHP version.”,意思是PHP版本太低,至少需要PHP7.2。可我明明卸载了php5.6.11,怎么还会运行呢

通过SSH连接群晖,输入命令php -v,查看当前php版本。

通过命令查询后可以看到,群晖的php版本还是PHP5.6。在网上找了很久,终于让我找到了方法,方法不是很详细,下面我就详细介绍下方法。

1、软件件需要用到WinSCP,通过WinSCP连接到你的群晖。

按照下图分别输入你的群晖IP地址,用户名及密码,然后点击登录。

2、下面以切换到PHP7.3为例,将/volume1/@appstore/PHP7.3/usr/local/bin下的php73复制到/bin下。

3、将原/bin下的php重命名为php1,然后将复制的php73重命名为php,并更改权限为755。

最后,通过SSH连接到群晖,输入命令:php -v,显示PHP版本已切换到7.3,如图。

WordPress纯代码实现百度收录数据库保存及定时更新

伊阳阅读(1859)

本文最后更新于2021年3月31日,已超过 3 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
本文于2020年4月12日进行修正,并增加了360收录查询的保存及定时更新

网站文章实现百度收录的查询和显示网上的方法很多,有通过插件实现的,也有通过纯代码进行实现的,但都存在同样的问题:实时查询,一是加载速度会慢,二是可能被封服务器IP。所以我自己做了一个本地数据库版的,将查询结果保存到本地,从本地读取显示,当查询结果大于设定的时间后,自动进行查询结果更新。

本方法可实现查询结果自由显示,可在后台文章列表显示,也可在文章也显示,取舍可自行决定。

1、编辑WordPress主题functions文件,将下列代码放到?>标签之前。
/*
==================================================
*百度收录查询、本地保存、定时更新 
*https://www.chyiyang.cn/139.html
==================================================
*/
//在数据库创建自定义表,用于存储百度收录查询数据;
function my_table_install () {   
    global $wpdb;
    $table_name = $wpdb->prefix . "record";  //获取表前缀,并设置新表的名称
    if($wpdb->get_var("show tables like $table_name") != $table_name) {  //判断表是否已存在
        $sql = "CREATE TABLE " . $table_name . " (
	    id mediumint(9) NOT NULL AUTO_INCREMENT,
	    post_id bigint(20) UNSIGNED NOT NULL DEFAULT '0',
	    record_time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
	    record_name tinytext NOT NULL,
	    value text NOT NULL,
	    UNIQUE KEY id (id)
          );";
        require_once(ABSPATH . "wp-admin/includes/upgrade.php");  //引用wordpress的内置方法库
        dbDelta($sql);
    }
}
my_table_install ();

function checkBaidu($url) { 
    $url = 'https://www.baidu.com/s?wd=' . urlencode($url); 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $rs = curl_exec($curl); 
    curl_close($curl); 
    if (!strpos($rs, '提交网址')) { //没有找到说明已被百度收录 
        return 1; 
    }else{return 0;}
}
function checkssl($url) { 
    $url = 'https://www.so.com/s?q=' . urlencode($url); 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $rs = curl_exec($curl); 
    curl_close($curl); 
    if (!strpos($rs, '找不到该URL')) { //没有找到说明已被360收录 
        return 1; 
    }else{return 0;}
}

function baidurecord($surl){
    global $wpdb;
    $post_id =get_the_ID();
    $days = 7;
    $today = current_time('mysql'); //获取今天日期时间
    $daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) );  //Today - $days
    $results1 = $wpdb->get_results("SELECT * FROM wp_record where post_id = '$post_id' and record_name = 'baidu_record'");
    if(empty($results1)){
       if(checkBaidu($surl)==1 ){
	   $data = array('post_id'=> $post_id,'record_time'=> $today,'record_name'=> 'baidu_record','value'=> '1',);
           $wpdb->insert($wpdb->prefix ."record",$data);
	   return 1;
       }
	else {
	   $data = array('post_id'=> $post_id,'record_time'=> $today, 'record_name'=> 'baidu_record','value'=> '0',);
           $wpdb->insert($wpdb->prefix ."record",$data);
	   return 0;
       }
     }
     else {
        $results2 = $wpdb->get_results("SELECT value FROM wp_record WHERE record_time > '$daysago' and post_id = '$post_id' and record_name = 'baidu_record'");
           if(empty($results2)){
	     if(checkBaidu($surl)==1 ){
		$data1 = array('record_time'=> $today,'value'=> '1');
                $data2 = array('post_id'=> $post_id,'record_name' => 'baidu_record' );
             	$wpdb->update($wpdb->prefix ."record",$data1,$data2);
		return 1;
	     }else{
		$data1 = array('record_time'=> $today,'value'=> '0' );
             	$data2 = array('post_id'=> $post_id,'record_name' => 'baidu_record');
             	$wpdb->update($wpdb->prefix ."record",$data1,$data2);
		return 0;
	     }
	}
	else{			
	  if($results2[0]->value == 1){return 1;}
	  else{return 0;}
	}
    }
}

function sslrecord($slurl){
    global $wpdb;
    $post_id =get_the_ID();
    $days = 7;
    $today = current_time('mysql'); //获取今天日期时间
    $daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) );  //Today - $days
    $results1 = $wpdb->get_results("SELECT * FROM wp_record where post_id = '$post_id' and record_name = '360_record'");
    if(empty($results1)){
	if(checkssl($slurl)==1 ){
	   $data = array('post_id'=> $post_id,'record_time'=> $today, 'record_name'=> '360_record','value'=> '1',);
           $wpdb->insert($wpdb->prefix ."record",$data);
	   return 1;
	}
	else {
           $data = array( 'post_id'=> $post_id,'record_time'=> $today, 'record_name'=> '360_record','value'=> '0', );
           $wpdb->insert($wpdb->prefix ."record",$data);
	   return 0;
	}
    }
    else{	
        $results2 = $wpdb->get_results("SELECT * FROM wp_record WHERE record_time > '$daysago' and post_id = '$post_id' and record_name = '360_record'");
        if(empty($results2)){
	   if(checkssl($slurl)==1 ){
		$data1 = array('record_time'=> $today,'value'=> '1');
                $data2 = array('post_id'=> $post_id,'record_name' => '360_record' );
             	$wpdb->update($wpdb->prefix ."record",$data1,$data2);
		return 1;
	   }else
		{
		$data1 = array('record_time'=> $today,'value'=> '0' );
             	$data2 = array('post_id'=> $post_id,'record_name' => '360_record');
             	$wpdb->update($wpdb->prefix ."record",$data1,$data2);
		return 0;
	   }
	}
	else{
	    if($results2[0]->value == 1){return 1;}
	    else{return 0;}
	}
    }
}

function baidu_record() {
    if(baidurecord(get_permalink()) == 1) {
        echo '<a>百度已收录</a>';
   } else {
        echo '<a style="color:red;" rel="external nofollow noopener noreferrer" title="点击提交,谢谢您!" target="_blank" href="http://zhanzhang.baidu.com/sitesubmit/index?sitename='.get_permalink().'">百度未收录</a>';
   }
}
function ssl_record() {
    if(sslrecord(get_permalink()) == 1) {
        echo '<a>360已收录</a>';
   } else {
        echo '<a style="color:red;" rel="external nofollow noopener noreferrer" title="点击提交,谢谢您!" target="_blank" href="http://info.so.com/site_submit.html">360未收录</a>';
   }
}

数据库效果图

2、编辑当前主题下的文章模板(一般是single.php),在想要显示收录结果的位置添加如下代码并保存:
 <?php echo baidu_record(); ?>

如果不想给其他人看到这个收录情况,可以加上一个判断语句,具体代码如下:

<?php if ( is_user_logged_in()){baidu_record();ssl_record();}?>
3、如果想在后台文章列表显示百度收录情况的话,将下来代码放到主题functions文件最后一行的?>之前。
//1~ 在后台文章列表增加1列数据,展示百度收录情况
add_filter( 'manage_posts_columns', 'yy_customer_posts_columns' );
function yy_customer_posts_columns( $columns ) {
  $columns['baidurecord'] = '百度收录';
  $columns['baidurecord'] = '360收录';
  return $columns;
}
 
//2~ 输出查询结果
add_action('manage_posts_custom_column', 'yy_customer_columns_value', 10, 2);
function yy_customer_columns_value($column, $post_id){
    if($column=='baidurecord'){
	$baidurecord = $wpdb->get_var("SELECT value FROM wp_record WHERE post_id = '$post_id' and record_name = 'baidu_record'");
	if($baidurecord == 1) {
            echo Yes;
        }else{echo No;}
	}
    if($column=='sslrecord'){
	$sslrecord = $wpdb->get_var("SELECT value FROM wp_record WHERE post_id = '$post_id' and record_name = '360_record'");
	if($sslrecord == 1) {
            echo Yes;
        }else{echo No;}
	}
    return;
}

后台文章列表效果图

好了,方法大致就是上面这些,代码可能存在bug,后续有时间再进行优化,写的不好敬请见谅~~

ErphpDown插件优化(三)

伊阳阅读(1751)

本文最后更新于2021年3月31日,已超过 3 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

既上次优化了erphpdown前端文章页显示下载次数后,本次优化主要是针对后台文章列表栏,添加自定了列-下载次数,并进行显示。下面介绍一下方法。

一、在erphpdown插件目录的includes\show.php下,大概第23行之后加入下列代码。
$postdowns=get_post_meta($postsid, 'post_downs', true);
global $wpdb, $wppay_table_name;
$down_total  = $wpdb->get_var("SELECT COUNT(id) FROM $wppay_table_name WHERE order_status=1 And post_id = $postsid");
if(!$postdowns && $down_total > 0){ 
   update_post_meta($postsid,'post_downs',$down_total);
}else if($down_total > $postdowns){
   update_post_meta($postsid,'post_downs',$down_total);
}
二、在主题目录的functions.php的?>之前加入如下代码。
//1~ 在后台文章列表增加1列数据,展示下载数
add_filter( 'manage_posts_columns', 'customer_posts_columns' );
function customer_posts_columns( $columns ) 下载次数
  $columns['postdowns'] = '下载次数';
  return $columns;
}
 
//2~ 输出下载次数
add_action('manage_posts_custom_column', 'customer_columns_value', 10, 2);
function customer_columns_value($column, $post_id){
     if($column=='postdowns'){
        $down_count = get_post_meta($post_id,'post_downs',true); 
	if(!$down_count) {
            $down_count = 0;
	  }
	  echo $down_count;
    }
    return;
}

效果图

此方法之适合免登陆下载,其它不适用

赫斯曼交换机开启 IGMP 功能

伊阳阅读(1655)

本文最后更新于2022年8月22日,已超过 2 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
一、在浏览器输入交换机管理 IP 地址,进入交换机登录界面


在 Login 输入用户名 admin,在 Passward 输入密码 private 回车进入交换机配置界面

二、进入 Switch->Multicasts->IGMP 界面,如下图所示:

在Operationt 选项下勾选On

三、进入Basic Settings->Load/Save 界面

选择Save->to Device,点击Save 按钮保存。

赫斯曼交换机交叉Vlan配置

伊阳阅读(3361)

本文最后更新于2022年8月22日,已超过 2 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

例如:Port1.1、Port1.2 属于VLAN2;Port1.4、Port1.5 属于VLAN3;Port1.3 属于VLAN4;VLAN4可以与VLAN2 和VLAN3 通讯

VLAN 出口表(Egress table)

Web,Switching->VLAN->Static

VLAN 入口表(Ingress table)

Web,Switching->VLAN->Port
QQ20191216192413.jpg

WordPress主题纯代码添加下载功能

伊阳阅读(2356)

本文最后更新于2022年8月5日,已超过 2 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

上周考完二级造价师后,这周闲来无事,想着好久没有折腾博客了,思来想去就把下载功能给折腾了下。之前我用的是仿知更鸟的下载功能,虽然在功能上完善了一些,但还是存在一些不合理的地方。最近也在用erphpdown的插件,看到其中的一个功能比较好,就想着把它移植过来,经过两天的修改、测试,终于完美适配博主的主题。

本下载功能主要包括4个文件,分别是down.css、download.php、down.php、down-setting.php。

down.css  //下载页面的样式;
download.php  //下载页面文件;
down.php  //文章页下载信息显示文件;
down-setting.php  //后台下载信息设置文件;

由于代码较多,在这里我就不贴了,这4个文件下载地址,我放在文章末尾,下载后按照里面的说明步骤部署即可。

后端效果

文章页显示效果

下载页面效果

说明:本下载功能原则上适合所有WordPress主题,唯一的缺点是下载页位置导航因为每个人所用主题不一样,可能存在显示不完整的问题,请用爱去忽视它,或自行修改以适配自己的主题。

锐捷交换机基本命令

伊阳阅读(3003)

本文最后更新于2021年4月1日,已超过 3 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

最近项目上用到了锐捷系列的交换机,所以整理了一些基本命令,以供后续使用。

console配置信息

交换机查看信息命令
#show running-config       //查看当前生效的配置信息
#show interface fastethernet 0/3   //查看F0/3端口信息
#show interface serial 1/2       //查看S1/2端口信息
#show interface                //查看所有端口信息
#show ip interface brief          //以简洁方式汇总查看所有端口信息
#show ip interface         //查看所有端口信息
#show version              //查看版本信息
#show mac-address-table       //查看交换机当前MAC地址表信息
#show running-config       //查看当前生效的配置信息
#show vlan                 //查看所有VLAN信息
#show vlan id 10          //查看某一VLAN (如VLAN10)的信息
#show interface fastethernet 0/1 //查看某一端口模式(如F 0/1)
#show aggregateport 1 summary    //查看聚合端口AG1的信息
#show spanning-tree        //查看生成树配置信息
#show spanning-tree interface fastethernet 0/1 //查看该端口的生成树状态
#show port-security         //查看交换机的端口安全配置信息
#show port-security address   //查看地址安全绑定配置信息
#show ip access-lists listname //查看名为listname的列表的配置信息
一、交换机配置模式介绍

交换机配置模式主要有:

用户模式:此模式只可以简单的查看一些交换机的配置和一些简单的修改。

Switch>
//特权模式:此模式可以查看一些交换机的配置,后面讲述的很多show命令便是在此模式下进行的,还可以对一些简单的设置配置,例如时间。
Switch>enable 
//在用户模式下输入enable将进入配置模式
Switch#
//全局配置模式:此模式下可以进行对交换机的配置,例如:命名、配置密码、设路由等
Switch#configure erminal 
//特权模式下可以通过config terminal 命令进入配置模式
Switch(config)#
//端口配置模式:此模式下对端口进行配置,如配置端口ip等
Switch(config)#interface gigabitEthernet 1/1  
//配置模式下输入interface gigabitEthernet 1/1进入到端口g 1/1接口模式
二、交换机基本配置

交换机命名:在项目实施的时候,建议为处于不同位置的交换机命名,便于记忆,可提高后期管理效率。

switch(config)#hostname ruijie 
//ruijie为该交换机的名字
交换机配置管理密码:配置密码可以提高交换机的安全性,另外,telnet登录交换机的时候,必须要求有telnet管理密码。
switch (config)#enable secret level 1 0 ruijie 
//配置telnet管理密码为ruijie,其中1表示为telnet密码,0表示密码不加密
switch (config)#enable secret level 15 0 ruijie 
//配置特权模式下的管理密码ruijie,其中15表示为特权密码,0表示密码不加密
//Level 1为普通用户级别,可选为1~15,15为最高权限级别;0表示密码不加密

交换机配置管理IP

switch (config)#interface vlan 1 
//假设管理VLAN为VLAN1
switch (config-if)#ip address 192.168.1.1 255.255.255.0 
//给管理VLAN配置管理IP地址, 二层交换机只能配置一个IP,此IP是作为管理IP使用,例如,使用Telnet的方式登录的IP地址 
switch (config-if)#no shutdown 
//激活管理IP,养成习惯,无论配置什么设备,都使用一下这个命令

交换机配置网关:

switch(config)#ip default-gateway 192.168.1.254 
//假设网关地址为192.168.1.254,此命令用于二层设备

交换机telnet管理功能:

switch(config)#enable services telnet-server 
//开启交换机telnet管理功能
switch(config)#line vty 0 4
switch(config-line)#password ruijie  
//密码为ruijie
switch(config-line)#end

Services 可选以下:web-server(WEB管理)、telnet-server(远程登陆)等

通过以上几个命令的配置,设备便可以实现远程管理,在项目实施时(尤其是设备位置比较分散)特别能提高效率。

接口介质类型配置

锐捷为了降低SME客户的总体拥有成本,推出灵活选择的端口形式:电口和光口复用接口,方便用户根据网络环境选择对应的介质类型。但光口和电口同时只能用其一,如使用了光口1F,则电口1不能使用。

接口介质类型的转换:

Switch(config)#interface gigabitethernet 0/1
Switch(config-if)#medium-type fiber 
//把接口工作模式改为光口
Switch(config-if)#medium-type copper 
//把接口工作模式改为电口

默认情况下,接口是工作在电口模式。在项目实施中,如果光纤模块指示灯不亮,工作模式是否正确也是故障原因之一。

接口速度/双工配置

命令格式:

Switch(config)#interface interface-id 
//进入接口配置模式
Switch(config-if)#speed {10 | 100 | 1000 | auto } 
//设置接口的速率参数,或者设置为auto
Switch(config-if)#duplex {auto | full | half} 
//设置接口的双工模式,1000只对千兆口有效;默认情况下,接口的速率为auto,双工模式为auto

配置实例:

实例将gigabitethernet 0/1的速率设为1000M,双工模式设为全双工:

Switch(config)#interface gigabitethernet 0/1
Switch(config-if)#speed 1000
Switch(config-if)#duplex full
 

光口不能修改速度和双工配置,只能auto。

VLAN配置

添加VLAN到端口:

在交换机上建立VLAN:

Switch (config)#vlan 100 
//建立VLAN100
Switch (config)#name ruijie 
//该VLAN名称为ruijie
 

将交换机接口划入VLAN 100中:

Switch (config)#interface range f 0/1-48 
//range表示选取了系列端口1-48,这个对多个端口进行相同配置时非常有用
Switch (config-if-range)#switchport access vlan 100 
//将接口划到VLAN100中
Switch (config-if-range)#no switchport access vlan 
//将接口划回到默认VLAN 1中,即端口初始配置

交换机端口的工作模式:

Switch(config)#interface fastEthernet 0/1
Switch(config-if)#switchport mode access 
//该端口工作在access模式下
Switch(config-if)#switchport mode trunk 
//该端口工作在trunk模式下

如果端口下连接的是PC,则该端口一般工作在access模式下,默认配置为access模式。

如果端口是上联口,且交换机有划分多个VLAN,则该端口工作在TRUNK模式下。

NATIVE VLAN配置:

Switch(config)#interface fastEthernet 0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk native vlan 100 
//设置该端口NATIVEVLAN为100
 

端口只有工作在TRUNK模式下,才可以配置NATIVE VLAN;

在TRUNK上Native VLAN的数据是无标记的(Untagged),所以即使没有在端口即使没有工作在TRUNK模式下,Native Vlan仍能正常通讯;

默认情况下,锐捷交换机的NATIVE VLAN为1。建议不要更改。

VLAN修剪配置:

Switch(config)#interface fastEthernet 0/2
Switch(config-if)#switchport trunk allowed vlan remove2-9,11-19,21-4094 
//设定VLAN要修剪的VLAN
Switch(config-if)#no switchport trunk allowed vlan 
//取消端口下的VLAN修剪

VLAN信息查看:

Switch#show vlan
VLAN Name Status Ports
---- -------------------------------- ----------------------------------------
1 default active Fa0/1 ,Fa0/11,Fa0/12
                 Fa0/13,Fa0/14,Fa0/15
                 Fa0/16,Fa0/17,Fa0/18
                 Fa0/19,Fa0/20,Fa0/21
                 Fa0/22,Fa0/23,Fa0/24
100 VLAN0100 active Fa0/1 ,Fa0/2 ,Fa0/3
                    Fa0/4 ,Fa0/5 ,Fa0/6
                    Fa0/7 ,Fa0/8 ,Fa0/9
                    Fa0/10
Switch#
三层路由功能( 针对三层交换机)配置
Switch(config)#ip routing 
//开启三层交换机的路由功能
Switch(config)#interface fastethernet 0/1
Switch(config-if)#no switchport 
//开启端口的三层路由功能(这样就可以为某一端口配置IP)
Switch(config-if)#ip address 192.168.1.1 255.255.255.0
Switch(config-if)#no shutdown
 

三层交换机路由协议

Switch(config)#ip route 172.16.1.0 255.255.255.0 172.16.2.1 
//配置静态路由
注:172.16.1.0 255.255.255.0 为目标网络的网络号及子网掩码,172.16.2.1 为下一跳的地址,也可用接口表示, 如ip route 172.16.1.0 255.255.255.0 serial 1/2(172.16.2.0 所接的端口)
Switch(config)#router rip 
//开启RIP 协议进程
Switch(config-router)#network 172.16.1.0 
//申明本设备的直连网段信息
Switch(config-router)#version 2 
//开启RIP V2,可选为version 1(RIPV1) 、version 2(RIPV2)
Switch(config-router)#no auto-summary 
//关闭路由信息的自动汇总功能( 只有在RIPV2支持)
Switch(config)#router ospf 
//开启OSPF路由协议进程(针对1762,无需使用进程ID)
Switch(config)#router ospf 1 
//开启OSPF路由协议进程(针对2501,需要加OSPF进程ID)
Switch(config-router)#network 192.168.1.0 0.0.0.255 area 0  
//申明直连网段信息,并分配区域号(area0 为骨干区域)
端口镜像配置
Switch (config)#monitor session 1 destination interface GigabitEthernet 0/2 
//配置G0/2为镜像端口
Switch (config)#monitor session 1 source interface GigabitEthernet 0/1 both  
//配置G0/1为被镜像端口,且出入双向数据均被镜像
Switch (config)#no monitor session 1 
//去掉镜像1
 
S21、S35等系列交换机不支持镜像目的端口当作普通用户口使用,如果需要做用户口,请将用户MAC与端口绑定。

锐捷SME交换机镜像支持一对多镜像,不支持多对多镜像。

去除TAG标记:

Switch (config)#monitor session 1 destination interface GigabitEthernet 0/2 encapsulation replicate  
// encapsulation replicate表述镜像数据不带TAG标记
 

目前该功能只有S37、S57、S86、S96交换机支持,其他型号交换机不支持。

锐捷交换机支持两种模式:

镜像目的口输出报文是否带TAG根据源数据流输入的时候是否带TAG来决定。

强制所有的镜像输出报文都不带TAG ,受限于目前芯片的限制,只支持二层转发报文不带Tag,经过三层路由的报文,镜像目的端口输出的报文会带Tag。

端口镜像信息查看:

S3750#sh monitor session 1
Session: 1
Source Ports:
Rx Only : None
Tx Only : None
Both : Fa0/1
Destination Ports: Fa0/2
encapsulation replicate: true
端口聚合配置
Switch(config)#interface fastEthernet 0/1
Switch (config-if)#port-group 1 
//把端口f0/1加入到聚合组1中
Switch (config-if)#no port-group 1 
//把端口f0/1从聚合组1中去掉
 

S2126G/50G交换机最大支持的6个AP,每个AP最多能包含8个端口。6号AP只为模块1和模块2保留,其它端口不能成为该AP的成员,模块1和模块2也只能成为6号AP的成员。

聚合端口需是连续的端口,例如避免把端口1和端口24做聚合。

端口聚合信息查看:

S3750#show aggregatePort 1 summary 
//查看聚合端口1的信息
AggregatePort MaxPorts SwitchPort Mode Ports
------------- -------- ---------- --------------------------------------------
Ag1 8 Enabled Access Fa0/1 , Fa0/2
S3750#
 

信息显示AP1的成员端口为0/1和0/2。

交换机堆叠配置

设置交换机优先级:

S3750(config)#device-priorit 5
 

锐捷交换机的堆叠采用的是菊花链式堆叠,注意堆叠线的连接方法

也可以不设置交换机优先级,设备会自动堆叠成功。堆叠后,只有通过主交换机CONSOLE口对堆叠组进行管理。

查看堆叠信息:

Student_dormitory_B#show member
member MAC address priority alias SWVer HWVer
------ ---------------- ---------------------------------------- ----- -----
1 00d0.f8d9.f0ba 10 1.61 3.2
2 00d0.f8d9.f2ef 1 1.61 3.2
3 00d0.f8ff.d38e 1 1.61 3.3
 
ACL配置

配置ACL步骤:

建立ACL:

Switch(config)#Ip access-list exten ruijie 
//建立ACL访问控制列表名为ruijie,extend表示建立的是扩展访问控制列表
Switch(config)#no Ip access-list exten ruijie //删除名为ruijie的ACL
 

增加一条ACE项后,该ACE是添加到ACL的最后,不支持中间插入,所以需要调整ACE顺序时,必须整个删除ACL后再重新配置。

添加ACL的规则:

Switch (config-ext-nacl)#deny icmp any 192.168.1.1 255.255.255.0 
//禁止PING IP地址为192.168.1.1的设备
Switch (config-ext-nacl)#deny tcp any any eq 135 
//禁止端口号为135的应用
Switch (config-ext-nacl)#deny udp any any eq www 
//禁止协议为www的应用
Switch(config-ext-nacl)#permit ip any any 
//允许所有行为

将ACL应用到具体的接口上:

Switch (config)#interface range f 0/1
Switch (config-if)#ip access-group ruijie in 
//把名为ruijie的ACL应用到端口f 0/1上
Switch (config-if)#no ip access-group ruijie in 
//从接口去除ACL
 

赫斯曼常用 VLAN 配置及路由配置

伊阳阅读(4699)

本文最后更新于2022年8月22日,已超过 2 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
一、跨交换机划分 Vlan

左侧交换机(S1)与右侧交换机(S2)互联,级联端口如图所示:
1、S1 配置如下:
1.1流出配置
1.2 流入配置
1.3 保存
2、S2 配置如下:
2.1 流出配置
2.2 流入配置
2.3 保存

二、赫思曼三层交换机基于Vlan 划分路由

配置基于Vlan2 路由