CentOS 7的路由器功能配置

2015年11月18日

一、步骤

  • 关闭防火墙
1
2
3
4
5
6
7
# firewall 防火墙(CentOS 7 默认防火墙)
systemctl stop    firewalld.service    # 停止firewall
systemctl disable firewalld.service    # 禁止firewall开机启动

# iptables 防火墙(如果有开启,也连同firewall关闭)
systemctl stop    iptables.service     # 停止firewall
systemctl disable iptables.service     # 禁止firewall开机启动
  • 关闭SELINUX
1
2
3
4
5
6
7
vim /etc/selinux/config
#SELINUX=enforcing    # 注释掉
#SELINUXTYPE=targeted # 注释掉
SELINUX=disabled      # 增加
:wq!

setenforce 0          # 使配置立即生效
  • 修改网卡名称(修改为eth0,eth1的形式)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd /etc/sysconfig/network-scripts

mv ifcfg-eno16777736 ifcfg-eth0
vim ifcfg-eth0
NAME=eth0

mv ifcfg-eno33554984 ifcfg-eth1
vim ifcfg-eth1
NAME=eth1

vim /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0" # 修改

grub2-mkconfig -o /boot/grub2/grub.cfg
  • 网卡配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# eth0 连接外网的网卡(/etc/sysconfig/network-scripts/ifcfg-eth0)
TYPE=Ethernet                                # 链路层类型
BOOTPROTO=dhcp                               # none:禁止DHCP;static:启用静态IP地址;dhcp:开启DHCP服务
DEFROUTE=yes                                 # 是否把该网卡设为默认路由
PEERDNS=yes                                  # no:使用/etc/resolv.conf控制DNS;yes:依靠DHCP来获取DNS
PEERROUTES=yes                               # 是否从DHCP服务器获得的DNS用于定义默认网关的接口的路由表条目
IPV4_FAILURE_FATAL=no
NAME=eth0                                    # 网卡逻辑名称
UUID=bd2fd4ca-75cb-4c71-bb42-45348231ef94    # 全球唯一标识符
DEVICE=eno16777736                           # 网卡设备名称
ONBOOT=yes                                   # 启动时是否激活

# eth1 连接内网的网卡(/etc/sysconfig/network-scripts/ifcfg-eth1)
HWADDR=00:0C:29:23:1A:0B                     # 链路层地址
TYPE=Ethernet                                # 链路层类型
BOOTPROTO=none                               # none:禁止DHCP;static:启用静态IP地址;dhcp:开启DHCP服务
DEFROUTE=no                                  # 是否把该网卡设为默认路由
IPV4_FAILURE_FATAL=no        
NAME=eth1                                    # 网卡逻辑名称
UUID=901d437a-85d5-46af-97a5-d6a1a1f90906    # 全球唯一标识符
ONBOOT=yes                                   # 启动时是否激活
IPADDR=192.168.0.1                           # IP地址,为其他内网机器的默认网关
PREFIX=24                                    # 子网掩码的长度
GATEWAY=192.168.146.146                      # 默认网关,设置为eth0
  • 禁用IPV6
1
2
3
4
5
6
7
8
9
10
11
12
13
# 临时生效
echo "1" > /proc/sys/net/ipv6/conf/eth0/disable_ipv6
echo "1" > /proc/sys/net/ipv6/conf/eth1/disable_ipv6

# 默认启动
vim /etc/sysctl.conf
net.ipv6.conf.eth0.disable_ipv6 = 1 # 增加
net.ipv6.conf.eth1.disable_ipv6 = 1 # 增加
:wq!

# 查询修改是否生效
sysctl -a | grep net.ipv6.conf.eth0.disable_ipv6
sysctl -a | grep net.ipv6.conf.eth1.disable_ipv6
  • 开启IPV4转发
1
2
3
4
5
6
7
8
9
10
# 临时生效
echo "1" > /proc/sys/net/ipv4/ip_forward

# 默认启动
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 # 增加
:wq!

# 查询修改是否生效
sysctl -a | grep net.ipv4.ip_forward
  • 安装路由软件quagga,支持RIP、OSPF、BGP等路由协议
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 安装
yum install quagga

# 配置 zebra
vim /etc/quagga/zebra.conf
hostname CentOS_Router_V1
password test
enable password test
log file /var/log/quagga/zebra.log 

# 配置 rip
vim /etc/quagga/ripd.conf
hostname CentOS_Router_V1
password test
enable password test
log file /var/log/quagga/rip.log 
debug rip events
debug rip packet
router rip                      # 运行RIP路由协议
version 1                       # RIP路由协议版本
network 192.168.0.0/24          # 网络接口直接连接的子网
network 192.168.1.0/24
interface eth0                  # 针对外部接口,需要略过身份验证
interface eth1
no ip rip authentication mode   # 不需要身份验证

# 开机启动
chkconfig zebra on
chkconfig ripd on

# 启动
systemctl start zebra.service
systemctl start ripd.service

# 查看RIP路由信息(省略了部分输出)
telnet 127.0.0.1 2602
CentOS_Router_V1> show ip rip
     Network            Next Hop         Metric From            Tag Time
C(i) 192.168.0.0/24     0.0.0.0               1 self              0
C(i) 192.168.1.0/24     0.0.0.0               1 self              0

telnet 127.0.0.1 2601
  • (可选)安装gated,包含ripquery程序,用于RIP查询
1
2
3
wget ftp://212.115.229.85/pub/mirrors/centos.org/2.1/final/i386/CentOS/RPMS/gated-3.6-12.i386.rpm
yum install glibc.i686 # 依据系统版本安装
rpm -ivh gated-3.6-12.i386.rpm