freeDiameter 安装配置过程
安装环境: Ubuntu 10.04
安装步骤:
1、安装依赖的软件包
sudo apt-get -y install mercurial cmake make gcc bison flex libsctp-dev libgnutls-dev libgcrypt-dev libpq-dev libmysqlclient-dev ssl-cert debhelper fakeroot
2、下载最新版freeDiameter
cd
hg clone http://www.freediameter.net/hg/freeDiameter
cd freeDiameter
注:这里安装在了主目录之下,即/home/nadia/下
3、新建一个编译文件夹
cd ..
mkdir fDbuild
cd fDbuild
4、配置产生cmakefiles
cmake ../freeDiameter
make edit_cache
5、编译安装
make
sudu make install
测试步骤:
建立有一个client和一个server的简单测试系统。需要test_app扩展。
1、重新编译freeDiameter
cd ~/fDbuild
cmake ../freeDiameter -DBUILD_TEST_APP:BOOL=ON
make edit_cache
make
2、新建两个文件夹,分别命名为fDClient和fDServer
cp freeDiameterd-1.0.2 ~/fDClient/freeDiameterClient
cp ~/freeDiameter/freeDiameter.conf ~/fDClient/client.conf
cd freeDiameterd-1.0.2 ~/fDServer/freeDiameterServer
cp ~/freeDiameter/freeDiameter.conf ~/fDServer/server.conf
并将extensions中的test_app.fdx和test_app.conf复制到两个文件夹中。
3、配置文件,包括client.conf,server.conf,test_app.conf(fDClient和fDServer文件夹中分别有一个)
client.conf:(在相应的位置添加)
## Peer identity and realm
Identity = "client.simple.test.nadia";
Realm = "simple.test.nadia";
## Transport protocol configuration
Port = 3868;
SecPort = 3869;
No_SCTP;
Prefer_TCP;
## Endpoints configuration
No_IPv6;
ListenOn = "192.168.33.156";
## TLS Configuration
TLS_Cred = "./client_cert/cert.pem", "./client_cert/privkey.pem";
TLS_CA = "./client_cert/ca.pem";
注:此处文件为CA密钥,freeDiameter提供测试用可生成。具体步骤见下文。
## Extensions configuration
LoadExtension = "/home/nadia/fDClient/test_app.fdx":"/home/nadia/fDClient/test_app.conf";
## Peers configuration
ConnectPeer = "server.simple.test.nadia" { NO_SCTP; Port = 9683; ConnectTo = "192.168.33.157"; } ;
注:Port为server端监听TLS的端口号。
server.conf:(在相应的位置添加)
## Peer identity and realm
Identity = "server.simple.test.nadia";
Realm = "simple.test.nadia";
## Transport protocol configuration
Port = 8683;
SecPort = 9683;
No_SCTP;
Prefer_TCP;
注:因为本人是在同一台机子上,所以为了和client端的端口区别开,所以没有使用默认的端口
在同一台机子上,一个硬件上分配两个IP:
ipconfig echo0:1 192.168.33.157 netmask 255.255.255.0
(本机原IP是192.168.33.156)
## Endpoints configuration
No_IPv6;
ListenOn = "192.168.33.157";
## TLS Configuration
TLS_Cred = "./server_cert/cert.pem", "./server_cert/privkey.pem";
TLS_CA = "./server_cert/ca.pem";
注:此处文件为CA密钥,freeDiameter提供可生成测试用的密钥。具体步骤见下文。
## Extensions configuration
LoadExtension = "/home/nadia/fDServer/test_app.fdx":"/home/nadia/fDServer/test_app.conf";
## Peers configuration
ConnectPeer = "client.simple.test.nadia" { NO_SCTP; Port = 3869; ConnectTo = "192.168.33.156"; } ;
注:Port为client端监听TLS的端口号。
test_app.conf(client端)
# Client-specific configuration
dest-realm = "simple.test.nadia";
dest-host = "server.simple.test.nadia";
test_app.conf(server端)
# Client-specific configuration
dest-realm = "simple.test.nadia";
dest-host = "client.simple.test.nadia";
4、TLS设置
freeDiameter中提供了可生成一些密钥和数字证书的脚本。在/contril/PKI目录下
进入ca_script2
生成密钥和数字证书
cd /home/nadia/freeDiameter/contrib/PKI/ca_script2
make init topca=ca.test.nadia
make newcert ca=ca.test.nadia name=client.simple.test.nadia
make newcert ca=ca.test.nadia name=server.simple.test.nadia
注:name要和指定的identity一样,命令执行,会在ca_seript2下的目录ca_data/ca.test.nadia/client下,产生两个与name名字相同的文件夹,里面包括了freediameter配置文件中需要的密钥和数字证书。
将ca_data文件夹复制到fDClient和fDServer中,并在freediameter.conf中配置上相应的TLS_Cred TLS_CA。
本文中,将其中的client.simple.test.nadia和server.simple.test.nadia分别复制,并重新命名为client_cert和server_cert。
所以在client.conf,和server.conf中的TLS配置,指定为当前文件夹中的client_cert或server_cert.
5、测试
分别打开client和server端的freeDiameter
./freeDiameterClient -c client.conf
./freeDiameterServer -c server.conf
注:由于conf文件没有在默认的/usr/local下,所以用过-c命令指定
打开一个新的窗口,触发test_app工作
ps -ef | grep freeDiameter
获得相应的PID之后
kill -USR1 4157
注:4157是freeDiameterClient的PID号,每次启动都会不一样,要重新查看。
在freeDiameterd的监控终端上,就可以看到消息发送和接收的信息。