自建 6in4 Tunnel Server (iproute2)

IPv4下连IPv6有无数种解决方案,传统的6to4, 6in4, TEREDO…没兴趣讲优缺点,可以在wikipedia的页面上看看各家都用了啥。

TunnelBroker.net 应该是没IPv6的地方最流行的上IPv6的解决方案了。
如果你觉得它不爽,其实自己搞一个也没那么难。

上边wikipedia页面里说HE的技术实现是Unknown。其实自己试过一次大概都能知道应该往哪个方向去研究它的技术实现了。

贴一个我路由器上的IPv6 Tunnel信息。

首先,UBNT给我创建的interface是tun0;其次 Link encapsulation 是 IPv6-in-IPv4,也就是传说中的 6in4;再往下看,POINTOPOINT
再加上TunnelBroker的Example Configurations里给了一个iproute2的配置方法:

思路很简单了。

假设服务器端为S,用户路由为R,则两边的参数逻辑应该是:
S:

Remote: R.ipv4
Local: S.ipv4
V6 IP: S.ipv6
Route: v6子网/CIDR

R:

Remote: S.ipv4
Local: R.ipv4
V6 IP: R.ipv6
Route: ::/0 即默认路由

具体来说,假设你S的IP为1.1.1.1,可支配的IPv6 pool为 2400:1234:5678:9abc::/64,R的IP为2.2.2.2,上述的配置可能是:

S.ipv4 = 1.1.1.1
S.ipv6 = 2400:1234:5678:9abc:1000::1/80

v6子网/CIDR = 2400:1234:5678:9abc:2000::/80

R.ipv4 = 2.2.2.2
R.ipv6 = 2400:1234:5678:9abc:1000::2/80

命令还不会的,可以阅读Setup of point-to-point tunnel

接下来还有一个问题,我的公网不是固定IP怎么办?
简单。
对于S端来说,Remote依旧是R.ipv4,必须是确定的IP。
对于R端来说,Local可以是0.0.0.0。
每次R更换IP后,需要通知S来更新Remote。

再搞不定?
没问题,看我的github项目:https://github.com/sskaje/6in4

另外,Linode 可以申请IPv6的池子,可以是 /56 或者 /64,可以自建tunnel玩。

自建 6in4 Tunnel Server (iproute2) by @sskaje: https://sskaje.me/2016/01/create-your-own-tunnelbroker-net-iproute2/

Incoming search terms:

抛开路由为局域网内机器启用IPv6

支持IPv6这事情不一定非得要路由上配,局域网内只要有Linux机器能用IPv6就行。
这种事情做之前,对于完全不会的人和会的人都很简单,但对我这种稍微懂一点的,还没做可能就先想多了。

测试环境

公司
路由:TP-Link某老旧企业路由,不支持IPv6
Linux:Debian Jessie, 服务主机,兼顾dns,dhcp等等服务,LAN接口eth0
网络:北京联通家庭光纤 PPPoE
IPv6 服务:Tunnel Broker
其他软件:dnsmasq, dhcpd

Continue reading “抛开路由为局域网内机器启用IPv6” »

抛开路由为局域网内机器启用IPv6 by @sskaje: https://sskaje.me/2016/01/linux-ipv6-tunnel-and-advertise/

Incoming search terms:

UBNT EdgeRouter Lite 更换U盘

本文需要Linux基础,不会的还是找人帮忙吧。

EdgeRoute Lite 的磁盘性能实在不敢恭维,而且稳定性也堪忧。之前出现过好几次IO错误,都没当回事,凑合就不管了,最近一次重启,结果直接就起不来了。

拆机

拆机很简单,底下的两个螺丝卸掉就行。地线那个不用动。
底面

拆完之后就能看到一个小U盘了。

主板

u盘

算了下USB口和pcb板之间的缝隙大小,最后京东上能买的还有点名气的U盘也就一个台电的而已。我没买USB 3.0的,觉得用不上,现在有点后悔了。
后来帮同事刷机,买了3个3.0的,都没遇到下边挑U盘的情况。。。

创建新USB磁盘

下一步是要把固件写到U盘上。参考的项目是 https://github.com/vyos/emrk。相关操作是在Linux PC上执行的。

从官网下载固件:http://www.ubnt.com.cn/download/

下载得到的是一个tarball.

我找了个U盘,装了个debian的live cd.

装好U盘之后,先分区。
我的U盘磁盘设备是 sdc
debian的live cd默认没有parted,所以直接用fdisk了。基本命令如下(仅做示意,没有截图):

fdisk操作之前务必把已挂载的分区全下掉。

下一步格式化:
如果你没有 mkfs.vfat,可能需要安装 dosfstools

格式化命令如下:

最后一步,释放文件
命令文件:https://github.com/sskaje/emrk/blob/master/bin/emrk-extract-to-usb

操作命令

Console

我拿MacBook Pro+USB Console线搞的。推荐 OS X 下的串口工具 CoolTerm,下载地址:CoolTerm

需要配置 bit rates 为 115200

进去之后看到如下错误信息

搜了搜解决方案

比较不爽的是,重启后依旧会’Unable to use usb 0:1 for fatload‘。

解决方案是改bootcmd的env参数,使用setenv改完后,务必使用saveenv保存。

操作完成后就放心大胆地使用新的EdgeRouter Lite吧。

参考链接:https://community.ubnt.com/t5/EdgeMAX/New-U-Boot-image-for-better-USB-drive-compatibility/m-p/851038#M31382

IMG_3984

UBNT EdgeRouter Lite 更换U盘 by @sskaje: https://sskaje.me/2016/01/ubnt-edgerouter-lite-%e6%9b%b4%e6%8d%a2u%e7%9b%98/

Incoming search terms:

Debian Live USB Change Brightness on Thinkpad

Thinkpad X201 Tablet.
Debian 8.2.0 Live CD USB Stick.

Steps:
1 su to root

2 set brightness

Debian Live USB Change Brightness on Thinkpad by @sskaje: https://sskaje.me/2016/01/debian-live-usb-change-brightness-thinkpad/