我试着用DNAT做实验。我找到了一个教程这里。其中包括以下一句:
这是在PREROUTING链中完成的,就像数据包进来时一样;这意味着Linux盒本身上的任何其他东西(路由、数据包过滤)都会看到数据包到达它的“真实”目的地。
我想问作者最后一部分,即anything else on the Linux box itself will see the packet going to its 'real' destination是什么意思?
我尝试了一个测试,其中我有一个虚拟设备( tap ),我将传入的ICMP数据包重定向到那个tap设备(我的tap设备地址是10.0.4.1/2
我有两个网络,我想要彼此分开(没有相互路由)。我使用一个Linux主机作为路由器,我有一个Juniper交换机作为交换机(很明显)。我在Linux路由器上的局域网接口是eth1,所以我创建了一个名为eth1.2的VLAN,并在一个单独的子网中给它一个IP。
eth1 => 192.168.1.1/24
eth1.2 => 192.168.2.1/24
我已经配置了juniper,这样就有两个VLAN,默认和wifi。我执行了以下命令:
set vlans wifi vlan-id 2
set interfaces ge-0/0/12.0 unit 0 family ethern
在我的机器上,我有两个接口:wlan0 (默认路由)和tun0。tun0接口只是一个本地网络,它的ip范围是172.16.150.0/24,我的机器的(机器A) IP地址是172.16.150.1,另一个机器的(机器B) IP地址是172.16.150.128。我设置了一个wifi热点,它为我创建了另一个接口ap0。我想通过机器B从接口ap0路由所有流量(因此网关应该是172.16.150.128)。
$ ip route
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.179 metric 1024
172.16.150.