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

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:

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

Bước 2: Thiết lập các thông số cho router IPv6

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

Bước 3: Kiểm tra kết nối giữa các trạm

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 ping6traceroute -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