软路由这种东西还是用openwrt更方便,不过出于折腾的目的,我还是想试试使用别的发行版,比如比较轻量级的alpine。
(未完待续)
先说下大概的网络环境。我在我的神船笔记本上装了一个Proxmox VE,里面有若干虚拟机和容器。当前的网段为192.168.31.0/24,网关为openwrt路由器。为了方便PVE下的虚拟机和容器的管理,我打算再为它们分配一个10.114.0.0/16网段。我创建了一个alpine容器作为网关,分配了两个接口,地址分别为192.168.31.231和10.114.0.1。目前,新的网段已经能够实现内网连接,但是还不能连上192网段,更不用说互联网。
PVE和alpine的10网段设置:
alpine安装ssh:
apk add openssh-server rc-update add sshd service sshd start
如果要通过root用户来登录ssh,则还需要在/etc/ssh/sshd_config中加入[PermitRootLogin yes],再重启sshd。
要访问10网段,有两种方法,一是在192网段的路由器上设置route,二是通过nat来进行端口映射。
先讲第一种。首先开启转发,在alpine中编辑/etc/sysctl.conf,添加一行[net.ipv4.ip_forward = 1],然后运行[sysctl -p]。如果sysctl不会在开机时启动,则需要运行[rc-update add sysctl]。
进入192网段的路由器,编辑/etc/config/network,添加静态路由:
config route option interface 'lan' option target '10.114.0.0' option netmask '255.255.0.0' option gateway '192.168.31.231'
然后运行[service network restart],重启网络即可。
使用nat需要安装iptables:
apk add iptables rc-update add iptables /etc/init.d/iptables save service iptables start
设置动态nat,其中eth0是192.168.31.0/24网段:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE service iptables save
设置端口转发,例如把1222端口转发到10.114.1.2的22端口:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 1222 -j DNAT --to 10.114.1.2:22 service iptables save