联系电话: 18171260050

技术文档

  • 13,Nov,2024

代理 ARP 作为桥接的替代方案

示例:代理 ARP 作为桥接的替代方案
如果希望远程节点看起来像是在本地 LAN 上(即,拥有本地 LAN 子网内的 IP 地址),则可以在本地节点设置网桥,如桥接示例中所述。但是,设置网桥相当复杂,如果只需要单播 IP 流量即可工作,而不需要广播或非 IP 流量,则可以使用操作系统的代理 ARP功能。

由于我们只使用单播 IP 流量,因此代理 ARP 可在路由器和交换机模式下工作。

概述
网络设置如下:

办公室局域网,接口 eth0 上的局域网使用范围 192.168.1.0/24。办公室节点使用地址 192.168.1.2。
公路战士,使用地址 192.168.1.123。
办公室的 tinc 配置
host# cat /etc/tinc/vpn/tinc.conf
Name = office
#Optional:
#Mode = switch

host# cat /etc/tinc/vpn/tinc-up
#!/bin/sh

ifconfig $INTERFACE 192.168.1.2 netmask 255.255.255.255
route add 192.168.1.123 dev $INTERFACE
echo 1 >/proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 >/proc/sys/net/ipv4/conf/$INTERFACE/proxy_arp

host# ls /etc/tinc/vpn/hosts
office  roadwarrior  ...

host# cat /etc/tinc/vpn/hosts/office
Address = 123.234.123.42
Subnet = 192.168.1.0/24
-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----

host# cat /etc/tinc/vpn/hosts/roadwarrior
Subnet = 192.168.1.123
-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----
道路战士的 tinc 配置
host# cat /etc/tinc/vpn/tinc.conf
Name = roadwarrior
ConnectTo = office
#Optional:
#Mode = switch

host# cat /etc/tinc/vpn/tinc-up
#!/bin/sh

ifconfig $INTERFACE 192.168.1.123 netmask 255.255.255.0
当然,主机配置文件与办公节点上的配置文件相同。

自动添加路线
在上面的配置中,tinc-up办公室节点的脚本已硬编码了到 roadwarrior 地址的路由。要让 tinc 自动添加必要的路由,请 route add从tinc-up 脚本中删除该命令,并添加此subnet-up脚本:

host# cat /etc/tinc/vpn/subnet-up
#!/bin/sh
[ "$NAME" = "$NODE" ] && exit 0
ip route replace $SUBNET dev $INTERFACE