【挖坑】尝试使用alpine作为旁路由

软路由这种东西还是用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

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注