小型网络科学上网方案之ipv6篇
简述
这是适合小型网络(公司办公室或家庭)的”科学上网”方案之一的ipv6方案,此方案是我极同事搞的,我这里主要是学习,然后做过在路由器上封来自于公网ipv6网往小型网络内部的机器(都有正式ipv6地址)的访问。
点评下:
思路灰常灵活,非常适用于办公网、家庭网的“科学上网”方案
所用资源
- 路由器
- 极一(跑openwrt)
- ip地址(私网):10.0.0.5
- ip地址(公网):3.3.3.3
- 虚机
- IPV6
- 2.2.2.2
- dnscrypt-wrapper(optional)
- 用来配合 dnscrypt-proxy 直连,破除 dns 污染
- DNSCrypt-proxy(optional)
- 解决某些域名被 dns 污染的问题。
- HE的账号
地址 | https://www.tunnelbroker.net/ |
账号 | xxxxxx |
[email protected] | |
prefix | 2001:xxx:xxxx::/48 |
server’s ipv4 address | 1.1.1.1 |
server’s ipv6 address | 2001:xxx:xx:xxx::1/64 |
client’s ipv4 address | 2.2.2.2 |
client’s ipv6 address | 2001:xxx:xx:xxx::2/64 |
原理
- 通过虚机(我司在oneasiahost买的,ip:2.2.2.2)从HE(HURRICANE ELECTRIC INTERNET SERVICES)的IPv6 Tunnel Broker上申请一段免费的ipv6地址(/48的)
- 然后通过小型网络内的路由器(ip是3.3.3.3)分配给局域网的客户端
- 路由器通过sit tunnel打到虚机2.2.2.2上
- 虚机2.2.2.2上起iptables,将sit过来的包(来自3.3.3.3)都转给HE(ip这里是:1.1.1.1)
详细配置
客户端
简单说,客户端只要接入此小型网络,并在本地启用了ipv6协议即可。
路由器
sit tunnel(文件/etc/config/network里)
1
2
3
4
5
6config interface 'sit1'
option proto '6in4'
option peeraddr '2.2.2.2'
option ip6addr '2001:xxx:xx:xxx::2/64'
option ip6prefix '2001:xxx:xxxx::/48'
# option defaultroute '1'iptables
1
2
3# 允许sit1对端的机器的包出入路由器
iptables -A INPUT -s 2.2.2.2/32 -i 6in4-sit1 -p ipv6 -j ACCEPT
iptables -A OUTPUT -d 2.2.2.2/32 -o 6in4-sit1 -p ipv6 -j ACCEPTip6tables
1
2
3
4
5
6ip6tables -A INPUT -i 6in4-sit1 -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -i 6in4-sit1 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 128 -m limit --limit 30/min -j ACCEPT
ip6tables -A FORWARD -i 6in4-sit1 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
ip6tables -A OUTPUT -o 6in4-sit1 -p ipv6-icmp -j ACCEPT
虚机
iptables中的NAT表中
1 | iptables -A PREROUTING -s 3.3.3.3/29 -p ipv6 -j DNAT --to-destination 1.1.1.1 |
起 dnscrypt-wrapper:
1 | yum -y install libsodium libevent; |
DNSCrypt-proxy
1 | wget --no-check-certificate https://download.dnscrypt.org/dnscrypt-proxy/old/dnscrypt-proxy-1.4.0.tar.bz2; |
这里的10.0.0.7是私网的一台机器,在私网的dns服务器上可以把被污染了的域名的dns解析请求forward到10.0.0.7的53端口上来即可解决dns污染问题。
HE
HE无需专门配置。