Tôi có một số chương trình tương tác với api còn lại, mỗi chương trình có tốc độ cuộc gọi khác nhau. Mục tiêu của tôi là chạy tất cả chúng trên cùng một vps bằng cách sử dụng giám sát. Nhưng nếu tôi làm điều đó mà không có bất kỳ cơ chế kiểm soát nào thì api từ xa sẽ cho tôi rất nhiều lỗi vi phạm tỷ lệ. Tôi đang chạy phiên bản Amazon Linux 2 có hai giao diện và hai IP đàn hồi được đính kèm.
Điều tôi đang cố gắng thực hiện là định tuyến các cuộc gọi từ một số chương trình xuyên suốt eth0 và một số trong suốt eth1. Ý tưởng là làm cho api thấy hai IP khác nhau đến để giới hạn tốc độ không kích hoạt.
Trước bất kỳ nỗ lực nào, đây là cấu hình chứng khoán:
iptables -L
ĐẦU VÀO chuỗi (chính sách CHẤP NHẬN)
đích prot opt nguồn đích
Chuỗi FORWARD (chính sách CHẤP NHẬN)
đích prot opt nguồn đích
ĐẦU RA chuỗi (chính sách CHẤP NHẬN)
đích prot opt nguồn đích
lộ trình ip
mặc định qua 172.31.32.1 dev eth0
mặc định qua 172.31.32.1 dev eth1 số liệu 10001
169.254.169.254 nhà phát triển eth0
172.31.32.0/20 dev eth0 liên kết phạm vi kernel proto src 172.31.43.78
172.31.32.0/20 dev eth1 liên kết phạm vi kernel proto src 172.31.47.106
hiển thị quy tắc ip
0: từ tất cả tra cứu cục bộ
32765: từ 172.31.47.106 tra cứu 10001
32766: từ tất cả tra cứu chính
32767: từ tất cả tra cứu mặc định
lộ trình ip bảng 10001
mặc định qua 172.31.32.1 dev eth1
172.31.32.0/20 dev eth1 liên kết phạm vi kernel proto src 172.31.47.106
ip route hiển thị bảng cục bộ
phát 127.0.0.0 dev lo liên kết phạm vi kernel proto src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel phạm vi máy chủ src 127.0.0.1
local 127.0.0.1 dev lo proto kernel phạm vi máy chủ src 127.0.0.1
phát 127.255.255.255 dev lo liên kết phạm vi kernel proto src 127.0.0.1
phát 172.31.32.0 dev eth0 liên kết phạm vi kernel proto src 172.31.43.78
phát 172.31.32.0 dev eth1 liên kết phạm vi kernel proto src 172.31.47.106
local 172.31.43.78 dev eth0 proto kernel phạm vi máy chủ src 172.31.43.78
local 172.31.47.106 dev eth1 proto kernel phạm vi máy chủ src 172.31.47.106
phát 172.31.47.255 dev eth0 liên kết phạm vi kernel proto src 172.31.43.78
phát 172.31.47.255 dev eth1 liên kết phạm vi kernel proto src 172.31.47.106
danh sách địa chỉ ip
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 trạng thái qdisc noqueue nhóm UNKNOWN mặc định qlen 1000
liên kết/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
máy chủ phạm vi inet 127.0.0.1/8 lo
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
inet6 ::1/128 máy chủ phạm vi
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast trạng thái UP nhóm mặc định qlen 1000
liên kết/ether 0a:17:21:84:33:f8 brd ff:ff:ff:ff:ff:ff
inet 172.31.43.78/20 brd 172.31.47.255 phạm vi động toàn cầu eth0
hợp lệ_lft 3423 giây ưa thích_lft 3423 giây
liên kết phạm vi inet6 fe80::817:21ff:fe84:33f8/64
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast trạng thái UP nhóm mặc định qlen 1000
liên kết/ether 0a:08:10:90:fa:f8 brd ff:ff:ff:ff:ff:ff
inet 172.31.47.106/20 brd 172.31.47.255 phạm vi động toàn cầu eth1
hợp lệ_lft 2474 giây ưa thích_lft 2474 giây
liên kết phạm vi inet6 fe80::808:10ff:fe90:faf8/64
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
Tôi đã thử những điều sau đây, nhưng không thành công. bmon không hiển thị hoạt động nào trên eth1 khi các chương trình bắt đầu bởi người dùng kiểm tra thực hiện cuộc gọi của họ. Tôi đã đặt chúng với kiểm tra chown: ...
và chmod + s ...
, bên cạnh việc thêm người dùng = kiểm tra
vào các tập tin cấu hình giám sát.
# adduser --system --no-create-home test
# iptables -A OUTPUT -m owner --uid-owner test -j MARK --set-mark 993
# quy tắc ip thêm bảng fwmark 993 993
# ip route thêm mặc định qua bảng 172.31.32.1 dev eth1 993
# ip route add 172.31.32.0/20 dev eth1 proto kernel scope link src 172.31.47.106 bảng 993
# ip xóa bộ nhớ cache
Tôi đang thiếu gì?
Cảm ơn trước!