### 开始使用srsEPC
要开始使用srsEPC,您需要一台装有基于GNU/Linux操作系统的电脑。这可以是您选择的任何发行版,例如Ubuntu、Debian、Fedora等。
如果您使用的是基于Ubuntu的操作系统,您可以通过以下命令从提供的二进制包安装srsEPC:
```bash
sudo add-apt-repository ppa:srslte/releases
sudo apt-get update
sudo apt-get install srsepc
```
如果您使用的是不同的发行版,您可以按照项目GitHub页面提供的指南从源代码安装。
安装软件后,您可以通过运行以下命令将配置文件安装到默认位置(`~/.config/srsran_4g`):
```bash
srsran_4g_install_configs.sh user
```
### 运行软件
要使用默认参数运行srsEPC,请在命令行上运行`sudo srsepc`。srsEPC需要以sudo管理员权限运行,以便创建TUN设备。这将启动EPC,它将等待eNB和UE连接到它。
srsEPC将启动一个TUN接口`srs_spgw_sgi`,这将允许用户平面数据包到达UE。
### 配置
EPC可以通过两个配置文件进行配置:`epc.conf`和`user_db.csv`。
`epc.conf`将保存MME、SPGW和HSS的常规配置参数。
这包括PLMN值、完整性/加密算法、APN、SGi IP地址、GTP-U绑定地址等。
`user_db.csv`用于保存HSS的UE特定参数。
这将包括IMSI、认证算法、K、OP或OPc等。
在以下小节中,我们将介绍一些使用srsEPC的常见配置案例:向HSS数据库添加新的UE、在不同的机器上运行eNB和EPC,以及设置网络路由以使UE能够连接到互联网。
#### 向HSS数据库添加UE
当向HSS数据库添加UE时,必须确保`user_db.csv`文件中的参数与UE的USIM卡中存储的参数匹配。
特别相关的参数是IMSI、认证算法、K和OP或OPc(如果使用MILENAGE算法)。
IMSI是SIM卡的唯一标识符,K是HSS和UE用于相互认证的密钥。
SIM卡通常使用的认证算法是MILENAGE,但也有一些测试SIM卡使用XOR认证。
如果您使用的是MILENAGE算法,还必须知道您是使用OP还是OPc以及此参数的相应值。
一旦您知道了这些参数,您可以将其替换到`user_db.csv`中,其格式如下:
```
(ue_name),(algo),(imsi),(K),(OP/OPc_type),(OP/OPc_value),(AMF),(SQN),(QCI),(IP_alloc)
```
因此,如果您有一张带有以下参数的SIM卡:
- 使用MILENAGE算法
- IMSI = 999700000000001
- K = 00112233445566778899aabbccddeeff
- 使用OPc
- OPc = 63bfa50ee6523365ff14c1f45f88737d
您可以这样配置`user_db.csv`:
```
ue1,mil,999700000000001,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,9000,000000000000,9,dynamic
```
#### 在不同的机器上运行eNB和srsEPC
默认情况下,srsEPC配置为与同一机器上的srsENB一起运行。
当在不同的机器上运行srsEPC和eNB时,需要配置的只是`mme_bind_addr`和`gtpu_bind_addr`。
MME绑定地址将指定MME将监听eNB S1AP连接的位置。GTP-U绑定地址应与MME绑定地址相同,除非您希望用户平面在与S1AP连接不同的子网上运行。
因此,如果您希望在IP为_10.0.1.10_的接口上监听eNB,您可以这样做:
```bash
sudo srsepc --mme.mme_bind_addr 10.0.1.10 --spgw.gtpu_bind_addr 10.0.1.10
```
#### 使UE连接到互联网
要允许UE连接到互联网,需要执行IP伪装(masquerading)。没有伪装,Linux内核不会将数据包从一个子网转发到另一个子网。
要启用此功能,您可以运行一个方便的脚本`sudo srsepc_if_masq <out_interface>`,其中`_out_interface_`是连接PC到互联网的接口。
警告:
`_out_interface_`不是`_srs_spgw_sgi_`接口,而是连接PC到互联网的以太网或Wi-Fi以太网。
### 观察结果
默认情况下,日志文件存储在`/tmp/epc.log`中。此文件可以检查与srsEPC相关的任何问题。
日志文件可以有多个详细级别,可以在`epc.conf`中配置,也可以通过命令行配置。它们也可以按层启用,这在排查特定层的问题时很有用。