电信家庭宽带中的IPv6实践
今年3月份的时候在家中为了适应升级的300M的电信带宽,特将我去年网购尘封的二手linksys ea4500刷了openwrt系统作为家庭带宽的出口之用,无意中竟发现了电信已经实现了ipv6的双栈,已经使用了将近3个多月的IPv6线路,受一老师点拨,遂撰此文以记录之。
一.路由器的IPv6支持与配置
路由器硬件设备:Linksys EA4500
路由器操作系统版本:OpenWrt R9.2.14 By Lean
1)Wan6接口配置
参数设置如下:
协议:DHCPv6客户端
请求指定长度的IPv6前缀:自动
PS:如果是华硕的路由器的话,配置参数为:联口类型Native,接口PPP,DHCP-PD启动。
2)IPv6 WAN口状态确认
从电信运营商处获取了240e开头的全球单播IPv6地址、IPv6 DNS服务器地址、IPv6前缀地址,说明运营商线路已经支持了IPv6,路由器获取IPv6信息成功。
二.终端IPv6地址获取及网络测试
1)终端IPv6地址获取验证:在终端中可以直接查看是否获得了240e开头的全球单播ipv6地址,macOS的命令是:ifconfig,Windows的命令是:ipconfig
~ admin$ ifconfig en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=4<VLAN_MTU> ether 00:e0:4c:6a:43:0d inet6 fe80::14a2:5701:b99c:c62b%en7 prefixlen 64 secured scopeid 0x13 inet6 240e:365:567:d300:416:1832:11c:1809 prefixlen 64 autoconf secured inet6 240e:365:567:d300:a599:57ba:3b78:ffea prefixlen 64 autoconf temporary inet6 fd41:cfa:247d::41d:244b:e014:b046 prefixlen 64 autoconf secured inet6 fd41:cfa:247d::b9e1:cfdc:1a83:c33d prefixlen 64 autoconf temporary inet6 240e:365:567:d300::dec prefixlen 64 dynamic inet 192.168.2.128 netmask 0xffffff00 broadcast 192.168.2.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex>) status: active
2)Ping和traceroute跟踪验证
常用的网络链路检测和跟踪的命令,macOS平台分别是ping6 xxx、tracroute6 xxx,windows平台分别是ping -6 xxx,tracert -6 xxx。
3)IPv6 的DNS解析验证
目前常用的IPv6 DNS Server如下:
下一代互联网国家工程中国中心:240c::6666,240c::6644
中科大IPv6 DNS:2001:da8::666
中国电信分配的IPv6 DNS:240e:46:4088::4088,240e:46:4888::4888
百度公开的IPv6 DNS:2400:da00::6666
Goolge Public DNS:2001:4860:4860::8888,2001:4860:4860::8844
上海交大的IPv6 DNS:2001:da8:8000:1:202:120:2:101
4)IPv6资源站点访问验证
发现了一个业界常用的IPv6网络检测网站,可以直接检测到你的IPv6地址,IPv6 DNS,以及浏览器的IPv6支持情况,检测内容较全面。
三.IPv6相关资源
1)中科大张焕杰老师制作的网络HTTPS、HTTP/2、IPv6的检测站点(ipv6.ustc.edu.cn),在实时检测国内外知名高校、安徽省高校、部分互联网门户网站等状态。
张老师的站点还提供了,自定义检测功能,输入目标站点,系统自动检测该站点Https、http/2、IPv6解析、IPv6访问等指标。2)合肥学院夏光峰老师制作的IPv6学习站点,可自动检测终端的IPv6地址,而且还汇集了各厂商的IPv6相关学习资料(域名:ipv6study.hfuu.edu.cn,这个域名只针对v6用户,如果你可以访问,说明你的终端已接入ipv6网络)
四.部分疑问解答
1)为什么终端获取多个240e开头的IPv6地址?
IPv6隐私拓展(RFC4941)
当一个客户端使用SLAAC配置其IPv6时,它会使用网络前缀和网卡的MAC地址构造地址。这会引起安全问题:计算机的MAC地址可以轻松通过其IPv6地址推算出。
为了解决这个问题,提出了“IPv6隐私扩展”标准(RFC 4941)。使用这个隐私扩展,内核会从原本的IPv6地址计算生成一个“临时地址”。
在连接远程服务器时,系统会优先选择这个地址以隐藏原来的地址。
2)运营商设备与内网终端之间有路由器设备,如何实现IPv6全球单播地址的分配?
DHCPv6 PD工作原理
DHCPv6 前缀代理DHCPv6 PD(Prefix Delegation)是由Cisco 公司提出的一种前缀分配机制,并在RFC3633 中得以标准化。在一个层次化的网络拓扑结构中,不同层次的IPv6地址分配一般是手工指定的。手工配置IPv6 地址扩展性不好,不利于IPv6 地址的统一规划管理。
通过DHCPv6 前缀代理机制,下游网络路由器不需要再手工指定用户侧链路的IPv6 地址前缀,它只需要向上游网络路由器提出前缀分配申请,上游网络路由器便可以分配合适的地址前缀给下游路由器,下游路由器把获得的前缀(一般前缀长度小于64)进一步自动细分成64 前缀长度的子网网段,把细分的地址前缀再通过路由通告(RA)至与IPv6 主机直连的用户链路上,实现IPv6 主机的地址自动配置,完成整个系统层次的地址布局。
3)如果通过IPv6网址直接访问网站?
用中括号将IPv6地址括起来即可,举例如下:
为了安全起见,要求使用强SA密码的解决方法
我在安装SQL 桌面版(MSDE2000)时出现一下信息:
"为了安全起见,要求使用强SA密码。请使用SAPWD开关提供同一密码。有关详细信息,请参阅自述文件。安装程序将立即退出。”
在网上找到解决的办法就是
找到msde安装目录下的setup.ini,打开修改成下面这个样子
[Options]
SECURITYMODE=SQL
SAPWD=admin
其中SAPWD后的"admin"是你的sa的密码。(你也可以改成你自己的)。
然后双击安装即可。
启动服务的方法是找到服务管理器程序
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exe
GNS3关联Wireshark抓包
做实验的时候想顺便研究数据包,因为设备的debug功能有限,能获取的信息很少,所以就想到了关联抓包软件的问题,没想到gns3早就想到这个问题了,废话不多说,直接来
1. 配置
第一个设置的路径是设备自动抓包后,临时文件抓包文件.cap保存的路径
第二个就是启动wireshark的路径,用于启用程序读取抓包文件的
第三个是当你开启抓包命令是是否同时启用wireshark(个人感觉这个功能没有必要开启,开始wireshark的目的是读取刚才抓的包,当时我们刚开始抓包是抓不了几个包的)
通过简单研究,发现这个抓包动作是GNS3内部程序完成的,wireshark仅仅是个“阅读器”而已
2. 开始抓包
如上图在连接线缆上点击右键,选择“capture“命令
由于抓包是基于接口的,一个线缆对应两个接口,这时候会给你一个选择
抓包成功过后,会在右下角capture位置出现被抓包的端口
接下来你可以点击右键进行“抓包”或“启动shark”读取刚才抓包信息
By:qike006 2011.9.18
Windows 2003 dhcp server 配置option 138选项
现在通过AC管理瘦AP的无线网络模式越来越流行。AP与AC之间若是采用的是三层部署的方式,AP发现AC的一种方式就是通过DHCP Option 138选项(H3C好像是通过option43来实现的,不过差不多)来实现的,废话不多说 直接讲配置。
配置,定义供应商类别
添加对话框里名称和描述自定义,这边的二进制需要注意标准格式01 22 22 22 22 20 ,我的理解是这边输入的是点分十进制的ip地址格式。
添加完成后,需要对选项进行详细定义
这里对数据类型为ip地址格式,当然可以选择其他格式,但是要和我们前面定义对二进制格式匹配。我们这里选择“ip 地址” 。其中的代码 是指这个选项在所有选项里的排列编号,记住不要和其他已经编好的编码重复。
ip地址这边留空
配置选项,同配置option 43
需要在高级选项里才能调出自定义的选项。最后输入正确的无线控制器(AC)的ip
完成option 138 的配置。
内网不能通过外网来访问内网的服务器原因分析(外网可以)
环境如下:
外网IP:218.94.2.137
局域网:A机器192.168.1.100 B机器192.168.1.101
A机器作为服务器,通过88端口提供了一个WEB服务,路由器上也设置了88端口映射到A这台机器。
B机器作为一般的内网客户端。
现在:
B上的浏览器通过外网IP访问A上的WEB服务 222.188.91.252:88,路由器通过端口映射转发给A服务器,这时候A服务器收到的IP包的源地址是192.168.1.101,他们采用的协议是TCP,TCP建立连接需要三次握手,这时候A服务器收到连接请求,回复一个应答包,目的IP是192.168.1.101,源IP是192.168.1.100,因为两个IP都是局域网的,所以路由器不经过封装,而是直接转发。
所以,B服务器收到的应答包源IP跟B服务器发送的请求包目的IP不一样,所以包被丢弃了。
A服务器一直等B机器再次应答,但B机器丢弃了那个包,所以一直等不到,结果连接失败了
Linux DHCP Server 配置给FIT AP 使用的option 138
方案介绍
通过在Linux 上配置DHCP Server为AP提供IP及option 138选项。
2.2 配置思路
1) 下载、安装DHCP Server 相关程序。
2) 调试基本的dhcp启动服务、并验证能否获取ip。
3) 配置option 138。
2.3 配置文件(主要为红色加粗部分)
CentOS
Vi dhcpd.conf
ignore client-updates;
ddns-update-style ad-hoc;
option acip code 138 = string;
subnet 2.2.2.0 netmask 255.255.255.0 {
# — default gateway
option routers 2.2.2.254;
option subnet-mask 255.255.255.0;
# — AC ip
option acip 01:01:01:01;
# — pool
range dynamic-bootp 2.2.2.20 2.2.2.39;
default-lease-time 21600;
max-lease-time 43200;
}
以十六进制格式表示IP,“01:01:01:01为AC Loopback 0 IP地址的十六进制,也就是说在配置时只需把自己的AC Loopback 0 IP地址X.X.X.X换算成十六进制替换掉即可。
关于这个配置option的方法我在一篇英文文档中看到了另外两种方法,就是定义变量acip为专门的IP类型,不过未测试,有条件有机会的朋友可以测试下,顺便留个言 通知一下哦
option acip code 138 = ip-address
option acip 192.168.1.1
option acips code 200 = array of ip-address;
option acips 10.20.10.1, 10.20.11.1;