网吧路由的一点问题!各位高手帮忙{{懂ROS软路由的进}}

2024-12-26 19:35:03
推荐回答(3个)
回答1:

持续不断的负载均衡

介绍

这个例子是负载均衡的改进版本。它增加了连续的用户会话,即一个特定用户所有出去的连接使用同一个源IP地址。请看下列拓扑图:

配置代码:

/ ip address

add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=Local

add address=10.111.0.2/24 network=10.111.0.0 broadcast=10.111.0.255 interface=wlan2

add address=10.112.0.2/24 network=10.112.0.0 broadcast=10.112.0.255 interface=wlan1

/ ip firewall mangle

add chain=prerouting in-interface=Local connection-state=new nth=1,1,0 \

action=mark-connection new-connection-mark=odd passthrough=yes

add chain=prerouting in-interface=Local connection-mark=odd action=mark-routing \

new-routing-mark=odd passthrough=no

add chain=prerouting in-interface=Local connection-state=new nth=1,1,1 \

action=mark-connection new-connection-mark=even passthrough=yes

add chain=prerouting in-interface=Local connection-mark=even action=mark-routing new-routing-mark=even passthrough=no

/ ip firewall nat

add chain=srcnat connection-mark=odd action=src-nat to-addresses=10.111.0.2 \

to-ports=0-65535

add chain=srcnat connection-mark=even action=src-nat to-addresses=10.112.0.2 \

to-ports=0-65535

/ ip route

add dst-address=0.0.0.0/0 gateway=10.111.0.1 scope=255 target-scope=10 routing-mark=odd

add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10 routing-mark=even

add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10

原理与命令讲解

这里我们来看看持续的负载均衡的基本原理:

通过上面的图,我们从所有的连接中,提取每次新建立的连接connection=new,并对他们做nth的标记,将这些连接中相关的奇数(odd)包和偶数(even)包分离开,并走两个不同的网关(GatewayA与GatewayB)出去。这样就能保持每次连接的持续性。

首先我们通过对每段代码做分析,理解他们是怎么运行

IP 配置:

/ ip address

add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=Local

add address=10.111.0.2/24 network=10.111.0.0 broadcast=10.111.0.255 interface=wlan2

add address=10.112.0.2/24 network=10.112.0.0 broadcast=10.112.0.255 interface=wlan1

路由器的两个WAN口地址分别是10.111.0.2/24和10.112.0.2/24,LAN口的地址是192.168.0.1/24,内网网卡命名为LOCAL

Mangle配置

下面是通过nth来分配用户连接会话:

/ ip firewall mangle

add chain=prerouting in-interface=Local connection-state=new nth=1,1,0 \

action=mark-connection new-connection-mark=odd passthrough=yes

add chain=prerouting in-interface=Local connection-mark=odd action=mark-routing \

new-routing-mark=odd passthrough=no

首先,每隔一个包建立一个新的会话,并用“odd”做标记,因此所有属于同一会话的连续的数据包将被放到标记为odd的连接中,注意,我们将这些数据包传递给第二条和第三条规则(passthrough=yes)。第二条规则在prerouting链表将所有标记属于“odd”的连接放入routing mark的“odd”标记中,并将以上连接在此停止处理。

/ ip firewall mangle

add chain=prerouting in-interface=Local connection-state=new nth=1,1,1 \

action=mark-connection new-connection-mark=even passthrough=yes

add chain=prerouting in-interface=Local connection-mark=even action=mark-routing \

new-routing-mark=even passthrough=no

这两个规则将剩下的传输做之前的同样处理,并将剩下一半的传输标记为“even”。

NAT配置

/ ip firewall nat

add chain=srcnat connection-mark=odd action=src-nat to-addresses=10.111.0.2 \

to-ports=0-65535

add chain=srcnat connection-mark=even action=src-nat to-addresses=10.112.0.2 \

to-ports=0-65535

被标记为ODD的数据NAT为10.111.0.2,以EVEN为标记的数据NAT为10.112.0.2

路由配置

/ ip route

add dst-address=0.0.0.0/0 gateway=10.111.0.1 scope=255 target-scope=10 routing-mark=odd

add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10 routing-mark=even

被标记为ODD的数据用10.111.0.1为网关,同样,被标记为EVEN的数据从10.112.0.1这个网关出去。

/ ip route

add dst-address=0.0.0.0/0 gateway=10.112.0.1 scope=255 target-scope=10

最后,没有做任何标记的数据从10.112.0.2这个网关出去,也是给路由器一个默然网关。

如果是三条或者多条线路的负载均衡则需要修改NTH参数,比如是三条线路的设置修改为: nth=Every,Counter,Packet nth=2,3,0. 2,3,1. 2,3,2 ,共需要在mangle中添加三组规则。而三条以上则以持类推。在3.0中nth参数做了修改,去掉了counter属性,输入的时候我只需要设置Every,Packet两个参数。

VPN 局域网互相访问
在 IP Pool 里 加如一个 IP 段,例如 NAME 111 192.168.1.1-192.168.1.254

PPP>Profiles 里填加设置时 在 Local Address 和 Remote Address 里 选你 在IP Pool 里创建名字为 111 的 IP 段。

上网,不管单线还是双线,策略路由也好。在 防火墙 NAT 里头 +一条 192.168.1.0/24

也就是+了两条,一个是 192.168.0.0/24 这个是局域网。
一个是 192.168.1.0/24 VPN 的段,+上就能上网了。

让两个段互相可以访问,在防火墙 Mangle 里 填加一条General 里 Chain:postrouting Srs.Address 192.168.1.0/24 Action 里 Action :mark routing 192.168.0.0/24 选中 Passthrough

搞定。

回答2:

用一台路由可以互相通信
海蜘蛛路由可以添加扩展IP

有事Q我:251851491

回答3:

用一个互联地址就可以,ROS的端口支持多个IP给ROS2分配一192.168.12的地址,给ROS1分配一个192.168.13的地址