首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置linux路由/过滤以将数据包发送出一个接口,通过桥接器发送到同一盒上的另一个接口

问如何配置linux路由/过滤以将数据包发送出一个接口,通过桥接器发送到同一盒上的另一个接口
EN

Server Fault用户
提问于 2012-07-27 17:39:25
回答 3查看 3.4K关注 0票数 0

我在试着测试以太网桥接设备。我在一个linux机器上有多个以太网端口。我想在同一个子网上发送一个接口(比如eth0与IP 192.168.1.1 )到另一个接口,比如IP 192.168.1.2的eth1。

我意识到,通常情况下,您不会在同一个子网上配置两个接口,如果您直接将内核路由到每个接口,而不是通过连接。我如何才能覆盖这个行为,这样到192.168.1.2的流量就会退出192.168.1.1接口,而visa-反过来呢?

提前感谢!

EN

回答 3

Server Fault用户

发布于 2014-04-03 07:37:07

使用网络名称空间。它感觉像是在运行VM,但它不是VM,只是看上去像一个单独的IP堆栈。

代码语言:javascript
复制
ip netns add otherhost
ip netns exec otherhost /bin/bash

这将在otherhost网络命名空间下打开一个shell。如果您检查其中的网络配置,您将发现没有接口。就像你在运行另一台主机。

现在,将eth1接口移动到otherhost网络命名空间:

代码语言:javascript
复制
ip link set eth1 netns otherhost

现在,otherhost命名空间有您的eth1接口。配置它,就像它是一个单独的主机一样,并在默认的网络命名空间上对eth0进行同样的配置。事情就是这么简单。

注意,如果将所有shell关闭为otherhost,则网络名称空间将消失,其接口将移回默认的网络命名空间中。

票数 3
EN

Server Fault用户

发布于 2015-07-10 20:23:03

https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

accept_local -布尔接受具有本地源地址的数据包。结合适当的路由,这可以用于在两个本地接口之间通过线路引导数据包,并使它们正确地被接受。缺省假

使用sysctl -w net.ipv4.conf.eth0.accept_local=1

把包通过电线发送出去。

票数 1
EN

Server Fault用户

发布于 2012-07-31 14:31:23

试一试

代码语言:javascript
复制
#mark packets from 192.168.1.1 to 192.168.1.2
iptables -t mangle -I OUTPUT -s 192.168.1.1 -d 192.168.1.2 -j MARK --set-mark 11
#mark packets from 192.168.1.2 to 192.168.1.1
iptables -t mangle -I OUTPUT -s 192.168.1.2 -d 192.168.1.1 -j MARK --set-mark 12

#add routing table for 192.168.1.1 
ip ru a fwmark 11 table 11
ip r a 192.168.1.2 dev eth0  t 11

#add routing table for 192.168.1.2
ip ru a fwmark 12 table 12
ip r a 192.168.1.1 dev eth1  t 12

man ip,man iptables获得更多信息

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/411921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档