GCC -l选项:手动添加链接库

最近研究C语言CRC循环冗余校验,找到一个开源的库:

lammertb/libcrc

其中有实例代码,但是无论如何运行不起来,报错如下:

[root@frytea-dev-test examples]# gcc tstcrc.c -o tstcrc -L ~/libcrc/include
/tmp/ccEcajcY.o: In function `main':
tstcrc.c:(.text+0x2db): undefined reference to `update_crc_16'
tstcrc.c:(.text+0x2f6): undefined reference to `update_crc_16'
tstcrc.c:(.text+0x311): undefined reference to `update_crc_dnp'
tstcrc.c:(.text+0x330): undefined reference to `update_crc_sick'
tstcrc.c:(.text+0x34b): undefined reference to `update_crc_ccitt'
tstcrc.c:(.text+0x366): undefined reference to `update_crc_ccitt'
tstcrc.c:(.text+0x381): undefined reference to `update_crc_ccitt'
tstcrc.c:(.text+0x39c): undefined reference to `update_crc_kermit'
tstcrc.c:(.text+0x3b6): undefined reference to `update_crc_32'
tstcrc.c:(.text+0x42c): undefined reference to `update_crc_16'
tstcrc.c:(.text+0x441): undefined reference to `update_crc_16'
tstcrc.c:(.text+0x456): undefined reference to `update_crc_dnp'
tstcrc.c:(.text+0x46f): undefined reference to `update_crc_sick'
tstcrc.c:(.text+0x484): undefined reference to `update_crc_ccitt'
tstcrc.c:(.text+0x499): undefined reference to `update_crc_ccitt'
tstcrc.c:(.text+0x4ae): undefined reference to `update_crc_ccitt'
tstcrc.c:(.text+0x4c3): undefined reference to `update_crc_kermit'
tstcrc.c:(.text+0x4d7): undefined reference to `update_crc_32'
tstcrc.c:(.text+0x53d): undefined reference to `update_crc_16'
tstcrc.c:(.text+0x554): undefined reference to `update_crc_16'
tstcrc.c:(.text+0x56b): undefined reference to `update_crc_dnp'
tstcrc.c:(.text+0x586): undefined reference to `update_crc_sick'
tstcrc.c:(.text+0x59d): undefined reference to `update_crc_ccitt'
tstcrc.c:(.text+0x5b4): undefined reference to `update_crc_ccitt'
tstcrc.c:(.text+0x5cb): undefined reference to `update_crc_ccitt'
tstcrc.c:(.text+0x5e2): undefined reference to `update_crc_kermit'
tstcrc.c:(.text+0x5f8): undefined reference to `update_crc_32'
collect2: error: ld returned 1 exit status

排查原因后发现是库没有连接,需要手动连接仓库下 lib 文件夹中的 libcrc.a 文件,运行如下编印命令成功编译:

gcc tstcrc.c -o tstcrc /root/libcrc/lib/libcrc.a

使用 gcc 究竟如何手动连接库呢,找到了一篇文章:

GCC -l选项:手动添加链接库

下面简单记录:

标准库的大部分函数通常放在文件 libc.a 中(文件名后缀 .a 代表“achieve”,译为“获取”),或者放在用于共享的动态链接文件 libc.so 中(文件名后缀 .so 代表“share object”,译为“共享对象”)。这些链接库一般位于 /lib/ 或 /usr/lib/,或者位于 GCC 默认搜索的其他目录。

当使用 GCC 编译和链接程序时, GCC 默认会链接 libc.a 或者 libc.so,但是对于其他的库(例如非标准库、第三方库等),就需要手动添加。

GCC 的 -l 选项(小写的 L)可以让我们手动添加链接库。

链接库的组成是怎样呢?以数学库为例,数学库的文件名是 libm.a。前缀 lib 和后缀 .a 是标准的, m 是基本名称,GCC 会在 -l 选项后紧跟着的基本名称的基础上自动添加这些前缀、后缀,s数学库中,基本名称为 m


如多要连接其他目录中的库怎么办呢?

通常,GCC 会自动在标准库目录中搜索文件,例如 /usr/lib,如果想链接其它目录中的库,就得特别指明。有三种方式可以链接在 GCC 搜索路径以外的链接库,下面我们分别讲解。

  1. 把链接库作为一般的目标文件,为 GCC 指定该链接库的完整路径与文件名。

例如,如果链接库名为 libm.a,并且位于 /usr/lib 目录,那么下面的命令会让 GCC 编译 main.c,然后将 libm.a 链接到 main.o:

[root@bogon demo]# gcc main.c -o main.out /usr/lib/libm.a

  1. 使用 -L 选项,为 GCC 增加另一个搜索链接库的目录:
[root@bogon demo]# gcc main.c -o main.out -L/usr/lib -lm

可以使用多个 -L 选项,或者在一个 -L 选项内使用冒号分割的路径列表。

  1. 把包括所需链接库的目录加到环境变量 LIBRARYPATH 中。

参考文献

《房思琪的初恋乐园》阅读笔记

“这世界有个奇怪的现象,总是等到作者离开世界,人们才去读她的作品。这社会还有个奇怪的规律,总是等到人以命相逼,才意识到事情不小。” ——李尚龙


距离读完《房思琪的初恋乐园》已经过去两年了吧,这本书对我冲击很大。不写读书笔记是不知道怎么写,其实到现在也不知道怎么去写读书笔记。

这本书令我最无法想象的地方,大概就是她遭到那样的事情后,一系列的态度,还有家人的态度。

image76fef8c4b27e84b4.png


如果你感兴趣,跟着我看看这些段落吧。

“刘怡婷要过好几年才会理解,运用一个你其实并不懂的词,这根本是犯罪,就像一个人心中没有爱却说我爱你一样。”


刘怡婷和房思琪,就像一对连体婴儿,但究竟是因为什么,两个人的处境是那样迥乎不同。

我开始理解,为什么说男人做业务,女人做服务。女性更能察觉到对方的感受,为对方考虑的更多,男人也许可以把一个个业务做的很好,但在体验上差一点,有时候就是差之千里。

要是一个善良的女性,总是关心一个人,请珍惜。

image830616143cf6a3ad.png

怡婷看着伊纹姐姐的眼睛熄灭 了。


一个爱读书的大姐姐,在自己所看重的领域得不到认同,甚至瞧不起,每天过的有多痛苦。怡婷和思琪两个人,就是她生活里的那道光呀。

新的拳脚打在旧的伤上,色彩斑斓得像热带鱼。


大姐姐伊纹,婚后的女性将所有宠爱的寄托聚焦在一个人身上,可这就是她的婚姻吗?看着身上的伤痛,知道的是自己被家暴,不知道的是自己生活里的那道光,也正在熄灭。

image31e82d08fe6d51b7.png


如果说思琪和怡婷二者的境遇呈现鲜明的对比,那思琪和伊纹,或更加鲜明。

她后来才了解,说婚礼是一个女人一生中最美的时刻,意思不但是女人里外的美要开始下坡,而且暗示女人要主动自发地把所有的性吸引力收到潘多拉的盒子里。


不幸的婚姻,可究竟是为什么,伊纹发出最粗鲁的吼叫只是一句:

你不可以下午上我,半夜打我!


难道是因为生活所迫吗,可努力赚钱,是为了什么呢?

image270960e82818b2f0.png

李国华知道自己被判定是安全的,第一次感谢岁月。


以貌取人,有一些人面兽心的,如果发现一个,请不要客气。这个禽兽真实名字,据说叫 陈国星

如果就事论事,或许会好一些。有时候人相信别人,胜过相信自己。请不要这样子。

李国华第一次在电梯里见到思琪,金色的电梯门框一开,就像一幅新裱好框的图画。


这世上总有些美好的事物,可必须要相信自己,让自己变强大,等有一天遇到美好,有能力将她留住。这世上总有些好的东西,可以由人创造,可以由人去发现,可以由人欣赏,可任何一个人没有任何理由去毁灭。

image04901f4af6f82663.png


这么美好的事情,究竟是什么令李国华下定决心走向这一步的呢?原因令人绝望。

最终让李国华决心走这一步的是房思琪的自尊心。一个如此精致的小孩是不会说出去的,因为这太脏了。自尊心往往是一根伤人伤己的针,但是在这里,自尊心会缝住她的嘴。


拜托天下父母对子女的关心再多一些,不要毁灭孩子身上脆弱的嫩芽。一些美好的东西,强大的东西,在初期都是非常脆弱的。如果什么事情都等着孩子去认真的让父母认真的重视起来。抱歉,这么多年是白长了吗?

或许我这个年纪没有什么所谓的资格来写下这些,但我知道自己小时候,因为一件事情,差点也要毁了。如果那件事情继续,就没有现在这个我。

一方面,请善良一些;另一方面,让自己变得强大。

image85f91130686f5068.png


缺失了某方面教育,又得不到任何理解和宣泄的思琪,初次面对这样的事情,居然是这样想的。

思琪:有一种功课做不好的感觉。虽然也不是我的功课。




还未结束,这里可能只是全书摘录的不到20%,越到后面,越是揪心。

越是长大,越能理解支持的重要性。原来听到“我支持你”,感觉只是很空泛的一句话,说完这句话,如果能有一些实际上的支持是更好,但常常只要花费心思的精神支持对于一个人就足够。

特别感谢一直为我点赞、赞赏、阅读的你们。虽然我的输出天南海北,没有一个聚焦,但也许这就是个人公众号的内容吧,你永远不知道下一篇推送,会是什么内容。

但愿你的眼睛 只看得到笑容
但愿你流下每一滴泪都让人感动
但愿你以后每一个梦不会一场空


一起加油,愿明天更加美好。

对了,本书电子书资源可以来我的资源站索取,路径:https://res.frytea.com/EBook

资源分享之计算机网络虚拟实践

喜欢整理一些资源,之后放在知识库或是资源站里,等待着有缘人去发现,可等了许久发现:有的人需要它,可就是找不到;有些人不需要它,却误打误撞地看到了。反思之后以为,做了一些事情就要学会声明,比如我个人就可以直接发给我认为需要的人,或者像现在一样,发一篇文章,需要的同学可以收藏。
计算机网络是计算机核心课程之一,人们无时无刻不在享受计算机网络各种协议带来的便利,可这么庞大而又错综复杂的网络,是如何保证高校可用的呢?我的设备又是怎么在茫茫人海中找到我想要联系的那个她的呢?这些都可以在计算机网络的学习中找到答案。
学《计算机网络》这门课是在2018年年底的样子,到了2020年这门课已经成为省双一流建设学科了,虽然不知道有多厉害,但听其他老师说这门课有一个很庞大的备课团队,分工明确,水平极高。

image7d992caaef5478c2.png

教材资源

当初学习这门课时使用的教材是谢希仁所著《计算机网络(第7版)》,还是很普用的一本书,应该是在GitHub找到了它的电子版,后来又有 .azw3 、 .epub 、.mobi 、 .pdf ,已经收录到我的资源站,需要的同学欢迎自取。

除此之外,我的资源站还有一些软件、音乐资源,后期还会不断充实。建立资源站的目的,一个是方便自己在做设备迁移时不用再去用科学方法一个个下载必备软件,一个是希望我花费的时间不要需要的伙伴再重复花费,一站式搞定。

有了教材,光是理论是很空泛的,学到后来会感觉到很飘渺,这时就需要自己动手组组网了。

实践资源

实践资源分为两个部分,一个是上学时候老师提供的实验,具有很强的概括性,做完之后会感觉对于计算机网络的组网、协议以及基本网络应用搭建有一个大体的认识。

课程资源

我在博客里整理了本科期间的所有课程论文,其中包括了学习计算机网络时的四个实验:

imagec847cb60a3fd8483.png

如果感兴趣欢迎下载了解:

  • 资源链接:https://blog.frytea.com/bachelor.html

    本站整理

    除了上课时的资源,由于一些需求,我在网上整理了一些实践手册,还实践了一部分并将实验过程记录在知识库中,有需要的可以来我的资源站和知识库自取。
    首先是自己在CSDN以及某些论坛找到的实践手册,包括《Cisco Packet Tracer26个实例详解(思科模拟器).pdf》《CCNA实验手册基于PT5.3.zip》,已经放在资源站,别客气,快去下载吧:

  • 资源链接:https://res.frytea.com/EBook/计算机网络实践资源


接下来是我自己实践的部分,结合以上实践手册&网络资源&实际需求,整理了几个实践,需要的话欢迎来我技术知识库中计算机网络部分探索:

  • 知识库链接:https://www.yuque.com/songtianlun/technology

    总结

    分享是一种美德,分享出自己辛苦寻找得到的资源可以让需要的人少花费很多时间,也更有效率;当我需要资源时,也很希望能找到前人分享的资料。但这种分享的前提一定是:仅供学习研究用途,切勿商用


Cisco PT 案例九:单臂路由

单臂路由(router-on-a-stick)是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来相互隔离的不同VLAN(虚拟局域网)之间的互联互通。

环境

  • Cisco Packet Tracer 5.3
  • Windows 10

    操作

    操作:按照如图所示连接拓扑图
    image.png

    实验步骤

    (1)创建拓扑,配置设备
    添加一台路由器、一台交换机和四台主机

    PC0和PC1与交换机fa0/1、fa0/2 接口连接,划分在VLAN10中,IP分别为192.168.10.1、192.168.10.2,网关192.168.10.254。
    PC2和PC3与交换机fa0/11、fa0/12 接口连接,划分在VLAN20中,IP分别为192.168.20.1、192.168.20.2,网关192.168.20.254。
    交换机fa0/24端口与路由器fa0/1端口连接。

    (2)配置交换机

    
    /* Part 1 配置交换机 */
    Switch>enable
    Switch#configure terminal
    Switch(config)#hostname SA
    SA(config)#vlan 10
    SA(config-vlan)#vlan 20
    SA(config-vlan)#exit
    SA(config)#interface range fa0/1-fa0/2
    SA(config-if-range)#switchport access vlan 10
    SA(config-if-range)#interface range fa0/11-fa0/12
    SA(config-if-range)#switchport access vlan 20
    SA(config-if-range)#interface fa0/24
    SA(config-if)#switchport mode trunk
    SA(config-if)#switchport trunk allowed vlan all

/ Part 2 检查配置 / SA(config-if-range)#^Z (Ctrl+Z组合键) SA#show vlan … VLAN Name Status Ports


1 default active Fa0/3, Fa0/4, Fa0/5, Fa0/6 Fa0/7, Fa0/8, Fa0/9, Fa0/10 Fa0/13, Fa0/14, Fa0/15, Fa0/16 Fa0/17, Fa0/18, Fa0/19, Fa0/20 Fa0/21, Fa0/22, Fa0/23 10 VLAN0010 active Fa0/1, Fa0/2 20 VLAN0020 active Fa0/11, Fa0/12 …

(3)配置路由器
```bash
/* Part 1 配置路由器 */
Router>enable
Router#configure terminal
Router(config)#hostname RA
RA(config)#interface fa0/0.1
RA(config-subif)#encapsulation dot1Q 10
  // (1:在路由器上配置trunk的封装协议的命令:
  //  encapsulation [isl/dot1q] vlan#
  //  2:上面的路由器配置了dot1q中继封装,10是vlan 10。
  //  3:Trunk的封装类型一共有 ISL和802.1Q两种,而802.1Q在输入的时候为dot1q)
RA(config-subif)#ip address 192.168.10.254 255.255.255.0
RA(config-subif)#interface fa0/0.2
RA(config-subif)#encapsulation dot1Q 20
RA(config-subif)#ip address 192.168.20.254 255.255.255.0
RA(config-subif)#exit
RA(config)#interface fa0/0
RA(config-if)#shutdown
RA(config-if)#no shutdown     //(重启fa0/0接口)

/* Part 2 检查配置 */
RA>show interfaces fa0/0.1
...
  Internet address is 192.168.1.254/24
...
  Encapsulation 802.1Q Virtual LAN, Vlan ID 10
...

RA>show interfaces fa0/0.2
...
  Internet address is 192.168.2.254/24
...
  Encapsulation 802.1Q Virtual LAN, Vlan ID 20
...

(4)连通性测试

/* Part 1 PC0 Ping 自己网关 */
PC>ping 192.168.1.254

Pinging 192.168.1.254 with 32 bytes of data:

Reply from 192.168.1.254: bytes=32 time=11ms TTL=255
Reply from 192.168.1.254: bytes=32 time=12ms TTL=255
Reply from 192.168.1.254: bytes=32 time=11ms TTL=255
Reply from 192.168.1.254: bytes=32 time=12ms TTL=255

Ping statistics for 192.168.1.254:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 11ms, Maximum = 12ms, Average = 11ms

/* Part 2 PC0 Ping PC1 */
PC>ping 192.168.1.2

Pinging 192.168.1.2 with 32 bytes of data:

Reply from 192.168.1.2: bytes=32 time=25ms TTL=128
Reply from 192.168.1.2: bytes=32 time=10ms TTL=128
Reply from 192.168.1.2: bytes=32 time=12ms TTL=128
Reply from 192.168.1.2: bytes=32 time=14ms TTL=128

Ping statistics for 192.168.1.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 10ms, Maximum = 25ms, Average = 15ms

/* Part 3 PC0 Ping PC2 PC3网关 */
PC>ping 192.168.2.254

Pinging 192.168.2.254 with 32 bytes of data:

Reply from 192.168.2.254: bytes=32 time=11ms TTL=255
Reply from 192.168.2.254: bytes=32 time=14ms TTL=255
Reply from 192.168.2.254: bytes=32 time=11ms TTL=255
Reply from 192.168.2.254: bytes=32 time=12ms TTL=255

Ping statistics for 192.168.2.254:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 11ms, Maximum = 14ms, Average = 12ms

/* Part 4 PC0 Ping PC2 */
PC>ping 192.168.2.1

Pinging 192.168.2.1 with 32 bytes of data:

Reply from 192.168.2.1: bytes=32 time=24ms TTL=127
Reply from 192.168.2.1: bytes=32 time=19ms TTL=127
Reply from 192.168.2.1: bytes=32 time=21ms TTL=127
Reply from 192.168.2.1: bytes=32 time=20ms TTL=127

Ping statistics for 192.168.2.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 19ms, Maximum = 24ms, Average = 21ms

/* Part 5 PC0 Ping PC3 */
PC>ping 192.168.2.2

Pinging 192.168.2.2 with 32 bytes of data:

Request timed out.
Reply from 192.168.2.2: bytes=32 time=24ms TTL=127
Reply from 192.168.2.2: bytes=32 time=22ms TTL=127
Reply from 192.168.2.2: bytes=32 time=19ms TTL=127

Ping statistics for 192.168.2.2:
    Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
    Minimum = 19ms, Maximum = 24ms, Average = 21ms

结论

由实验可知,划分VLAN后不同VLAN间的主机不能通信,可以使用路由器进行VLAN间通信。

注意: 1、主机需要配网关。 2、当出现Ping不通别的主机时,可以采用由近及远的检查方式,即依次Ping自己、自己的网关、对方主机的网关、对方主机以便于发现错误位置。

实验工程

单臂路由.zip

Cisco PT 案例八:配置基本ACL访问控制

环境

  • Cisco Packet Tracer 5.3
  • Windows 10

    操作

    操作:按照如图所示连接拓扑图
    image.png
    配置F0/1接口IP:

    R1(config)#interface fastEthernet 0/1        //进入Fa0/1
    R1(config-if)#ip address 172.16.1.1 255.255.255.0  //配置IP
    R1(config-if)#no shutdown                    //开启端口


    **
    配置F0/0接口IP:****

    R1(config)#interface fastEthernet 0/0        //进入Fa0/0
    R1(config-if)#ip address 10.1.1.1 255.255.255.0//配置IP
    R1(config-if)#no shutdown                    //进入Fa0/1


配置完成以后灯变绿了,在相互都可以ping通。
接下来给R1配上标准ACL,我个人建议一般正常下都是在进站口配置访问控制,用来减少路由器的工作负担,所以本文就是在进站口做了应用,也就是同时还要将访问控制运用在R1的Fa0/1端口。

R1(config)#access-list 10 deny host 172.16.1.2    //拒绝主机PC1的流量
R1(config)#access-list 10 permit any             //允许其他主机的流量
R1(config)#interface fastEthernet 0/1            //进入Fa0/1端口配置模式
R1(config-if)#ip access-group 10 in             //将ACL访问控制列表10应用于Fa0/1端口,同时在进站口就进行ACL的规则判断是否放行还是丢弃数据包

PC1和PC3不通:
image.png
PC3和PC1通:
image.png

Cisco PT 案例七:配置链路聚合 / 负载均衡

环境

  • Cisco Packet Tracer 5.3
  • Windows 10

    操作

    操作:按照如图所示连接拓扑图
    image.png
    配置交换机0

Switch>enable Switch#configure terminal Switch(config)#hostname SA              (更改交换机名字) SA(config)#interface port-channel 1         (聚合通道1) SA(config-if)#exit SA(config)#interface fa0/22 SA(config-if)#channel-group 1 mode on      (开启聚合通道1) SA(config-if)#interface fa0/23 SA(config-if)#channel-group 1 mode on SA(config-if)#interface fa0/24 SA(config-if)#channel-group 1 mode on SA(config-if)#exit SA(config)#interface port-channel 1 SA(config-if)#switchport mode trunk            (交换机间链路类型为trunk) SA(config-if)#switchport trunk allowed vlan all     (允许所有VLAN通过)

配置交换机1
```bash
Switch>enable
Switch#configure terminal
Switch(config)#hostname SB
SB(config)#interface port-channel 1
SB(config-if)#exit
SB(config)#interface range fa0/22-fa0/24       (同时开启聚合通道1)
SB(config-if)#channel-group 1 mode on
SB(config-if)#exit
SB(config)#interface port-channel 1
SB(config-if)#switchport mode trunk
SB(config-if)#switchport trunk allowed vlan all

Cisco PT 案例六:交换机端口与Mac地址绑定

环境

  • Cisco Packet Tracer 5.3
  • Windows 10

    操作

    操作:按照如图所示连接拓扑图
    image.png
    1、进入相应的接口
    (以端口1设置Mac地址绑定,PC0接1端口举例)

    Switch>enable
    Switch#config
    Configuring from terminal, memory, or network [terminal]?
    Enter configuration commands, one per line.  End with CNTL/Z.
    Switch(config)#
    Switch(config)#interface fastEthernet 0/1

    2、接口设为access模式

    Switch(config-if)#switchport mode access


3、启用安全端口

Switch(config-if)#switchport port-security
(查看mac-address绑定的几种方式,分别为静态绑定和粘滞绑定)
Switch(config-if)#switchport port-security mac-address ?
H.H.H   48 bit mac address
sticky  Configure dynamic secure addresses as sticky


第一种:动态配置

第二种:静态配置

(其中代码的最后一列为主机的Mac地址。寻找方法:单击主机→配置→fastEthernet→mac地址。)

Switch(config-if)#switchport port-security mac-address 0001.C94E.1321


设置完成后,用主机pc0 ping pc2,然后可以在特权模式下通过以下命令查看以下(ctrl+z,快速回到特权模式下)

Switch#show port-security address

若将pc0与端口1的连线断掉,改用pc3接端口1。在进行 pc3 ping pc2 不通(图示如下)
image.png
改回pc1依然不通,需重启路由器该端口

Switch(config-if)#shutdown

%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down
Switch(config-if)#no shutdown

%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

Switch(config-if)#

Cisco PT 案例五:VLAN(Trunk模式实践)

环境

  • Cisco Packet Tracer 5.3
  • Windows 10

    操作

    操作:按照如图所示连接拓扑图
    image.png
    实验步骤

  1. 创建VLAN 2和VLAN 3,财务部对应VLAN 2,销售部对应VLAN 3
  2. 将部门PC对应端口划分到相应的VLAN中
  3. 为交换机配置VTP模式及VTP域名
  4. 配置交换机间互联的端口为Trunk类型


PC设置

192.168.1.2        //PC0
192.168.1.3        //PC1
192.168.1.4        //PC2
192.168.1.5        //PC3
//子网掩码和网关
255.255.255.0
192.168.1.1

Switch0配置

Switch>en
Switch#conf t
Switch(config)#vlan 2                  //创建VLAN 2
Switch(config-vlan)#name Finance_Dept         //将该VLAN命名为Finance_Dept
Switch(config-vlan)#vlan 3             //创建VLAN 2
Switch(config-vlan)#name Sales_Dept          //将该VLAN命名为Sales_Dept
Switch(config-vlan)#exit
Switch(config)#inter f0/1
Switch(config-if)#switchport access vlan 2        //将该端口划分到VLAN 2
Switch(config-if)#exit
Switch(config)#inter f0/2
Switch(config-if)#switchport access vlan 3        //将该端口划分到VLAN 3
Switch(config-if)#exit
Switch(config)#inter f0/24
Switch(config-if)#switch mode trunk               //将端口配置为Trunk模式
Switch(config-if)#end
Switch#show vlan brief                //显示VLAN配置信息
Switch#vlan database                  //进入VLAN子模式
Switch(vlan)#vtp server                      //设置VTP模式为server
Switch(vlan)#vtp domain vtp0                 //设置VTP域名为vtp0
Switch(vlan)#exit
Switch#show vtp status                       //查看VTP配置信息

Switch1配置

Switch>en
Switch#vlan database                //进入VLAN子模式
Switch(vlan)#vtp client                     //设置VTP模式为client
Switch(vlan)#vtp domain vtp0                //设置VTP域名为vtp0,此处不填亦可
Switch(vlan)#exit
Switch#show vtp status             //查看VTP配置信息
Switch#show vlan brief             //显示VLAN配置信息
Switch#conf t
Switch(config)#inter f0/1
Switch(config-if)#switchport access vlan 2        //将该端口划分到VLAN 2
Switch(config-if)#exit
Switch(config)#inter f0/2
Switch(config-if)#switchport access vlan 3        //将该端口划分到VLAN 3
Switch(config-if)#exit
Switch(config)#inter f0/24
Switch(config-if)#switch mode trunk               //将端口配置为Trunk模式
Switch(config-if)#end
Switch#show r

测试

PC0(命令提示符CMD下)
ping 192.168.1.3           //链路不通
ping 192.168.1.4           //链路通
PC1(命令提示符CMD下)
ping 192.168.1.4           //链路不通
ping 192.168.1.5           //链路通

Cisco PT 案例四:VLAN(Access模式实践)

环境

  • Cisco Packet Tracer 5.3
  • Windows 10

    操作

    操作:按照如图所示连接拓扑图
    image.png
    实验步骤

  1. 创建VLAN 2和VLAN 3
  2. 将部门PC对应端口划分到相应的VLAN中

PC设置

192.168.1.2        //PC0
192.168.1.3        //PC1
192.168.1.4        //PC2
192.168.1.5        //R0
//子网掩码和网关
255.255.255.0
192.168.1.1

Switch0配置


Switch>en                       // 进入特权模式
Switch#conf t               // 进入全局配置模式命令缩写
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#vlan 2
Switch(config-vlan)#exit
Switch(config)#vlan 3
Switch(config-vlan)#exit
Switch(config)#inter f0/1
Switch(config-if)#switchport access vlan 2
Switch(config-if)#exit
Switch(config)#inter f0/2
Switch(config-if)#switchport access vlan 2
Switch(config-if)#exit
Switch(config)#inter f0/3
Switch(config-if)#switchport access vlan 3
Switch(config-if)#exit
Switch(config)#inter f0/4
Switch(config-if)#switchport access vlan 3
Switch(config-if)#exit
Switch(config)#exit
Switch#
%SYS-5-CONFIG_I: Configured from console by console

Switch#show vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10, 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
                                                Gig1/1, Gig1/2
2    VLAN0002                         active    Fa0/1, Fa0/2
3    VLAN0003                         active    Fa0/3, Fa0/4
1002 fddi-default                     active    
1003 token-ring-default               active    
1004 fddinet-default                  active    
1005 trnet-default                    active    
Switch#

测试

PC0(命令提示符CMD下)
ping 192.168.1.3           //链路通
ping 192.168.1.4           //链路不通
PC2(命令提示符CMD下)
ping 192.168.1.2           //链路不通
ping 192.168.1.5           //链路通