具有自定义逻辑的网桥/路由器

我有一个带有3个网络适配器的Linux机器,我要对其进行如下配置:

  1. 适配器A连接到计算机A
  2. 适配器B连接到计算机B
  3. 适配器C已连接到Internet。具体来说,到someserver.com

我要达到的目标:

  1. 来自A的所有流量都将进入Internet
  2. 在适配器B上定义一个特殊的“秘密端口”
  3. 来自计算机B的TCP流量进入“秘密端口”上的“ someserver.com”,将伪装其源IP出现,就像它来自计算机A一样
  4. 从“ someserver.com”返回到计算机A的TCP流量到#3中使用的同一端口,将重定向到计算机B。

我需要实现路由器还是网桥?我可以仅通过配置NetFitler / ip表来执行此操作,还是应该实现一些代码?如果是代码,我应该在哪一层与IP堆栈集成?

玛蒂娅·娜丽丝(Matija Nalis)

对于常规访问,您必须使用MASQUARADE / SNAT(取决于您在C上的IP地址是动态还是静态)。

假设当前情况是您的计算机A具有静态IP地址a.a.a.a,而计算机B具有静态IP地址b.b.b.b两者都有到计算机C的默认网关而且Someserver.com具有静态IP地址r.r.r.r,秘密端口为pppp

您可以将计算机C配置为路由器,它将具有通往Internet接口C的默认路由(它已经通过静态配置或通过PPPoE等动态设置了)。本身就能实现1.

现在,您有两种可能性:

  1. 使计算机成为路由器。然后,更改计算机B的配置,使其默认路由通过计算机A(而不是以前的计算机C),并按如下方式配置计算机A

    iptables -t nat -s b.b.b.b -d r.r.r.r -p tcp --dport pppp -j SNAT --to a.a.a.a
    

    这将使从源IPb.b.b.b到目的地IPr.r.r.r和目标端口的所有TCP数据包都pppp像它们来自哪里一样假装a.a.a.a,从而完成3,并且someserver.com的流量将返回到源地址(a.a.a.a),该地址将由计算机解码并送回计算机乙(因此完成4

    这比较容易,但是要求您的计算机B运行的操作系统能够执行此类NAT策略。

  2. 计算机A更改为具有私有IP 10.0.1.100/24,将计算机B更改为具有私有IP 10.0.2.100/24然后在计算机C上执行以下操作:

    ip addr add a.a.a.a/nn dev ifaceC
    ip addr add b.b.b.b/nn dev ifaceC
    iptables -t nat -s 10.0.1.100 -j SNAT --to a.a.a.a
    iptables -t nat -s 10.0.2.100 -d r.r.r.r -p tcp --dport pppp -j SNAT --to a.a.a.a
    iptables -t nat -s 10.0.2.100 -j SNAT --to b.b.b.b
    

    nn您的网络掩码在哪里,并且ifaceC接口C的名称这将使计算机甲B计算机在私人范围,因此允许计算机C到NAT计算机阿a.a.a.a(所以它的行为就像之前),并且NAT计算机乙要么a.a.a.a(如果DST = r.r.r.r,DPORT =pppp条件被满足),或b.b.b.b(否则)。

这不需要计算机A计算机B上的任何特殊支持,但是会将它们放在NAT之后,这可能会影响其他一些因素。

当然,在这个时代,应该指出的是,上面的方法仅适用于良好的IPv4地址(最后一个正在迅速用完),而不适用于IPv6

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

流星铁路由器:自定义ID路由

来自分类Dev

Lumen/Laravel - 使用自定义路由器

来自分类Dev

Vue 路由器链接和自定义事件

来自分类Dev

将Netgear路由器变成有线网桥

来自分类Dev

创建内部具有逻辑的自定义属性

来自分类Dev

具有自定义逻辑的可重用UITableViewCell

来自分类Dev

创建内部具有逻辑的自定义属性

来自分类Dev

具有验证的MVC自定义路由

来自分类Dev

具有单个资源错误的自定义路由

来自分类Dev

具有单个资源错误的自定义路由

来自分类Dev

AngularJS UI路由器解析不返回自定义值

来自分类Dev

流星:使用铁路由器和自定义身份验证问题

来自分类Dev

在兄弟状态之间共享ui路由器“自定义数据”

来自分类Dev

AngularJS UI路由器解析不返回自定义值

来自分类Dev

使用AngularJS ui路由器会破坏自定义引导主题的行为

来自分类Dev

如何将自定义路由器传递到Symfony捆绑包中的服务?

来自分类Dev

通过我的自定义路由器唤醒局域网

来自分类Dev

从自定义路由器(Raspberry Pi)唤醒局域网

来自分类Dev

配置ASUS路由器以在LAN上使用自定义Bind9和DHCPd

来自分类Dev

具有自定义格式的XML编写器

来自分类Dev

具有自定义属性获取器的KVO通知

来自分类Dev

具有自定义参数的样式触发器

来自分类Dev

具有自定义URL的WAMP服务器

来自分类Dev

具有自定义格式的XML编写器

来自分类Dev

具有自定义列表的Web表单填充器

来自分类Dev

具有相同修改的自定义控件验证器

来自分类Dev

AngularJS angular ui路由器-将自定义数据传递给控制器

来自分类Dev

具有部分解释的路由的Emberjs路由器

来自分类Dev

具有多个VCS根的目标的自定义Teamcity逻辑分支名称

Related 相关文章

热门标签

归档