之前我们用一台linux服务器搭建了一个虚拟化的环境,下面我就要开始在它的基础上折腾各种各样的服务了。 为了便于理解和以后的扩展,有必要先梳理一下整体的网络结构。
我打算只用一台网关,这样以后监视流量,各种网络监控和限制做起来也相对方便些,直接用物理机器当网关太危险了,因为我比较懒,不想每个命令都打sudo,所以是直接拿root账号用的。以前就发生过手一抖打了个rm -rf /
的情况……所以网关这种经常折腾的机器还是用虚拟机吧, 做好定时备份。
先画了个网络结构图,大概应该是这样的:
服务器和普通电脑所在的网段要分开,普通电脑和无线网络都使用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
- 本文固定链接: http://www.wy182000.com/2013/11/07/网关服务器配置/
- 转载请注明: wy182000 于 Studio 发表