使用Linux建立IP隧道(2)

name {
keyword value;
keyword value;
..
}
关键字定义值后的分号是必须的,name后必须有完整的{}。Name可以有以下几个值:
 options:定义通用选项,例如端口号等信息;
 default:所有会话的默认值;
 session(可以为任意名,用于识别一个会话):指定该会话的特定值,用以覆盖default中的定义。
下面是作为作者实际运行环境中以服务器方式运行的vtund.conf的内容:
options { # bob.org,隧道IP地址为10.0.2.2
port 5000; # vtund服务器监听端口
ppp /usr/sbin/pppd;
ifconfig /sbin/ifconfig;
route /sbin/route;
firewall /sbin/ipchains;
# vtund需要调用的各种程序的路径信息;
}
# 默认会话选项
default {
type tun; #
proto udp;# 下层采用UDP协议
comp no; # 不对会话压缩
encr no; # 不对会话加密
keepalive yes #保证连接一直激活;
alice { # 主机alice建立的会话特定选项,可以覆盖默认会话选项的配置
pass alice; # 回话建立密钥
type tun; # 通道类型为IP隧道方式
proto tcp; # 采用下层tcp协议
comp no; # 不对会话压缩
encr no; # 不对会话加密
keepalive yes; # Keep connection alive
up {#连接建立时,首先应该运行的命令
ifconfig "%% 10.0.2.2 pointopoint 10.0.1.2 mtu 1450";
#首先激活接口,其中采用ppp建立连接,ppp本地IP为10.0.2.2,
#而远程IP分配为10.0.1.2。
program /sbin/arp "-sD 10.0.1.2 eth0 pub"; #配置arp表项
route "add -net 10.0.1.0 netmask 255.255.255.0 gw 10.0.2.2"; # 添加路由
};
down {#连接建立时,首先应该运行的命令
program "/sbin/arp -d 10.0.1.2 -i eth0";
};
}
vtund的更详细说明请参考man vtund.conf的帮助手册内容。
下面是作为作者实际运行环境中以客户端方式运行的vtund.conf的内容:
客户端(yyy.org VPN_IP=10.0.1.2):

options {
port 5000;
ppp /usr/sbin/pppd;
ifconfig /sbin/ifconfig;
route /sbin/route;
firewall /sbin/ipchains;
}
alice {
pass alice;
keepalive yes;
up {
ifconfig "%% 10.0.1.2 pointopoint 10.0.2.2 mtu 1450";
program /sbin/arp "-sD 10.0.2.2 eth0 pub";
route "add -net 10.0.2.0 netmask 255.255.255.0 gw 10.0.1.2";
firewall "-A forward -s 10.0.0.0/24 -d 10.0.2.0/24 -j ACCEPT";
};
down {
firewall "-D forward -s 10.0.0.0/24 -d 10.0.2.0/24 -j ACCEPT";
program "/sbin/arp -d 10.0.2.2 -i eth0";
};
}
启动vtund
服务器端(bob.org):只须以root身份执行/usr/sbin/vtund -s就可以了,如果希望系统启动后自动建立VPN通道,可以将这个命令加入/etc/rc.d/rc.local中。
客户端(alice.org):只须以root身份执行/usr/local/sbin/vtund alice bob.org就可以了,如果希望系统启动后自动建立VPN通道,可以将这个命令加入/etc/rc.d/rc.local中。
如果连接建立起来以后,在alice上运行ifconfig应该有以下的输出:

tun0 Link encap:Point-to-Point Protocol
inet addr:10.0.1.2 P-t-P:10.0.2.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1450 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
可以看到,系统多了一个网络接口tun0,其IP地址为10.0.1.2,而对端(服务器端)IP地址则为10.0.2.2。
这时在alice或者bob上,可以建立静态路由信息或者直接连接对端的网络或主机,实现跨越互联网的VPN隧道,当然该隧道并没有加密。
注:如果在客户端运行vtund alice bob.org后连接无建立,则应该注意查看内核是否加载了tun0模块。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwwsfg.html