intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương VI: Cách hiện thực IPv6

Chia sẻ: Nguyễn Hữu Thiên Sơn | Ngày: | Loại File: DOC | Số trang:8

180
lượt xem
75
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trước khi chúng ta có thể sử dụng IPv6 trên một máy Linux, ta phải kiểm tra xem hệ thống đã hỗ trợ IPv6 chưa. Đôi khi bạn cần phải thực hiện một số động tác để khởi động nó lên.

Chủ đề:
Lưu

Nội dung Text: Chương VI: Cách hiện thực IPv6

  1. IP v6 Tác giả: Lê Anh Đưc ́ Chương VI: Cách hiện thực IPv6 I. Trên Linux: 1. Cấu hình ban đầu: Trước khi chúng ta có thể sử dụng IPv6 trên một máy Linux, ta phải kiểm tra xem hệ thống đã hỗ trợ IPv6 chưa. Đôi khi bạn cần phải thực hi ện m ột số động tác để khởi động nó lên. a. Load IPv6 module: Ta sử dụng lệnh sau: # modprobe ipv6 Nếu kernel không hỗ trợ IPv6, bạn có thể thực hiện: - Cập nhật phiên bản hỗ trợ IPv6. - Biên dịch một kernel mới. - Biên dịch lại kernel source được cung cấp bởi các nhà cung cấp Linux. b. Các công cụ kiểm tra: • IPv6 ping: # ping6 # ping6 # ping6 [−I ] Chú ý: khi sử dụng địa chỉ liên kết cục bộ thì kernel s ẽ không bi ết thiết b ị nào là nguồn của gói tin, vì mỗi địa chỉ sẽ có một địa chỉ liên kết cục bộ, nên b ạn ph ải xác định c ả interface: Ví dụ: # ping6 −I eth0 −c 1 fe80::2e0:18ff:fe90:9205 PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from fe80::212:34ff:fe12:3478 eth0: 56 data bytes 64 bytes from fe80::212:23ff:fe12:3456: icmp_seq=0 hops=64 time=445 usec −−− fe80::2e0:18ff:fe90:9205 ping statistics −−− 1 packets transmitted, 1 packets received, 0% packet loss round−trip min/avg/max/mdev = 0.445/0.445/0.445/0.000 ms • IPv6 traceroute: giống như bên IPv4 Ví dụ: # traceroute6 www.6bone.net traceroute to 6bone.net (3ffe:b00:c18:1::10) from 3ffe:ffff:0000:f101::2, 30 hops max, 16 byte packets 1 localipv6gateway (3ffe:ffff:0000:f101::1) 1.354 ms 1.566 ms 0.407 ms 2 swi6T1−T0.ipv6.switch.ch (3ffe:2000:0:400::1) 90.431 ms 91.956 ms 92.377 ms 3 3ffe:2000:0:1::132 (3ffe:2000:0:1::132) 118.945 ms 107.982 ms 114.557 ms 4 3ffe:c00:8023:2b::2 (3ffe:c00:8023:2b::2) 968.468 ms 993.392 ms 973.441 ms 5 3ffe:2e00:e:c::3 (3ffe:2e00:e:c::3) 507.784 ms 505.549 ms 508.928 ms 6 www.6bone.net (3ffe:b00:c18:1::10) 1265.85 ms * 1304.74 ms • IPv6 tracepath6: dò vết một đường để đến một đích và xác định MTU trên đ ường đi. Ví dụ: # tracepath6 www.6bone.net 1?: [LOCALHOST] pmtu 1480 1: 3ffe:401::2c0:33ff:fe02:14 150.705ms 2: 3ffe:b00:c18::5 267.864ms 3: 3ffe:b00:c18::5 asymm 2 266.145ms pmtu 1280 3: 3ffe:3900:5::2 asymm 4 346.632ms 4: 3ffe:28ff:ffff:4::3 asymm 5 365.965ms 5: 3ffe:1cff:0:ee::2 asymm 4 534.704ms 6: 3ffe:3800::1:1 asymm 4 578.126ms !N
  2. Resume: pmtu 1280 • IPv6 tcpdump: Được sử dụng để xem các packet ra vào một interface. • Kiểm tra DNS: Ví dụ: # host −t AAAA www.join.uni−muenster.de www.join.uni−muenster.de. is an alias for tolot.join.uni−muenster.de. tolot.join.uni−muenster.de. has AAAA address 2001:638:500:101:2e0:81ff:fe24:37c6 2. Cấu hình interface: a. Bật một interface: • Sử dụng “ip”: # ip link set dev up # ip link set dev down Ví dụ: # ip link set dev eth0 up • Sử dụng “ifconfig”: # /sbin/ifconfig up # /sbin/ifconfig down Ví dụ: # /sbin/ifconfig eth0 up b. Xem thông tin một interface: • Sử dụng “ip”: # ip −6 addr show dev Ví dụ: # /sbin/ip −6 addr show dev eth0 2: eth0:
  3. • Sử dụng “ifconfig”: # /sbin/route −A inet6 Ví dụ: # /sbin/route −A inet6 |grep −w "eth0" 3ffe:ffff:0:f101 ::/64 :: UA 256 0 0 eth0
  4. • Địa chỉ IPv4 của tunnel endpoint phải là địa chỉ tĩnh và có thể đến đ ược t ừ m ột tunnel endpoint bên ngoài. • Phải có một IPv6 prefix toàn cục. • Tunnel endpoint bên kia phải có khả năng định tuyến prefix IPv6 c ủa b ạn về tunnel endpoint toàn cục. b. 6to4 tunneling: sử dụng một kỹ thuật để tạo các tunnel một cách t ự đ ộng. Mỗi node với một địa chỉ IPv4 toàn cục đều có khả năng là một 6to4 tunnel endpoint (nếu không bị firewall cấm). 6to4 tunneling hầu như không phải là một one-to-one tunnel. Tr ường hợp tunnel này có thể bị chia thành tunnel upstream và downstream. Và m ột đ ịa chỉ IPv6 đặc biệt diễn tả rằng node này sẽ sử dụng 6to4 tunneling để k ết nối vào mạng IPv6 toàn cục. • Tạo ra một 6to4 prefix: Địa chỉ 6to4 được định nghĩa nh ư sau: | 3+13 | 32 | 16 | 64 bits | +−−−+−−−−−−+−−−−−−−−−−−+−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ | FP+TLA | V4ADDR | SLA ID | Interface ID | | 0x2002 | | | | +−−−+−−−−−−+−−−−−−−−−−−+−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ Trong đó: FP và TLA có giá trị: 2002. IPv4 là địa chỉ toàn cục c ủa node đ ược bi ểu di ễn dưới dạng hex. • 6to4 upstream tunnel: node phải biết tunnel endpoint bên kia là cái nào đ ể nó g ửi gói tin IPv4 có bọc IPv6 tới. Do đó, một upstream router s ẽ nhận gói tin này. Các router này có thể được tìm tữ động bằng địa chỉ anycast 192.88.99.1 • 6to4 downstream tunnel: downstream (theo chiều từ mạng 6BONE về node có b ật 6to4) không cố định mà có thể thay đổi t ừ host bên kia. Có 2 trường h ợp: + Host bên kia sử dụng 6to4 và gửi packet trực ti ếp về node của b ạn. + Host bên kia gửi packet ra mạng IPv6 toàn cục và tùy thuộc vào định tuyến mà m ột relay router sẽ tạo một tunnel về node của bạn. B. Cấu hình tunnel: 1. Xem các tunnel: • Sử dụng “ip”: # /sbin/ip −6 tunnel show [] Ví dụ: # /sbin/ip −6 tunnel show sit0: ipv6/ip remote any local any ttl 64 nopmtudisc sit1: ipv6/ip remote 195.226.187.50 local any ttl 64 • Sử dụng “route: # /sbin/route −A inet6 Ví dụ: output sau chỉ cho xem những tunnel qua interface ảo sit0: # /sbin/route −A inet6 | grep "\Wsit0\W*$" ::/96 :: U 256 2 0 sit0 2002::/16 :: UA 256 0 0 sit0 2000::/3 ::193.113.58.75 UG 1 0 0 sit0 fe80::/10 :: UA 256 0 0 sit0 ff00::/8 :: UA 256 0 0 sit0 2. Thiết lập một P2P tunnel: a. Thêm một P2P tunnel: • Sử dụng “ip”: # /sbin/ip tunnel add mode sit ttl remote local Ví dụ: # /sbin/ip tunnel add sit1 mode sit ttl remote local # /sbin/ip link set dev sit1 up # /sbin/ip −6 route add dev sit1 metric 1
  5. # /sbin/ip tunnel add sit2 mode sit ttl local # /sbin/ip link set dev sit2 up # /sbin/ip −6 route add dev sit2 metric 1 # /sbin/ip tunnel add sit3 mode sit ttl local # /sbin/ip link set dev sit3 up # /sbin/ip −6 route add dev sit3 metric 1 • Sử dụng “ifconfig” và route”: Ví dụ: tạo 3 tunnel trong môi trường NBMA # /sbin/ifconfig sit0 up # /sbin/ifconfig sit0 tunnel # /sbin/ifconfig sit1 up # /sbin/route −A inet6 add dev sit1 # /sbin/ifconfig sit0 tunnel # /sbin/ifconfig sit2 up # /sbin/route −A inet6 add dev sit2 # /sbin/ifconfig sit0 tunnel # /sbin/ifconfig sit3 up # /sbin/route −A inet6 add dev sit3 • Chỉ sử dụng “route”: Ví dụ: như trên # /sbin/ifconfig sit0 up # /sbin/route −A inet6 add gw :: dev sit0 # /sbin/route −A inet6 add gw :: dev sit0 # /sbin/route −A inet6 add gw :: dev sit0 b. Xoá một tunnel: Tương tự như thêm chỉ cần thay add b ằng del. 3. Thiết lập một 6to4 tunnel: a. Tạo một 6to4 tunnel: Trước nhất, bạn phải tính 6to4 prefix s ử d ụng địa ch ỉ IPv4 toàn cục của bạn: Ví dụ: giả sử, bạn có một địa chỉ IPv4 là : 1.2.3.4 thì prefix sinh ra s ẽ là: 2002:0102:0304:: Các gateway cục bộ nên có suffix là ::1, do đó, ta có đ ịa chỉ 6to4 s ẽ là : 2002:0102:0304::1 Có 2 cách tạo: • Sử dụng “ip” và một thiết bị tunnel chuyên dụng: - Tạo một thiết bị tunnel mới: # /sbin/ip tunnel add tun6to4 mode sit ttl remote any local - Bật interface: # /sbin/ip link set dev tun6to4 up - Gán địa chỉ 6to4 cục bộ vào interface (với prefix là 16): # /sbin/ip −6 addr add /16 dev tun6to4 - Thêm route đến mạng IPv6 toàn cục qua địa chỉ IPv4: # /sbin/ip −6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1 - Chú ý: nếu hệ điều hành không hỗ trợ IPv4 thì ta sử d ụng địa ch ỉ 6to4: # /sbin/ip −6 route add 2000::/3 via 2002:c058:6301::1 dev tun6to4 metric 1 • Sử dụng ifconfig và route sử dụng một tunnel device sit0: - Bật tunnel interface sit0: # /sbin/ifconfig sit0 up - Gán địa chỉ 6to4 cục bộ vào interface: # /sbin/ifconfig sit0 add /16
  6. - Gán route đến mạng IPv6 tòan cục: # /sbin/route -A inet6 add 2000::/3 gw ::192.88.99.1 dev sit0 b. Xóa một 6to4 tunnel: • Sử dụng “ip”: - Xóa tất cả những route đi qua tunnel interface này: # /sbin/ip -6 route flush dev tun6to4 - Shut down interface: # /sbin/ip link set dev tun6to4 down - Xóa tunnel: # /sbin/ip tunnel del tun6to4 • Sử dụng ifconfig và route: - Xóa default route qua interface này: # /sbin/route -A inet6 del 2000::/3 gw ::192.88.99.1 dev sit0 - Xóa địa chỉ cục bộ: # /sbin/ifconfig sit0 del /16 - Shut down interface: # /sbin/ifconfig sit0 down II. Trên Windows: Để một máy có thể chạy được IPv6 thì ta cần cài WinXP hay Win Server 2003 có hỗ trợ IPv6. Để cài IPv6 trên Win, ta sử dụng lệnh: # netsh interface ipv6 install hay :# ipv6 install 1. Cấu hình địa chỉ IPv6: • Để cấu hình địa chỉ IPv6 trên một interface: netsh interface ipv6 add address InterfaceNameOrIndex IPv6Address [[type=]unicast| anycast] [[validlifetime=]Minutes|infinite] [[preferredlifetime=]Minutes|infinite] [[store=]active|persistent] Mặc định lọai địa chỉ này là unicast. Trên mỗi interface của host sẽ có một index, để xem những index này, ta s ử d ụng lệnh: # ipv6 if hay # netsh interface ipv6 show interface Để thay đổi một địa chỉ của một interface ta sử dụng lệnh: # netsh interface ipv6 set address Để xóa một địa chỉ, ta sử dụng lệnh: # netsh interface ipv6 set address 2. IPv6 Router: Một IPv6 router không chỉ forward các IPv6 packet mà còn quảng bá s ự hi ện di ện c ủa nó để các host trong subnet của nó có thể thực hiện quá trình t ự cấu hình. Để bật quá trình quảng bá và tự cấu hình trên m ột interface, ta s ử d ụng l ệnh: netsh interface ipv6 set interface InterfaceNameOrIndex [forwarding=]enabled|disabled] [[advertise=]enabled|disabled] [[mtu=]MTUSize] [[store=]active|persistent] Mặc định thì forwarding và advertise là disabled. Ví dụ: netsh interface ipv6 set interface "Local Area Connection" forwarding=enabled advertise=enabled netsh interface ipv6 set interface "Local Area Connection 2" forwarding=enabled advertise=enabled netsh interface ipv6 set interface "Local Area Connection 3" forwarding=enabled Ở ví dụ trên, ta bật forwarding và advertise trên interface nối với LAN và LAN2, còn LAN3 ta chỉ bật forwarding. Sau khi đã bật lệnh này, thì ta phải thiết lập các thông số cho các gói tin router advertisement, vì lúc này gói tin này chưa có thông tin. Router ph ải đ ược c ấu hình các route được quảng bá. Để thêm một route, ta sử dụng:
  7. netsh interface ipv6 add route IPv6Address/PrefixLength InterfaceNameOrIndex [[nexthop=]IPv6Address] [[publish=]no|age|yes] [[validlifetime=]Minutes|infinite] [[preferredlifetime=]Minutes|infinite] [[store=]active|persistent] Mặc định thì các route sẽ không được quảng bá và sẽ không có nexthop. Ví dụ: netsh interface ipv6 add route fec0:0:0:1::/64 "Local Area Connection" publish=yes netsh interface ipv6 add route fec0:0:0:2::/64 "Local Area Connection 2" publish=yes Ví dụ trên add và quảng bá các prefix trên mạng LAN và LAN2 mà nó g ắn vào. • Với cấu hình này thì router sẽ không xem nó là một router mặc định. Các host trên các subnet sẽ tự động cấu hình địa chỉ phù hợp và thêm các route vào b ảng đ ịnh tuyến nhưng sẽ không có một route mặc định. Để cấu hình một router là một router mặc định cho các host trên một subnet, ta phải bắt router quảng bá m ột default route trên subnet đó. Ví dụ: Nếu trên LAN có một router với địa chỉ cục bộ là fe80::2aa:ff:fe98:2ab1, ta s ẽ cấu hình thêm lệnh: netsh interface ipv6 add route ::/0 "Local Area Connection 3" nexthop=fe80::2aa:ff:fe98:2ab1 publish=yes 3. 6to4 router: 6to4 là một kỹ thuật gán địa chỉ và tạo tunnel động đ ược sử d ụng để cung cấp kết nối cho những IPv6 site qua IPv4 Internet. Một pc cài WinXP có th ể là một 6to4 router và sẽ tự động cấu hình khi bạn bật Internet Connection Sharing (ICS) trên interface gắn vào internet. Tuy nhiên, nếu bạn muốn cấu hình b ằng tay, thì b ạn cần thực hiện những việc sau: • Bảo đảm rằng 6to4 phải có một địa chỉ public được gán vào interface kết nối v ới internet và không nhận các router advertisement t ừ những IPv6 router khác. Lúc đó, router sẽ tự động tạo một interface ảo tên là: 6to4 Pseudo-interface và add route 2002::/16 vào bảng định tuyến, cộng với 1 default route ch ỉ đ ến một 6to4 relay router ở ngoài IPv4 internet. • Bật forwarding và advertise trên interface gắn với IPv6 subnet. • Bật forwarding trên 6to4 Pseudo-interface, sử dụng lệnh: netsh interface ipv6 set interface "6to4 Pseudo-Interface" forwarding=enabled • Add các route 6to4 prefix cho các interface gắn với IPv6 subnet và quảng bá chúng, sử dụng lệnh: netsh interface ipv6 add route 2002:WWXX:YYZZ: SubnetID::/64 InterfaceNameOrIndex publish=yes Trong đó, WWXX:YYZZ là dạng thập lục phân của địa chỉ IPv4 toàn cục. Còn subnetID là subnet ta gán cho các subnet trong m ạng IPv6 (đây là công vi ệc subnetting như trong IPv4). Ví dụ: một PC có gắn 3 NIC với yêu cầu như sau: LAN gắn với Internet và có địa chỉ IPv4 public là: 131.107.0.1 LAN2 là IPv6 intranet có index là 5 LAN3 là IPv6 intranet có index là 6 Để cấu hình PC này làm một 6to4 router, ta s ử dụng l ệnh: netsh interface ipv6 set interface "Local Area Connection 2" forwarding=enabled advertise=enabled netsh interface ipv6 set interface "Local Area Connection 3" forwarding=enabled netsh interface ipv6 set interface "6to4 Pseudo-Interface" forwarding=enabled netsh interface ipv6 add route 2002:836b:1:5::/64 "Local Area Connection 2" publish=yes netsh interface ipv6 add route 2002:836b:1:6::/64 "Local Area Connection 3" publish=yes Ta thấy, trong ví dụ trên, prefix 2002:836b:1:5::/64 đ ược quảng bá cho LAN2 và 2002:836b:1:6::/64 được quảng bá cho LAN3. Trong đó, 836b:1 là d ạng thập l ục phân của địa chỉ 131.107.0.1, và subnetID của chúng ở đây ta ch ọn chính là index c ủa interface. 4. Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) router:
  8. Là một kỹ thuật gán địa chỉ và tự động tạo tunnel được sử dụng để cung cấp kết nối giữa các IPv6 host trên một IPv4 intranet. Mặc định thì IPv6 trên WinXP s ẽ c ấu hình các địa chỉ ISATAP liên kết cục bộ trên một Automatic Tunneling Pseudo-Interface cho mỗi địa chỉ IPv4 gán vào pc. Để cấu hình địa chỉ ISATAP site local và global, hay đ ể giao tiếp giữa các subnet được định nghĩa bởi IPv4 intranet, thì b ạn cần một ISATAP router. Cần thực hiện những chức năng sau đây: • Forward các IPv6 packet giữa các ISATAP host trên IPv4 intranet. • Quảng bá sự hiện diện của nó và các prefix để cấu hình các địa ch ỉ site local và global. Ví dụ: một ISATAP router có thể được kết nối vào 2 mạng vật lý riêng biệt, một IPv4 intranet và một IPv6 intranet.Trong trường hợp này, ta thực hiện cấu hình nh ư sau: • Bật forwarding trên các interface gắn vào IPv6 intranet: netsh interface ipv6 set interface InterfaceNameOrIndex forwarding=enabled • Bật forwarding và advertise trên Automatic Tunneling Pseudo-Interface : netsh interface ipv6 set interface "Automatic Tunneling Pseudo- Interface" forwarding=enabled advertise=enabled • Add các route với các subnetID của các subnet ứng với IPv4 intranet vào Automatic Tunneling Pseudo-Interface và quảng bá chúng: netsh interface ipv6 add route IPv6Address/PrefixLength "Automatic Tunneling Pseudo- Interface" publish=yes • Add một default route sử dụng interface gắn với IPv6 intranet: netsh interface ipv6 add route ::/0 InterfaceNameOrIndex nexthop=IPv6Address publish=yes Ví dụ: Một pc có 1 interface gắn với một IPv4 intranet có tên là LAN, và m ột interface gắn với IPv6 intranet tên là LAN2. SubnetID gắn cho IPv4 intranet là 3FFE:FFFF:0:10::/64 và FEC0:0:0:10::/64. PC s ử dụng m ột default router trên IPv6 subnet với nexthop là FE80::2AA:FF:FE98:2AB1. Để cấu hình pc này nh ư một ISATAP router, ta sử dụng: netsh interface ipv6 set interface "Local Area Connection 2" forwarding=enabled netsh interface ipv6 set interface "Automatic Tunneling Pseudo-Interface" forwarding=enabled advertise=enabled netsh interface ipv6 add route 3ffe:ffff:0:10::/64 "Automatic Tunneling Pseudo-Interface" publish=yes netsh interface ipv6 add route fec0:0:0:10::/64 "Automatic Tunneling Pseudo-Interface" publish=yes netsh interface ipv6 add route ::/0 "Local Area Connection 2" nexthop=fe80::2aa:ff:fe98:2ab1 publish=yes • Các ISATAP host chạy WinXP trên IPv4 intranet sẽ tìm thấy các ISATAP router b ằng cách phân giải tên “ISATAP”, do đó, bạn có thể đặt tên cho router là ISATAP hay add một host address phù hợp (A) hay CNAME record vào DNS server. Record đó có nhiệm vụ phân giải tên ISATAP ra địa chỉ IPv4 của ISATAP router. Nếu không, b ạn phải thêm lệnh này trên tất cả các ISATAP host: netsh interface ipv6 isatap set state router=AddressOrName
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2