我试图configuration一个Linux服务器作为网关/路由器,但我无法得到它的工作,我设法find的所有信息是NAT相关的。
我有一个公共的IP网关和后面的设备,所以我想要网关简单地路由数据包到互联网 – 再次:没有NAT!
我已经设法成功地访问互联网的网关(这只是一个configurationIP和GW的问题),它后面的计算机可以与它通信。
[编辑:更多信息]
这实际上是一个IPv6块( 2800:40:403::0/48 )(但是我发现大多数实用程序和指令都可以很容易地从IPv4调整到IPv6)。
服务器也有端口:
2800:40:403::1/48 2800:40:403::3/48 其中一台电脑通过交换机连接到它。
2800:40:403::7/48 服务器上的wan界面可以ping通www.google.com,不会有任何问题。 服务器和客户端上的lan接口可以相互ping通,没有问题(以及SSH等)。
我已经尝试将服务器设置为客户端的默认网关,没有运气:
client # route -A inet6 add default gw 2800:40:403::3 dev eth1 server # cat /proc/sys/net/ipv6/conf/all/forwarding 1
我不想要任何过滤/防火墙/等,只是简单的路由。
谢谢。
我假设你有一个公用的IP地址为你的广域网端,和一个局域网端的块,如下所示:
ISP-----ROUTER ETH0/ROUTER ETH1------SWITCH------PCs
您需要为WAN接口提供一个公共IP地址,ISP会通过此IP地址为您提供的子网路由
只需要将转发位设置为1
echo 1 > /proc/sys/net/ipv4/ip_forward
为了使它持久化,你需要编辑/etc/sysctl.conf,find这一行:
net.ipv4.ip_forward=0
并将其更改为
net.ipv4.ip_forward=1
如果评论,请务必取消注释。
现在,你需要做的就是将你的电脑的默认网关设置为指向linux路由器,并假设ISP已经通过路由你的局域网的公共ip地址来完成他们的工作。
现在。 如果你只有一个公共地址块,那么你不需要寻找路由,只需要将ISP连接到一个交换机,将所有的PC连接到交换机,就可以完成了。 如果你可以指定更多的细节,我们可能会帮助你更多。
编辑:
你说你的接口configuration如下:
wan: 2800:40:403::1/48 lan: 2800:40:403::3/48
什么是您的默认网关? 我猜2800:40:403 :: 2/48
它不应该像这样工作。 我还没有与IPv6合作,但你有一个子网中的两个接口,我想我可以让你configuration,但是说一个Cisco路由器至less会警告你重叠
最简单的解决scheme是所有的PC都连接到ISP的交换机。
真正的解决办法是告诉ISP在他们的广域网地址空间上给你一个公共地址,并通过该地址路由该块。 那么你所要做的就是configuration:
wan: ip-from-their-space lan: 2800:40:403::1/48
所有的LAN PC都应该指向那个默认的PC。
你有一个非常大的地址空间,你可以做的是进一步子网。
编辑:
如果你真的想连接接口,你可以做任何IP没有关系。 你将只有一个IP地址的接口。
所有你需要做的就是安装bridge-utils,然后你这样configuration它:
ip add flush dev eth0 ip add flush dev eth1 brctl addbr br0 brctl addif br0 eth0 eth1 ip link set dev br0 up
然后在br0上configuration你的IPv6地址,现在你有一个透明的网桥。 它仍然不能解决你的IPv4问题,但你可以这样解决:
在br0和NAT上这样configurationIPv4公私地址:
iptables -t nat -A POSTROUTING -j SNAT -s / –to-source
转发是否启用?
echo 1 > /proc/sys/net/ipv4/ip_forward