全部博文(176)
分类: LINUX
2009-12-10 11:22:23
Redhat Linux的网络配置:
Linux 的网络配置基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机名,但是重启后会丢失。
下面是相关的配置文件:
/ect/hosts 配置主机名和IP地址的对应,对本机提供解析
/etc/resolv.conf 配置域名(在hosts内解析不到时此域名生效)
/etc/sysconfig/network 配置主机名和网关
/etc/sysconfig/network-scripts/ifcfg-eth0 配置IP、Mask等网络参数
一、网卡配置
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.250
NETMASK=255.255.255.0
GATEWAY=192.168.76.1
ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0
ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0
ifconfig eth0 down
ifconfig eth0 up
二、多网卡配置:
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
ONBOOT=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth1
BOOTPROTO=static
IPADDR=222.157.4.82
NETMASK=255.255.255.128
ONBOOT=yes
vi /etc/rc.d/rc.local
route add -net 192.168.0.0/24 gw 192.168.0.254 dev eth0
route add -net 222.157.0.0/16 gw 222.157.66.1 dev eth1
三、网关配置:
注意:以下用命令设置的方式设置完后需要将命令加入到 /etc/rc.d/rc.local 中,否则重启后设置被自动清除!
1、在 /etc/sysconfig/network-scripts/ifcfg-eth0 中配置;
GATEWAY=192.168.76.1
2、在 /etc/sysconfig/network 中配置:
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zhaohang.com
GATEWAY=192.168.76.1
3、用命令设置:
如果只需要添加默认路由可以这样设置:
route add default gw 192.168.1.1
route del default gw 192.168.1.254 (可以删除默认路由,用此方法改变后几分钟就可以生效.)
如果两个网卡均需要网关可以这样设置:
route add -net 192.168.0.0/24 gw 192.168.0.254 dev eth0
route add -net 222.157.0.0/16 gw 222.157.66.1 dev eth1
备注:设置好路由或默认网关以后可以用命令查看:
route -n
netstat -rn
route print (For windows)
四、域名配置:
cat /etc/resolv.conf
nameserver 202.96.209.5
五、单网卡绑定多个IP
有时,我们需要在一块网卡上配置多个IP,我们还需要为eth0配置IP 192.168.168.2和192.168.168.3。
那么需要再在/etc/sysconfig/network-scripts/ 下新建两个配置文件:
cat /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
ONBOOT=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.0
ONBOOT=yes
六、多个网卡绑定成一块虚拟网卡
为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。
所谓bonding,就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。Kernels 2.4.12及以后的版本均提供bonding模块,以前的版本可以通过patch实现.
比如我们可以将eth0和eth1绑定成虚拟网卡bond0:
1、首先在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0:
cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BROADCAST=192.168.168.255
IPADDR=192.168.168.1
NETMASK=255.255.255.0
NETWORK=192.168.168.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.168.250
USERCTL=no
2、然后分别修改eth0和eth1的配置文件:
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
3、在/etc/modules.conf 文件中添加如下内容(如果没有该文件,则新建一个):
[因为linux的虚拟网卡是在内核模块中实现的,所以需要安装的时候已经装好该module]
alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0
其中miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡,mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护。如果mode=0则是负载均衡模式的,所有的网卡都是active。还有其他一些模式很少用到,primary=eth0表示主备模式下eth0为默认的active网卡。
4、最后,在/etc/rc.local中加入
modprobe bonding miimon=100 mode=1
5、重启机器后可以看到虚拟网卡已经生效,可以通过插拔两个物理网卡的网线来进行测试,不过linux中网卡接管的时间好象比较长。
[双线机房案例]
由于电信和网通之间互联互通的问题,很多人选择双线路机房, 所谓双线路机房就是拥有两条出口,一条电信一条网通。最近在一个双线路机房测试一台服务器,打算作为论坛的数据库服务器使用,服务器操作系统为 Linux。计划配置为双IP,双域名,使得浏览者通过电信和网通两条线路都能正常访问服务器,而且各走各的,互不影响。在配置网络的时候遇到了问题,由 于Linux默认只有一个网关,在网络上查询了很久,找到一个解决方案,因此整理了一下。(转自:http://hi.baidu.com/icexile/blog/item/17ba43f4b9724cdcf3d3853f.html)
服务器操作系统RedHat linux 9,设置两张路由表
1. vi /etc/iproute2/rt_tables,增加网通和电信两个路由表
251 tel 电信路由表
252 cnc 网通路由表
2. 给网卡绑定两个地址用于电信和网通两个线路
ip addr add 192.168.0.2/24 dev eth0
ip addr add 10.0.0.2/24 dev eth1
3、分别设置电信和网通的路由表
电信路由表:
#确保找到本地子网
ip route add 192.168.0..0/24 via 192.168.0.2 dev eth0 table tel
#内部回环网络
ip route add 127.0.0.0/8 dev lo table tel
#192.168.0.1为电信网络默认网关地址
ip route add default via 192.168.0.1 dev eth0 table tel
网通线路路由表:
#确保找到本地子网
ip route add 10.0.0.0/24 via 10.0.0.2 dev eth1 table cnc
#内部回环网络
ip route add 127.0.0.0/8 dev lo table cnc
#10.0.0.1是网通的默认网关
ip route add default via 10.0.0.1 dev eth1 table cnc
4、电信和网通各有自己的路由表,制定策略,让192.168.0.2的回应数据包走电信的路由表路由,10.0.0.2的回应数据包走网通的路由表路由
ip rule add from 192.168.0.1 table tel
ip rule add from 10.0.0.1 table cnc