GNS3搭建小型局域网并连接互联网

最新进展:设置IP后,只要配置OSPF协议就可以实现自治系统内的路由,不需要配置静态路由和默认路由


我的笔记只在CSDN中发表,如转载请大家注明出处。

CSDN:http://blog.csdn.net/elang6962?viewmode=contents

GNS3:v2.0.3

IOS:c3660-a3jk9s-mz.124-25d

本机系统:win10

虚拟机系统:Ubuntu 16.04

文中所用公网ip和子网掩码均为虚构


先上图:

GNS3搭建小型局域网并连接互联网_第1张图片

以上是一个简单的测试示例,两级路由加一台PC,最终用PC连通互联网。实际搭建中把PC1换成了虚拟机,成功搭建后可正常上网。

一、实验说明

最终目标是让PC1可以正常联网

把PC1换成虚拟机

GNS3中的VPCS只能完成一些简单的连通性测试,如ping、trace、ip等等,跟复杂的交互如消息传递、数据传输等等都要依靠虚拟机实现。

1.在GNS3中添加虚拟机,本实验使用Vbox。先在Vbox里装好系统,再在GNS3中如图添加就可以了

GNS3搭建小型局域网并连接互联网_第2张图片

2.在虚拟机系统里设置ip、网关、DNS
3.如果没有正常连接,可以看看网卡信息

GNS3搭建小型局域网并连接互联网_第3张图片

参考及写笔记的原因

关于GNS3通过本机网卡联网的教程在GNS3官网文档和各类博客中有很多,本文参考的是官网,但是这些教程中大都机械的贴出配置命令,并没有讲解原因,也导致比较笨的本人卡在一个问题上很久~~究竟什么问题?卖个关子后面说。

二、网络搭建

R1上网

这一步在官网有多图手把手教程。把R1的f0/0和cloud的本机网卡连接,cloud不需要任何其他配置。

让R1上网就是让f0/0和本机网卡在一个网段里,这里要依据本地配置选择dhcp或静态ip,实验环境是动态ip,因此用了dhcp

R1# conf t
R1(config)# int f 0/0
R1(config-if)# ip add dhcp
R1(config-if)# no shutdown
R1(config-if)# end
R1#

//如果连接成功,会收到dhcp信息如下
*Mar  1 00:00:23.915: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 110.110.110.22, mask 255.255.248.0, hostname R1

这里要注意,因为实验环境不是一直开启的,ip地址租约到期时一般不会在线,所以每次打开R1后都会收到新的dhcp分配信息。

现在R1和本地网卡已经连通,但是要ping通外网,需要配置dns,用于把域名转换成ip。

R1(config)#ip domain-lookup
R1(config)#ip name-server 8.8.8.8
R1(config)#end

R1#ping www.baidu.com

Translating "www.baidu.com"...domain server (110.110.110.11) [OK]

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 119.75.216.20, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/35/44 ms

8.8.8.8是Google的免费dns服务器地址,放心大胆随时随地可用。

可以看到ping百度成功,现在R1已经连上网了。

R2上网

1.第一步,要让R2和R1连通,为此把他们设置到一个内网网段

#R1
R1(config)#int f 0/1
R1(config-if)#ip add 192.168.11.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#end

# R2
R2(config)#int f 0/1
R2(config-if)#ip add 192.168.11.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#end

命令中的no shutdown不能少,作用是打开接口,不打开可是ping不通的。

2.在路由器中设置ospf路由协议。这是一个自治系统路由协议,自治系统可以理解为多个小局域网组成的具有统一规范的大网络。

#R1
R1(config)#router ospf 1  //1是随意指定,只在路由器内部有作用
R1(config-router)#network 192.168.11.0 0.0.0.255 area 0
R1(config-router)#end

#R2
R2(config)#router ospf 2
R2(config-router)#network 192.168.11.0 0.0.0.255 area 0
//network后紧跟路由器的网段,子网掩码的反码和区域号。区域0表示骨干网。
R2(config-router)#end

3.给R2设置dns,也是8.8.8.8就可以,不过此时也不能上网。因为R2处于内网,它的地址是不能访问互联网的,要在R1上配置nat和接入控制列表

4.配置nat服务和默认路由。nat用于把内网地址转换成外网地址,实现内网设备连接互联网。默认路由是告诉路由器,当找不到明确的路由时就使用这条默认路由。

#R1配置nat
R1(config)#int f 0/0
R1(config-if)#ip nat outside
R1(config-if)#
R1(config-if)#exit
R1(config)#int f 0/1
R1(config-if)#ip nat inside
R1(config-if)#end
R1(config)#ip nat inside source list 1 int f 0/0 overload
R1(config)#access-list 1 permit 192.168.0.0 0.0.255.255

#R2配置默认路由
R2(config)#ip route 0.0.0.0 0.0.0.0 192.168.11.1

此时在R2上就可以ping百度了。

PC1上网

这里总共3步:一是给PC1配ip、网关和dns;二是配置R2的f0/0接口;三是给R1配一条到PC1的静态路由。

1.PC1配置。ip命令后跟PC1的地址、子网掩码、网关。

PC1> ip 192.168.10.2 255.255.255.0 192.168.10.1
PC1> ip dns 8.8.8.8

2.R2配置。f0/0接口就是PC1的网关。

R2(config)#int f 0/0
R2(config-if)#ip add 192.168.10.1 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#end

3.R1配置。类似于本实验中从R1到PC1需要从192.168.11.0寻址到192.168.10.0的,都需要一条静态路由设置。

R1(config)#ip route 192.168.10.0 255.255.255.0 192.168.11.2

结果测试

到这里全部配置完成,要一点特别特别重要的提醒:保存配置!!!不然关闭后所有配置清空~

#路由器中保存,R1和R2都要输入wr保存
R1#wr
Building configuration...
[OK]

#PC中保存
PC1> save

在PC1中尝试ping百度网站

PC1> ping www.baidu.com
www.baidu.com ->> www.a.com
www.a.com resolved to 119.75.216.20
84 bytes from 119.75.216.20 icmp_seq=1 ttl=50 time=71.004 ms

搭建成功。

三、搭建过程中的问题

PC1能ping通R1的f0/0,但不能联网

出现这个问题,是因为在设置nat时access-list只包含了192.168.11.0,忘记把PC的那个网段也包含进去。后来脑子清醒了才发现这个错误,设置时把整个内网网段都丢进去就可以了。

cloud不分配dhcp

此问题症状:

  1. R1连接cloud后,设置为dhcp,得不到分配的地址
  2. 按照正确的网关和地址设置静态ip,ping不通网关

整体感觉就是cloud上的这个网卡压根没连接。前后尝试了很多办法:

  1. netsh winsock reset
  2. 网卡驱动重装
  3. GNS3重装

以上通通无效!

最后的一系列操作是:

  1. 把电脑系统里的网卡全部禁用,只留了一个联网的本地连接;特别是那些装虚拟机时的网卡,全禁用
  2. 新建一个环回适配器,在本地连接里设置共享internet,选择环回适配器;此过程在win7及之前的系统是二者桥接
  3. GNS3里还是连着本地连接,有的资料里写这里要连环回适配器

虽然不知道原理,但是目前问题解决了,万幸!

你可能感兴趣的:(技术文档)