一:宿主机篇:
1.创建macnet 我的路由是192.168.10.1,请根据自己的情况修改,IPv6默认是内网地址,不用动; 命令行创建macvlan
如果需要公网 ipv6,可以通过以下方式确认自己的公网 ipv6 网段:
ip -6 route show
私网 docker网络创建方式如下:
docker network create -d macvlan --subnet=192.168.10.0/24 --gateway=192.168.10.254 --subnet=fe80::/64 --gateway=fe80::1 -o parent=eth0 macnet
2. 修改/etc/network/interfaces,主要是添加标红部分,命令是:vi /etc/network/interfaces,按i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出
# interface file auto-generated by buildroot
auto eth0
iface eth0 inet static
address 192.168.10.250
netmask 255.255.255.0
gateway 192.168.10.1
dns-nameservers 192.168.10.1
iface eth0 inet dhcp
3.编辑/etc/rc.local
命令行:vi /etc/rc.local
按i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出
在exit 0 前面,加入下面的代码:
ip link set eth0 promisc on
ip link add macvlan_host link eth0 type macvlan mode bridge
ip addr add 192.168.10.250 dev macvlan_host
ip link set macvlan_host up
ip route add 192.168.10.254 dev macvlan_host
重启一下,宿主机修改完成。
二、openwrt篇
1.拉取镜像和创建container
(1)建议的镜像:guoshhsz/lede-aarch64。
命令行举例:
docker pull guoshhsz/lede-aarch64:latest
(3)创建container (可先用docker images,查看确认具体的image名称) 命令行:
docker run --name openwrt --restart always -d --network macnet --privileged guoshhsz/lede-aarch64 /sbin/init
2.修改docker里的openwrt这部分设置了回复可见,主要是op里面的一些设置。
(1)命令行进入到container里,
docker exec -it openwrt /bin/sh
(2)修改IP、dns、gateway等信息;
命令行: vi /etc/config/network 按i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出
修改:
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.10.254'
option gateway '192.168.10.1'
option dns '192.168.10.1'
option netmask '255.255.255.0'
option ip6assign '60'
(3)修改/etc/sysctl.conf
命令行:vi /etc/sysctl.conf 按i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出
添加下面的内容,这里是获取ipv6的关键
# Defaults are configured in /etc/sysctl.d/* and can be customized in this file
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.accept_ra=2
(4)修改/etc/rc.local
命令行:vi /etc/rc.local 按i,用键盘箭头移动光标进行修改,然后esc,输入:wq,保存和退出
添加以下内容到 exit 0前面
ip link set eth0 promisc on
ip link add link eth0 wan_mac0 type macvlan
ip link set wan_mac0 address 02:42:00:11:7C:01
ip link set wan_mac0 up
(5)openwrt重启reboot ,在浏览器输入 192.168.10.254,就可以进到管理界面了,也可以用winscp,直接IP用户密码登录了。如果是用来做旁路由,请去lan-关闭DHCP(忽略接口),IPv6的路由也全改为禁用,其他的,自己折腾吧,说不了那么多了
(6)修改IPtable(这部分,建议先不修改,因为我的并没有影响,如果出现不能上网,在去openwrt防火墙添加规则)
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
也可以尝试(有桥接存在的情况下)
iptables -t nat -I POSTROUTING -o br-lan -j MASQUERADE
如果是PPPoE拨号的
iptables -t nat -I POSTROUTING -o pppoe-wan -j MASQUERADE
如果使用usb网卡需要在防火墙里添加如果是自动获取ip的
iptables -t nat -I POSTROUTING -o eth1 -j MASQUERADE
三、主路由的修改
作为旁路由:
dhcp里的网关改为:192.168.10.254
dns服务器:改为:192.168.10.254(建议先在openwrt设置号adg或者dnsmasq之类的)。
电脑网卡禁用,然后重开获取dhcp。
至此,ipv6,ipv4都能获取到了,zerotier也可以有ipv6 了