Gateway
batman提出宣布互联网连接的可用性。您可以使用gateway类选项(-g-down/up)来告诉batman有多少带宽可用。您可以指定下载和上传速度-batman将选择最近的网关类来表示您的速度并在网络中传播。以下示例应说明用法:
batmand -g 5000 [interface]
如:batmand -g 5000 eth0
-g 5000
设置了batman-adv
的生成树(Generation Time)为5000毫秒(或5秒)。生成树是一个重要的参数,它决定了路由信息在网络中传播的速度。较小的值会更快地传播路由信息,但也可能导致更多的网络流量。
这个命令会将eth0
接口上的batman-adv
生成树设置为5000毫秒。
语法非常灵活,并允许所有这些值成为网关类49。
当然,您应该输入代表您的连接速度的值。
您的网关将打开一个新的接口gate0并设置正确的路由条目。所有batman互联网客户端都将连接到网关,这为他们自己的gate0接口提供了免费IP。到网关的流量被封装在UDP数据包中,并被发送到端口4306(它不应该被防火墙阻止)。在从互联网返回的路上,网关也封装了流量。
这种行为允许网关维护人员区分网格内的流量和应该进入互联网的流量。所有过滤/缓存/流量整形都可以在gate0接口上完成。
此外,您必须确保网关允许转发,并且防火墙伪装所有通过gate0的流量。
GatewayClient
您可以告诉batman注意已宣布的网关,并通过路由类选项(-r)连接到它们。此选项允许您影响将要选择的网关。目前有三种模式可供选择:
batmand -r 1 [interface]
这种模式被称为“快速互联网连接”,因为它在选择网关之前考虑了链路质量和广告中的网关类别。一旦选择了网关并建立了隧道,batman将尽可能长时间地保持隧道畅通,以免破坏您的状态连接。
batmand -r 2 [interface]
这种模式在选择时只考虑到网关的链路质量,因此被命名为“稳定的互联网连接”。这也将使隧道尽可能长时间地开放。
batmand -r 3 [interface]
这种模式也只考虑链路质量,但一旦找到另一个链路质量更好的网关(快速切换),就会破坏已建立的隧道。
batmand -r (number between 3 and 256) [interface] 此模式也只考虑链路质量,但只要此网关的TQ值比当前选择的网关好$number,就切换到另一个网关(后期切换)。 选择网关后,batman将创建gate0接口,并尝试从网关获取IP。隧道结构允许batman观察互联网连接,因为所有流量都通过。
Tuning
为了更灵活,更好地集成到不同的设置和环境中,batman有一个运行时接口,你可以连接到它。你可以在飞行中改变batman的行为,并适应不断变化的需求。
例如,你宣布了互联网,但你发现你的互联网连接断了,所以你可以告诉batman停止宣布网关类:
batmand -c -g 0
你甚至可以说:我也试着通过这个网格上网:
batmand -c -r 1
稍后,您将再次停用它并重新激活网关公告:
batmand -c -r 0 && batmand -c -g 5000
或者只需一步:
batmand -c -g 5000
如果你知道你想使用一个特定的网关,你可以使用首选网关选项(-p)来指定它。如果蝙蝠侠找到了给定的网关,它会使用它,否则它会根据路由类别选择一个网关(如果没有给定路由类别,则默认为路由类别1)。
例如:
batmand -c -p 1.2.3.4
也可以在启动时提供首选网关选项。
如果有许多用户连接到网关,则网关上的CPU负载会更高,因为它必须同时维护与多个网关客户端的隧道连接。为了减少负载,您可以使用batgat内核模块,该模块将在内核空间内进行隧道传输。您可以像加载任何其他内核模块一样加载它。查看内核日志以查看其启动消息:
batgat: [init_module:96] batgat loaded rv959 batgat: [init_module:97] I was assigned major number 252. To talk to batgat: [init_module:98] the driver, create a dev file with 'mknod /dev/batgat c 252 0'. batgat: [init_module:99] Remove the device file and module when done.
现在模块已加载,但处于非活动状态。当您启动batmand时,守护进程将自动查找一个文件“/dev/batgat”来与内核模块通信以激活它。如果您运行的是devfs(在linux 2.4上)或udev(在linux 2.6上),则该文件应由内核生成。如果没有生成文件,您可以按照日志中的说明自行创建该文件。当batmand找到这个文件时,将使用内核模块。
注意:不要对脚本中的主要数字进行硬编码。这个数字是由内核分配的,可能因系统而异,甚至因引导而异。您可以从proc文件系统中检索当前编号:
cat /proc/devices | grep batgat