18 Jun

Fedora core 9 网卡问题

分类:电脑技术 » linux应用   出处:本站原创   
今天早上,将前几天在另外一台电脑上建立的虚拟机文件拷贝过来重新打开,系统启动后,发现网卡eth0启动不了!
估计是虚拟机移动之后,虚拟网卡的mac地址发生了变化,所以fc9将旧的网卡eth0变成eth1来启动了,但查看/etc/sysconfig/network-scripts/下面,也没见eth1的配置文件存在,但ifconfig,列出eth1已经启动,并已从dhcp获得ip地址。
经过仔细研究,发现是udev作怪了。发现/etc/udev/rules.d/70-persistent-net.rules这个文件里面有如下记录
引用
[root@kevin ~]# cat 70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:d2:3f:2c", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:87:43:18", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:87:43:22", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:c8:3a:15", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"


这是udev在发现网卡mac变更之后,自动将接口改名的结果。将这个/etc/udev/rules.d/70-persistent-net.rules删除,重启,网卡eth0成功启动,并重新生成/etc/udev/rules.d/70-persistent-net.rules文件。
Tags: ,
3 Jun
linux ip tunnel轻松构建隧道,实现B单线借用A双线两网合一。
参考:linux 高级路由&&流量控制
A点
cnc internet ip address: eth0 221.0.0.130/30
    telecom internet ip address: eth1 219.146.0.130/30
    ethernet ip address: eth2 192.168.0.254/24
   
B点
cnc internet ip address:eth0 218.58.57.146/30
    ethernet ip address:eth1 192.168.0.254
(就是让他跟a点一样!)
   
首先建立隧道:
A机设置:
#!/bin/bash
modprobe ip_gre
ip tunnel add ipip mode gre remote 218.58.57.146 local 221.0.0.130
#配置本地和对端互连
ip link set ipip up
#起一个interface--ipip
ip addr add 10.88.0.1/30 dev ipip
#把10.88.0.1/30这个地址配给ipip这个interface

好了,退出,ifconfig | more 一下,就会发现ipip这块虚网卡上配置了10.88.0.1/30这个地址。

B机设置:
#!/bin/bash
modprobe ip_gre
ip tunnel add ipip mode gre remote 221.0.0.130 local 218.58.57.146
#配置本地和对端互连
ip link set ipip up
#起一个interface--ipip
ip addr add 10.88.0.2/30 dev ipip
#把10.88.0.2/30这个地址配给ipip这个interface
ifconfig | more 一下,就会发现ipip这块虚网卡上配置了10.88.0.2/30这个地址。
到B机ping 10.88.0.1应该可通;
A ping B 10.88.0.2也通。

好了,开始策略路由。
1.路由表---->论坛有。
例:到电信网段219.146.0.0/16的目的地址从A机走出去
B机上
route add -net 219.146.0.0/16 gw 10.88.0.1
2.iptables起地址伪装:光有路由可不行,iptables还要伪装,不然到了A机怎么回来?除非内网不是一个网段而且10.88.0.0/30作内网互连地址。
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ipip -j MASQUERADE/SNAT --to 10.88.0.
2 (所有路由表送到interface ipip的数据全部伪装到10.88.0.2)
3.A机路由配置要灵活:有用iproute2 和目的地址匹配的正好不用处理伪装上来的10.88.0.2/32,一行命令搞定:
iptables -t nat -A POSTROUTING -s 10.88.0.0/30 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.88.0.0/30 -o eth1 -j MASQUERADE
如果a机没配策略咋办 ?先配两个网关
ip route add 0/0 via 221.0.0.129
ip route add 0/0 via 219.146.0.129 table 100
制定路由表100的下一跳是219.146.0.129不难理解吧~
ip rule add from 10.88.0.0/30 table 100
把源地址作了地址转换的A机的虚拟地址上来的10.88.0.2指定下一跳为电信地址 table 100(回头看table 100的定义)
两个内网同一网段有问题?no!作了pat/nat了。无所谓。
我是升级内核了,没ros,iptunnel一样可以做!而且作就比ros稳定!
3 Jun
先下载解压和压缩工具的源代码,地址是:
http://www.bitsum.com/files/firmware_mod_tools.tar.gz
在linux下解开后,进入它的src目录,然后make,会自动编译这个工具,编译好以后,可以执行以下的步骤。

解压 firmware (extract_firmware.sh)

只需要简单的运行extract_firmware.sh和两个参数。

$ ./extract_firmware.sh firmware.bin working_directory/

firmware.bin  
                 需要解开的固件文件名

working_directory  
                 文件解开后保存的目录
It doesn't matter which firmware image you supply, i.e. for a WRT54G or an ASUS WL-500G. These images are usually all the same and differ only in the header format. The rebuilding process will create images for the various models.
An extraction log is created as extract.log.


修改  firmware (手动或者用 ipkg_install.sh脚本)

解开后的全部文件保存在先前指定的目录中,进入目录,可以看到两个目录,一个是rootfs,一个是image_parts。

rootfs/
这个目录中保存的是固件中的文件,可以修改这里

image_parts/
其中保存的是固件的引导内核
你可以直接在rootfs目录中添加和删除文件。

也可以使用ipkg_install.sh脚本来安装一个你所需要的软件包到rootfs中。
更多的软件包可以看后面的网址 (不一定会全部工作), http://ftp.selfnet.de/pub/openwrt/backports/rc5/ . 命令如下e:
$ ./ipkg_install.sh some_package-1.2.5.ipk working_directory/

some_package-1.2.5.ipkg  
                你所要安装的软件包名
working_directory  
                执行extract_firmware.sh 时指定的目录


重新打包 firmware (使用build_firmware.sh)

重新打包仍然简单,直接运行  build_firmware.sh 和参数就行了。

$ ./build_firmware.sh output_directory/ working_directory/

output_directory  
                       修改后的固件文件保存目录。
working_directory
                       是执行extract_firmware.sh时指定的目录

打包会建立一个叫 build.log的文件,你可以看一下打包是否成功。


通过此功能,可以在现有的固件中加入自己喜欢的功能,或者修改程序的界面、文字等,达到定制的作用。
3 Jun
OpenWRT - (http://www.openwrt.org)

开发板: 十几种市面上很容易买到的无线路由器,价钱500元左右, 请看硬件列表: (http://wiki.openwrt.org/TableOfHardware)

我使用的是 Linksys WRT54G:
CPU: MIPS 200MHZ
内存: 16M
ROM: 4M
网络接口: 4个LAN, 1个WAN, 1个Wireless Lan
已加接SD Card, 双串口和JTAG
详细请看这里: (http://www.eosp.org/?page_id=20)

在开发前可先安装使用jffs2(可读写)文件系统的Firmware, 了解系统架构, 安装软件, 内建HTTP, DHCP, DNS, SSH, Telnet, PPPOE, PPTP等, 有WEB界面,
另外可加装软件有7百多个选择, 包括Samba, mysql, OpenVPN, Asterisk,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]