
route add命令
举例 route add 19216800 mask 2552552550 19216801
就是把0网段指向1,重启就失效,想长期有效就加个-p
删除就是 route delete
如果我们把三层交换机配置成路由使用之后;那么就需要在交换机上配置静态路由表,这样当你的电脑通过你的交换机的时候它就知道下一跳地址应该怎么走了,下面是学识网小编给大家整理的一些有关华为交换机配置静态路由的方法,希望对大家有帮助!
1进入管理视图<Quidway> system-view,只有进入view模式下才可以进行编辑,输入指令才有效
2先确认当前配置里面是否有静态路由
3然后我们就可以配置静态路由了ip route-static 0000 0000 192168881这个路由是所有的访问小一跳都是192168881
4接着我们在配置一条指定静态路由ip route-static 10101000 2552552550 10101011这条的意思就是到10101000/24这个段的访问吓一跳地址是10101
在SW1上0接口配IP1921681254;在1接口配置IP地址19216821;
在SW2上0接口配IP1921683254;在1接口配置IP地址19216822;
PC1;PC2配置IP地址,子网掩码,网关。
SW1上配置静态路由去往19216830网段,下一跳19216822
SW2上也做相同 *** 作
静态路由是适用于小规模稳定网络的一种能选择路径控制某些目的网络的路由协议,配置简单
工具/原料
模拟路由器4台,交换机一个,pc3个
方法/步骤
1/5 分步阅读
1、如图搭建网络拓扑,做到PC1,PC2,PC3之间互访,2、PC1为:19216823100;PC2地址为:1921681100;PC3位1921684100(PC1的网关指向R2)
2/5
如图,分别配置R1,R2,R3,R4的网络地址
查看剩余3张图
3/5
首先配置PC1与PC2互通:1、在R1上添加23网段的路由信息:ip route-static 192168230 24 192168122;在R2上添加1网段信息:ip route-static 19216810 24 192168121(ping包是有来有回的)
查看剩余2张图
4/5
配置PC2与PC3通信:由于ping包都是有来有回的,所以需要双向添加
PS:由于R2中在PC1与PC2通信时已配置过到10 网络的路由了,所以再添加,会提示错误,
查看剩余4张图
5/5
配置PC1与PC3通信:由于在之前配置中,在PC1到PC3的各路由器中已有到40网段的路由信息了,所以只需要在R4 中配置到230网段的信息
查看剩余1张图
注意事项
通信的过程一般都是有来有回,所以,不但要配置去方向的路由信息,还需要配置回来的路由信息
给出一个windows下dll的实例。linux下a的静态库只是头文件和编译有所不同,另外需要将编译后的动态库文件放入/usr/lib下,使用ldconfig载入。
一 先制作一个系统中有的DLL文件(cpp给出的sdk接口)
既然是测试我们就把我们这个dll叫做testDll吧,为了简单其间,我只写一个add方法,就是简单的2个数字相加,对于真正的开发中我们肯定会遇到其他类型,java到c/cpp中类型需要转换,具体类型转换对应关系g一下就能得到,我也不在列举。c/cpp中一个class一般包含2个文件,一个头文件定义(h),一个文件主体(c/cpp)。啰嗦了这么多还是直接动手吧,先在vs2008中建立一个工程(当然你也可以直接编写不用这些IDE工具,gcc g++的命令自己g。下同,不在注释不在废话),选取win32工程
键入工程名字testDll,点击next选取DLL,然后点击完成
打开我们的testdllcpp,添加进我们的add方法
C++代码
1int add(int a,int b){
2 return a+b;
3}
int add(int a,int b){
return a+b;
}
注意到文件列表里并没有testDllh,因为我们要给出调用者一个接口,如果不给头文件,人家就没办法调用,所以我们就必须添加一个头文件testDllh。
C++代码
1#ifdef TEST_DLL
2#define TEST_API __declspec(dllexport)
3#else
4#define TEST_API __declspec(dllimport)
5#endif
6
7/ Set up for C function definitions, even when using C++ /
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12TEST_API int add(int,int);
13
14/ Ends C function definitions when using C++ /
15#ifdef __cplusplus
16}
17#endif
#ifdef TEST_DLL
#define TEST_API __declspec(dllexport)
#else
#define TEST_API __declspec(dllimport)
#endif
/ Set up for C function definitions, even when using C++ /
#ifdef __cplusplus
extern "C" {
#endif
TEST_API int add(int,int);
/ Ends C function definitions when using C++ /
#ifdef __cplusplus
}
#endif
在这个头文件中我们把我们的add方法给定义了进去。注意到testdllcpp中#include "stdafxh",所以我们就把这个testDllh include进stdafxh里面。
按道理说我们的这个dll已经完成了,但是一般c/cpp给接口SDK的时候大都给h和lib,为了一步生成dll和lib,我们添加进一个testDlldef,有了这个文件就可以一步生成dll和lib。在source file里右键add new item ,选择Module-Definition File
键入testDll,OK了,我们可以直接build了。生成testDlldll和testDlllib。
把testDlldll扔到system32目录里等待我们高大威猛的java jni调用。
二 JNI
21 编写java文件
为了显示我们的与众相同,我们就把我们的这个java文件命名为Demojava顺便直接带上包名
,因为我们知道人家给我们的接口里有个add方法,所以我们就直接来个调用吧。
Java代码
1package comtestJnitestDemo;
2
3public class Demo {
4 static
5 {
6 //Systemoutprintln(SystemgetProperty("javalibrarypath"));
7 SystemloadLibrary("testDll");
8 SystemloadLibrary("jniDll");
9 }
10 public native static int add(int a,int b);
11
12}
package comtestJnitestDemo;
public class Demo {
static
{
//Systemoutprintln(SystemgetProperty("javalibrarypath"));
SystemloadLibrary("testDll");
SystemloadLibrary("jniDll");
}
public native static int add(int a,int b);
}
demojava代码暂时如此,我们把将要生成的jni的dll叫做jniDll,有童鞋讲,我不想用你这个烂名字jniDll多俗啊,没关系,你可以换,随你换,生成文件后你再换也可以,现在换也可以。
22 生成h头文件
javah命令,不多讲。生成的文件com_testJni_testDemo_Demoh这个文件的命名规则我就不多讲了,一目了然。
C++代码
1/ DO NOT EDIT THIS FILE - it is machine generated /
2#include <jnih>
3/ Header for class com_testJni_testDemo_Demo /
4
5#ifndef _Included_com_testJni_testDemo_Demo
6#define _Included_com_testJni_testDemo_Demo
7#ifdef __cplusplus
8extern "C" {
9#endif
10/
11 Class: com_testJni_testDemo_Demo
12 Method: add
13 Signature: (II)I
14 /
15JNIEXPORT jint JNICALL Java_com_testJni_testDemo_Demo_add
16 (JNIEnv , jclass, jint, jint);
17
18#ifdef __cplusplus
19}
20#endif
21#endif
/ DO NOT EDIT THIS FILE - it is machine generated /
#include <jnih>
/ Header for class com_testJni_testDemo_Demo /
#ifndef _Included_com_testJni_testDemo_Demo
#define _Included_com_testJni_testDemo_Demo
#ifdef __cplusplus
extern "C" {
#endif
/
Class: com_testJni_testDemo_Demo
Method: add
Signature: (II)I
/
JNIEXPORT jint JNICALL Java_com_testJni_testDemo_Demo_add
(JNIEnv , jclass, jint, jint);
#ifdef __cplusplus
}
#endif
#endif
23 用c/cpp实现这个头文件
c/cpp中已经实现了这个add方法,我们只需要调用就可以啦。所以直接vs2008中建立一个dll工程,工程名我们就叫jniDll,具体过程不再多讲,方法同上面testDll的建立一样。在这个工程里kimmking把需要引用的包、文件等已经讲的很清楚了。打开jniDllcpp,添加下面代码
C++代码
1JNIEXPORT jint JNICALL Java_com_testJni_testDemo_Demo_add
2(JNIEnv env,jclass jobject,jint a,jint b){
3
4 return add(a,b);
5}
JNIEXPORT jint JNICALL Java_com_testJni_testDemo_Demo_add
(JNIEnv env,jclass jobject,jint a,jint b){
return add(a,b);
}因为int对应的类型就刚好是jint,所以就不需要转换,其他需要转换的类型自己g对应关系转换,注意释放。
这个工程里我们还需要打开 stdafxh添加
C++代码
1#include <jnih>
2
3#include "testDllh"
4#include "com_testJni_testDemo_Demoh"
#include <jnih>
#include "testDllh"
#include "com_testJni_testDemo_Demoh"
在编译这个jniDll工程的时候需要引入testDllh,com_testJni_testDemo_Demoh,另外添加testDlllib这个依赖。
好了做好这些后,build下,生成了我们期待已久的jniDlldll,把这个dll同样扔到system32下。
三 测试
本人特懒,不想写多余的class,所以直接修改Demojava 这也是刚才为什么讲暂时如此的原因
Java代码
1package comtestJnitestDemo;
2
3public class Demo {
4 static
5 {
6 //Systemoutprintln(SystemgetProperty("javalibrarypath"));
7 SystemloadLibrary("testDll");
8 SystemloadLibrary("jniDll");
9 }
10 public native static int add(int a,int b);
11 public static void main(String[] args) {
12 Systemoutprintln(add(7,2));
13 }
14}
package comtestJnitestDemo;
public class Demo {
static
{
//Systemoutprintln(SystemgetProperty("javalibrarypath"));
SystemloadLibrary("testDll");
SystemloadLibrary("jniDll");
}
public native static int add(int a,int b);
public static void main(String[] args) {
Systemoutprintln(add(7,2));
}
}
四 最后补充
如果系统已经加载过c/cpp的dll,我们就不用再SystemloadLibrary("testDll")了,加载一遍就可以了,因为我们刚才写的testDll系统没有加载,所以我就加载了一下。对于多个dll可以写多个SystemloadLibrary去加载,修改static{}里面的内容不需要重新生成dll,除非你多加了一个调用方法,如果你看清楚规则,就不用javah命令就可以直接编写头文件,用javah太麻烦了。
静态路由是指由用户或网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。静态路由信息在缺省情况下是私有的,不会传递给其他的路由器。网管员也可以通过对路由器进行设置使之成为共享的。静态路由一般适用于比较简单的网络环境,在这样的环境中,网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息。在一个支持DDR的网络中,拨号链路只在需要时才拨通,因此不能为动态路由信息表提供路由信息的变更情况。在这种情况下,网络也适合使用静态路由。
42基础配置
路由器的基础配置
interface GigabitEthernet0/0/0
ipaddress 1921681001 2552552550
interface LoopBack100
ip address 100100100100 2552552550
interface LoopBack200
ip address 200200200200 2552552550
交换机基础配置
#sysname SW1
vlan batch 2 to 3100
dhcp enable
interface Vlanif1
ip address 1721611 2552552550
dhcp select interface
interface Vlanif2
ip address 1721621 2552552550
dhcp select interface
interface Vlanif3
ip address 1721631 2552552550
dhcp select interface
interface Vlanif100
ip address 1921681002 2552552550
interface GigabitEthernet 0/0/1
port link-type access
interface GigabitEthernet 0/0/2
port link-type access
port default vlan 2
interface GigabitEthernet 0/0/3
port link-type access
port default vlan 3
Interface GigabitEthernet 0/0/4
port link-type access
port default vlan 100
电脑采用DHCP方式得到地址
可以用ipconfig验证是否三个电脑都得到地址。
•探讨静态路由汇总环路
在交换机上配置默认路由去互联网
[SW1]ip route-static 0000 0000 1921681001
在路由器上配置去模拟公网的默认路由
[R1]ip route-static 0000 0000 LoopBack 100
在路由器上配置反回VLAN的路由(这里为了减少路由表大小,采用汇总方式)
[R1]ip route-static 1721600 22 1921681002
或者配置
[R1]ip route-static 1721600 16 1921681002
此时在PC上测试公网互通发现一切正常
PC>ping 100100100100
PC>tracert 200200200200
PC>tracert 17216010
三层交换机路由表
[SW1]dis ip routing-table
路由器路由表
[R1]dis ip routing-table
电脑发包到17216010的时候,以路由最长匹配原则,在三层交换机和路由器上分别命中红线标注的路由,下一跳互为对方,故产生环路
路由设备添加命令:
#ip route 192168x0 2552552550 1721611
#ip rotue 10196x0 2552552550 1721612
pc上设置默认网关:
你配置网关是对的
以上就是关于电脑配置静态路由命令全部的内容,包括:电脑配置静态路由命令、华为交换机静态路由配置命令、华为静态路由配置命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)