Nội dung bài viết
6 Routing Protocols
ba giao thức định tuyến được hỗ trợ phổ biến với pfSense:
- RIP (Routing Information Protocol)
- BGP (Border Gateway Protocol)
- OSPF (Open Shortest Path First).
6.1 RIP
RIP là một phần của gói tin định tuyến. Để càu đặt nó:
- Điều hướng tới System > Package Manager
- Click Available Packages
- Xác định vị trí routed trong danh sách, hoặc tìm kiếm nó
- Click ở bên phải của mục nhập gói tin routed để install
- Click Confirm
- Chờ quá trình cài đặt hoàn tất
- Điều hướng đến Services > RIP
Để cấu hình RIP:
- Check Enable RIP box
- Chọn Interface RÍP sẽ lắng nghe và gửi routing updates trên
- Lựa chọn RIP version
- Nhập RIPv2 password nếu RIPv2 đang được sử dụng và yêu cầu password trên network
- Click Save
RIP sẽ ngay lập tức khởi chạy và bắt đầu gửi và nhận cập nhật định tuyến trên các interface được chỉ định.
6.2 BGP
Để cài đặt BGP:
- Điều hướng tới System > Package Manager
- Click Available Packages
- Xác định vị trí OpenBGPD trên danh sách, hoặc tìm kiếm nó
- Click ở bên phải mục nhập gói tin OpenBGPD để install
- Click Confirm
- Chờ quá trình cài đặt hoàn tất
- Điều hướng đến Services > OpenBGPD
Dạng cấu hình chung cho gói tin OpenBGPD là:
- Cấu hình một group trên tab Group với remote AS
- Cấu hình một hoặc nhiều neighbor (hàng xóm) trên tab Neighbors làm thành viên của Group đã được xác định
- Cấu hình tab Settings mong muốn cho local AS và các network thông báo
6.3 OSPF
Giống với BGP, để cài đặt nó:
- Điều hướng tới System > Package Manager
- Click Available Packages
- Xác định vị trí Quagga_OSPF trên danh sách, hoặc tìm kiếm nó
- Click ở bên phải mục nhập gói tin Quagga_OSPF để install
- Click Confirm
- Chờ quá trình cài đặt hoàn tất
- Điều hướng đến Services > Quagga OSPF
OSPF cũng là một giao thức định tuyến khá phức tạp, mặc dù không phức tạp để thiết lập như BGP.
Dạng cấu hình chung cho gói tin Quagga OSPF là:
- Add thêm các interface nếu cần, với local interface subnet được đánh dấu passive, và những router OSPF khác đang hoạt động.
- Cấu hình các cài đặt chung nếu cần với router ID, area ID,…
7 Route Troubleshooting
7.1 Viewing Routes
Có hai cách để xem các route: Qua WebGUI và qua command line.
Để xem các route trên WebGUI, điều hướng tới Diagnostics > Routes và sẽ được hiện thị như hình dưới
Các route được hiển thị từ dòng lệnh tương tự như được thấy trong WebGUI
Destination
Cột này chứa host hoặc mạng đích. Tuyến đường mặc định cho hệ thống chỉ đơn giản được liệt kê là default. Nếu không, các host được liệt kê theo địa chỉ IP và các network được liệt kê bằng địa chỉ IP và subnet mask CIDR.
Gateway
Gateway là router mà qua đó các gói dữ liệu đi đến một đích cụ thể được gửi. Nếu cột này cho thấy một link, chẳng hạn như link# 1, thì mạng đó có thể truy cập trực tiếp bằng interface đó và không cần định tuyến đặc biệt. Nếu host hiển thị với địa chỉ MAC, thì đó là host có thể truy cập local có mục nhập trong bảng ARP và các gói tin được gửi trực tiếp đến đó.
Flags
Có rất nhiều flag (cờ), một số flag sẽ được đề cập ở dưới đây:
Ký Tự | Flag | Ý nghĩa |
1 | RTF_PROTO1 | Giao thức định tuyến cụ thể flag #1 |
2 | RTF_PROTO2 | Giao thức định tuyến cụ thể flag #2 |
3 | RTF_PROTO3 | Giao thức định tuyến cụ thể flag #3 |
B | RTF_BLACKHOLE | Hủy các gói tin trong quá trình updates |
b | RTF_BROADCAST | Đại diện cho một địa chỉ broadcast |
D | RTF_DYNAMIC | Được tạo tự động bằng cách chuyển hướng |
G | RTF_GATEWAY | Đích đến yêu cầu forward qua trung gian |
H | RTF_HOST | Mục nhập host (nếu không thì net) |
L | RTF_LLINFO | Giao thức hợp lệ để liên kết địa chỉ chuyển đổi |
M | RTF_MODIFIED | Được sửa đổi tự động (bằng cách chuyển hướng) |
R | RTF_REJECT | Host hoặc net không thể truy cập |
S | RTF_STATIC | Được add them thủ công |
U | RTF_UP | Route có thể sử dụng |
X | RTF_XRESOLVE | Daemon (quá trình nền) bên ngoài chuyển đổi proto thành địa chỉ liên kết |
Ví dụ: một route được gắn flag UGS là một route có thể sử dụng được, các gói tin được gửi qua danh sách gateway, và nó là một static route.
Refs
Cột này đếm số lần sử dụng của một route nhất định.
Use
Bộ đếm này là tổng số gói tin được gửi qua tuyến đường này. Điều này rất hữu ích để xác định xem một route có thực sự đang được sử dụng hay không, vì nó sẽ liên tục tăng lên khi các gói tin sử dụng route.
Netif
Interface network được sử dụng cho route này.
Expire
Đối với các mục nhập động, trường này hiển thị thời gian cho đến khi route này hết hạn nếu nó không được sử dụng lại
7.2 Using traceroute
Traceroute là một công cụ hữu ích để kiểm tra và xác minh các route cũng như chức năng multi WAN, trong số các cách sử dụng khác. Nó cho thấy mỗi “hop” dọc theo con đường dẫn mà một gói tin đi từ đầu này đến đầu kia, cùng với latency gặp phải khi đến điểm trung gian đó. Trên pfSense, traceroute có thể được thực hiện bằng cách điều hướng đến Diagnostics > Traceroute hoặc bằng cách sử dụng traceroute tại dòng lệnh. Từ các client chạy Windows, chương trình có sẵn dưới tên tracert.
Mỗi gói tin IP đều chứa giá trị thời gian tồn tại (time-to-live- TTL). Khi một router chuyển một gói tin, nó sẽ giảm TTL đi một. Khi một router nhận được một gói tin có TTL là 1 và đích đến không phải là một mạng đính kèm local, router trả về thông báo lỗi ICMP “Time-to-live exceeded” và gói tin bị drop. Điều này là để hạn chế tác động của vòng lặp định tuyến, nếu không sẽ khiến mỗi một gói tin lặp lại vô thời hạn.
Traceroute sử dụng TTL này làm lợi thế của nó để ánh xạ đường dẫn đến một điểm đến mạng cụ thể. Nó bắt đầu bằng cách gửi gói tin đầu tiên với TTL là 1. Router đầu tiên (thường là default gateway) sẽ gửi lại lỗi vượt quá time-to-live ICMP. Thời gian giữa việc gửi gói tin và nhận lỗi ICMP là thời gian hiển thị, được liệt kê cùng với địa chỉ IP đã gửi lỗi và reverse DNS của nó, nếu có. Sau khi gửi ba gói tin với TTL là 1 và hiển thị thời gian phản hồi của chúng, nó sẽ tăng TTL lên 2 và gửi thêm ba gói tin.
Traceroute tăng TTL và lặp lại quá trình cho đến khi nó đến đích được chỉ định hoặc vượt quá số hop tối đa.
Windows sử dụng gói tin yêu cầu ICMP (pings) trong khi các hệ thống giống Unix sử dụng gói tin UDP theo mặc định. ICMP và UDP là giao thức layer 4, và traceroute được thực hiện tại layer 3, vì vậy giao thức được sử dụng phần lớn không liên quan ngoại trừ khi xem xét cấu hình định tuyến chính sách.
7.3 Routes vàVPNs
Tùy thuộc vào VPN đang được sử dụng, một route có thể không hiển thị trong bảng cho phía xa. IPsec không sử dụng bảng định tuyến, thay vào đó nó được xử lý nội bộ trong kernel bằng cách sử dụng các mục nhập cơ sở dữ liệu chính sách bảo mật (security policy database- SPD) IPsec. Định tuyến tĩnh sẽ không bao giờ khiến lưu lượng truy cập được chuyển hướng qua kết nối IPsec. OpenVPN sử dụng bảng định tuyến hệ thống và các mục nhập như vậy có sẵn cho các mạng có thể truy cập thông qua OpenVPN tunnel.