Bài 1: Thiết lập môi trường IPv6 và cấu hình routing tĩnh
Bài này thực hiện cài đặt & cấu hình hệ thống mạng IPv6 như hình vẽ bên trên với hệ điều hành CentOS. Các bước tiến hành như sau:
- Bước 1: Kiểm tra các thông số hệ thống hỗ trợ IPv6 trên hệ điều hành CentOS.
- Bước 2: Thiết lập các thông số cho router IPv6
- Bước 3: Kiểm tra kết nối giữa các trạm
Các thông số hệ thống liên quan đến IPv6 nằm trong gói net.ipv6.conf:
[root@localhost ~]# sysctl net.ipv6.conf
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.default.disable_ipv6 = 0
. . . . .
[root@localhost ~]# sysctl net.ipv6.conf.default
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.default.accept_ra_rtr_pref = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.disable_ipv6 = 0
Để hệ thống hỗ trợ chuyển tiếp và routing IPv6, các thông số hệ thống sau đây cần được kiểm tra và thiết lập (có thể thiết lập cho từng kết nối mạng bằng cách thay “all” bằng tên kết nối mạng tương ứng):
[root@localhost ~]#
sysctl -w net.ipv6.conf.all.autoconf=1
net.ipv6.conf.all.autoconf = 1
[root@localhost ~]#
sysctl -w net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.forwarding = 1
[root@localhost ~]#
sysctl -w net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.all.disable_ipv6 = 0
[root@localhost ~]# sysctl -w net.ipv6.conf.default.autoconf=1
net.ipv6.conf.default.autoconf = 1
[root@localhost ~]# sysctl -w net.ipv6.conf.default.forwarding=1
net.ipv6.conf.default.forwarding = 1
[root@localhost ~]# sysctl -w net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6 = 0
Cũng có thể thiết lập các thông số này mặc định trong file config hệ thống /etc/sysctl.conf:
[root@localhost ~]#
cat /etc/sysctl.conf
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.default.diable_ipv6 = 0
Thiết lập địa chỉ IPv6 cho từng kết nối mạng mặc định trong file cấu hình /etc/sysconfig/network-scripts/ifcfg-eth3:
[root@localhost ~]# nano /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
ONBOOT=yes
IPV6ADDR=fec1::2/64
NAME=eth3
HWADDR=08:00:27:A9:E2:03
TYPE=Ethernet
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
Sau khi thay đổi các thông số cấu hình hệ thống, khởi động lại dịch vụ network để các thông số này được thiết lập và hệ thống:
[root@localhost ~]# service network restart
Shutting down interface eth1: [ OK ]
Shutting down interface eth2: [ OK ]
Shutting down interface eth3: [ OK ]
Shutting down interface eth4: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth1:
Determining IP information for eth1... done. [ OK ]
Bringing up interface eth2: Determining if ip address 192.168.56.101 is already in use for device eth2... [ OK ]
Bringing up interface eth3: [ OK ]
Bringing up interface eth4: [ OK ]
Cũng có thể thiết lập địa chỉ IP cho một liên kết mạng bằng dòng lệnh:
[root@localhost ~]# ip -6 addr add fec0::1/64 dev eth3
Tương tự như với IPv4, việc thiết lập thông số cho router IPv6 bao gồm thiết lập các địa chỉ IP cho các kết nối mạng và xây dựng bảng routing cho từng router. Mỗi khi một kết nối mạng được thiết lập địa chỉ IPv6, bảng routing được tự động bổ sung 2 dòng định tuyến trực tiếp:
[root@localhost ~]# ip -6 addr add fec0::1/64 dev eth3
[root@localhost ~]# ip -6 addr add fec1::1/64 dev eth4
[root@localhost ~]# ifconfig -a
eth3 Link encap:Ethernet HWaddr 08:00:27:2E:06:92
inet6 addr: fec0::1/64 Scope:Site
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16592 errors:0 dropped:0 overruns:0 frame:0
TX packets:349 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2824880 (2.6 MiB) TX bytes:31734 (30.9 KiB)
eth4 Link encap:Ethernet HWaddr 08:00:27:47:AA:A3
inet6 addr: fec1::1/64 Scope:Site
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7377 errors:0 dropped:0 overruns:0 frame:0
TX packets:617 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1241372 (1.1 MiB) TX bytes:60750 (59.3 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:186 errors:0 dropped:0 overruns:0 frame:0
TX packets:186 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:22836 (22.3 KiB) TX bytes:22836 (22.3 KiB)
[root@localhost ~]# ip -6 route show
fe80::/64 dev eth3 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth4 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fec0::/64 dev eth3 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fec1::/64 dev eth4 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
Giống như thiết lập mặc định địa chỉ IP các kết nối mạng, các đường route tĩnh có thể được thiết lập mặc định trong các file cấu hình /etc/sysconfig/network-scripts/route6-eth*:
[root@R2 ~]#
cat /etc/sysconfig/network-scripts/route6-eth3
fec0::/64 via fec1::1
[root@R2 ~]# cat /etc/sysconfig/network-scripts/route6-eth4
fec3::/64 via fec2::2
fec4::/64 via fec2::2
default via fec2::2
Tiếp theo, cấu hình các đường định tuyến tĩnh từ R1 đến các mạng fec2::/64 và fec3::/64 đều đi qua R2. Cuối cùng, cấu hình đường định tuyến tĩnh mặc định (default) để đi ra Internet từ R1 thông qua R2:
[root@localhost ~]# ip -6 route add fec2::/64 via fec1::2
[root@localhost ~]# ip -6 route add fec3::/64 via fec1::2
[root@localhost ~]# ip -6 route add default via fec1::2
[root@localhost ~]# ip -6 route show
fe80::/64 dev eth2 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth3 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth4 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fec0::/64 dev eth3 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fec1::/64 dev eth4 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fec2::/64 via fec1::2 dev eth4 metric 1024 mtu 1500 advmss 1440 hoplimit 4294967295
fec3::/64 via fec1::2 dev eth4 metric 1024 mtu 1500 advmss 1440 hoplimit 4294967295
default via fec1::2 dev eth4 metric 1024 mtu 1500 advmss 1440 hoplimit 4294967295
Tương tự tham số cấu hình hệ thống net.ipv4.ip_forward trong IPv4, lưu ý kiểm tra thông số cấu hình hệ thống net.ipv6.conf.all.forwarding để đảm bảo máy chủ CentOS có chức năng chuyển tiếp gói tin IPv6 qua các kết nối mạng (chức năng routing). Ngoài ra, tạm thời tắt chức năng tường lửa IPv6 bằng cách tắt dịch vụ ip6tables. Cuối cùng, thiết lập các địa chỉ IPv6 và bảng routing cho các router khác và kiểm tra kết nối hệ thống với lệnh ping6 và traceroute -6.
[root@R1 ~]#
ping6 -c 3 2000::7
PING 2000::7(2000::7) 56 data bytes
64 bytes from 2000::7: icmp_seq=1 ttl=61 time=2.86 ms
64 bytes from 2000::7: icmp_seq=2 ttl=61 time=2.76 ms
64 bytes from 2000::7: icmp_seq=3 ttl=61 time=2.44 ms
--- 2000::7 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2006ms
rtt min/avg/max/mdev = 2.440/2.689/2.868/0.191 ms
[root@R1 ~]# traceroute6 2000::7
traceroute to 2000::7 (2000::7), 30 hops max, 80 byte packets
1 fec1::2 (fec1::2) 0.182 ms 0.039 ms 8.368 ms
2 fec2::2 (fec2::2) 12.194 ms 12.004 ms 11.963 ms
3 fec3::2 (fec3::2) 11.880 ms 11.804 ms 11.280 ms
4 2000::7 (2000::7) 12.919 ms 12.804 ms 12.683 ms