Linux IPv6有關

 下載不少朋友都是使用Linux操作系統,隨着網絡的改朝換代,我們也需要在自己的系統裏面進行IPv6的配置。那麼現在,在此我們爲大家分享一下Linux IPv6配置的經驗,希望能讓大家都學會這個配置方法。

  以RedHat9.0爲例,系統默認的內核版本爲2.4.20-8,已經自帶了IPv6這個模塊,配置過程如下:

  以root用戶登錄(以下舉例中的命令對大小寫敏感)

  Linux IPv6配置1:加載ipv6模塊

  運行命令insmod ipv6或者modprobe ipv6,然後用命令lsmod可以查看系統已加載的模塊列表,如果看到ipv6,則表示模塊已經加載成功。用命令rmmod ipv6可以刪除ipv6模塊。也可以讓系統在網絡啓動的時候自動加載ipv6模塊,方法是編輯/etc/sysconfig/network文件,加入新的一行NETWORKING_IPV6=YES。

  Linux IPv6配置2:配置ipv6地址

  默認情況下,一旦加載了ipv6模塊,系統會自動給網卡配置好ipv6的本地鏈路地址(link local address),這裏地址的特點是以[fe80::]開頭。如果機器所接入的網絡中,有支持ipv6的路由器,並且該路由器配置的是無狀態地址自動配置,那麼系統還會自動給網卡配置一個全球地址(Global Address)。本地鏈路地址是本地鏈路中唯一的,全球地址是全球IPv6網絡中唯一的。

  也可以手動給網卡配置地址,比如當網卡是以太網卡時,用以下命令即可爲網卡配置一個全球地址爲2001:250:3000:1::1:1,網絡前綴(Network Prefix)爲112的ipv6地址: ifconfig eth0 add 2001:250:3000:1::1:1/112

  Linux IPv6配置3:測試網絡連通性

  網絡連通性測試的前題是有另外一臺ipv6的網絡節點,可以是普通的支持ipv6的pc,也可以是支持ipv6的路由器。它們之間要麼在鏈路層直接相通,要麼經過其他的支持ipv6的網絡節點在鏈路層間接相通。假設另外一臺機器的網絡節點的全球地址爲爲2001:250:3000:1::1:2,那麼用以下命令:ping6 2001:250:3000:1::1:2/112

  應該可以看到類似如下的結果:

  PING 2001:250:3000:1::1:2(2001:250:3000:2::1:1) 56 data bytes

  64 bytes from 2001:250:3000:1::1:2: icmp_seq=1 ttl=64 time=0.082 ms

  64 bytes from 2001:250:3000:1::1:2: icmp_seq=2 ttl=64 time=0.058 ms

  這就表明這兩個節點之間的ipv6網絡連通性正常。

  Linux IPv6配置4:配置靜態路由表

  route -A inet6(可以查看ipv6的靜態路由表);

  route -A inet6 add default gw 2001:250:3000:2:2c0:95ff:fee0:473f(在系統的靜態路由表裏面加上一條靜態路由記錄)

  Linux IPv6配置5:支持的服務

  WEB服務

  服務器Apache 2.0.40

  啓動方法:/etc/init.d/httpd start

  客戶端lynx 2.8.5

  運行方法:lynx http://[ipv6 -address]:port/

  LDAP服務

  我採用開源項目openldap提供的服務器和客戶端,版本號是2.0.25,其網站爲http://www.openldap.org/,該軟件能夠支持IPv6。

  服務端啓動方法:/etc/init.d/ldap start

  客戶端訪問方法:ldapsearch -x -h [ipv6-addr] -D "cn=Manager"


///////////////////////////////////////////////////////////////////////////////////////////////////////////


讓Linux支持IPv6

 

自內核2.2.0以來,Linux開始支持IPv6協議。以下內容以Fedora Core 4(2005年6月13日發佈)系統爲例。用ifconfig命令檢測一下,若出現以fe80開頭的本地鏈路地址,說明您的系統已經加載IPv6,目前的最新Linux內核已經支持IPv6,如果沒有可以用以下兩種方式支持IPv6:

 

只加載IPv6模塊:

 

 [root @ipv6/root] #modprobe ipv6

 

這種方法需要每次開機手工執行加載模塊,若讓系統自動加載,使用下面方法。

 

重新編譯系統內核:

 

[root @ipv6/root] # cd /usr/src/linux (轉到Linux源代碼目錄)

 

[root @ipv6/root] # make clean (清除過期的中間代碼)

 

[root @ipv6/root] # make menuconfig (配置內核選項)

 

Networking options

 

packet socket yes (支持IPv6的選項設爲yes)

 

unix domain socket yes

 

 Tcp/IP networking yes

 

The IPV6 protocol yes

 

IPv6 : enable EUI - 64 token format  yes

 

IPv6 : disable provider based address  yes

 

 [root @ipv6/root] # make dep

 

 [root @ipv6/root] # make clean (清除中間代碼)

 

 [root @ipv6/root] # make bzImage

 

 [root @ipv6/root] # cp system.map /boot/System.map (將內核拷到啓動目錄)

 

 [root @ipv6/root]# cp arch/i386/boot/vmlinux-IPv6 /boot/ vmlinux-IPv6

 

 [root @ipv6/root] # vi /etc/grub.conf (編輯Grub配置文件)

 

增加以下內容

 

title FeforaIpv6

 

root(hd0,10)

 

kernel / vmlinux-IPv6 ro root =/dev/hda1

 

[root @ipv6/root] # reboot  (重啓機器)

 

在校園網兩個不同子網的機器上配置IPv6地址,通過雙方路由器以隧道方式相連,每個子網內機器通過以太網方式進行物理互聯。

 

配置IPv6地址

 

根據我們學校在CERNET申請獲得IPv6 網絡地址段2001:250:5802::/48。假設Host1的eth0的IPv4地址是

 

202.194.68.138,IPv6地址是2001:250:5802:2:210:dcff:fe29:af07/48;Host2的eth0的IPv4地址是202.194.67.138,

 

IPv6地址是2001:250:5802:1:203:ffff:fe2b:af01/48。在Linux 下的配置IP地址命令如下:

 

Host1:

 

[root @ipv6/root] # ifconfig eth0 202.194.68.138 netmask 255. 255. 255.0

 

[root @ipv6/root] # ifconfig eth0 add 2001:250:5802:2:210:dcff:fe29:af07/48

 

Host2:

 

[root @ipv6/root] # ifconfig eth0 202.194.67.138 netmask 255. 255. 255.0

 

[root @ipv6/root] # ifconfig eth0 add 2001:250:5802:1:203:ffff:fe2b:af01/48

 

配置隧道

 

分別激活Host1和Host2的自動隧道sit0,使雙方可以通過IPv4 兼容的IPv6 地址連通,然後激活隧道sit1,使雙方可以通過可聚集全局單播IPv6地址通信。具體命令如下:

 

Host1:

 

[root @ipv6/root] # ifconfig sit0 up

 

[root @ipv6/root] # ifconfig sit0 inet6 tunnel : : 202.194.67.138

 

[root @ipv6/root] # ifconfig sit1 up

 

[root @ipv6/root] # route -A inet6 add 2001:250:5802:1:203:ffff:fe2b:af01/48 dev sit1

 

Host2:

 

[root @ipv6/root] # ifconfig sit0 up

 

[root @ipv6/root] # ifconfig sit0 inet6 tunnel : : 202.194.68.138

 

[root @ipv6/root] # ifconfig sit1 up

 

[root @ipv6/root] # route -A inet6 add 2001:250:5802:2:210:dcff:fe29:af07/48 dev sit1

 

測試IPv6網絡

 

在Host1上運行ping6命令:ping6 2001:250:5802:1:203:ffff:fe2b:af01;在Host2上運行ping6命令:ping6 2001:250:5802:2:210:dcff:fe29:af07,可以正常返回ICMP v6包,說明雙方IPv6通過IPv4隧道已經可以連通。

在Host1上運行tracert命令查看路由:tracert 2001:250:5802:1:203:ffff:fe2b:af01,可以顯示以下信息,說明隧道創建成功。

 

tracert 2001:250:5802:1:203:ffff:fe2b:af01

 

Tracing route to 2001:250:5802:1:203:ffff:fe2b:af01 over a maximum of 30 hops

 

1    10 ms   7 ms   7 ms  2001:250:5802:1:203:ffff:fe2b:af01

 

Trace complete

 

目前有許多IPv6的應用,如CERNET--Nokia合作項目TunnelBroker,其目的是自動分配IPv6地址,爲用戶提供IPv6/IPv4 tunnel用於接入CERNET IPv6 Testbed。

 

通過上述介紹,我們已經通過Linux的自由軟件初步組建了一個支持IPv6的網絡,這個測試平臺爲我們向IPv6過渡提供了一個參考方案。通過這個平臺我們可以繼續進行相關課題的研究(如網絡控制、流量管理和WEB服務的應用)。




////////////////////////////////////////////////////////////////////////////////////////////////////////

  Linux在內核版本2.2.0以後就支持IPv6了,可查看/proc/net/if_inet6文件是否存在以確定你的系統是否支持IPv6。

  如果沒有,可嘗試如下命令加載IPv6模組:

  # modprobe ipv6

  成功加載後就可以使用IPv6環境了,系統會自動獲得IPv6地址

  IPv6相關命令:

  # ifconfig eth0 inet6 add 2001:da8:2004:1000:202:116:160:41/64 (手工添加配置固定IPv6地址)

  # route -A inet6 add default gw 2001:da8:2004:1000::1 (添加默認路由)

  # ping6 ipv6.scau.edu.cn

  PING ipv6.scau.edu.cn(2001:da8:2004:1000:202:116:160:48) 56 data bytes

  64 bytes from 2001:da8:2004:1000:202:116:160:48: icmp_seq=0 ttl=64 time=0.020 ms

  64 bytes from 2001:da8:2004:1000:202:116:160:48: icmp_seq=1 ttl=64 time=0.019 ms

  64 bytes from 2001:da8:2004:1000:202:116:160:48: icmp_seq=2 ttl=64 time=0.014 ms

  看到這樣的顯示則表明IPv6已配置成功。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章