网络工程师CCNA 50小时完整版教程笔记

2019年7月17日16:10:59 发表评论 热度62 ℃

网络工程师CCNA 50小时完整版教程笔记

一、服务器和客户机的概念

1.谁提供服务,谁是服务器;谁请求服务,谁是客户机

2.可以自己向自己请求服务,也可以自己向自己提供服务

二、OSI参考模型

1.分层的好处

i.数据通讯每个环节的变化不影响其他环节

ii.有利于各厂商的设备标准化

2.各层概述

i.应用层(Application)—— 能够产生网络流量的网络应用程序。例如:QQ,IE等,计算器之类则不属于应用层。

ii.表示层(Presentation)—— 加密、压缩、二进制等。

iii.会话层(Session)—— 网络会话进程,可用netstat –n –nb 查看

iv.传输层(Transport Layer) —— 可靠传输(TCP),不可靠传输(UDP),流量控制,滑动窗口技术

v.网络层(Network Layer)—— 选择路径

vi.链路层(Date Link)—— 定义了如何标识网络设备

vii.物理层(Physical)—— 电压,接口等

3.从排错角度看OSI参考模型

i.从底层往高层逐一排错

ii.物理层故障:连接错误

iii.链路层故障:ARP病毒,ADSL拨号,

iv.网络层故障:选择路径上出了问题,例如无网关,无路由等

v.传输层故障:IP、TCP校验和错误,例如数据包丢弃

vi.会话层故障:建立、管理和终止表示层与实体之间的通信会话

vii.表示层故障:例如IE编码错误等

viii.应用层故障:IE插件等

4.从安全角度看OSI参考模型

i.物理层安全:多余接口,机房门禁等。

ii.链路层安全:交换机端口绑定MAC地址等

iii.网络层安全:IP访问控制列表等

iv.应用层(上三层)安全:杀毒软件,应用层防火墙等

三、网络设计的三层模型

1.接入层交换机:直接连接终端的交换机,一般接口多,带宽相对较低

2.汇聚层交换机:连接接入层的交换机,带宽相对较高

3.核心层交换机:连接汇聚层的交换机,转发速度快

四、网络设备

1.集线器(Hub):带冲突检测的载波侦听多路访问(CSMA/CD)

i.不安全,数据靠广播传输

ii.效率低,一个(多个)集线器是一个冲突域,共享带宽

2.网桥(Bridge)

i.MAC地址学习

ii.隔离冲突域

3.交换机(Switch)

i.安全,数据根据Mac地址表转发

ii.效率高,一个端口是一个冲突域,每个端口带宽不受其他端口影响

iii.一个(多个)交换机是一个广播域

4.路由器(Routor)

i.基于IP地址转发

ii.广域网接口

iii.隔离广播域

iv.ACL

5.网线

i.交叉线:连接同类设备

ii.直通线:连接不同设备

iii.全反线:连接Console口

iv.100M用4根,1000兆用8根(大多数设备,具体还要看规范)

五、半双工和全双工以太网

1.半双工:不能同时收发,例如HUB网络

2.全双工:可以同时收发,例如交换机网络

六、TCP/IP协议

1.应用层(Application Layer):对应OSI的应用层、表示层、会话层。相应协议HTTP、FTP、SMTP等

2.传输层(Transport Layer):对应OSI的传输层。相应协议TCP、UDP等(小数据,广播组播等常用不可靠传输)

3.网络层(Internet Layer):对应OSI的网络层。相应协议IP、ICMP、IGMP、ARP等

4.网络接入层(Network Interface Layer):对应OSI的数据链路层和物理层。相应协议ATM、Ethernet等

5.应用层协议与传输层协议的关系:HTTP=TCP+80;FTP=TCP+20/21;SMTP=TCP+25;POP3=TCP+10;RDP=TCP+3389;数据库=TCP+1143;DNS=UDP or TCP +53;

6.自主开发应用层软件要使用1024以后的端口号

7.端口号的作用是标识提供的服务,不同服务应该使用不同端口,默认端口可以更改,但客户端必须同步更改。netstat –a –an 可查看端口状态,telnet 远程主机IP 端口号 可以查看远程服务器的端口是否打开。

8.可以在网卡属性->IPV4->高级->选项,设定只开放指定端口。

9.开启Windows防火墙保护客户端安全。只能防止外部连接,无法阻止内部连接,无法防止木马

10.可以通过先建立连接,再使用netstat命令的方法来查看应用程序使用的TCP端口。

11.使用IPSec防止木马,路由器使用IP访问控制,联系更改远程访问服务端口号

七、网络层协议

1.RIP(Routing information Protocol-路由信息协议)

2.EIGRP(Enhanced Interior Gateway Routing Protocol-增强内部网关路由线路协议)

3.OSPF(Open Shortest Path First-开放最短路径优先)

4.ICMP(Internet Control Message Protocol-Internet控制报文协议);测试网络连通性 ping、pathping、tracert(路由器上使用)

5.IGMP(Internet Group Management Protocol-Internet 组管理协议);组播管理

6.ARP(Address Resolution Protocol-地址解析协议);IP地址转变为MAC地址,广播

7.数据段、数据包、数据帧的区别

8.抓包工具wireshark

八、常规排错方法

1.IPconfig;查看是否获取到正确的IP地址

2.Ping 127.0.0.1;确定网卡驱动程序,TCP/IP协议是否安装正确

3.Ping网关;确定局域网是否畅通(注意ARP病毒)

4.Ping 公网地址;确定与外网链接是否畅通

5.Ping 公网域名;确定DNS域名解析是否正常

6.Telnet 公网网址 80端口;确认应用层服务是否工作正常

7.检查IE设置;确认应用层客户端软件问题

8.替换法;疑似软硬件问题

九、IP地址(IPV4)

1.A类;0-127,前8位网络位

2.B类;128-191,前16位网络位

3.C类;192-223,前24位网络位

4.D类;224-239,多播地址,无子网掩码

5.E类;240-255,用于测试

6.主机位全0表示此网段,全1为本地广播,不能做主机地址

7.私有地址;10.0.0.0/8,172.16.0.0/16~172.31.0.0/16,192.168.0.0/24~192.168.255.0/24,169.254.0.0/16(微软预留),127.0.0.1(本机环回)

8.地址转换(NAT);端口映射

9.变长子网掩码(Variable-Length Subnet Mask----VLSM)

十、路由器

1.路由器硬件结构

i.RAM;存放当前运行配置

ii.NVRAM;存放已保存的配置

iii.ROM;Bootstrap引导程序、POST(加电自检程序)、Mini IOS、ROM

monitor

iv.Flash;存放IOS

v.端口;以太网口、串口、Console口、AUX口等

vi.路由器加电/启动顺序;加电自检(POST)-加载并执行引导程序(Bootstarp)-寻找映像文件(Flash)-加载映像文件(RAM)-寻找配置文件(NVRAM)-加载配置文件(RAM)-正常运行

2.配置寄存器的值

i.查看寄存器的值;Router#show version命令  显示内容最后一行“Configuration register is 0x2102”

ii.修改寄存器的值;Router(config)#config-register 0x2102 正常方法

3.MiniIos(故障恢复模式)

i.如何进入;启动时按ctrl + break可进入

ii.修改寄存器的值;rommon 2 > confreg 0x2142(修改寄存器值为0x2142;此模式命令无法自动补全)

iii.重启路由器;rommon 3 > reset

4.恢复路由器密码

i.进入MiniIos;启动时按ctrl + break

ii.修改寄存器的值;rommon 2 > confreg 0x2142

iii.重启路由器;rommon 3 > reset

iv.调入配置文件;Router#copy startup-config running-config

v.修改或清除遗忘的密码;

vi.保存配置;Router#write

vii.修改寄存器的值;Router(config)#config-register 0x2102

viii.重启路由器;Router#reload (可省略)

5.重新安装、备份和升级路由器

i.基本命令

a)查看Flash中的IOS 文件;Router#show flash

b)删除Flash中的IOS文件;Router#delete flash: 回车Delete filename []?c2600-i-mz.122-28.bin(删除操作系统后,重启时会直接进入MiniIos)

c)从TFTP服务器复制文件

1)指定从TFTP复制文件;Router#copy tftp: flash:

2)指定服务器IP地址;Address or name of remote host []? 192.168.1.1

3)指定目标文件名;Source filename []? c2600-i-mz.122-28.bin

4)回车,确认。完成复制

d)从FTP服务器复制文件

1)设定FTP用户名;Router(config)#ip ftp username cisco

2)设定FTP密码;Router(config)#ip ftp password cisco

3)指定从FTP复制文件;Router#copy ftp: flash:

4)指定服务器IP地址;Address or name of remote host []? 192.168.1.1

5)指定目标文件名;Source filename []? c2600-ipbasek9-mz.124-8.bin

6)回车,确认。完成复制

ii.升级路由器

a)删除旧IOS文件

b)复制新IOS文件

c)重启路由器,升级成功

ii.备份路由器

a)复制IOS文件至FTP或TFTP服务器

b)备份成功

iii.重新安装路由器

a)方法一

1)连接TFTP服务器到路由器第一以太网口

2)连接PC串口至路由器Console口(可与TFTP服务器为同一台机器)

3)打开路由器进入MiniIos

4)设定路由器IP地址;rommon 2 > IP_ADDRESS=192.168.1.254

5)设定路由器子网掩码;IP_SUBNET_MASK=255.255.255.0

6)设定路由器网关;DEFAULT_GATEWAY=192.168.1.1

7)设定TFTP服务器地址;TFTP_SERVER=192.168.1.1

8)指定IOS映像文件名;rommon 6 > TFTP_FILE=c2900-universalk9-mz.SPA.151-4.M4.bin

9)回车确定即可完成

b)方法二

1)复制相应映像文件至PC

2)通过Console口连接PC和路由

3)选择通过Xmoden协议传输映像文件;rommon 2 > xmodem

4)回车,确认后路由器处在等待接收状态

5)在PC超级终端中使用Xmoden传输文件

6)等待很长时间后,完成。(可通过更改传输速率缩短时间)

6.路由器IOS功能

i.加载网络协议

ii.在不同网段转发数据

iii.Acl流量控制

iv.可靠的服务

v.可扩展

7.配置路由器的方法

i.Console口

ii.Telnet

8.启动路由器

i.Post加载IOS配置文件

9.常用命令

i.Router>enable 进入特权模式

ii.Router#disable退出特权模式

iii.Router#exit 退回上一级模式

iv.Router#end 直接退回特权模式

v.Router#show interfaces  查看所有接口(后接指定端口可单独查看)

vi.Router#show running-config 查看当前配置、密码、接口IP地址、ACL、NAT

vii.Router#show startup-config 查看闪存配置

viii.Router#show version  查看路由器版本信息、配置寄存器的值

ix.Router#show ip interface 查看和IP相关的接口信息

x.Router#show ip route 查看路由表

xi.Router#show ip protocols 查看路由器运行的动态路由协议

xii.Router#copy running-config startup-config 或者 Router#write 保存当前配置

xiii.Router#ping 192.168.1.1 测试与其他设备的连接是否成功

xiv.Router#telnet 192.168.1.1 远程连接其他设备

xv.Router #traceroute 192.168.1.1 路由跟踪命令

xvi.Router (config)#ip host R1 192.168.4.1 记录主机名DNS记录(类似hosts文件)

xvii.Router#configure terminal进入全局配置模式

xviii.Router(config)#no ip domain-lookup 取消自动域名解析

xix.Router(config)#hostname R1更改设备名称为“R1”

xx.Router(config)#enable password cisco 设置特权模式密码为“cisco”(未配置特权密码的情况下,Telnet远程只能进入用户模式)

xxi.Router(config)#enable secret Cisco设置加密的特权模式密码为“Cisco”,明文密码与加密密码同时存在的情况下,有效密码为加密密码。

xxii.Router(config)#service password-encryption 加密所有密码(无法通过no还原)

xxiii.Router(config)# ip classless 启用默认路由

xxiv.Router(config)#line vty 0 4  配置默认虚拟接口(Telnet默认端口为TCP 23)

xxv.Router(config-line)#login设定远程连接必须登录(默认设置),不设置密码时等同关闭线路

xxvi.Router(config-line)#password Cisco 设定远程登录密码为“Cisco”

xxvii.Router(config)#interface f0/0 进入F0/0端口配置模式

xxviii.Router(config-if)#ip address 192.168.0.1 255.255.255.0 为端口配置IP地址和子网掩码

xxix.Router(config-if)#no shutdown 打开端口

xxx.Router(config-if)#ip address 192.168.0.1 255.255.255.0 secondary 配置第二个地址(PT模拟器不支持)

xxxi.Router(config)#interface serial 0/0 进入串口 S0/0 端口配置模式

xxxii.Router(config-if)#clock rate 64000 配置时钟频率(只有DCE端需要配置)

十一、Cisco发现协议(CDP:Cisco Discovery Protocol)

1.基于二层,与IP无关

2.60秒发一次,Holdtime 180秒

3.常用命令

i.查看CDP全局设置;Router#show cdp

ii.查看CDP邻居信息;Router#show cdp neighbors

iii.查看CDP详细信息;Router#show cdp entry 或者Router #show cdp neighbors detail

iv.查看本机接口CDP信息;Router#show cdp interface

v.查看CDP广播统计;Router #show cdp traffic

vi.开启所有端口的CDP协议;Router (config)#cdp run

vii.设定广播周期;Router (config)#cdp timer 60

viii.设定Holdtime;Router (config)#cdp holdtime 180

ix.开启指定端口CDP协议:Router (config-if)#cdp enable

十二、路由

1.路由

i.不同网段间的数据转发

ii.查看路由表;Router #show ip route

2.静态路由

i.管理员手工添加路由表

ii.添加静态路由;Router (config)#ip route 192.168.1.0 255.255.255.0 192.168.4.1

3.动态路由

i.路由器自动学习路由表

4.路由汇总

i.把一组路由汇聚为一个单个的路由广播

ii.缩小网络上的路由表的尺寸

iii.减少与每一个路由跳有关的延迟

5.默认路由

i.是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由

6.路由协议分类

i.按自治系统内部外部区分

1.自治系统:使用相同的路由准则的网络的集合

2.IGPs(内部网关协议/Interior Gateway Protocol);自治系统内部使用,常用有RIP、EIGRP、OSPF等

3.EGPs(外部网关协议/Exterior Gateway Protocol);自治系统之间使用,先多用BGP协议

ii.按路由协议算法分类

1.距离矢量(Distance Vector);RIP、IGRP

2.链路状态(Link State);OSPF

3.混合路由(高级距离矢量Advanced Distance Vector);EIGRP

7.衡量路由协议的性能指标

i.正确性;能够正确找到最优的路由,且无环路

ii.快收敛;当网络的拓扑结构发生变化后,能够迅速在自治系统中做出相应的改变

iii.低开小;协议自身的开销(内存、CPU、网络带宽)小

iv.安全性;协议自身不易受到攻击,有安全机制

v.普适性;适应各种拓扑结构和规模的网络

8.常用路由的管理距离(Cisco设备中)

i.直连路由;0

ii.静态路由;0(自身端口)或者1(下一跳IP)

iii.EIGRP汇总路由;5

iv.RIP;120

v.OSPF;110

vi.EIGRP;90

9.常用路由的管理距离(华为设备中)

i.直连路由;0

ii.OSPF;10

iii.静态路由;60

iv.IGRP;80

v.RIP;110

vi.O_ASE;150

vii.BGP;170

十三、距离矢量路由协议

1.工作原理

i.周期性广播路由表

ii.路由器从收集到的源信息中选择到达目标地址的最佳路径(度量值为跳数)

iii.路由表的更新过程将通过路由器之间一步一步来完成

2.产生的问题

i.路由回环

ii.无限计数

3.解决办法

i.定义最大跳数;可解决无限计数及路由回环问题,但限制了网络规模

ii.水平分割;不会接收到由自身传达出去的路由信息,可解决直连路由间的路由回环问题

iii.路由毒杀;将故障路由信息的跳数标记为无限大(16),Hold Down时间到达后丢弃此条路由信息,可解决因路由表不同步而造成的回环

iv.反转毒杀;反转毒杀可以无视水平分割的原则

v.触发更新;当路由表发生变化时路由器立即发送更新信息

十四、链路状态路由协议

  1. 工作原理

i.路由器找到自己的邻居

ii.每个路由器向邻居发送LSA(链路状态通告/link state advertisement)数据包,包含了自己的路径成本

iii.LSA扩散,每个路由器得到相同的拓扑结构的数据库

iv.由SPF(最短路径优先/ Shortest Path First)算法计算网络可达性,建立SPF树,以自己为树根

v.创建路由表,列出最优路径列表;维护其他拓扑结构和状态细节数据库

十五、混合路由协议

1.高级距离矢量路由协议

2.通过传递变化的更新信息达到快速收敛

十六、路由协议配置任务

1.启动路由协议;Router(config)#router protocol  [keyword]

2.宣告网络或端口;Router(config-router)#network network-number

3.注意,EGP/BGP协议宣告的是路由信息而不是网络或端口

十七、RIP(Routing Information Protocol)路由信息协议;属于距离矢量类协议

1.周期;默认30秒

2.度量值;最大跳数15条

3.最多支持相同跳数的6条路径(默认为4条)

4.RIPv1;广播路由信息,支持等长子网,不支持变长子网和不连续子网

5.RIPv2;多播路由信息,支持变长子网和不连续子网(关闭自动路由汇总)

6.开放式路由协议,各个品牌路由器基本都支持

7.常用命令

i.启用RIP协议;Router (config)#router rip

ii.宣告网络;Router (config-router)#network 192.168.3.0

iii.更改为V2版本;Router (config-router)#version 2

iv.关闭自动路由汇总;Router (config-router)#no auto-summary

v.调试;Router#debug ip rip

十八、有类路由协议

1.类边界自动路由汇总

2.类边界为A,B,C的概念

十九、EIGRP(Enhanced Interior Gateway Routing Protocol)增强内部网关路由线路协议;属于高级距离矢量协议(混合路由),Cisco私有协议

1.周期更新路由信息;默认90秒

2.度量值;默认为带宽+延迟(负载、可靠性、最大传输单元)

3.支持大型网络;默认100跳,最大支持255跳(必须在同一自治系统)

4.支持变长子网和不连续子网(关闭自动汇总)

5.收敛速度快;有备用路径

6.常用命令

i.启用RIGRP协议;Router(config)#router eigrp 90

ii.宣告网络;Router (config-router)#network 192.168.3.0 [0.0.0.255]

二十、VLAN(Virtual Local Area Network)虚拟局域网

1.目的

i.控制广播

ii.安全

2.适用情况

i.当一个交换机上的所有端口中有至少一个端口属于不同网段的时候

ii.当路由器的一个物理端口要连接2个或者以上的网段的时候

3.TRUNK

i.可传输不同VLAN的数据

ii.出交换机加VLAN标签,入交换机去标签

4.常用命令

i.查看VLAN;Switch#show vlan

ii.创建一个VLAN;Switch(config)#vlan 2

iii.进入端口组;Switch(config)#interface range fastEthernet 0/11 – 24

iv.向VLAN添加端口;Switch(config-if-range)#switchport access vlan 2

v.设定TRUNK端口;Switch(config-if)#switchport mode trunk

vi.单臂路由命令

1.进入子接口;Router(config)#interface gigabitEthernet 4/0.1

2.指定VLAN号;Router(config-subif)#encapsulation dot1Q 1

3.注意点

a)主接口只需要开启,无需配置IP地址阿斯顿噶额度发生地发呆所发生的发的说法是打发第三方奥德赛法第三方

b)子接口只需要配置IP地址,无需开启

c)需要先指定VLAN号,再配置子接口IP

vii.三层交换机命令

1.进入VLAN端口;Switch(config)#interface vlan 2

2.注意点

a)需要先添加VLAN才能进行接口配置

b)IP地址在VLAN接口中配置

c)VLAN端口需要开启

d)连接三层交换的端口并不一定需要配置为TRUNK

e)一次路由,多次转发(硬件转发)

viii.VTP (VLAN Trunking Protocol)虚拟局域网干道协议

1.相关知识

a)是一个OSI参考模型第二层的通信协议

b)主要用于管理在同一个域的网络范围内VLANs的建立、删除和重命名

c)VLAN管理域;是一组VTP域名相同并通过中继链路相互连接的交换机

2.VTP管理域的要求

a)域内的每台交换机都必须使用相同的域名,不论是通过配置实现,还是由交换自动学到的

b)Catalyst交换机必须是相邻的,即相邻的交换机需要具有相同的域名

c)在所有Catalyst交换机之间,必须配置中继链路

3.VTP模式

a)服务器模式(Server);默认模式

i.提供VTP消息:包括VLAN ID和名字信息

ii.学习相同域名的VTP消息

iii.转发相同域名的VTP消息

iv.可以添加、删除和更改VLAN VLAN信息写入NVRAM

b)客户机模式(Client)

i.请求VTP消息

ii.学习相同域名的VTP消息

iii.转发相同域名的VTP消息

iv.不可以添加、删除和更改VLAN VLAN信息不会写入NVRAM

c)透明模式(Transparent)

i.不提供VTP消息

ii.不学习VTP消息

iii.转发VTP消息

iv.可以添加、删除和更改VLAN,只在本地有效 VLAN信息写入NVRAM

4.常用命令

a)设定VTP管理域;Switch(config)#vtp domain cisco

b)设定VTP域密码;Switch(config)#vtp password 123

c)设定为VTP客户端模式;Switch(config)#vtp mode client

d)设定为VTP服务器模式;Switch(config)#vtp mode server

e)设定为VTP透明模式;Switch(config)#vtp mode transparent

二十一、网络层安全ACL(Access Control List)

1.IP访问控制列表的作用

i.流量控制

ii.过滤数据包

2.类别

i.标准访问控制列表;基于源IP地址过滤数据

ii.扩展访问控制列表;基于源IP地址、目标IP地址、协议(TCP/UDP/ICMP等)、目标端口来过滤数据

3.常用命令

i.查看访问控制列表;Router#show access-lists

ii.建立标准访问控制列表;Router(config)#access-list 10 deny 192.168.2.2 0.0.0.0

iii.建立扩展访问控制列表;Router(config)#access-list 110 permit tcp 192.168.2.0 0.0.0.255 host 10.0.0.2 eq 80

iv.将访问控制列表应用到端口;Router(config-if)#ip access-group 10 out

v.将访问控制列表应用到VTY端口;Router(config-line)#access-class 10 in

4.注意点

i.默认标准ACL编号为1-99,扩展编号为100-199

ii.ACL使用反子网掩码

iii.先建立访问控制列表,进入端口配置后,再应用到端口出或入

iv.访问控制列表的顺序按照输入先后排列

v.访问控制列表的匹配按照先后顺序,匹配一条后不再向下检验

vi.默认为禁止所有

vii.无法删除单独的访问控制列表条目,只能删除整个列表(PT中可进入列表配置单独删除一行,但不能调整顺序,不知真机可否)。

1.进入列表配置模式;Router(config)#ip access-list standard 10

2.删除某条目;Router(config-std-nacl)#no permit any

二十二、NAT(Network Address Translation,网络地址转换)

1.静态地址转换

i.地址转换命令;Router(config)# ip nat inside source static 10.1.1.1 172.16.12.10

ii.设定内部端口;Router (config-if)#ip nat inside

iii.设定外部端口;Router (config-if)#ip nat outside

2.动态地址转换

i.配置外部地址池;Router(config)#ip nat pool chris 172.16.12.100 172.16.12.150 netmask 255.255.255.0

ii.配置ACL(需要转换的内部地址范围);Router(config)#access-list 1 permit 10.1.1.0 0.0.0.255

iii.地址转换命令;Router(config)#ip nat inside source list 1 pool chris

iv.设定内部端口;Router (config-if)#ip nat inside

v.设定外部端口;Router (config-if)#ip nat outside

3.端口地址转换

i.配置外部地址池;Router(config)#ip nat pool chris 172.16.12.10 172.16.12.10 netmask 255.255.255.0

ii.配置ACL(需要转换的内部地址范围);Router(config)#access-list 1 permit 10.1.1.0 0.0.0.255

iii.地址转换命令;Router(config)#ip nat inside source list 1 pool chris overload

iv.设定内部端口;Router (config-if)#ip nat inside

v.设定外部端口;Router (config-if)#ip nat outside

4.端口映射

i.

5.常用命令

i.查看地址转换表;Router(config)#show ip nat translations

ii.清除地址转换表;Router(config)#clear ip nat translations *

iii.调试NAT;Router(config)#debug ip nat

6.注意点

i.端口地址转换与动态地址转换配置基本相同,主要区别在于配置时是否加上“overload”

ii.静态地址转换无需配置内部地址范围及外部地址池

iii.动态地址转换当内部地址少于外部地址时,可能需要手动清除地址转换表才能正常访问

资讯猿

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: