Bài số 1: Cấu hình liên mạng với các router
Sử dụng máy ảo Oracle Virtual Box để thiết lập mô hình kết nối liên mạng như hình vẽ bên trên. Các bước tiến hành bao gồm:
- Bước 1: Chuẩn bị các máy ảo CentOS và giải lập mạng vật lý.
- Bước 2: Cấu hình địa chỉ IP cho các router.
- Bước 3: Cấu hình bảng routing tĩnh cho các router.
- Bước 4: Kiểm tra kết nối liên mạng.
Bước 1: Chuẩn bị các máy ảo CentOS và giả lập mạng vật lý
Tạo máy ảo CentOS để làm các router (R1, R2, R3, R4) với 3 card mạng. Card thứ nhất sử dụng NAT để kết nối ra Internet thông qua đường kết nối của máy host Virtual Box. Kết nối Internet này sẽ cần để download và cài đặt thêm các phần mềm cần thiết cho router. Lưu ý khi tạo card mạng mới cần thay đổi địa chỉ MAC để không bị trùng nhau.
Card mạng thứ 2&3 của các router CentOS được thiết lập kiểu Internal Network để tạo các kết nối trong mạng ảo. Khi thiết lập kiểu kết nối mạng Internal Network, cần đưa vào tham số Network Name phù hợp. Hai router cùng kết nối vào một mạng vật lý (ảo) phải được khai báo với cùng Network Name. Các mạng vật lý ảo khác nhau phải được gán Network Name khác nhau. Điều này đảm bảo để khi VirtualBox xử lý các frame tầng 2 (truyền dạng broadcast) thì các mạng vật lý khác nhau sẽ không nhận được các frame lẫn lộn của nhau. Bảng sau đây mô tả ánh xạ giữa các mạng vật lý ảo và Network Name tương ứng:
Network Address | Network Name> |
192.168.1.0/24 |
intnet0 |
192.168.2.0/25 |
intnet1 |
192.168.2.128/25 |
intnet2 |
192.168.3.0/24 |
intnet3 |
10.0.0.0/8 |
intnet |
Tương tự như với card mạng NAT, khi tạo nhiều card mạng mới cần kiểm tra và thay đổi địa chỉ MAC để không bị trùng nhau.
Bước 2: Cấu hình địa chỉ IP cho các router
Sau khi khởi động máy ảo CentOS, card mạng thứ nhất (được đặt tên là eth1) được gán địa chỉ IP tự động (giả sử là 10.0.2.15). Có thể kiểm tra kết nối ra Internet bằng lệnh ping đến một máy nào đó trên mạng Internet (ví dụ ping đến máy chủ DNS của Google tại địa chỉ 8.8.8.8):
[root@R1 ~]# ifconfig -eth1 eth1 Link encap:Ethernet HWaddr 08:00:27:76:80:1E inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:17 errors:0 dropped:0 overruns:0 frame:0 TX packets:37 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4973 (4.8 KiB) TX bytes:4162 (4.0 KiB) [root@edu ~]# ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=42 time=70.6 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=42 time=69.5 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=42 time=68.8 ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2496ms rtt min/avg/max/mdev = 68.874/69.684/70.668/0.802 ms
Thiết lập địa chỉ IP cho các card mạng kết nối mạng ảo (được đặt tên là eth1 và eth2):
[root@R1 ~]# ifconfig eth2 192.168.1.1/24 [root@R1 ~]# ifconfig eth3 192.168.2.1/25 [root@R1 ~]# ifconfig -a eth1 Link encap:Ethernet HWaddr 08:00:27:76:80:1E inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:17 errors:0 dropped:0 overruns:0 frame:0 TX packets:37 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4973 (4.8 KiB) TX bytes:4162 (4.0 KiB) eth2 Link encap:Ethernet HWaddr 08:00:27:2E:E1:03 inet addr:192.168.1.1 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fec0::1/64 Scope:Site inet6 addr: fe80::a00:27ff:fe2e:e103/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:76263 errors:0 dropped:0 overruns:0 frame:0 TX packets:27477 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:85133778 (81.1 MiB) TX bytes:2693674 (2.5 MiB) eth3 Link encap:Ethernet HWaddr 08:00:27:47:E1:04 inet addr:192.168.2.1 Bcast:192.168.2.127 Mask:255.255.255.128 inet6 addr: fec1::1/64 Scope:Site inet6 addr: fe80::a00:27ff:fe47:e104/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:33638 errors:0 dropped:0 overruns:0 frame:0 TX packets:78514 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3914696 (3.7 MiB) TX bytes:87320150 (83.2 MiB)
Sau khi thiết lập các địa chỉ IP cho các kết nối mạng, bảng routing của router được tự động thiết lập như sau:
Bước 3: Cấu hình bảng routing tĩnh cho các router
Các đường định tuyết trực tiếp và mặc định (0.0.0.0) cho phép router chuyển tiếp các gói tin đến các mạng mà nó kết nối, hoặc chuyển tiếp mặc định (đến các mạng không được liệt kê trong bảng routing). Cần bổ sung thêm các đường định tuyến giám tiếp đến mạng khác trong hệ thống. Ví dụ, đổi với R2, các mạng gián tiếp là 192.168.1.0/24 và 192.168.3.0/24:
Riêng với router R1, theo hình trạng kết nối mạng thì tất cả các đường định tuyến gián tiếp từ R1 đi ra các mạng khác đều thông qua R2 nên có thể cấu hình đơn giản như sau:
Có thể thiết lập cố định các địa chỉ IP và các đường định tuyến bằng các file script ifcfg-ethX và route-ethX:
Lưu ý rằng cho dù có nhiều kết nối mạng nhưng CentOS mặc định không bật chức năng “forward” các gói tin IP giữa các kết nói mạng này. Tức là máy CentOS thuần túy chỉ là một trạm có nhiều kết nối mạng chứ không phải là một router. Tham số hệ thống net.ipv4.ip_forward xác định chức năng forward đang được bật hay đóng. Cần thiết lập giá trị (bằng 1) cho tham số này để biến máy CentOS thành một router. Có thể sử dụng lệnh sysctl để hiển thị giá trị các tham số cấu hình hệ thống hoặc để đặt lại tham số cấu hình này:
Có thể sửa giá trị mặc định của tham số này trong file /etc/sysctl.conf:
Bước4: Kiểm tra kết nối liên mạng
Sau khi cấu hình tất cả các đường định tuyến có thể xảy ra trên R1, R2, R3, R4, có thể kiểm tra hệ thống đã chạy thông bằng cách đứng trên R1 và ping đến R2, R3, R4:
Hoặc có thể đứng tại R1 sử dụng traceroute để hiển thị đường đi của gói tin đến R4:
Trường hợp lệnh ping cho thấy mạng không kết nối thông suốt, một khả năng có thể là các tiến trình firewall iptables trên các router đang chặn gói tin đi qua. Cần tắt các firewall này bằng lệnh service iptables stop.