我正在使用ubuntu11.10,并使用以下命令创建了一个tun / tap接口
openvpn --mktun --dev tun0
ip link set tun0 up
ip addr add 10.10.10.1/24 dev tun0
route add 10.10.10.1/24 dev tun0
我有另一个界面
eth0 10.80.1.87
我想将从tun0接收的数据包重定向到eth0。如何在Ubuntu之上做到这一点?
答案 0 :(得分:5)
作为对其他两个好答案的补充,请记住:
答案 1 :(得分:3)
默认情况下,IP转发按照TCPIP标准的要求关闭。 你打开它: echo 1>的/ proc / SYS /净/的IPv4 / IP_FORWARD
然后转发将工作。您似乎在帖子中添加了几行,因此我无法确定您的网络配置。
如果tun0上的数据包带有eth0上的目标,则现在将转发它。您的Ubuntu机器将作为路由器。它不会盲目地将进入tun0的数据包放到以太网上。
因此,如果你在tun0上的IP地址是10.10.10.1,那么另一台主机,比如tun0上的10.10.10.45,必须配置一个10.10.10.1的网关(至少对于10.80.1.0/24)。然后,如果它有一个数据包,例如10.80.1.234,它将首先将它转发到10.10.10.1,你的Ubuntu机器将它转发到以太网上的10.80.1.234。接下来,该机器将回复10.10.10.45。必须将其配置为使用10.80.1.87作为该主机/网络的网关。如果所有配置都正确,它将起作用。
在10.80.1.0/24上配置机器上正确网关的另一种方法是启用ip伪装。然后你的ubuntu机器将伪造FROM地址并替换10.80.1.87作为10.10.10.45曾经的源。
答案 2 :(得分:2)
听起来你想要configure bridge between two network interfaces还有ubuntu特定手册here(转到:桥接)
$ sudo apt-get install bridge-utils
# vim /etc/network/interfaces:
auto lo iface lo inet loopback auto br0 iface br0 inet static address 192.168.0.10 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
$sudo /etc/init.d/networking restart