TCP/IP详解å·1ï¼åè®®çä½åç®å½
è¯è åºåè¨
第1ç« æ¦è¿°1
1.1 å¼è¨1
1.2 åå±1
1.3 TCP/IPçåå±4
1.4 äºèç½çå°å5
1.5 ååç³»ç»6
1.6 å°è£ 6
1.7 åç¨8
1.8 客æ·-æå¡å¨æ¨¡å8
1.9 端å£å·9
1. æ ååè¿ç¨
1. RFC
1. æ åçç®åæå¡
1. äºèç½
1. å®ç°
1. åºç¨ç¼ç¨æ¥å£
1. æµè¯ç½ç»
1. å°ç»
第2ç« é¾è·¯å±
2.1 å¼è¨
2.2 以太ç½åIEEE å°è£
2.3 å°¾é¨å°è£
2.4 SLIPï¼ä¸²è¡çº¿è·¯IP
2.5 å缩çSLIP
2.6 PPPï¼ç¹å¯¹ç¹åè®®
2.7 ç¯åæ¥å£
2.8 æå¤§ä¼ è¾åå MTU
2.9 è·¯å¾MTU
2. 串è¡çº¿è·¯ååé计ç®
2. å°ç»
第3ç« IPï¼ç½é åè®®
3.1 å¼è¨
3.2 IPé¦é¨
3.3 IPè·¯ç±éæ©
3.4 åç½å¯»å
3.5 åç½æ©ç
3.6 ç¹æ®æ åµçIPå°å
3.7 ä¸ä¸ªåç½çä¾å
3.8 ifconfigå½ä»¤
3.9 netstatå½ä»¤
3. IPçæªæ¥
3. å°ç»
第4ç« ARPï¼å°å解æåè®®
4.1 å¼è¨
4.2 ä¸ä¸ªä¾å
4.3 ARPé«éç¼å
4.4 ARPçåç»æ ¼å¼
4.5 ARP举ä¾
4.5.1 ä¸è¬çä¾å
4.5.2 对ä¸åå¨ä¸»æºçARP请æ±
4.5.3 ARPé«éç¼åè¶ æ¶è®¾ç½®
4.6 ARP代ç
4.7 å è´¹ARP
4.8 arpå½ä»¤
4.9 å°ç»
第5ç« RARPï¼éå°å解æåè®®
5.1 å¼è¨
5.2 RARPçåç»æ ¼å¼
5.3 RARP举ä¾
5.4 RARPæå¡å¨ç设计
5.4.1 ä½ä¸ºç¨æ·è¿ç¨çRARPæå¡å¨
5.4.2 æ¯ä¸ªç½ç»æå¤ä¸ªRARPæå¡å¨
5.5 å°ç»
第6ç« ICMPï¼Internetæ§å¶æ¥æåè®®
6.1 å¼è¨
6.2 ICMPæ¥æçç±»å
6.3 ICMPå°åæ©ç 请æ±ä¸åºç
6.4 ICMPæ¶é´æ³è¯·æ±ä¸åºç
6.4.1 举ä¾
6.4.2 å¦ä¸ç§æ¹æ³
6.5 ICMP端å£ä¸å¯è¾¾å·®é
6.6 ICMPæ¥æç4.4BSDå¤ç
6.7 å°ç»
第7ç« Pingç¨åº
7.1 å¼è¨
7.2 Pingç¨åº
7.2.1 LANè¾åº
7.2.2 WANè¾åº
7.2.3 线路SLIPé¾æ¥
7.2.4 æ¨å·SLIPé¾è·¯
7.3 IPè®°å½è·¯ç±é项
7.3.1 é常çä¾å
7.3.2 å¼å¸¸çè¾åº
7.4 IPæ¶é´æ³é项
7.5 å°ç»
第8ç« Tracerouteç¨åº
8.1 å¼è¨
8.2 Traceroute ç¨åºçæä½
8.3 å±åç½è¾åº
8.4 广åç½è¾åº
8.5 IPæºç«éè·¯é项
8.5.1 宽æ¾çæºç«éè·¯çtraceroute
ç¨åºç¤ºä¾
8.5.2 ä¸¥æ ¼çæºç«éè·¯çtraceroute
ç¨åºç¤ºä¾
8.5.3 宽æ¾çæºç«éè·¯tracerouteç¨åº
çå¾è¿è·¯ç±
8.6 å°ç»
第9ç« IPéè·¯
9.1 å¼è¨
9.2 éè·¯çåç
9.2.1 ç®åè·¯ç±è¡¨
9.2.2 åå§åè·¯ç±è¡¨
9.2.3 è¾å¤æçè·¯ç±è¡¨
9.2.4 没æå°è¾¾ç®çå°çè·¯ç±
9.3 ICMP主æºä¸ç½ç»ä¸å¯è¾¾å·®é
9.4 转åæä¸è½¬å
9.5 ICMPéå®åå·®é
9.5.1 ä¸ä¸ªä¾å
9.5.2 æ´å¤çç»è
9.6 ICMPè·¯ç±å¨åç°æ¥æ
9.6.1 è·¯ç±å¨æä½
9.6.2 主æºæä½
9.6.3 å®ç°
9.7 å°ç»
ç¬¬ç« å¨æéè·¯åè®®
.1 å¼è¨
.2 å¨æéè·¯
.3 Unixéè·¯å®æ¤ç¨åº
.4 RIPï¼é路信æ¯åè®®
.4.1 æ¥ææ ¼å¼
.4.2 æ£å¸¸è¿è¡
.4.3 度é
.4.4 é®é¢
.4.5 举ä¾
.4.6 å¦ä¸ä¸ªä¾å
.5 RIPçæ¬
.6 OSPFï¼å¼æ¾æçè·¯å¾ä¼å
.7 BGPï¼è¾¹çç½å ³åè®®
.8 CIDRï¼æ ç±»ååé´éè·¯
.9 å°ç»
ç¬¬ç« UDPï¼ç¨æ·æ°æ®æ¥åè®®
.1 å¼è¨
.2 UDPé¦é¨
.3 UDPæ£éªå
.3.1 tcpdumpè¾åº
.3.2 ä¸äºç»è®¡ç»æ
.4 ä¸ä¸ªç®åçä¾å
.5 IPåç
.6 ICMPä¸å¯è¾¾å·®éï¼éè¦åçï¼
.7 ç¨Tracerouteç¡®å®è·¯å¾MTU
.8 éç¨UDPçè·¯å¾MTUåç°
.9 UDPåARPä¹é´ç交äºä½ç¨
. æ大UDPæ°æ®æ¥é¿åº¦
. ICMPæºç«æå¶å·®é
. UDPæå¡å¨ç设计
..1 客æ·IPå°åå端å£å·
..2 ç®æ IPå°å
..3 UDPè¾å ¥éå
..4 éå¶æ¬å°IPå°å
..5 éå¶è¿ç«¯IPå°å
..6 æ¯ä¸ªç«¯å£æå¤ä¸ªæ¥æ¶è
. å°ç»
ç¬¬ç« å¹¿æåå¤æ
.1 å¼è¨
.2 广æ
.2.1 åéç广æ
.2.2 æåç½ç»ç广æ
.2.3 æååç½ç广æ
.2.4 æåææåç½ç广æ
.3 广æçä¾å
.4 å¤æ
.4.1 å¤æç»å°å
.4.2 å¤æç»å°åå°ä»¥å¤ªç½å°åç转æ¢
.4.3 FDDIå令çç¯ç½ç»ä¸çå¤æ
.5 å°ç»
ç¬¬ç« IGMPï¼Internetç»ç®¡çåè®®
.1 å¼è¨
.2 IGMPæ¥æ
.3 IGMPåè®®
.3.1 å å ¥ä¸ä¸ªå¤æç»
.3.2 IGMPæ¥ååæ¥è¯¢
.3.3 å®ç°ç»è
.3.4 çåæ¶é´å段
.3.5 ææ主æºç»
.4 ä¸ä¸ªä¾å
.5 å°ç»
ç¬¬ç« DNSï¼ååç³»ç»
.1 å¼è¨
.2 DNSåºç¡
.3 DNSçæ¥ææ ¼å¼
.3.1 DNSæ¥è¯¢æ¥æä¸çé®é¢é¨å
.3.2 DNSååºæ¥æä¸çèµæºè®°å½é¨å
.4 ä¸ä¸ªç®åçä¾å
.5 æéæ¥è¯¢
.5.1 举ä¾
.5.2 主æºåæ£æ¥
.6 èµæºè®°å½
.7 é«éç¼å
.8 ç¨UDPè¿æ¯ç¨TCP
.9 å¦ä¸ä¸ªä¾å
. å°ç»
ç¬¬ç« TFTPï¼ç®åæä»¶ä¼ éåè®®
.1 å¼è¨
.2 åè®®
.3 ä¸ä¸ªä¾å
.4 å®å ¨æ§
.5 å°ç»
ç¬¬ç« BOOTP: å¼å¯¼ç¨åºåè®®
.1 å¼è¨
.2 BOOTPçåç»æ ¼å¼
.3 ä¸ä¸ªä¾å
.4 BOOTPæå¡å¨ç设计
.5 BOOTPç©¿è¶è·¯ç±å¨
.6 ç¹å®ååä¿¡æ¯
.7 å°ç»
ç¬¬ç« TCPï¼ä¼ è¾æ§å¶åè®®
.1 å¼è¨
.2 TCPçæå¡
.3 TCPçé¦é¨
.4 å°ç»
ç¬¬ç« TCPè¿æ¥ç建ç«ä¸ç»æ¢
.1 å¼è¨
.2 è¿æ¥ç建ç«ä¸ç»æ¢
.2.1 tcpdumpçè¾åº
.2.2 æ¶é´ç³»å
.2.3 建ç«è¿æ¥åè®®
.2.4 è¿æ¥ç»æ¢åè®®
.2.5 æ£å¸¸çtcpdumpè¾åº
.3 è¿æ¥å»ºç«çè¶ æ¶
.3.1 第ä¸æ¬¡è¶ æ¶æ¶é´
.3.2 æå¡ç±»åå段
.4 æ大æ¥æ段é¿åº¦
.5 TCPçåå ³é
.6 TCPçç¶æåè¿å¾
.6.1 2MSLçå¾ ç¶æ
.6.2 å¹³éæ¶é´çæ¦å¿µ
.6.3 FIN_WAIT_2ç¶æ
.7 å¤ä½æ¥æ段
.7.1 å°ä¸åå¨ç端å£çè¿æ¥è¯·æ±
.7.2 å¼å¸¸ç»æ¢ä¸ä¸ªè¿æ¥
.7.3 æ£æµåæå¼è¿æ¥
.8 åæ¶æå¼
.9 åæ¶å ³é
. TCPé项
. TCPæå¡å¨ç设计
..1 TCPæå¡å¨ç«¯å£å·
..2 éå®çæ¬å°IPå°å
..3 éå®çè¿ç«¯IPå°å
..4 å¼å ¥è¿æ¥è¯·æ±éå
. å°ç»
ç¬¬ç« TCPç交äºæ°æ®æµ
.1 å¼è¨
.2 交äºå¼è¾å ¥
.3 ç»åæ¶å»¶ç确认
.4 Nagleç®æ³
.4.1 å ³éNagleç®æ³
.4.2 ä¸ä¸ªä¾å
.5 çªå£å¤§å°éå
.6 å°ç»
ç¬¬ç« TCPçæåæ°æ®æµ
.1 å¼è¨
.2 æ£å¸¸æ°æ®æµ
.3 æ»å¨çªå£
.4 çªå£å¤§å°
.5 PUSHæ å¿
.6 æ ¢å¯å¨
.7 æåæ°æ®çååé
.7.1 带宽æ¶å»¶ä¹ç§¯
.7.2 æ¥å¡
.8 ç´§æ¥æ¹å¼
.9 å°ç»
ç¬¬ç« TCPçè¶ æ¶ä¸éä¼
.1 å¼è¨
.2 è¶ æ¶ä¸éä¼ çç®åä¾å
.3 å¾è¿æ¶é´æµé
.4 å¾è¿æ¶é´RTTçä¾å
.4.1 å¾è¿æ¶é´RTTçæµé
.4.2 RTT估计å¨ç计ç®
.4.3 æ ¢å¯å¨
.5 æ¥å¡ä¸¾ä¾
.6 æ¥å¡é¿å ç®æ³
.7 å¿«ééä¼ ä¸å¿«éæ¢å¤ç®æ³
.8 æ¥å¡ä¸¾ä¾ï¼ç»ï¼
.9 ææ¯æ¡è·¯ç±è¿è¡åº¦é
. ICMPçå·®é
. éæ°åç»
. å°ç»
ç¬¬ç« TCPçåæå®æ¶å¨
.1 å¼è¨
.2 ä¸ä¸ªä¾å
.3 ç³æ¶çªå£ç»¼åç
.4 å°ç»
ç¬¬ç« TCPçä¿æ´»å®æ¶å¨
.1 å¼è¨
.2 æè¿°
.3 ä¿æ´»ä¸¾ä¾
.3.1 å¦ä¸ç«¯å´©æº
.3.2 å¦ä¸ç«¯å´©æºå¹¶éæ°å¯å¨
.3.3 å¦ä¸ç«¯ä¸å¯è¾¾
.4 å°ç»
ç¬¬ç« TCPçæªæ¥åæ§è½
.1 å¼è¨
.2 è·¯å¾MTUåç°
.2.1 ä¸ä¸ªä¾å
.2.2 大åç»è¿æ¯å°åç»
.3 é¿è¥ç®¡é
.4 çªå£æ©å¤§é项
.5 æ¶é´æ³é项
.6 PAWSï¼é²æ¢åç»çåºå·
.7 T/TCPï¼ä¸ºäºå¡ç¨çTCPæ©å±
.8 TCPçæ§è½
.9 å°ç»
ç¬¬ç« SNMPï¼ç®åç½ç»ç®¡çåè®®
.1 å¼è¨
.2 åè®®
.3 管çä¿¡æ¯ç»æ
.4 对象æ è¯ç¬¦
.5 管çä¿¡æ¯åºä»ç»
.6 å®ä¾æ è¯
.6.1 ç®ååé
.6.2 è¡¨æ ¼
.6.3 åå ¸å¼æåº
.7 ä¸äºç®åçä¾å
.7.1 ç®ååé
.7.2 get-nextæä½
.7.3 è¡¨æ ¼ç访é®
.8 管çä¿¡æ¯åº(ç»)
.8.1 systemç»
.8.2 interfaceç»
.8.3 atç»
.8.4 ipç»
.8.5 icmpç»
.8.6 tcpç»
.9 å ¶ä»ä¸äºä¾å
.9.1 æ¥å£MTU
.9.2 è·¯ç±è¡¨
. trap
. ASN.1åBER
. SNMPv
. å°ç»
ç¬¬ç« TelnetåRloginï¼è¿ç¨ç»å½
.1 å¼è¨
.2 Rloginåè®®
.2.1 åºç¨è¿ç¨çå¯å¨
.2.2 æµéæ§å¶
.2.3 客æ·çä¸æé®
.2.4 çªå£å¤§å°çæ¹å
.2.5 æå¡å¨å°å®¢æ·çå½ä»¤
.2.6 客æ·å°æå¡å¨çå½ä»¤
.2.7 客æ·ç转ä¹ç¬¦
.3 Rloginçä¾å
.3.1 åå§ç客æ·-æå¡å¨åè®®
.3.2 客æ·ä¸æé®
.4 Telnetåè®®
.4.1 NVT ASCII
.4.2 Telnetå½ä»¤
.4.3 é项åå
.4.4 åé项åå
.4.5 ååå·¥ãä¸æ¬¡ä¸å符ãä¸æ¬¡
ä¸è¡æè¡æ¹å¼
.4.6 åæ¥ä¿¡å·
.4.7 客æ·ç转ä¹ç¬¦
.5 Telnet举ä¾
.5.1 åå符æ¹å¼
.5.2 è¡æ¹å¼
.5.3 ä¸æ¬¡ä¸è¡æ¹å¼(åè¡æ¹å¼)
.5.4 è¡æ¹å¼ï¼å®¢æ·ä¸æé®
.6 å°ç»
ç¬¬ç« FTPï¼æä»¶ä¼ éåè®®
.1 å¼è¨
.2 FTPåè®®
.2.1 æ°æ®è¡¨ç¤º
.2.2 FTPå½ä»¤
.2.3 FTPåºç
.2.4 è¿æ¥ç®¡ç
.3 FTPçä¾å
.3.1 è¿æ¥ç®¡çï¼ä¸´æ¶æ°æ®ç«¯å£
.3.2 è¿æ¥ç®¡çï¼é»è®¤æ°æ®ç«¯å£
.3.3 ææ¬æä»¶ä¼ è¾ï¼NVT ASCII
表示è¿æ¯å¾å表示
.3.4 å¼å¸¸ä¸æ¢ä¸ä¸ªæ件çä¼ è¾ï¼
Telnetåæ¥ä¿¡å·
.3.5 å¿åFTP
.3.6 æ¥èªä¸ä¸ªæªç¥IPå°åçå¿åFTP
.4 å°ç»
ç¬¬ç« SMTPï¼ç®åé®ä»¶ä¼ éåè®®
.1 å¼è¨
.2 SMTPåè®®
.2.1 ç®åä¾å
.2.2 SMTPå½ä»¤
.2.3 ä¿¡å°ãé¦é¨åæ£æ
.2.4 ä¸ç»§ä»£ç
.2.5 NVT ASCII
.2.6 éè¯é´é
.3 SMTPçä¾å
.3.1 MXè®°å½ï¼ä¸»æºéç´æ¥è¿å°
Internet
.3.2 MXè®°å½ï¼ä¸»æºåºæ é
.3.3 VRFYåEXPNå½ä»¤
.4 SMTPçæªæ¥
.4.1 ä¿¡å°çååï¼æ©å çSMTP
.4.2 é¦é¨ååï¼éASCIIå符
.4.3 æ£æååï¼éç¨Interneté®ä»¶
æ©å
.5 å°ç»
ç¬¬ç« ç½ç»æ件系ç»
.1 å¼è¨
.2 Sunè¿ç¨è¿ç¨è°ç¨
.3 XDRï¼å¤é¨æ°æ®è¡¨ç¤º
.4 端å£æ å°å¨
.5 NFSåè®®
.5.1 æ件å¥æ
.5.2 å®è£ åè®®
.5.3 NFSè¿ç¨
.5.4 UDPè¿æ¯TCP
.5.5 TCPä¸çNFS
.6 NFSå®ä¾
.6.1 ç®åçä¾åï¼è¯»ä¸ä¸ªæ件
.6.2 ç®åçä¾åï¼å建ä¸ä¸ªç®å½
.6.3 æ ç¶æ
.6.4 ä¾åï¼æå¡å¨å´©æº
.6.5 çå¹è¿ç¨
.7 第3ççNFS
.8 å°ç»
ç¬¬ç« å ¶ä»çTCP/IPåºç¨ç¨åº
.1 å¼è¨
.2 Fingeråè®®
.3 Whoisåè®®
.4 ArchieãWAISãGopherãVeronica
åWWW
.4.1 Archie
.4.2 WAIS
.4.3 Gopher
.4.4 Veronica
.4.5 ä¸ç»´ç½WWW
.5 Xçªå£ç³»ç»
.5.1 Xscopeç¨åº
.5.2 LBX: ä½å¸¦å®½X
.6 å°ç»
éå½A tcpdumpç¨åº
éå½B 计ç®æºæ¶é
éå½C sockç¨åº
éå½D é¨åä¹ é¢ç解ç
éå½E é ç½®é项
éå½F å¯ä»¥å è´¹è·å¾çæºä»£ç
åèæç®
缩ç¥è¯
Linux下针对路由功能配置iptables的码详方法详解
作为公司上网的路由器需要实现的功能有nat地址转换、dhcp、码详dns缓存、码详流量控制、码详应用程序控制,码详flowable源码运行nat地址转换通过iptables可以直 接实现,码详dhcp服务需要安装dhcpd,码详dns缓存功能需要使用bind,码详流量控制可以使用tc,码详应用程序控制:例如对qq的码详封锁可以使用 netfilter-layer7-v2.+-protocols---.tar.gz来实现
1、网络规划
操作系统是码详centos5.8
2、安装dhcpd
代码如下:
yum install dhcp-3.0.5-.el5
vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet .0.0.0 netmask ...0 {
option routers .0.0.1;
option subnet-mask ...0;
option domain-name-servers .0.0.1;
range dynamic-bootp .0.0. .0.0.;
default-lease-time ;
max-lease-time ;
}
3、码详安装bind,码详实现dns缓存
代码如下:
yum install bind.i bind-libs.i bind-utils.i
vim /etc/named.conf
options {
directory "/var/named";
allow-recursion { .0.0.0/; };
recursion yes;
forward first; #将所有请求都进行转发
forwarders { ...; }; #定义转发服务器地址
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-transfer { none; };
};
zone "0.0..in-addr.arpa" IN {
type master;
file "named.loopback";
allow-transfer { none; };
};
创建根域文件,码详默认有
代码如下:
dig -t NS . /var/named/named.ca
chown :named /var/named/named.ca
创建本地正向解析文件,默认有
代码如下:
vim /var/named/named.localhost
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A .0.0.1
chown :named /var/named/named.localhost
创建本地反向解析文件,默认有
代码如下:
vim /var/named/named.loopback
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A .0.0.1
PTR localhost.
chown :named /var/named/named.loopback
检查主配置文件
代码如下:
named-checkconf
检查根区域配置文件
代码如下:
named-checkzone “.” /var/named/named.ca
检查区域文件
代码如下:
named-checkzone “localhost” /var/named/named.localhost
启动服务
代码如下:
service named start
4、重新编译编译内核和iptables以支持应用层过滤
由于实行防火墙功能的是netfilter内核模块,所以需要重新编译内核,需要下载新的内核源码,并使用netfilter-layer7-v2.作为内核的补丁一起编译到内核中。而控制netfiler的是iptables工具,因此iptables也必须重新编译安装,最后再安装应用程序过滤特征码库-protocols--.tar.gz
1、给内核打补丁,并重新编译内核
2、给iptables源码打补丁,付费源码织梦并重新编译iptables
3、安装proto
备份iptables脚本和配置文件
代码如下:
cp /etc/rc.d/init.d/iptables /root/iptables.sysv
cp /etc/sysconfig/iptables-config /root/iptables-config
2.6内核下载地址
/l7-filter/
iptables源码下载地址
/l7-filter/
代码如下:
xz -d linux-2.6...tar.xz
tar -xvf linux-2.6...tar.gz -C /usr/src #新的内核源码,用于重新编译
tar -zxvf netfilter-layer7-v2..tar.gz -C /usr/src #内核补丁和iptables补丁 ,只支持到2.6.
#进入解压目录并创建软连接
pcd /usr/src
ln -sv linux-2.6.. linux
#进入内核目录
pcd /usr/src/linux
#为当前内核打补丁
ppatch -p1 ../netfilter-layer7-v2./kernel-2.6.-2.6.-layer7-2..path
#为了方便编译内核将系统上的内核配置文件复制过来
pcp /boot/config-2.6.-.el5 /usr/src/linux/.config
编译内核
代码如下:
make menuconfig
Networking support - Networking Options - Network packet filtering framework - Core Netfilter Configuration
Netfilter connection tracking support
"lawyer7" match support
"string" match support
"time" match support
"iprange" match support
"connlimit" match support
"state" match support
"conntrack" connection match support
"mac" address match support
"multiport" Multiple port match support
Networking support - Networign options - Network packet filtering framework - IP:Netfiltr Configuration
IPv4 connection tracking support (required for NAT)
Full NAT
MASQUERADE target support
NETMAP target support
REDIRECT target support
在Networking support中选择 Networking options
查找Network packet filtering framework(Netfilter)–Core Netfiler Configrationg–Netfilter connection tracking support(NEW),”layer7″ match support(NEW),”time” match support(NEW),”iprange”
查找IP:Netfilter Configuration–IPv4 connection tracking support,Full NAT(NEW)
代码如下:
make
make modules_install
make install
重启操作系统选择新内核登录
卸载旧的iptables
代码如下:
rpm -e iptables-1.3.5-9.1.el5 iptables-ipv6-1.3.5-9.1.el5 iptstate-1.4-2.el5 --nodeps
安装新的iptables,以支持新的netfiler模块
代码如下:
tar -jsvf iptables-1.4.6.tar.bz2 -C /usr/src
cd /usr/src/netfilter-layer7-v2.
cd iptables-1.4.3forward-for-kernel-2.6.forward
cp * /usr/src/iptables-1.4.6/extensions/
cd /usr/src/iptables-1.4.6/
./configure --prefix=/usr --with-ksource=/usr/src/linux
make
make install
查看安装后的iptables的文件
代码如下:
ls /usr/sbin |grep iptables
ls /usr/libexec/xtables
复制之前备份的配置文件和脚本
代码如下:
cp /root/iptables-config /etc/sysconfig/
cp /root/iptables.sysv /etc/rc.d/init.d/iptables
修改脚本中iptables的路径
代码如下:
vim /etc/rc.d/init.d/iptables
:.,$s@/sbin/$IPTABLES@/usr/sbin/$IPTABLES@g
让iptables服务开机自动启动
代码如下:
chkconfig --add iptables
修改iptables 配置文件
将/etc/sysconfig/iptables-config中的
IPTABLES_MODULES=”ip_conntrack_netbios_ns” 注释掉
安装协议特征码
代码如下:
tar xvf -protocols--.tar.gz
make install
完成后在/etc/l7-protocols会生成文件
支持的协议/etc/l7-protocols/protocols
添加iptables策略,运行内部网络上网,禁止qq和视频
代码如下:
iptables -t nat -A POSTROUTING -s .0.0.0/ -j SNAT --to-soure ..6.
iptables -A FORWARD -m layer7 --l7proto qq -j DROP
iptables -A FORWARD -m layer7 --l7proto )或我的主页(networld.8u8.com)去下载远程服务安装工具。
6.在Win下依次配一台Dos、win无盘站.方法与nt下一模一样,别告诉我你不会配置.不会的,以下就不用看了。
7.以无盘win启动工作站,把第4步制作的终端客户盘安装在无盘站上。
8.配置客户端。双击citrix图标,建立一个新连接,这里注意:要填好主机名(服务器名称),协议选择Netbios,的其它全部用他的默认就可以了。
9.建立连接完成后,双击刚才建立的连接,就出现梦寐以求的Win桌面了。你可以运行任何在服务器的软件了!
6、安装Linux无盘工作站
[文章导读]
其实Linux 对远程引导的支持非常好,Linnx内核自身又支持网络文件系统,因此非常适合做无盘工作站,jquery after方法源码本文将以一个实例向大家详细介绍无盘Linux工作站的安装办法。
[正文]
当年Novell下的无盘DOS工作站很是流行,后来又流行过Win无盘工作站,只是由于问题多多,后来微软自己停止了对无盘Windows的支持。随着Linux的日益流行,使用Linux的人越来越多,其实Linux 对远程引导的支持非常好,Linnx内核自身又支持网络文件系统,因此非常适合做无盘工作站,本文将以一个实例向大家详细介绍无盘Linux工作站的安装办法。
这个网络是一个小的局域网,有1台服务器和4台 Linux 无盘工作站,彼此之间用双绞线通过HUB连接,服务器的IP地址定为..0. ,名字是server ,5台无盘工作站的地址由服务器动态分配,地址范围从 ..0.1 到..0.4 ,名字分别是c1,c2, c3,c4,服务器和无盘工作站使用的都是NE 兼容网卡,无盘工作站使用的网卡上都安 装了BOOTROM 启动芯片,服务器操作系统安装的是 RedHat Linux 6.0 ,安装时选用定制安装,并安装了全部软件。直播平台演示源码
Linux的远程引导有两种方式,一是利用Bootp协议,有一个专门的项目EtherBoot 提供支持( ( or Mbit)
Other ISA cards
NE/NE support (NEW)
都设置为有效
Filesystems 该项目下面的Network File Systems子项目下面的
NFS filesystem support
Root file system on NFS (NEW)
都设置为有效
以上设置完成后,退出内核编译设置程序,会出现一个对话框:Do you wish to save your new kernel configuration?
然后执行 make dep && make bzImage 进行内核编译,这个过程得花一点时间,特别是如果计算机的速度不快的话,花的时间会更长一些。编译内核如果没有错误,会得到内核映象文件/usr/src/linux/arch/i/boot/bzImage ,将启动软盘插入计算机,执行下面的命令 mount -t vfat /dev/fd0 /mnt/floopy cp /usr/src/linux/arch/i/boot/bzImage /mnt/floppy umount /dev/fd0
好了,启动盘上的文件都准备齐全了,等会儿用它到Win环境下制作启动映象。
服务器设置
服务器端需要运行nfsd、dhcpd、mars_new等几个服务进程,这些软件在ReHat Linux 发行套件里都有,如果在安装 Linux 的时候选择全部安装,这些软件都会随着安装操作 系统而装好了,下面对这些软件进行设置,注意,下面的操作要以 root 身份进行。
1、 NFS 守护进程nfsd
首先要建立几个供无盘工作站使用的目录,并通过nfsd 导出,命令如下:
mkdir /tftpboot
然后编辑文件 /etc/hosts ,拉拉外卖源码9.0加入下面的内容
..0. server server.domain
..0.1 c1 c1.domain
..0.2 c2 c2.domain
..0.3 c3 c3.domain
..0.4 c4 c4.domain
第一台工作站的工作目录设置方法如下:
mkdir /tftpboot/..0.1
cd /tftpboot/..0.1
cp -a /bin .
cp -a /dev .
mknod dev/nd0 b 0
chmod dev/nd0
cp -a /etc .
cp -a /home .
cp -a /lib .
rm -rf lib/modules
cp -a /root .
cp -a /sbin .
cp -a /var .
mkdir proc
mkdir usr
mkdir tmp
chmod tmp
touch fastboot
chattr +i fastboot
cd etc
编辑文件 sysconfig/network-scripts/ifcfg-eth0
保留其中的
DEVICE=eth0
ONBOOT=yes
其余的行全部删除,然后增加一行
BOOTPROTO=dhcp
编辑文件 rc.d/rc.sysinit ,在文件最后加上两行
mount -t nfs server:/usr /usr
/usr/XR6/bin/xfs
编辑文件 fstab
保留其中的
none /proc proc defaults 0 0
其余的行全部删除,然后增加一行
server:/tftpboot/..0.1 / nfs defaults 1 1
其它工作站的工作目录设置方法就简单多了
cd /tftpboot
cp -a ..0.1 ..0.2
cp -a ..0.1 ..0.3
cp -a ..0.1 ..0.4
编辑文件 /etc/exports ,加入以下内容
/usr (ro,no_root_squash)
/tftpboot/..0.1 (rw,no_root_squash)
/tftpboot/..0.2 (rw,no_root_squash)
/tftpboot/..0.3 (rw,no_root_squash)
/tftpboot/..0.4 (rw,no_root_squash)
2、动态主机配置协议服务器 dpchd
检查一下文件/etc/dhcpd.leases是否存在,若不存在就用命令touch /etc/dhcpd.leases 创建一个,然后编辑文件 /etc/dhcpd.conf ,加入以下内容
subnet ..0.0 netmask ...0 {
range ..0.1 ..0.4;
}
3、NetWare 模拟器 marsw_nwe
编辑文件 /etc/nwserv.conf,找到下面的行
# 4 0x eth0 .3 1
将该行开头的'#'去掉,再找到
4 0x0 * .3 1
在该行开头加上'#'
制作启动映象
进入Win,将Win(早期的版本,可以用服务器安装方式安装)安装光盘的admin\nettools\netsetup\rplimage.exe 复制到硬盘,将启动软盘插入软驱,然后在纯MSDOS方式下执行 rplimage a: 就会得到启动映象 net$dos.sys,再将启动映象 net$dos.sys 复制到启动盘上(如果启动盘空间不够,可以先删除启动盘上的一些文件以留出空间)。
启动 Linux 服务器,以 root 用户登录,将启动软盘插入软驱,执行下面的命令 mount -t vfat /dev/fd0 /mnt/floppy cp /mnt/floppy/net\$dos.sys /var/mars_nwe\sys\login umount /dev/fd0 然后执行 setup ,移动光棒至 System services 选项回车,出现 Services 设置画面,将dhcpd,nfs,mars-nwe 都设为有效,退出 setup 程序,执行以下的命令以启动上述服务进程:
/etc/rc.d/rc3.d/*mars-nwe restart
/etc/rc.d/rc3.d/*dhcpd restart
/etc/rc.d/rc3.d/*nfs restart
下一次再启动服务器时,上述服务进程会自动执行。
至此,所有的设置工作全部完成了,联好网络随便打开一台无盘工作站,稍等一下,出现远程引导的信息,接着会启动 Win,接下来很快就会装载 Linux ,在一大堆 Linux 的启动信息之后如果看到 Linux 的登录提示,就说明远程启动成功了。
Linux 无盘工作站虽然运转起来了,但还有一个问题,就是交换的问题,因为Linux 是一个支持虚拟存储的操作系统,当机器内存不够时,Linux 就会把内存中暂时不用的数 据换出到交换设备上,等需要时再换回来,刚才我们没有设置交换区,在无盘工作站上用 free 命令就会发现交换区为零,如果无盘工作站内存较大,运行一些不大的程序,没有交换区还是可以的,但若运行大型程序就会出问题,下面介绍在服务器上设置交换区即远 程交换的方法。
对于2.1.版以前的内核,要实现远程交换可有点费事,得从网络上下载有关的补丁来修改内核代码,然后再编译内核映象。从2.1.版后的内核支持网络块设备,这样,实现远程交换就容易了。首先编译内核时要使 Network block device support 选项有效(刚才编译内核时就是这么作的),再从boot可供选用, etherboot对网卡型号有要求,支持的网卡种类不算很多,但对最常用的网卡如3c///b、NE//PCIne、Intel eepro等基本上都能支持;Netboot可以用ndis或pktdrv,这些文件一般在随卡附带的驱动盘上都有,但这仅限于网络启动,对网卡的要求首先是Linux能识别。
以下步骤所述适用于etherboot;
1. 展开etherboot,进入src-,编辑Config。有许多选项可以让你做多重启动、显示信息、询问口令之类的事情,这时你需要做的是用bootp代替dhcp,即在Config中定义-DNO_DHCP_SUPPORT设置。因为我们打算在服务器端用bootp,所以这是必须的,否则在启动时会因为未能寻找到dhcp server而启动不了。如果你准备在服务器端使用dhcp,那么这一步就不需要了。
2. make。对每种网卡都会生成两个文件 .rom和 .lzrom,后者是压缩过的。
3. 使用软盘启动验证所作的启动ROM没问题,假设你用的网卡是ne兼容的:
cat ../src/floppyload.bin ne.lzrom > /dev/fd0
如用软盘启动,系统能探测到你的网卡并发出bootp请求。如果一切OK,你就可以把ROM文件刻写到EPROM里了。
4. cd ../netboot*;make;make install。make如果出错,解决办法是把系统中的bcc改名,然后将gcc连接成bcc,再重新make。最后在系统中会增加一个程序mknbi-linux,这是用来处理linux内核的,在服务器端设置部分会讲它的用法。
客户端的工作完成了。
二、服务器端:
假设你的无盘工作站ip为.0.0.1; 机器名为dc1.subnet.net,另一台无盘工作站ip为.0.0.2,机器名为dc2.subnet.net, 服务器ip为.0.0.,名为server.subnet.net。
1. 修改/etc/hosts,增加dc1.subnet.net,dc2.subnet.net
2. 取得bootp-2.x.x,展开后注意把带的各种patch都打上。然后make; make install
3. 建立/etc/bootptab,如下:
global.prof:
:sm=...0:
:bf=/tftpboot/vmlinuz.nb:
dc1:tc=global.prof:ha=cd7a:ip=.0.0.1:
dc2:tc=global.prof:ha=e1:ip=.0.0.2:
ha用无盘工作站网卡的MAC地址代替。
4. 修改inetd.conf,去掉bootpd和tftpd的#号,如下:
tftp dgram udp wait root /usr/sbin/tcpd tftpd –s /tftpboot
bootps dgram udp wait root /usr/sbin/tcpd bootpd -i
kill –HUP `cat /var/run/inetd.pif`
5. 建立/tftpboot/.0.0.1,cd /tftpboot/.0.0.1,
(cd /; tar cpf – lib sbin bin var etc dev)| tar xpf –
mkdir usr; mkdir tmp; chmod tmp; mkdir home;mkdir root; makdir
proc; mkdir mnt
6. touch fastboot; chattr +i fastboot
(fstab 中 / 和 /usr 的最后一项设成0,也许不需要这一步了,但我没试过)
以下是一个shell script,可用于自动执行以上操作。
#!/bin/sh
if [ $# != 1 ]
then
echo Usage: $0 client-IP-addr
exit 1
fi
cd /
umask
mkdir -p /tftpboot/$1
# just make these ones
for d in home mnt proc tmp usr
do
mkdir /tftpboot/$1/$d
done
chmod /tftpboot/$1/tmp
touch /tftpboot/$1/fastboot
chattr +i /tftpboot/$1/fastboot
# copy these ones
(cd /; tar cpf - bin lib sbin dev etc var) | (cd /tftpboot/$1; tar xpf -)
7. 删除var下一切不需要的东西, 减小空间。删除lib/modules下一切不需要的模块。
8. 修改etc/sysconfig/network,etc/sysconfig/network-scripts/ifcfg-eth0,
etc/fstab,etc/conf.module
fstab中指明root在服务器server上,like this
server:/tftpboot/.0.0.1 / nfs default 0 0
server:/usr /usr nfs default 0 0
9. 配置etc/rc.d/rc3.d,关掉一切不需要的网络服务。
. 删除etc/rc.d/rc6.d/K?network。
. 修改etc/rc.d/rc.sysinit,寻找“mount –a –t nonfs,smbfs…"改成
“mount.–a –t nosmbfs…"
. mkdir /tftpboot/.0.0.2; cd /tftpboot/.0.0.2;
. 修改etc/sysconfig/network,etc/sysconfig/network-scripts/ifcfg-eth0,
etc/fstab,etc/conf.module
. cd /etc; vi exports;
/usr dc*.subnet.net(ro)
/tftpboot/.0.0.1 dc1.subnet.net(rw,no_root_squash)
/tftpboot/.0.0.2 dc2.subnet.net(rw,no_root_squash)
exportfs –a
. 编译一个新内核,必须包含以下特性:
NFS filesystem 支持
Root on NFS 支持
Bootp 支持
无盘工作站所用的网卡型号支持
编译出新内核之后,用mknbi-linux处理,
mknbi-linux bzImage vmlinuz.nb
将vmlinuz.nb放在/tftpboot下即可。
至此,服务器端的工作就完成了。
注意事项:
1. 如果你打算在服务器端用dhcp,需要自己配置,参看dhcp的文档。
2. Rh6.1自带一个bootparamd,也应该能完成同样的工作,但在manual中语焉不详,不知该如何设置。
3. 服务器端 / 和 /usr 最好单独分区。
4. etherboot的文档上说对有些网卡比如PCI NE兼容网卡,可能需要调整Makefile中的vendor信息和ID信息,我还未试过。
启动你的无盘工作站,如一切操作无误的话,工作站则应该能启动起来。启动过程中如果有一些地方不顺利,可以在启动之后对无盘工作站上按一般方法进行设置。
希望以上的讲述能给读者有所帮助和启迪!
8、Linux无盘工作站架设实例
后面还有实例你自己看吧!
2024-11-30 14:37
2024-11-30 14:14
2024-11-30 13:06
2024-11-30 12:48
2024-11-30 12:41