2-Openwrt ipv6之-pppoev6客户端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2-Openwrt ipv6之-pppoev6客户端相关的知识,希望对你有一定的参考价值。

参考技术A pppoe拨号为wan上面的另一种方式,所以需要将uci里面的上网模式proto 改成pppoe

类似上面的pppoe拨号的启动脚本也在 ./lib/netifd/proto/ppp.sh 脚本里面的 ppp_generic_setup 函数

pppoe的uci在官网可以看到:
https://openwrt.org/docs/guide-user/network/wan/wan_interface_protocols

刚开始只会有ppp的进程:

等到pppoe-wan起来之后,才会自动启动odhcp6c进程

ubuntu上面启动pppoe-server, sudo pppoe-server -I eth0 -L 100.0.0.1 -R 100.0.0.100 -N 20 ,服务器IP为100.0.0.1,起始地址为从100.0.0.100开始分配。

这时候路由器设置成pppoe模式拨号,这时候路由器端的pppd进程会发送``PPP IPV6`消息去请求IP地址,请求成功之后,在ubuntu上面会出现一个ppp0的接口,路由器上面会生成一个pppoe-wan的接口。ubuntu的IP为100.0.0.1,路由器的IP为100.0.0.100

因为pppoe-wan端口没有MAC地址,所以没办法自己根据EUI规则生成一个本地地址,当pppoe添加了ipv6的选项之后

ubuntu上面会出现一个ppp0的端口,路由器可以正常ping 100.0.0.100

路由器上面会出现一个pppoe-wan的端口,路由器可以正常ping 100.0.0.1

PPP IPV6CP 请求成功之后会,两端都有各自的本地链路IPV6地址,后面就可以启动odhcp6c客户端去获取ipv6全球地址了。

ipv6的dhcpv6服务器是要建立在ppp0/pppoe-wan端口的基础上,所以要在ppp0拨号成功后,在路由器odhcp6c客户端的DHCP请求超时之前,ubuntu要启动在ppp0端口上的dibbler服务器。

修改

启动dibbler服务器

后面就是走正常的dhcpv6协议了,odhcp6c进程会在pppoe-wan启动之后自动被拉起来,开始请求dhcpv6地址。

ping本地链路地址的时候使用ping6指定端口

路由器支持ipv4和ipv6的pppoe在同一个会话pppoe-wan,也可以支持ipv4和ipv6在不同的会话,ipv4位于pppoe-wan,ipv6位于pppoe-wan2。

当在同一会话时,跟上面说到的配置一致

当在两个会话时,添加一个wan2,把wan的ipv6设置为0,wan6的ifname改成pppoe-wan2

OpenWrt关闭IPv6

IPv6可能会带来一些莫名其妙的问题,如果无IPv6的使用刚需(比如IPv6的DDNS),可将其关闭。

网络→接口,在LAN口的右侧点击编辑。

高级设置→IPv6分配长度,选择已禁用。

DHCP服务器→IPv6设置,DHCP v6服务选择已禁用,NDP代理选择已禁用。

以上是关于2-Openwrt ipv6之-pppoev6客户端的主要内容,如果未能解决你的问题,请参考以下文章

域名如何优先解析ipv6

在启用了IPV6的机器上获取客户端ipv4地址

OSX10.12搭建IPv6本地环境测试APP

Android5.0网络之ipv6

网络编程之一文读懂什么是IPv6

Ipv4 vs ipv6客户端识别