最新进展:设置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和子网掩码均为虚构
先上图:
以上是一个简单的测试示例,两级路由加一台PC,最终用PC连通互联网。实际搭建中把PC1换成了虚拟机,成功搭建后可正常上网。
GNS3中的VPCS只能完成一些简单的连通性测试,如ping、trace、ip等等,跟复杂的交互如消息传递、数据传输等等都要依靠虚拟机实现。
1.在GNS3中添加虚拟机,本实验使用Vbox。先在Vbox里装好系统,再在GNS3中如图添加就可以了
2.在虚拟机系统里设置ip、网关、DNS
3.如果没有正常连接,可以看看网卡信息
关于GNS3通过本机网卡联网的教程在GNS3官网文档和各类博客中有很多,本文参考的是官网,但是这些教程中大都机械的贴出配置命令,并没有讲解原因,也导致比较笨的本人卡在一个问题上很久~~究竟什么问题?卖个关子后面说。
这一步在官网有多图手把手教程。把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已经连上网了。
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百度了。
这里总共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
搭建成功。
出现这个问题,是因为在设置nat时access-list只包含了192.168.11.0,忘记把PC的那个网段也包含进去。后来脑子清醒了才发现这个错误,设置时把整个内网网段都丢进去就可以了。
此问题症状:
整体感觉就是cloud上的这个网卡压根没连接。前后尝试了很多办法:
以上通通无效!
最后的一系列操作是:
虽然不知道原理,但是目前问题解决了,万幸!