Linux 版 (精华区)
发信人: netiscpu (说不如做), 信区: Linux
标 题: 如何在一台机子上配双网卡
发信站: 哈工大紫丁香 (Tue May 18 08:34:03 1999), 转信
如何在一台机子上配双网卡
作者:赵蔚
在这个地址:http://cesdis.gsfc.nasa.gov/pub/linux/linux.html,可以找到最
新版的各种 以太网卡的驱动程序的测试版,这些驱动程序一般也包括在了标准的Linu
x内核源码包里: cd /usr/src/linux
make menuconfig
一开始有一个提示性的问题:“Prompt for development and/or incomplete co
de/drivers” _________________________
/ \
图1:内核编译时的菜单界面
\_________________________/
回答“Y”就可以了,当然如果你不需要这些测试版的驱动程序最好。
下面讲一下如何在一台机子上配双网卡。
首先在内核编译的时候,把网卡驱动程序编译成模块。PCI卡可以自动被检测到,ISA卡
就要手 工设一下端口和中断:要手工编辑/etc/conf.modules。比方说你有两块NE200
0兼容网卡: ___________________________
/ \
/etc/conf.modules
...
alias eth0 ne
alias eth1 ne
options ne io=0x240, 0x300
...
\___________________________/
这个顺序就是按照eth0,eth1下来的。
还有一个方法就是把网卡驱动程序编译进内核。那么为了让Linux识别两块网卡,就要
在LILO上 做手术:
________________________________________________
/ \
/etc/lilo.conf
...
append="ether=5,0x300,eth0 ether=15,0x280,eth1"
...
\________________________________________________/
____________________________________
/ \
图2:dmesg显示的和以太网卡相关的内容
\____________________________________/
=>设置域名服务器
对于拨号用户来说,需要的是缓存域名服务。
先来配置/etc/named.conf,这是named启动的时候要用到的:
________________________________________________________________________
/ \
// Config file for caching only name server
options {
directory "/var/named"; // 这是named的缺省工作目录
// Uncommenting this might help if you have to go through a
// firewall and things are not working out:
// query-source port 53;
};
zone "." {
type hint;
file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
};
\________________________________________________________________________/
接下来是/var/named/root.hints,这其实就是世界各地的根域名服务器:
_____________________________________________________________
/ \
. 6D IN NS G.ROOT-SERVERS.NET.
. 6D IN NS J.ROOT-SERVERS.NET.
. 6D IN NS K.ROOT-SERVERS.NET.
. 6D IN NS L.ROOT-SERVERS.NET.
. 6D IN NS M.ROOT-SERVERS.NET.
. 6D IN NS A.ROOT-SERVERS.NET.
. 6D IN NS H.ROOT-SERVERS.NET.
. 6D IN NS B.ROOT-SERVERS.NET.
. 6D IN NS C.ROOT-SERVERS.NET.
. 6D IN NS D.ROOT-SERVERS.NET.
. 6D IN NS E.ROOT-SERVERS.NET.
. 6D IN NS I.ROOT-SERVERS.NET.
. 6D IN NS F.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4
J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10
K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129
L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12
M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33
A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4
H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53
B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107
C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12
D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90
E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10
I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17
F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241
\_____________________________________________________________/
然后是/var/named/pz/127.0.0,我们先给出一个例子:
__________________________________________________________________________
/
\ @ IN SOA ns.linux.bogus. hostmaster.linux.bogus.
( 1 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D) ; Minimum TTL
NS ns.linux.bogus.
1 PTR localhost.
\__________________________________________________________________________
/
这就是一个zone file,这里包括有3种“Resource Records”:
SOA,Start Of Authority RR
NS,Name Server RR
PTR。
第一行上的“@”,就是指named.conf中这个zone file所对应的本地zone:0.0.127.i
n-addr.arpa。 NS RR前面有一个缺省的“@”没有写出来,NS这行就是说linux.bogus
域的域名服务器就是ns.linux.bogus。 PTR RR这行说明这个zone file所对应的本地z
one的127.0.0.1这台机子是localhost。 SOA RR说明这个zone file所在的机子叫做ns
.linux.bogus,负责人是hostmaster@linux.bogus, 该zone file的版本号是“1 ; S
erial”。
最后是/etc/resolv.conf:
________________________________________________
/ \
search subdomain.your-domain.edu your-domain.edu
nameserver 127.0.0.1
\________________________________________________/
search这行的意思就是,如果你寻找moifa,那么实际上就是moifa.your-domain.edu。
nameserver就是指定你的域名服务器啦,如果你有其他的域名服务器,可以多加几个
nameserver行。
下面我们启动named,然后用nslookup来检查一下,是否named已经正常工作了。
_______________
/ \
演示:nslookup
\_______________/
接下来我们建立一个公司内部网上的真域名服务。
先在named.conf里加上一个新的zone:
_____________________________
/ \
zone "linux.bogus" {
notify no;
type master;
file "pz/linux.bogus";
};
\_____________________________/
下面我们来编辑我们真域名的zone file:
__________________________________________________________________________
_____ /
\ @ IN SOA ns.linux.bogus. hostmaster.linux.bogu
s. ( 199802151 ; serial, todays date + today
s serial # 8H ; refresh, seconds
2H ; retry, seconds
1W ; expire, seconds
1D ) ; minimum, seconds;
NS ns ; Inet Address of name server
MX 10 mail.linux.bogus. ; Primary Mail Exchanger
MX 20 mail.friend.bogus. ; Secondary Mail Exchanger
; localhost A 127.0.0.1
ns A 192.168.196.2
www A ns
mail A 192.168.196.4
\__________________________________________________________________________
_____/
最后我们再来看一下reverse zone。所谓zone,就是把域名转化为ip地址;所谓rever
se zone就是 把ip地址转化为域名。
__________________________________
/ \
zone "196.168.192.in-addr.arpa" {
notify no;
type master;
file "pz/192.168.196";
};
\__________________________________/
________________________________________________________________________
/ \
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; Serial, todays date + todays serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D) ; Minimum TTL
NS ns.linux.bogus.
1 PTR gw.linux.bogus.
2 PTR ns.linux.bogus.
3 PTR donald.linux.bogus.
4 PTR mail.linux.bogus.
5 PTR ftp.linux.bogus.
\________________________________________________________________________/
=>防火墙
第一步,编译内核,在内核中加入ip masquerade的支持。
再安装上ipfwadm这个软件包就可以了。下面就开始动手配置。
__________________________________________________________________________
____________________ /
\ #!/bin/sh
#
# /etc/rc.d/rc.firewall, define the firewall configuration, invoked from
# rc.local.
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
ipfwadm -I -f
ipfwadm -I -p deny
ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
ipfwadm -I -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0
/0 -o ipfwadm -I -a accept -V your.static.PPP.address -S 0.0.0.0/0 -D your
.static.PPP.address/32 ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0
.0.0.0/0 ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
ipfwadm -O -f
ipfwadm -O -p deny
ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16
ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/
16 -o ipfwadm -O -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0
.0.0.0/0 -o ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D
192.168.0.0/16 -o ipfwadm -O -a accept -V your.static.PPP.address -S your.
static.PPP.address/32 -D 0.0.0.0/0 ipfwadm -O -a accept -V 127.0.0.1 -S 0.
0.0.0/0 -D 0.0.0.0/0 ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
ipfwadm -F -f
ipfwadm -F -p deny
ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0
ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
ipfwadm -I -a reject -V 192.168.255.1 -S 192.168.0.0/16 -D 204.50.10.13/32
-o ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
ipfwadm -O -a reject -V static.IP.address -S your.static.PPP.address/32 -D
204.50.10.13/32 -o ipfwadm -O -a accept -V static.IP.address -S your.stat
ic.PPP.address/32 -D 0.0.0.0/0
ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/16 -D 204.50.10.13/32 -o
ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0
\__________________________________________________________________________
____________________/
=>在2.1.XX版内核中的防火墙解决方案
参考文献:
Ethernet HOWTO, by Paul Gortmaker <gpg109@rsphy1.anu.edu.au> Updated 6 July
1998 DNS HOWTO, by Nicolai Langfeldt <janl@math.uio.no> Updated 12 Novembe
r 1998 IP Masquerade mini-HOWTO, by Ambrose Au <ambrose@writeme.com> Update
d 10 November 1997 IPCHAINS HOWTO, by Paul Russell <Paul.Russell@rustcorp.c
om.au> Updated 27 October 1998
---------------------------------------------------------------------------
-----
版权所有 (C) 1998 NJLUG
出版于1998年12月 中文版第二期
---------------------------------------------------------------------------
-----
.
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:205.736毫秒