把位于 /usr/share/doc/cipe-version/samples/ 的配置文件范例复制到 /etc/cipe/ 中(这里的 version 是安装在你的系统上的 CIPE 版本)。复制完毕后,你将需要编辑 /etc/cipe/options.cipcbx(x 是从0开始的递增数字,为那些想要在 CIPE 服务器上不止有一个 CIPE 连接的客户提供)文件来包括你的 LAN 子网地址和可公共选路的防火墙 IP 地址。以下是包括在红帽企业 Linux CIPE RPM 中的 options 文件范例。在这个例子中,它被重命名为 options.cipbcb0:
# Surprise, this file allows comments (but only on a line by themselves)
# This is probably the minimal set of options that has to be set
# Without a "device" line, the device is picked dynamically
# the peer's IP address
ptpaddr 6.5.4.3
# our CIPE device's IP address
ipaddr 6.7.8.9
# my UDP address. Note: if you set port 0 here, the system will pick
# one and tell it to you via the ip-up script. Same holds for IP 0.0.0.0.
me bigred.inka.de:6789
# ...and the UDP address we connect to. Of course no wildcards here.
peer blackforest.inka.de:6543
# The static key. Keep this file secret!
# The key is 128 bits in hexadecimal notation.
key xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ptpaddr 是远程 LAN 的 CIPE 地址。ipaddr 是工作站的 CIPE IP 地址。me 地址是客户的可公共选路的 IP 地址,它通过互联网发送 UDP 分组。peer 是 CIPE 服务器的可公共选路的 IP 地址。注意,客户工作站的 IP 地址是 0.0.0.0,因为它使用动态连接。CIPE 客户将会处理到 CIPE 服务器的连接。key 字段(用 x 代表;你的钥匙应该是密钥)是共享静态钥匙。这个钥匙在两个对端上必须是相同的,否则连接就不能成立。关于如何为你的 CIPE 机器生成共享静态钥匙,请参阅第 6.8 节。
这是客户工作站将会使用的被编辑过的 /etc/cipe/options.cipcb0:
ptpaddr 10.0.1.2
ipaddr 10.0.1.1
me 0.0.0.0
peer LAN.EXAMPLE.COM:6969
key 123456ourlittlesecret7890shhhh
这是 CIPE 服务器的 /etc/cipe/options.cipcb0 文件:
ptpaddr 10.0.1.1
ipaddr 10.0.1.2
me LAN.EXAMPLE.COM:6969
peer 0.0.0.0
key 123456ourlittlesecret7890shhhh
配置客户的 CIPE
成功地配置了 CIPE 服务器并测试了它的功能后,你现在就可以在客户机器上使用这种连接了。
CIPE 客户应该能够自动地连接和断开 CIPE 连接。因此,CIPE 包含内建的机制来为个别使用自定设置。例如,远程职员可以通过键入以下命令来连接到 LAN 上的 CIPE 设备:
/sbin/ifup cipcb0
设备应该自动出现;防火墙规则和选路信息也应该和连接一起配置。远程职员应该能够使用以下命令来终止连接:
/sbin/ifdown cipcb0
配置客户需要创建在设备被载入后需运行的脚本。服务配置本身可以通过用户创建的文件 /etc/sysconfig/network-scripts/ifcfg-cipcb0 来本地配置。这个文件中包含一些参数,如判定 CIPE 连接是否在引导时发生的参数;代表 CIPE 设备名称的参数等。以下是一个连接到 CIPE 服务器的远程客户的 ifcfg-cipcb0 文件:
DEVICE=cipcb0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
# This is the device for which we add a host route to our CIPE peer through.
# You may hard code this, but if left blank, we will try to guess from
# the routing table in the /etc/cipe/ip-up.local file.
PEERROUTEDEV=
# We need to use internal DNS when connected via cipe.
DNS=192.168.1.254
CIPE 设备的名称是 cipcb0。CIPE 设备将会在引导时间被载入(通过 ONBOOT 字段配置),而且将不会使用一种引导协议(如 DHCP)来接收该设备的 IP 地址。PEERROUTEDEV 字段决定连接到客户的 CIPE 服务器设备名称。如果这个字段中没有指定任何设备,在设备被载入后就会为它决定一个。
如果你的内部网络是在防火墙背后,你需要设置规则来允许客户机器上的 CIPE 接口发送和接收 UDP 分组。关于为红帽企业 Linux 配置防火墙的信息请参阅第7章 。我们这个配置例子中使用了 iptables 规则。
注记
客户应该这样配置,因此所有被本地化的参数都被放在一个用户创建的叫做/etc/cipe/ip-up.local 的文件中。CIPE 会话被关闭后,应该使用 /etc/cipe/ip-down.local 来还原本地参数。
客户机器上的防火墙应该被配置接受 CIPE UDP 封装分组。规则的差距可能会很大,但是对 UDP 分组的基本接受对于 CIPE 连接来说却是必需的。以下的 iptables 规则允许连接到 LAN 上的远程客户机器进行 UDP CIPE 传输;最后一条规则添加了 IP 伪装来允许远程客户与 LAN 和互联网通信。
/sbin/modprobe iptables
/sbin/service iptables stop
/sbin/iptables -P INPUT DROP
/sbin/iptables -F INPUT
/sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.1
/sbin/iptables -A INPUT -j ACCEPT -i cipcb0
/sbin/iptables -A INPUT -j ACCEPT -i lo
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
你必须还在客户机器上添加用来像访问本地网络一样访问 CIPE 连接背后的节点的选路规则。这可以通过运行 route 命令来完成。在我们的例子中,客户工作站需要添加以下网络路线:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.1.2
以下显示了用于客户工作站的最终 /etc/cipe/ip-up.local 脚本:
#!/bin/bash -v
if [ -f /etc/sysconfig/network-scripts/ifcfg-$1 ] ; then
. /etc/sysconfig/network-scripts/ifcfg-$1
else
cat eth0:lan.example.com | eth1:192.168.1.1| cipcb0:10.0.1.1-----eth0:remote.example.net|cipcd0:10.0.1.2'