?? ip-alias.txt
字號(hào):
原始文件:Linux IP Alias mini HOWTO檔案敘述:如何在 Linux 機(jī)器上設(shè)定 IP 別名翻譯日期:1997/10/23翻譯維護(hù):[1]cwhuang@phys.ntu.edu.tw---------------------------------------------------------------------------------------------- 本文最後修改日期: January 13th 1997. 如何在 Linux 機(jī)器上設(shè)定 IP 別名(aliasing) GNU Copyleft 1996/1997 Harish Pillay ([2]h.pillay@ieee.org) 原始站: [3]http://home.pacific.net.sg/~harish/linuxipalias.html摘要:本文說明如何在 Linux 機(jī)器上設(shè)定并執(zhí)行 IP 別名.除此之外,還有如何設(shè)定在 IP別名上接收 e-mail.我的設(shè)定:* 最新的核心 (2.0.27 - 從 [4]ftp://ftp.funet.fi/pub/Linux/kernel/src/v2.0 取得) - 從 1.3.7x 以後就可以.* 將 IP Alias 編譯成可載入模組.你在用 "make config" 指令編譯核心時(shí),如果要 把 IP Masq 編譯成模組(Modules)應(yīng)會(huì)被問到.查看 Modules HOWTO(如果有的話) 或是查看 /usr/src/linux/Documentation/modules.txt 中的資訊.* 我在已分配給我的 IP 之外還又要了兩個(gè)額外的 IP.* 一片 D-Link DE620 網(wǎng)路卡(不重要,任何 Linux 支援的網(wǎng)路卡都行).指令:* 首先載入 IP Alias 模組(如果你將它編譯進(jìn)核心可跳過此步驟): /sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o* 再來,建立回繞(loopback)裝置,以及 eth0 界面上以主 IP 號(hào)碼為開頭的所有 IP 號(hào)碼: /sbin/ifconfig lo 127.0.0.1 /sbin/ifconfig eth0 up /sbin/ifconfig eth0 172.16.3.1 /sbin/ifconfig eth0:0 172.16.3.10 /sbin/ifconfig eth0:1 172.16.3.100 172.16.3.1 是主 IP 號(hào)碼,而 .10 及 .100 是別名.比較奇怪的地方是 eth0:x, 其中 x=0, 1, 2, ... n 在每一不同的 IP 號(hào)碼上.主 IP 號(hào)碼不需要這個(gè).* 第三步是建立遞送路徑.首先,遞送到回繞裝置,然後是區(qū)域網(wǎng)路,最後是不同的 IP 號(hào)碼及預(yù)設(shè)遞送路徑: /sbin/route add -net 127.0.0.0 /sbin/route add -net 172.16.3.0 dev eth0 /sbin/route add -host 172.16.3.1 dev eth0 /sbin/route add -host 172.16.3.10 dev eth0:0 /sbin/route add -host 172.16.3.100 dev eth0:1 /sbin/route add default gw 172.16.3.200就這樣了.在上面的例子中,為了說明我用的是 RFC 1918 所定義的私用 IP 號(hào)碼.用你正式或私有的 IP 號(hào)碼來取代它.上面的例子只展示了三個(gè) IP 號(hào)碼.在 /usr/include/linux/net_alias.h 中定義的最大值是 256.在一片網(wǎng)路卡上 256 個(gè) IP 號(hào)碼已經(jīng)很多了 :-)!我用 /sbin/ifconfig 看起來像這樣:lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:5088 errors:0 dropped:0 overruns:0 TX packets:5088 errors:0 dropped:0 overruns:0eth0 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20 inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0 UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:334036 errors:0 dropped:0 overruns:0 TX packets:11605 errors:0 dropped:0 overruns:0 Interrupt:7 Base address:0x378eth0:0 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20 inet addr:172.16.3.10 Bcast:172.16.3.255 Mask:255.255.255.0 UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0eth0:1 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20 inet addr:172.16.3.100 Bcast:172.16.3.255 Mask:255.255.255.0 UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0而 /proc/net/aliases 是device family addresseth0:0 2 172.16.3.10eth0:1 2 172.16.3.100而 /proc/net/alias_types 是type name n_attach2 ip 2當(dāng)然,/proc/net 的內(nèi)容是由 ifconfig 指令產(chǎn)生而非用手寫的!問: 如何在重新啟動(dòng)機(jī)器後保持設(shè)定?答: 不論你是用 BSD 形式或是 SysV 形式(例如 Red Hat)的 init 啟動(dòng),你都可以把它 放在 /etc/rc.d/rc.local 中.下面是我在我的 SysV init 系統(tǒng)(Red Hat 3.0.3 及 4.0)中的設(shè)定: * 我的 /etc/rc.d/rc.local: (修改過只顯示相關(guān)的部份) #setting up IP alias interfaces echo "Setting 172.16.3.1, 172.16.3.10, 172.16.3.100 IP Aliases ..." /sbin/ifconfig lo 127.0.0.1 /sbin/ifconfig eth0 up /sbin/ifconfig eth0 172.16.3.1 /sbin/ifconfig eth0:0 172.16.3.10 /sbin/ifconfig eth0:1 172.16.3.100 #setting up the routes echo "Setting IP routes ..." /sbin/route add -net 127.0.0.0 /sbin/route add -net 172.16.3.0 dev eth0 /sbin/route add -host 172.16.3.1 eth0 /sbin/route add -host 172.16.3.10 eth0:0 /sbin/route add -host 172.16.3.100 eth0:1 /sbin/route add default gw 172.16.3.200 #問: 我如何在具 IP 別名的機(jī)器上在不同的 IP 別名號(hào)碼上接收電子郵件(在一部用 sendmail 的機(jī)器上)?答: * 建立(如果還沒有的話)一個(gè)檔案,例如叫 /etc/mynames.cw.不需要真的是這個(gè) 名字,也不一定要放在 /etc 目錄下. * 在那個(gè)檔案中,放上別名 IP 號(hào)碼的完整領(lǐng)域名稱.如果別名的 IP 沒有領(lǐng)域名 稱,你可以用這個(gè) IP 本身. /etc/mynames.cw: ---------------- # /etc/mynames.cw - include all aliases for your machine here; # is a comment. domain.one.net domain.two.com domain.three.org 4.5.6.7 * 在你的 sendmail.cf 檔中,在它定義檔案類別巨集 Fw 的地方,加上: . . . ################## # local info # ################## . . # file containing names of hosts for which we receive email Fw/etc/mynames.cw . . . * 這樣應(yīng)該就可以了.以測(cè)試模式執(zhí)行 sendmail 以測(cè)試新的設(shè)定: ganymede$ /usr/lib/sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter < ruleset> < address> > 0 me@4.5.6.7 rewrite: ruleset 0 input: me @ 4 . 5 . 6 . 7 rewrite: ruleset 98 input: me @ 4 . 5 . 6 . 7 rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 7 rewrite: ruleset 97 input: me @ 4 . 5 . 6 . 7 rewrite: ruleset 3 input: me @ 4 . 5 . 6 . 7 rewrite: ruleset 96 input: me < @ 4 . 5 . 6 . 7 > rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 3 returns: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 0 input: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 98 input: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 0 returns: $# local $: me rewrite: ruleset 97 returns: $# local $: me rewrite: ruleset 0 returns: $# local $: me > 0 me@4.5.6.8 rewrite: ruleset 0 input: me @ 4 . 5 . 6 . 8 rewrite: ruleset 98 input: me @ 4 . 5 . 6 . 8 rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 8 rewrite: ruleset 97 input: me @ 4 . 5 . 6 . 8 rewrite: ruleset 3 input: me @ 4 . 5 . 6 . 8 rewrite: ruleset 96 input: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 3 returns: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 0 input: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 98 input: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 95 input: < > me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 95 returns: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6. 8 > rewrite: ruleset 97 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6. 8 > rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6. 8 > > 注意,當(dāng)我測(cè)試 me@4.5.6.7 時(shí),它將信件送到本地機(jī)器上,因?yàn)?me@4.5.6.8 會(huì) 被 smtp mailer 拒絕.這是正常的回應(yīng). * 所有都設(shè)定完成了.希望前面說的對(duì)某些人有用.感謝那些在 Linux 及 IP 別名上做了偉大貢獻(xiàn)的人們.還有特別感謝 Juan JoseCiarlante 澄清我的疑問.還有感謝那些為我找出打字錯(cuò)誤及提供建議的人!如果你認(rèn)為這份文件有用,或有改進(jìn)的建議的話,請(qǐng)寄電子郵件給我到[5]h.pillay@ieee.org.好好享受吧!有任何問題嗎? 來信到 [6]h.pillay@ieee.org.References 1. mailto:cwhuang@phys.ntu.edu.tw 2. mailto:h.pillay@ieee.org 3. http://home.pacific.net.sg/~harish/linuxipalias.html 4. ftp://ftp.funet.fi/pub/Linux/kernel/src/v2.0 5. mailto:h.pillay@ieee.org 6. mailto:h.pillay@ieee.org
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -