LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 788|回复: 5

eth*这个名字代表的是软件层面上的网络接口,还是硬件层面的网卡自身?

[复制链接]
发表于 2007-8-22 11:18:29 | 显示全部楼层 |阅读模式
以前在windows下混的时候,没有考虑过那么深刻,网卡自身硬件与网络接口这个软件层面上的东西,我当时都是混为一谈,所以也闹过在配防火墙时把ppp拨号产生ppp0网络接口和eth*混淆的笑话,后来才开始逐渐理解所谓网络接口(iface)的概念。明白了一块硬件网卡上可以存在多个网络接口,但是最近的一些实例让我对linux是如何定义硬件自身代号和网络接口代号的标准产生了怀疑。

在我的设想里,既然eth*仅仅是一个网络接口,是一个软件层面上定义出的接口,那么,我在定义其他接口时,理论上eth*可以不工作,只要代表网络硬件自身在工作即可,但是,我奇怪看到,当我使用pppoe拨号产生ppp0这个接口时,此接口必须依赖eth*才能启动,eth*不启动的情况下,ppp0无法启动,且当net.eth* stop时,ppp0也被stop了,那要这样理解的话eth*就不仅仅是个软接口的代号,而应该是网卡硬件自身的代号,这才解释的通

如果我这个想法是正确的话,那么请问一下,假设我已经在一块网卡上绑定了多个IP地址(假设有4个),如果接口界面的理论正确的话,那么这块网卡上同时存在4个软件层面上的接口,假设我需要其中的两个可以工作,另外两个stop,如果我的推测是对的,这应该能做到,请问怎么做?如果做不到,那说明我推论错误,那么就eth*这个代号而言,到底应该把他理解成什么?网卡硬件本身,还是一个接口?
发表于 2007-8-22 11:42:19 | 显示全部楼层
是指向内核驱动模块的指针的化名。这内核模块算软件还是硬件,我也说不好,呵呵。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-22 11:47:10 | 显示全部楼层
Post by iknownothing
是指向内核驱动模块的指针的化名。这内核模块算软件还是硬件,我也说不好,呵呵。

行了,我明白了,也就是说eth*代表的是驱动模块,这才能解释为什么他不启动ppp0不能启动,驱动不启动等于网卡硬件不启动,我懂了,不过还存在一个问题,就是我说的一块网卡绑定多个IP,等于有多个界面,假设我要其中几个工作其他不工作,这在linux中如何实现?
回复 支持 反对

使用道具 举报

发表于 2007-8-22 11:58:57 | 显示全部楼层
ifconfig ifup ifdown
回复 支持 反对

使用道具 举报

发表于 2007-8-22 12:05:41 | 显示全部楼层
本人认为,这个名字,只是在注册驱动程序的时候,驱动程序自身定义的。eth*代表以太网的第*块网络卡。
回复 支持 反对

使用道具 举报

发表于 2007-8-22 12:44:32 | 显示全部楼层
alias rtl8139 eth0
alias forthdepth eth1

想怎么定义就怎么定义
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表