Cách sử dụng Công cụ IPRoute2 để quản lý cấu hình mạng trên VPS Linux
Điều cần thiết là phải có hiểu biết về các công cụ mạng cơ bản khi quản trị và khắc phục sự cố server Linux. Trong khi một số công cụ được tạo ra chủ yếu để giám sát, các tiện ích cấp thấp khác được sử dụng để tự cấu hình kết nối mạng và thực hiện các cài đặt mặc định. Theo truyền thống, một group các công cụ không liên quan được gộp lại với nhau dưới tiêu đề net-tools
được sử dụng để làm điều này. Chúng thường được đóng gói cùng nhau để cung cấp đầy đủ chức năng, nhưng chiến lược phát triển và sử dụng của chúng khác nhau tùy từng công cụ.
Vì sự mâu thuẫn, cũng như việc bảo trì bị tạm dừng, một bộ sưu tập các công cụ được biết đến với biệt danh iproute2
đã được sử dụng để thay thế các công cụ riêng biệt này. Chúng đã được phát triển song song để chia sẻ cú pháp và hoạt động cùng nhau một cách hiệu quả.
Trong hướng dẫn này, ta sẽ thảo luận về cách sử dụng các công cụ iproute2 để cấu hình , thao tác và thu thập thông tin về mạng của bạn. Ta sẽ sử dụng VPS Ubuntu 12.04 để chứng minh, nhưng hầu hết các bản phân phối Linux hiện đại sẽ cung cấp cùng một mức chức năng.
Mặc dù các lệnh truy vấn thường có thể được thực thi với quyền user không có quyền , nhưng các quyền của root phải được sử dụng để sửa đổi cài đặt.
Cách xem network interface , địa chỉ và định tuyến
Một trong những trách nhiệm cơ bản nhất của bộ iproute2 là quản lý các giao diện thực tế.
Thông thường, bản thân các giao diện sẽ được đặt tên như eth0
, eth1
, lo
, v.v. Theo truyền thống, lệnh ifconfig
được sử dụng để cấu hình các mục trong khu vực này. Trong hệ thống iproute2, các lệnh con ip addr
và ip link
thực hiện các bước này.
Với ifconfig, bạn có thể thu thập thông tin về trạng thái hiện tại của các network interface bằng lệnh lệnh không có đối số:
ifconfig
eth0 Link encap:Ethernet HWaddr 54:be:f7:08:c2:1b inet addr:192.168.56.126 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::56be:f7ff:fe08:c21b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:114273 errors:0 dropped:0 overruns:0 frame:0 TX packets:58866 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:73490903 (73.4 MB) TX bytes:14294252 (14.2 MB) Interrupt:20 Memory:f7f00000-f7f20000 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:3942 errors:0 dropped:0 overruns:0 frame:0 TX packets:3942 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:668121 (668.1 KB) TX bytes:668121 (668.1 KB)
Để nhận thông tin về một giao diện duy nhất, bạn luôn có thể chỉ định nó làm đối số:
<pre>
ifconfig <span class = “highlight”> eth0 </span>
</pre>
<pre>
eth0 Liên kết encap: Ethernet HWaddr 54: be: f7: 08: c2: 1b
inet addr: 192.168.56.126 Bcast: 192.168.56.255 Mặt nạ: 255.255.255.0
inet6 addr: fe80 :: 56be: f7ff: fe08: c21b / 64 Phạm vi: Liên kết
LÊN BROADCAST CHẠY MULTICAST MTU: 1500 Chỉ số: 1
Gói RX: 114829 lỗi: 0 bị rơi: 0 vượt quá: 0 khung: 0
Gói TX: 59007 lỗi: 0 drop: 0 overruns: 0 carrier: 0
va chạm: 0 txqueuelen: 1000
Byte RX: 73598364 (73,5 MB) byte TX: 14325245 (14,3 MB)
Ngắt: 20 Bộ nhớ: f7f00000-f7f20000
</pre>
Ta có thể sao chép chức năng này bằng các lệnh con trong bộ iproute2.
Để có cái nhìn tổng quan về các địa chỉ được đính kèm với mỗi giao diện, hãy nhập ip addr
in mà không có đối số:
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 54:be:f7:08:c2:1b brd ff:ff:ff:ff:ff:ff inet 192.168.56.126/24 brd 192.168.56.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::56be:f7ff:fe08:c21b/64 scope link valid_lft forever preferred_lft forever
Để có được một giao diện cụ thể, bạn có thể sử dụng cú pháp sau:
<pre>
ip addr show <span class = “highlight”> eth0 </span>
</pre>
<pre>
2: eth0: <BROADCAST, MULTICAST, UP, LOWER_UP> mtu 1500 qdisc pfifo trạng thái nhanh LÊN 1000
liên kết / ether 54: be: f7: 08: c2: 1b brd ff: ff: ff: ff: ff: ff
inet 192.168.56.126/24 brd 192.168.56.255 phạm vi global eth0
lft hợp lệ mãi mãi lft ưa thích mãi mãi
inet6 fe80 :: 56be: f7ff: fe08: c21b / 64 liên kết phạm vi
lft hợp lệ mãi mãi ưa thích mãi mãi
</pre>
Trên thực tế, lệnh ip addr
chỉ là một alias cho lệnh ip addr show
.
Nếu bạn chỉ quan tâm đến bản thân các giao diện chứ không phải địa chỉ, bạn có thể sử dụng lệnh ip link
để thay thế:
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 04:01:13:8a:a2:01 brd ff:ff:ff:ff:ff:ff
Để nhận thông tin về một giao diện cụ thể, bạn cần thêm từ khóa show
theo sau là tên giao diện:
ip link show eth0
Để nhận thống kê về cách một giao diện đang giao tiếp, bạn có thể truy vấn thống kê từ mỗi giao diện bằng cách chuyển tùy chọn -s
tới lệnh con liên kết:
ip -s link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 04:01:13:8a:a2:01 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 853144 14672 0 0 0 0 TX: bytes packets errors dropped carrier collsns 91257 537 0 0 0 0
Vậy làm cách nào để tìm bảng định tuyến của ta ? Bảng định tuyến chứa thông tin kernel về các đường dẫn đến các vị trí mạng khác. Ta có thể in ra bảng định tuyến hiện tại bằng lệnh :
ip route show
default via 107.170.58.1 dev eth0 metric 100 107.170.58.0/24 dev eth0 proto kernel scope link src 107.170.58.162
Điều này cho ta thấy rằng đường dẫn mặc định đến internet lớn hơn có sẵn thông qua giao diện eth0
và địa chỉ 107.170.58.1. Ta có thể truy cập server này thông qua giao diện đó, trong đó địa chỉ giao diện của ta là 107.170.58.162.
Cách cấu hình network interface và địa chỉ
Đến đây bạn đã quen với cách lấy thông tin về các giao diện và địa chỉ liên kết với chúng, bước tiếp theo là tìm cách sửa đổi trạng thái của chúng.
Bước đầu tiên là tự cấu hình giao diện. Bạn có thể làm điều này với lệnh con ip link
. Lần này, tuy nhiên, bạn vượt qua những hành động set
thay vì chương trình để sửa đổi giá trị.
Ví dụ: ta có thể nâng cao hoặc hạ thấp network interface bằng cách phát hành:
<pre>
ip liên kết đặt <span class = “highlight”> eth1 </span> lên
đặt liên kết ip <span class = “highlight”> eth1 </span> xuống
</pre>
Lưu ý : Hãy cẩn thận để không vô tình làm hỏng giao diện mà bạn được kết nối với server của bạn .
Bạn cũng có thể sử dụng lệnh con ip link
để đặt các thuộc tính về giao diện. Ví dụ: nếu bạn muốn bật hoặc tắt cờ đa hướng cho giao diện của bạn , có thể chạy lệnh:
<pre>
ip link set <span class = “highlight”> eth1 </span> bật đa hướng
ip link set <span class = “highlight”> eth1 </span> tắt phát đa hướng
</pre>
Bạn có thể điều chỉnh mtu và độ dài hàng đợi gói như sau:
<pre>
ip liên kết đặt <span class = “highlight”> eth1 </span> mtu 1500
ip liên kết đặt <span class = “highlight”> eth1 </span> txqueuelen 1000
</pre>
Nếu giao diện bạn đang cấu hình bị lỗi, bạn có thể điều chỉnh tên giao diện và cờ arp được liên kết với thiết bị:
<pre>
ip liên kết đặt <span class = “highlight”> eth1 </span> name eth10
ip liên kết đặt <span class = “highlight”> eth1 </span> arp on
</pre>
Để điều chỉnh các địa chỉ liên kết với các giao diện, ta lại sử dụng lệnh con ip addr
.
Ta có thể thêm địa chỉ vào thiết bị bằng lệnh :
<pre>
ip addr add <span class = “highlight”> ip address / net prefix </span> brd + dev <span class = “highlight”> interface </span>
</pre>
Phần brd +
của lệnh tự động đặt địa chỉ quảng bá. Nhiều địa chỉ có thể được thêm vào mỗi giao diện mà không có vấn đề gì.
Ta có thể loại bỏ các địa chỉ bằng phép toán nghịch đảo. Để xóa một địa chỉ cụ thể được liên kết với một giao diện, bạn có thể sử dụng nó như sau:
<pre>
ip addr del <span class = “highlight”> ip address / net prefix </span> dev <span class = “highlight”> interface </span>
</pre>
Theo tùy chọn, bạn có thể bỏ qua địa chỉ và địa chỉ được liệt kê đầu tiên được liên kết với giao diện đó sẽ bị xóa.
Bạn cũng có thể điều chỉnh định tuyến của server , sử dụng ip route [add | change | replace | delete ]
cú pháp ip route [add | change | replace | delete ]
, nhưng ta sẽ không đề cập đến điều này ở đây, vì hầu hết mọi người sẽ không điều chỉnh nó một cách thường xuyên.
Khả năng bổ sung của IPRoute2
IPRoute2 có một số khả năng bổ sung mà ta sẽ không thể thảo luận sâu trong hướng dẫn này. Thay vào đó, ta sẽ nói về những điều này là gì và những tình huống nào bạn có thể thấy chúng hữu ích.
Ý tưởng về các luật định tuyến IP rất khó nói vì nó rất phụ thuộc vào tình huống. Về cơ bản, bạn có thể quyết định cách định tuyến lưu lượng dựa trên một số trường, bao gồm địa chỉ đích, địa chỉ nguồn, giao thức định tuyến, kích thước gói, v.v.
Ta truy cập chức năng này bằng cách sử dụng lệnh con ip rule
. Truy vấn cơ bản tuân theo mẫu chung của các lệnh con khác:
ip rule show
0: from all lookup local 32766: from all lookup main 32767: from all lookup default
Ba luật định tuyến này là các luật mặc định được cấu hình bởi nhân. Dòng đầu tiên phù hợp với bất kỳ lưu lượng nào và được sử dụng để định tuyến giao thông có mức độ ưu tiên cao. Dòng thứ hai là luật chính xử lý định tuyến thông thường. Luật cuối cùng là luật trống được sử dụng để xử lý hậu kỳ nếu các luật trên không trùng với gói tin.
Các luật định tuyến, như được cấu hình bởi phần mềm IPRoute2, được lưu trữ trong database policy định tuyến, nơi policy được chọn bằng cách trùng với các bộ luật . Ta có thể thêm hoặc xóa các luật bằng các hành động thích hợp. Tuy nhiên, bạn không nên làm điều này mà không biết mình đang làm gì. Xem các trang người đàn ông và tìm kiếm ip rule
để biết thêm thông tin.
man ip # search for "ip rule"
Một điều khác mà ta sẽ thảo luận ngắn gọn là việc xử lý thông tin arp thông qua các công cụ này. Lệnh con xử lý thông tin này được gọi là ip neigh
.
ip neigh
107.170.58.1 dev eth0 lladdr 00:00:5e:00:01:68 DELAY
Theo mặc định, điều này ít nhất sẽ liệt kê cổng của bạn. Arp là một giao thức được sử dụng để thu thập thông tin về các thiết bị vật lý có thể truy cập thông qua mạng local .
Về cơ bản, một yêu cầu arp được phát qua mạng local khi nào cần đến một địa chỉ IP. Địa chỉ IP phù hợp sẽ phản hồi và sau đó máy tính local biết nơi gửi thông tin đến địa chỉ IP đó. Thông tin này được lưu vào bộ nhớ cache trên hệ thống local trong một thời gian (thường là khoảng 15 phút) để tránh phải truy vấn trong quá trình liên lạc theo dõi.
Kết luận
Đến đây bạn sẽ có một ý tưởng khá tốt về cách sử dụng các công cụ có trong bộ iproute2. Trong khi nhiều hướng dẫn và hướng dẫn vẫn đề cập đến các tiện ích cũ, một phần là do các administrator hệ thống hiểu biết thường lớn lên bằng cách sử dụng các công cụ cũ hơn, các lệnh được thảo luận trong hướng dẫn này sẽ được tiếp tục trong những năm tới.
Điều quan trọng là bạn phải làm quen với các lệnh này ngay bây giờ trước khi bạn tự khắc phục sự cố trên hệ thống đã chuyển sang các lệnh này (Arch Linux đã được chuyển đổi hoàn toàn vào năm 2011). Nói chung, chúng nhất quán hơn nhiều và bạn có thể tin tưởng vào một số quy ước nhất định có sẵn trong tất cả các lệnh. Bạn càng sử dụng nhiều lệnh này, chúng sẽ càng trở thành bản chất thứ hai.
<div class = “author”> Bởi Justin Ellingwood </div>
Các tin liên quan
Cách sử dụng các lệnh và mở rộng lịch sử Bash trên VPS Linux2014-03-05
Giới thiệu về Bảo mật VPS Linux của bạn
2014-03-04
Cách đọc và đặt các biến Môi trường và Hệ vỏ trên VPS Linux
2014-03-03
Cách đọc và đặt các biến Môi trường và Hệ vỏ trên VPS Linux
2014-03-03
Cách sử dụng cd, pwd và ls để khám phá hệ thống tệp trên server Linux
2014-02-28
Cách di chuyển server Linux Phần 1 - Chuẩn bị hệ thống
2014-02-27
Cách di chuyển server Linux Phần 2 - Truyền dữ liệu cốt lõi
2014-02-27
Cách di chuyển server Linux Phần 3 - Các bước cuối cùng
2014-02-27
Cách cài đặt và sử dụng LinuxBrew trên VPS Linux
2014-02-14
cách sử dụng role và môi trường trong Chef để kiểm soát cấu hình server
2014-02-04