Vietnamese (machine translation)

Lưu ý

Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.

Bản gốc:

Virtual Routing and Forwarding (VRF)

Người dịch:

Google Translate (machine translation)

Phiên bản gốc:

8541d8f725c6

Cảnh báo

Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.

Định tuyến và chuyển tiếp ảo (VRF)

Thiết bị VRF

Thiết bị VRF kết hợp với ip Rules mang đến khả năng tạo ảo các miền định tuyến và chuyển tiếp (còn gọi là VRF, cụ thể là VRF-lite) trong Ngăn xếp mạng Linux. Một trường hợp sử dụng là vấn đề nhiều bên thuê trong đó mỗi bên người thuê có bảng định tuyến riêng và ít nhất cần các cổng mặc định khác nhau.

Các quy trình có thể được “nhận biết VRF” bằng cách liên kết ổ cắm với thiết bị VRF. Gói thông qua ổ cắm sau đó sử dụng bảng định tuyến được liên kết với VRF thiết bị. Một tính năng quan trọng của việc triển khai thiết bị VRF là nó chỉ tác động đến Lớp 3 trở lên nên các công cụ L2 (ví dụ: LLDP) không bị ảnh hưởng (tức là chúng không cần phải chạy trong mỗi VRF). Thiết kế cũng cho phép việc sử dụng các quy tắc ip có mức độ ưu tiên cao hơn (Định tuyến dựa trên chính sách, PBR) để thực hiện được ưu tiên hơn các quy tắc của thiết bị VRF để điều hướng lưu lượng truy cập cụ thể theo ý muốn.

Ngoài ra, các thiết bị VRF cho phép VRF được lồng trong các không gian tên. cho ví dụ về không gian tên mạng cung cấp sự phân tách các giao diện mạng tại lớp thiết bị, Vlan trên các giao diện trong không gian tên cung cấp khả năng phân tách L2 và sau đó các thiết bị VRF cung cấp khả năng phân tách L3.

Thiết kế

Một thiết bị VRF được tạo với bảng lộ trình liên quan. Giao diện mạng sau đó bị bắt làm nô lệ cho thiết bị VRF:

+-----------------------------+

ZZ0000ZZ ===> bảng lộ trình 10 +-----------------------------+

ZZ0001ZZ |

+------+ +------+ +-------------+ ZZ0002ZZ ZZ0003ZZ ... ZZ0004ZZ +------+ +------+ +-------------+

ZZ0005ZZ

+------+ +------+ ZZ0006ZZ ZZ0007ZZ +------+ +------+

Các gói nhận được trên thiết bị nô lệ và được chuyển sang thiết bị VRF trong ngăn xếp xử lý IPv4 và IPv6 tạo ấn tượng rằng các gói chảy qua thiết bị VRF. Tương tự, các quy tắc định tuyến đầu ra được sử dụng để gửi gói đến trình điều khiển thiết bị VRF trước khi gửi đi thực tế giao diện. Điều này cho phép tcpdump trên thiết bị VRF nắm bắt tất cả các gói vào và ngoài VRF nói chung[1]. Tương tự, các quy tắc netfilter[2] và tc có thể được áp dụng bằng thiết bị VRF để chỉ định các quy tắc áp dụng cho VRF miền nói chung.

Cài đặt

  1. Thiết bị VRF được tạo với sự liên kết với bảng FIB. ví dụ,:

liên kết ip thêm bảng vrf loại vrf-blue 10

liên kết ip thiết lập dev vrf-blue up

  1. Quy tắc l3mdev FIB hướng các tra cứu đến bảng được liên kết với thiết bị. Một quy tắc l3mdev duy nhất là đủ cho tất cả các VRF. Thiết bị VRF bổ sung thêm quy tắc l3mdev cho IPv4 và IPv6 khi thiết bị đầu tiên được tạo bằng tùy chọn mặc định là 1000. Người dùng có thể xóa quy tắc nếu muốn và thêm với mức độ ưu tiên khác hoặc cài đặt theo quy tắc VRF.

Trước kernel v4.8, các quy tắc iif và oif là cần thiết cho mỗi thiết bị VRF:

ip ru add oif vrf-blue bảng 10

ip ru add iif vrf-blue bảng 10

  1. Đặt tuyến mặc định cho bảng (và do đó là tuyến mặc định cho VRF):

tuyến ip thêm bảng 10 số liệu mặc định không thể truy cập 4278198272

Giá trị số liệu cao này đảm bảo rằng tuyến đường không thể truy cập mặc định có thể

bị ghi đè bởi bộ giao thức định tuyến. FRRouting phiên dịch số liệu hạt nhân dưới dạng khoảng cách quản trị viên kết hợp (byte trên) và mức độ ưu tiên (thấp hơn 3 byte). Do đó, số liệu trên chuyển thành [255/8192].

  1. Áp dụng giao diện L3 cho thiết bị VRF:

liên kết ip được đặt dev eth1 master vrf-blue

Các tuyến cục bộ và được kết nối cho các thiết bị nô lệ sẽ tự động được chuyển đến

bảng được liên kết với thiết bị VRF. Bất kỳ tuyến đường bổ sung nào tùy thuộc vào thiết bị nô lệ bị rơi và sẽ cần được lắp lại vào VRF Bảng FIB sau thời kỳ nô lệ.

Tùy chọn sysctl IPv6 keep_addr_on_down có thể được bật để duy trì IPv6 trên toàn cầu

địa chỉ khi chế độ nô lệ VRF thay đổi:

sysctl -w net.ipv6.conf.all.keep_addr_on_down=1

  1. Các tuyến VRF bổ sung được thêm vào bảng liên kết:

lộ trình ip thêm bảng 10 ...

Ứng dụng

Các ứng dụng hoạt động trong VRF cần liên kết ổ cắm của chúng với Thiết bị VRF:

setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, dev, strlen(dev)+1);

hoặc để chỉ định thiết bị đầu ra bằng cmsg và IP_PKTINFO.

Theo mặc định, phạm vi liên kết cổng cho ổ cắm không liên kết là giới hạn ở VRF mặc định. Tức là nó sẽ không khớp với các gói đến các giao diện được bắt làm nô lệ cho l3mdev và các quy trình có thể liên kết với cùng một cổng nếu chúng liên kết với l3mdev.

Các dịch vụ TCP & UDP chạy trong ngữ cảnh VRF mặc định (nghĩa là không bị ràng buộc với mọi thiết bị VRF) có thể hoạt động trên tất cả các miền VRF bằng cách bật Tùy chọn tcp_l3mdev_accept và udp_l3mdev_accept sysctl:

sysctl -w net.ipv4.tcp_l3mdev_accept=1

sysctl -w net.ipv4.udp_l3mdev_accept=1

Các tùy chọn này bị tắt theo mặc định nên ổ cắm trong VRF chỉ được sử dụng được chọn cho các gói trong VRF đó. Có một tùy chọn tương tự cho RAW socket, được bật theo mặc định vì lý do tương thích ngược. Điều này nhằm chỉ định thiết bị đầu ra có cmsg và IP_PKTINFO, nhưng sử dụng ổ cắm không bị ràng buộc với VRF tương ứng. Điều này cho phép ví dụ: ping cũ hơn các triển khai sẽ được chạy với việc chỉ định thiết bị nhưng không thực thi nó trong VRF. Tùy chọn này có thể bị tắt để các gói nhận được trong VRF ngữ cảnh chỉ được xử lý bởi một ổ cắm thô được liên kết với VRF và các gói trong VRF mặc định chỉ được xử lý bởi một ổ cắm không bị ràng buộc với bất kỳ VRF nào

sysctl -w net.ipv4.raw_l3mdev_accept=0

quy tắc netfilter trên thiết bị VRF có thể được sử dụng để hạn chế quyền truy cập vào các dịch vụ cũng chạy trong ngữ cảnh VRF mặc định.

Sử dụng các ứng dụng nhận biết VRF (các ứng dụng đồng thời tạo các ổ cắm bên ngoài và bên trong VRF) kết hợp với ZZ0000ZZ là có thể nhưng có thể dẫn đến vấn đề trong một số trường hợp. Với sysctl đó giá trị, không xác định được ổ cắm nghe nào sẽ được chọn để xử lý kết nối cho lưu lượng VRF; tức là. ổ cắm được liên kết với VRF hoặc ổ cắm không liên kết ổ cắm có thể được sử dụng để chấp nhận các kết nối mới từ VRF. Điều này phần nào hành vi không mong muốn có thể dẫn đến sự cố nếu ổ cắm được cấu hình thêm tùy chọn (ví dụ: khóa TCP MD5) với kỳ vọng rằng lưu lượng truy cập VRF sẽ được xử lý độc quyền bởi các ổ cắm được liên kết với VRF, như trường hợp của ZZ0001ZZ. Cuối cùng và như một lời nhắc nhở, bất kể socket nghe nào được chọn, các socket đã thiết lập sẽ được tạo trong VRF dựa trên giao diện xâm nhập, như được ghi lại trước đó.


Sử dụng iproute2 cho VRF

iproute2 hỗ trợ từ khóa vrf kể từ v4.7. Để tương thích ngược, điều này phần liệt kê cả hai lệnh khi thích hợp -- với từ khóa vrf và hình thức cũ hơn mà không có nó.

  1. Tạo VRF

Để khởi tạo thiết bị VRF và liên kết thiết bị đó với bảng:

$ ip link thêm dev NAME loại bảng vrf ID
Kể từ v4.8, kernel hỗ trợ quy tắc l3mdev FIB trong đó một quy tắc duy nhất

bao gồm tất cả các VRF. Quy tắc l3mdev được tạo cho IPv4 và IPv6 trước tiên tạo thiết bị.

  1. Liệt kê các VRF

Để liệt kê các VRF đã được tạo:

$ ip [-d] liên kết hiển thị loại vrf

NOTE: Cần có tùy chọn -d để hiển thị id bảng

Ví dụ:

$ ip -d liên kết hiển thị loại vrf
11: mgmt: <NOARP,MASTER,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái UP chế độ mặc định nhóm DEFAULT qlen 1000

link/ether 72:b3:ba:91:e2:24 brd ff:ff:ff:ff:ff:ff lăng nhăng 0 bảng vrf 1 addrgenmode eui64

12: đỏ: <NOARP,MASTER,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái UP Chế độ mặc định nhóm DEFAULT qlen 1000

link/ether b6:6f:6e:f6:da:73 brd ff:ff:ff:ff:ff:ff lăng nhăng 0 bảng vrf 10 addrgenmode eui64

13: xanh dương: <NOARP,MASTER,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái UP chế độ DEFAULT nhóm mặc định qlen 1000

link/ether 36:62:e8:7d:bb:8c brd ff:ff:ff:ff:ff:ff lăng nhăng 0 bảng vrf 66 addrgenmode eui64

14: màu xanh lá cây: <NOARP,MASTER,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái UP chế độ DEFAULT nhóm mặc định qlen 1000

link/ether e6:28:b8:63:70:bb brd ff:ff:ff:ff:ff:ff lăng nhăng 0 bảng vrf 81 addrgenmode eui64

Hoặc trong đầu ra ngắn gọn:

$ ip -br liên kết hiển thị loại vrf

mgmt LÊN 72:b3:ba:91:e2:24 <NOARP,MASTER,UP,LOWER_UP> màu đỏ LÊN b6:6f:6e:f6:da:73 <NOARP,MASTER,UP,LOWER_UP> xanh lam LÊN 36:62:e8:7d:bb:8c <NOARP,MASTER,UP,LOWER_UP> màu xanh lá cây LÊN e6:28:b8:63:70:bb <NOARP,MASTER,UP,LOWER_UP>

  1. Gán giao diện mạng cho VRF

Giao diện mạng được gán cho VRF bằng cách gán thiết bị mạng cho một

Thiết bị VRF:

$ ip link set dev NAME master NAME

Khi làm nô lệ, các tuyến đường được kết nối và cục bộ sẽ tự động được chuyển đến

bảng được liên kết với thiết bị VRF.

Ví dụ:

$ ip liên kết thiết lập dev eth0 master mgmt
  1. Hiển thị các thiết bị được gán cho VRF

Để hiển thị các thiết bị đã được gán cho một VRF cụ thể, hãy thêm thiết bị chính

tùy chọn cho lệnh ip

$ ip link hiển thị vrf NAME

$ ip link show master NAME

Ví dụ:

$ ip liên kết hiển thị vrf màu đỏ
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái đỏ chính Chế độ UP chế độ UP mặc định của nhóm DEFAULT qlen 1000

liên kết/ether 02:00:00:00:02:02 brd ff:ff:ff:ff:ff:ff

4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái đỏ chính Chế độ UP chế độ UP mặc định của nhóm DEFAULT qlen 1000

liên kết/ether 02:00:00:00:02:03 brd ff:ff:ff:ff:ff:ff

7: eth5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master trạng thái màu đỏ DOWN chế độ DEFAULT nhóm mặc định qlen 1000

liên kết/ether 02:00:00:00:02:06 brd ff:ff:ff:ff:ff:ff

Hoặc sử dụng đầu ra ngắn gọn:

$ ip -br liên kết hiển thị vrf màu đỏ

eth1 LÊN 02:00:00:00:02:02 <BROADCAST,MULTICAST,UP,LOWER_UP> eth2 LÊN 02:00:00:00:02:03 <BROADCAST,MULTICAST,UP,LOWER_UP> eth5 DOWN 02:00:00:00:02:06 <BROADCAST,MULTICAST>

  1. Hiển thị các mục hàng xóm cho VRF

Để liệt kê các mục lân cận được liên kết với các thiết bị được gắn với thiết bị VRF

thêm tùy chọn chính vào lệnh ip

$ ip [-6] hiển thị hàng xóm vrf NAME

$ ip [-6] hàng xóm hiển thị chủ NAME

Ví dụ:

$ ip neigh hiển thị vrf đỏ

10.2.1.254 dev eth1 lladdr a6:d9:c7:4f:06:23 REACHABLE 10.2.2.254 dev eth2 lladdr 5e:54:01:6a:ee:80 REACHABLE

$ ip -6 hiển thị vrf đỏ

2002:1::64 dev eth1 lladdr a6:d9:c7:4f:06:23 REACHABLE

  1. Hiển thị địa chỉ của VRF

Để hiển thị địa chỉ cho các giao diện được liên kết với VRF, hãy thêm địa chỉ chính

tùy chọn cho lệnh ip

$ ip addr hiển thị vrf NAME

$ ip addr show master NAME

Ví dụ:

$ ip addr hiển thị vrf đỏ
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái đỏ chính của nhóm UP mặc định qlen 1000

liên kết/ether 02:00:00:00:02:02 brd ff:ff:ff:ff:ff:ff inet 10.2.1.2/24 brd 10.2.1.255 phạm vi toàn cầu eth1

valid_lft mãi mãi ưa thích_lft mãi mãi

inet6 2002:1::2/120 phạm vi toàn cầu

valid_lft mãi mãi ưa thích_lft mãi mãi

liên kết phạm vi inet6 fe80::ff:fe00:202/64

valid_lft mãi mãi ưa thích_lft mãi mãi

4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast trạng thái đỏ chính của nhóm UP mặc định qlen 1000

liên kết/ether 02:00:00:00:02:03 brd ff:ff:ff:ff:ff:ff inet 10.2.2.2/24 brd 10.2.2.255 phạm vi toàn cầu eth2

valid_lft mãi mãi ưa thích_lft mãi mãi

inet6 2002:2::2/120 phạm vi toàn cầu

valid_lft mãi mãi ưa thích_lft mãi mãi

liên kết phạm vi inet6 fe80::ff:fe00:203/64

valid_lft mãi mãi ưa thích_lft mãi mãi

7: eth5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master trạng thái màu đỏ DOWN nhóm mặc định qlen 1000

liên kết/ether 02:00:00:00:02:06 brd ff:ff:ff:ff:ff:ff

Hoặc ở dạng ngắn gọn:

$ ip -br addr hiển thị vrf đỏ

eth1 LÊN 10.2.1.2/24 2002:1::2/120 fe80::ff:fe00:202/64 eth2 LÊN 10.2.2.2/24 2002:2::2/120 fe80::ff:fe00:203/64 eth5 DOWN

  1. Hiển thị lộ trình cho VRF

Để hiển thị các tuyến đường cho VRF, hãy sử dụng lệnh ip để hiển thị bảng được liên kết

với thiết bị VRF:

$ ip [-6] lộ trình hiển thị vrf NAME

$ ip [-6] ID bảng hiển thị lộ trình

Ví dụ:

$ ip lộ trình hiển thị vrf đỏ

số liệu mặc định không thể truy cập 4278198272 phát sóng 10.2.1.0 dev eth1 liên kết phạm vi hạt nhân proto src 10.2.1.2 10.2.1.0/24 dev eth1 liên kết phạm vi hạt nhân proto src 10.2.1.2 local 10.2.1.2 dev eth1 proto kernel phạm vi máy chủ src 10.2.1.2 phát sóng 10.2.1.255 dev eth1 liên kết phạm vi hạt nhân nguyên mẫu src 10.2.1.2 phát sóng 10.2.2.0 dev eth2 liên kết phạm vi hạt nhân proto src 10.2.2.2 10.2.2.0/24 dev eth2 liên kết phạm vi hạt nhân proto src 10.2.2.2 local 10.2.2.2 dev eth2 proto kernel phạm vi máy chủ src 10.2.2.2 phát sóng 10.2.2.255 dev eth2 liên kết phạm vi hạt nhân proto src 10.2.2.2

$ ip -6 lộ trình hiển thị vrf đỏ

local 2002:1:: dev lo proto none số liệu 0 pref trung bình local 2002:1::2 dev lo proto none số liệu 0 pref trung bình 2002:1::/120 dev eth1 hạt nhân nguyên mẫu số liệu 256 môi trường pref local 2002:2:: dev lo proto none số liệu 0 pref trung bình local 2002:2::2 dev lo proto none số liệu 0 pref trung bình 2002:2::/120 dev eth2 proto kernel số liệu 256 pref media local fe80:: dev lo proto none số liệu 0 pref trung bình local fe80:: dev lo proto none số liệu 0 pref trung bình local fe80::ff:fe00:202 dev lo proto none số liệu 0 pref Medium local fe80::ff:fe00:203 dev lo proto none số liệu 0 pref Medium fe80::/64 dev eth1 hạt nhân nguyên mẫu số liệu 256 môi trường pref fe80::/64 dev eth2 hạt nhân nguyên mẫu số liệu 256 môi trường pref ff00::/8 dev red số liệu 256 pref trung bình ff00::/8 dev eth1 số liệu 256 pref trung bình ff00::/8 dev eth2 số liệu 256 pref trung bình lỗi mặc định của nhà phát triển không thể truy cập được lỗi 4278198272 -101 phương tiện trước

  1. Tra cứu lộ trình cho VRF

Việc tra cứu tuyến đường thử nghiệm có thể được thực hiện cho VRF:

$ ip [-6] tuyến nhận vrf NAME ADDRESS

$ ip [-6] tuyến nhận oif NAME ADDRESS

Ví dụ:

$ ip tuyến nhận 10.2.1.40 vrf đỏ
10.2.1.40 bảng dev eth1 đỏ src 10.2.1.2

bộ nhớ đệm

$ ip -6 tuyến get 2002:1::32 vrf đỏ

2002:1::32 từ :: dev eth1 bảng red proto kernel src 2002:1::2 số liệu 256 pref Medium

  1. Xóa giao diện mạng khỏi VRF

Giao diện mạng bị xóa khỏi VRF bằng cách phá bỏ chế độ nô lệ cho

thiết bị VRF:

$ ip link set dev NAME nomaster

Các tuyến đã kết nối sẽ được chuyển trở lại bảng mặc định và các mục cục bộ được

chuyển đến bảng cục bộ.

Ví dụ:

$ ip liên kết đặt dev eth0 nomaster

Các lệnh được sử dụng trong ví dụ này:

mèo >> /etc/iproute2/rt_tables.d/vrf.conf <<EOF

1 mgt 10 màu đỏ 66 màu xanh 81 màu xanh lá cây EOF

chức năng vrf_create
{

VRF=$1 TBID=$2

Thiết bị # create VRF

liên kết ip thêm ${VRF} loại bảng vrf ${TBID}

nếu [ “${VRF}” != “mgmt” ]; sau đó

định tuyến ip thêm bảng ${TBID} số liệu mặc định không thể truy cập được 4278198272

fi liên kết ip thiết lập dev ${VRF} lên

}

vrf_create mgmt 1

liên kết ip được đặt dev eth0 master mgmt

vrf_create đỏ 10

liên kết ip thiết lập dev eth1 master màu đỏ liên kết ip thiết lập dev eth2 master màu đỏ liên kết ip bộ dev eth5 master màu đỏ

vrf_create xanh 66

liên kết ip bộ dev eth3 master màu xanh

vrf_create xanh 81

bộ liên kết ip dev eth4 master màu xanh lá cây

Địa chỉ giao diện từ /etc/network/interfaces:

tự động eth0 iface eth0 inet tĩnh

địa chỉ 10.0.0.2 mặt nạ mạng 255.255.255.0 cổng 10.0.0.254

iface eth0 inet6 tĩnh

địa chỉ 2000:1::2 mặt nạ mạng 120

tự động eth1
iface eth1 inet tĩnh

địa chỉ 10.2.1.2 mặt nạ mạng 255.255.255.0

iface eth1 inet6 tĩnh

địa chỉ 2002:1::2 mặt nạ mạng 120

tự động eth2
iface eth2 inet tĩnh

địa chỉ 10.2.2.2 mặt nạ mạng 255.255.255.0

iface eth2 inet6 tĩnh

địa chỉ 2002:2::2 mặt nạ mạng 120

tự động eth3
iface eth3 inet tĩnh

địa chỉ 10.2.3.2 mặt nạ mạng 255.255.255.0

iface eth3 inet6 tĩnh

địa chỉ 2002:3::2 mặt nạ mạng 120

tự động eth4
iface eth4 inet tĩnh

địa chỉ 10.2.4.2 mặt nạ mạng 255.255.255.0

iface eth4 inet6 tĩnh

địa chỉ 2002:4::2 mặt nạ mạng 120