首页 > Lijia > 网关服务器配置
2013
11-07

网关服务器配置

之前我们用一台linux服务器搭建了一个虚拟化的环境,下面我就要开始在它的基础上折腾各种各样的服务了。 为了便于理解和以后的扩展,有必要先梳理一下整体的网络结构。

我打算只用一台网关,这样以后监视流量,各种网络监控和限制做起来也相对方便些,直接用物理机器当网关太危险了,因为我比较懒,不想每个命令都打sudo,所以是直接拿root账号用的。以前就发生过手一抖打了个rm -rf /的情况……所以网关这种经常折腾的机器还是用虚拟机吧, 做好定时备份。

先画了个网络结构图,大概应该是这样的:

2013-07-01-01

服务器和普通电脑所在的网段要分开,普通电脑和无线网络都使用192.168.0.0这个网段的ip,而服务器则使用10.10.0.0这个网段,这样就不会把虚拟机和一般的电脑搞混了。

为了方便记忆,我们用ip地址的第三位来表示网络id,有线网络用1,无线网络用2,而服务器则从10开始, 在这样的规则下各网段的ip如下:

网络 地址
有线网络 192.168.1.0/24 |
无线网络 192.168.2.0/24 |
服务器组1 10.10.10.0/24 |

调整物理服务器网络配置

网桥br0是用来直接连接internet的:

配置文件:/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
STP=on
BOOTPROTO=none

网桥br1是用来做有线网络的,在物理服务器上我们不用为它分配IP地址。

配置文件:/etc/sysconfig/network-scripts/ifcfg-br1

DEVICE=br1
TYPE=Bridge
ONBOOT=yes
STP=on
BOOTPROTO=none

网桥br2是和无线网络连接的,物理服务器上也不需要IP地址。

配置文件:/etc/sysconfig/network-scripts/ifcfg-br2

DEVICE=br2
TYPE=Bridge
ONBOOT=yes
STP=on
BOOTPROTO=none

网桥br10是虚拟机网络,这里固定写一个IP地址。如果你为安全考虑,可以不分配IP地址,这样就没有任何办法能够访问到这台机器了,只有插键盘。

配置文件:/etc/sysconfig/network-scripts/ifcfg-br10

DEVICE=br10
TYPE=Bridge
ONBOOT=yes
STP=on
BOOTPROTO=static
IPADDR=10.10.10.1
NETMASK=255.255.255.0

配置VLAN

如果要配置复杂的网络结构, 最好还是使用vlan,用linux配置vlan,需要把交换机的端口设置成trunk模式,我没有三层交换机,所以只是说下配置方法:

首先要加载802.1q模块:

modprobe 8021q

然后就可以写配置文件了,在centos中,只需要在一个网卡的名字后买再加上vlan的ID就可以了……比如我们要配置vlan的ID时10:

编辑配置文件:/etc/sysconfig/network-scripts/eth0.10

DEVICE=eth0.10
ONBOOT=yes
BOOTPROTO=dhcp
VLAN=yes
BRIDGE=br10

配置网关虚拟机网络

网关虚拟机需要有4块网卡,分别对应internet连接,网桥br1,br2和br10:

首先是internet连接: /etc/sysconfig/ifcfg-eth0

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

然后是有线网络: /etc/sysconfig/ifcfg-eth1

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.254
NETMASK=255.255.255.0

无线网络: /etc/sysconfig/ifcfg-eth2

DEVICE=eth2
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.2.254
NETMASK=255.255.255.0

服务器网络,我修改了一下/etc/udev/rules.d/70-persistent-net.rules中的规则,让这块网卡的名称是eth10。方便和网络对应。配置文件: /etc/sysconfig/ifcfg-eth10

DEVICE=eth10
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.10.254
NETMASK=255.255.255.0

在网关上配置路由和NAT

首先要打开IP转发:

Linux IP 转发很简单,打开ip_forward就可以了:

$ echo 1 >/proc/sys/net/ipv4/ip_forward

或者:

$ sysctl -w net.ipv4.ip_forward=1

要想永久生效,需要编辑文件/etc/sysctl.conf

net.ipv4.ip_forward = 1

如果只是打开了IP转发,但是没有任何NAT规则的话,现在还只有路由功能,还不能让机器共享上网,要想共享上网,还需要设置NAT规则。

NAT可以用iptables或者ip指令来做, ip命令我还不会用,先用iptables来配:

$ iptables -t nat -A POSTROUTING \
    -s 192.168.1.0/24 -j SNAT --to-source 192.168.0.1

也可以这样:

$ iptables -t nat -A POSTROUTING -j MASQUERADE

DHCP和DNS服务器配置

我们本地使用10.0.0.0/8这个网段,所以反解的地址是10.in-addr.arpa。反解可是很重要的,有了它,才能从10.10.10.254这个地址对应到gateway.tiwb.net上,实际使用中,ping一下IP地址就知道是谁的电脑了~ 而且如果没有正确的设置反解服务,一些用到这个特性的程序就会变得很‘卡’。

首先我们先设置2个固定IP的主机名:/etc/hosts

10.10.10.254    gateway.tiwb.net
10.10.10.1      vm1.tiwb.net

完整的/etc/dnsmasq.conf内容如下:

# Configuration file for dnsmasq.

domain=tiwb.net
no-dhcp-interface=eth0
resolv-file=/etc/resolv.dnsmasq
dhcp-authoritative
filterwin2k
domain-needed

# dhcp ranges
dhcp-range=vlan1,192.168.1.100,192.168.1.250,255.255.255.0,12h
dhcp-range=vlan2,192.168.1.100,192.168.1.250,255.255.255.0,12h
dhcp-range=vlan10,10.10.10.10,10.10.10.250,255.255.255.0,12h

# local network
local=/tiwb.net./
local=/168.192.in-addr.arpa./
local=/10.in-addr.arpa./

# cnames
cname=mirrors.wp.net,vm1.wp.net
cname=gw.wp.net,gateway.wp.net

上游dns服务器的配置在/etc/resolv.dnsmasq

nameserver 114.114.114.114
nameserver 8.8.8.8

本地的DNS服务器设置成本机/etc/resolv.conf

search tiwb.net
nameserver 127.0.0.1

至此,DHCP和DNS服务器就架设好了,其他的机器,只要用DHCP自动获取IP地址就好:修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

修改DHCP主机名称:/etc/sysconfig/network

NETWORKING=yes
NOZEROCONF=yes
DHCP_HOSTNAME=centos

结束语

现在网关服务器已经有正常的功能了, 以后我会再上面做继续做其他的服务。

静态路由配置

如果需要增加静态路由,可以用route,或者ip route命令,持久化的路由配置在centos下也比较简单,只需要增加一个文件/etc/sysconfig/network-scripts/route-eth0

ADDRESS0=192.168.3.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.3.254
最后编辑:
作者:wy182000
这个作者貌似有点懒,什么都没有留下。

留下一个回复