Tuesday, August 18, 2009

配置Linux中的不同网络环境

发表前按:
这篇日志在我邮箱里躺了估计快半年了,迟迟没找到solution
连问题本身都几乎已经淡忘了,毕竟面对一个折腾来折腾去都没找到solution的问题而这又影响到日常工作时间时,
更是如此。因此只好把它当一个难产的胎儿post出来了。
最近用上了mac osx,发觉网络配置做得非常人性化与易用。
虽说linux的网络配置绝对强大,但正因为太强大太复杂,驾驭不了的话只好被驾驭……
希望以后能在桌面环境下有更好的图形化工具吧……

-----------------------

scenario:
我有一部笔记本,经常会在家里,办公室,宿舍之间的网络环境中进行切换。
现在只讨论宿舍(dorm)和家里(home)的情况,且假设只有一个名为eth0的以太网网卡。
在宿舍我希望使用静态IP,而家里希望使用动态IP。
两个地方都是ipv4,但name server不一样。
因此有必要配置两套不同的网络环境(即使用dhcp/static,其中static还要手工指定ip,gateway等信息)。
每次手工输入实在麻烦,因此希望利用netutils来配置一下实现自动化。
(当然,如果可以做到自动检测网络环境是最好了,不过这似乎使问题更复杂了,先不考虑)

根据一定的搜索,暂时总结如下(环境为Ubuntu 8.04,其他发行版的interfaces文件位置可能有所不同):

一些配置文件:
/etc/network/interfaces  : 定义网络接口卡的配置
/etc/resolv.conf    : 定义name server
/etc/hosts  : 定义主机名与ip之间的映射关系

一些工具:
ifconfig,ifup,ifdown,resolvconf

发觉在/etc/network/里面,有if-pre-up.d,if-up.d,if-down.d,if-post-down.d几个文件夹,
根据文档,这些folder下的文件都是用于在网络配置改变时触发的脚本。(尚不清楚是否是利用upstart)

1. 在interfaces里指定一些别名

2. 在ifup/ifdown时自动更改dns设置

3. ifup eth0,默认采用的设置

No comments: